C语言实验报告.docx

上传人:b****9 文档编号:23425156 上传时间:2023-05-17 格式:DOCX 页数:61 大小:298.81KB
下载 相关 举报
C语言实验报告.docx_第1页
第1页 / 共61页
C语言实验报告.docx_第2页
第2页 / 共61页
C语言实验报告.docx_第3页
第3页 / 共61页
C语言实验报告.docx_第4页
第4页 / 共61页
C语言实验报告.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

C语言实验报告.docx

《C语言实验报告.docx》由会员分享,可在线阅读,更多相关《C语言实验报告.docx(61页珍藏版)》请在冰豆网上搜索。

C语言实验报告.docx

C语言实验报告

 

《C语言》实验报告

 

专业_____________

年级_____________

学号_____________

学生_____________

指导老师_____________

 

华中师大学信息管理系编

I实验要求

1.每次实验中有若干习题,每个学生至少应该完成其中的三道习题。

2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率,严禁一边上机一边编写。

3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。

4.上机结束后,应整理出实验报告。

书写实验报告时,重点放在调试过程和小结部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力之目的。

II实验容

实验一简单程序设计

【实验目的】

1.熟悉TC++、BorlandC++和VC++6.0的运行环境。

2.了解在TC++、BorlandC++和VC++6.0上如何编辑、编译、连接和运行一个C程序。

3.熟练使用各种C语言的数据类型、运算符与表达式。

4.熟练掌握格式输入与格式输出函数的使用。

5.通过运行简单的C程序,初步了解C源程序的特点,初步掌握查错和排错的技能.

【上机实习指导】

1.通过以下程序来掌握上机操作的全过程

在VC、BC或TC中练习输入、编译、运行一个C语言程序的全过程

以下程序是计算函数y=3x2+2x-4(假设x=2)。

#include“stdio.h”

voidmain()

{

intx=2,y;

y=3*x*x+2*x-4;

printf(“\ny=%d”,y);

}

2.基本数据类型表示围练习

假设有如下程序:

#include

voidmain()

{

charch1,ch2,ch;

unsignedcharc;

inta;

ch1=80;

ch2=60;

ch=ch1+ch2;

c=ch1+ch2;

a=ch1+ch2;

printf(“ch1+ch2=%d\n”,ch1+ch2);

printf(“ch=%d\n”,ch);

printf(“c=%d\n”,c);

printf(“a=%d\n”,a);

}

问题1:

运行该程序,写出输出结果。

并说明为什么存在输出结果的差异?

问题2:

如果要求四行输出的结果均为140,在不改变变量的数据类型的基础上,则应修改程序中的哪条语句?

怎样修改?

问题3:

编一程序,要求两个负整数相加,输出的结果为一正整数。

【自编程序上机】

1.键盘输入与屏幕输出练习

用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=‘A’,c2=‘a’,问在键盘上如何输入?

要求把下列程序补充完整。

#include

voidmain()

{

inta,b;

floatx,y;

charc1,c2;

scanf(“a=%db=%d”,&a,&b);

scanf(“x=%fy=%e”,&x,&y);

scanf(“c1=%cc2=%c”,&c1,&c2);

}

提示:

在“格式控制”字符串中除了格式说明以外还有其它字符,在输入数据时应输入与这些字符相同的字符。

为了验证输入格式的正确与否,应在程序中补充调用标准的输出函数printf。

 

2.按输出结果要求编写程序

若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765.c1=‘a’,c2=‘b’,想得到以下输出格式和结果,请写出完整的程序。

要求输出结果如下:

(*表示空格)

a=3***b=4***c=5

x=1.20000,y=2.400000,z=-3.600000

x+y=*3.60**y+z=-1.20**z+x=-2.40

u=51274***n=***128765

c1=‘a’*or*97(ASCII)

c2=‘b’*or*98(ASCII)

提示:

根据题目中变量的值定义合适的变量类型。

正确定义和使用printf函数中的格式控制字符串。

 

3.计算定期存款本利之和

设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,

试编程计算n年后本利之和deposit。

要求定期存款的年利率rate、存款期间n和存款本金capital均由键盘输入。

4.设一个正圆台的上底半径r1=2.5cm,下底半径r2=3.7cm,高h=3.5cm。

分别计算并输出该圆台的上底面积s1下底面积s2,侧面积s3,圆台的体积v。

具体要求如下:

①r1,r2,h用scanf函数输入,且在输入前要有提示;

②在输出结果时要有文字说明,每个输出值占一行,且小数点后取4位数字。

③所有变量均定义为单精度类型。

5.编程实现:

用1分、5分、10分、25分的硬币凑成任何给定的钱数x,要求硬币的数目最少。

【实验报告】

实习时间:

实习地点:

实习机号:

 

 

1、

#include

voidmain()

{

inta,b;

floatx,y;

charc1,c2;

scanf("a=%db=%d",&a,&b);

scanf("x=%fy=%e",&x,&y);

scanf("c1=%cc2=%c",&c1,&c2);

printf("a=%d,b=%d,x=%.1f,y=%.2f,c1=\'%c\',c2=\'%c\'\n",a,b,x,y,c1,c2);

}

2.

#include"stdio.h"

voidmain()

{

inta=3,b=4,c=5;

floatx=1.2,y=2.4,z=-3.6;

longu=51274,n=128765;

charc1='a',c2='b';

printf("a=%-4d,b=%-4d,c=%-4d\n",a,b,c);

printf("x=%7.5f,y=%8.6f,z=%8.6f\n",x,y,z);

printf("x+y=%-6.2fy+z=%-7.2fz+x=%5.2f\n",x+y,y+z,z+x);

printf("u=%-8ldn=%9ld\n",u,n);

printf("c1=\'%c\'or%d\(ASCII\)\n",c1,c1);

printf("c2=\'%c\'or%d\(ASCII\)\n",c2,c2);

}

 

3.

#include"stdio.h"

#include"math.h"

voidmain()

{

doublecapital,rate,deposit;

intn;

printf("inputcapital,year:

");

scanf("%lf,%d,%lf",&capital,&n,&rate);

deposit=capital*pow(1+rate,n);

printf("deposit=%lf\n",deposit);

}

4.

#include"stdio.h"

#include"math.h"

voidmain()

{

doubler1,r2,h;

printf("输入上底半径,下底半径,高:

");

scanf("%f,%f,%f",&r1,&r2,&h);

doubles1,s2,s3,l,v,pi=3.1314;

s1=pi*r1*r1;

s2=pi*r2*r2;

l=sqrt((r2-r1)*(r2-r1)+h*h);

s3=pi*l*(r1+r2);

v=pi*h*(r1*r1+r2*r2+r1*r2)/3.0;

printf("s1=%.4lf\ns2=%.4lf\ns3=%.4lf\nv=%.4lf\n",s1,s2,s3,v);

}

 

5.

#include

voidmain()

{

intmoney;

inta,b,c,d,sum;

printf("Enterthecoins:

");

scanf("%d",&money);

a=money/25;

b=(money%25)/10;

c=((money%25)%10)/5;

d=money%25%10%5;

sum=a+b+c+d;

printf("25分的有%d\t10分的有%d\t5分的有%d\t1分的有%d\n",a,b,c,d);

printf("总的硬币数是%d\n",sum);

}

实验二选择结构程序设计

【实验目的】

1.熟练掌握上机运行一个C程序的操作过程。

2.学会正确使用逻辑运算符和逻辑表达式,进一步掌握各种表达式的使用。

3.利用if语句实现选择结构程序设计。

4.利用switch语句实现多分支选择结构程序设计。

5.进一步练习调试与修改程序。

【上机实习指导】

1.输入并运行习题3.10。

即:

#include“stdio.h”

voidmain()

{inti,j,n,m;

i=8;j=10;

m=++i;n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

}

分别作以下改变并运行:

①将程序第四行改为:

m=i++;n=++j;

②程序改为:

#include“stdio.h”

voidmain()

{inti,j;

i=8;j=10;

printf(“%d,%d”,i++,j++);

}

③在②的基础上,将语句改为:

printf(“%d,%d”,i++,j++);

④再将语句改为:

printf(“%d,%d,%d,%d”,i,j,i++,j++);

⑤程序改为:

#include“stdio.h”

voidmain()

{inti,j,n=0,m=0;

i=8;j=10;

m+=i++;n-=--j;

printf(“%d,%d,%d,%d”,i,j,m,n);

}

2.计算下列分段函数值:

具体要求如下:

①用if语句实现分支。

自变量x与函数值均用单精度类型。

②自变量x用scanf函数输入,且输入前要有提示。

结果的输出采用以下形式:

x=具体值,f(x)=具体值

③分别输入x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,运行该程序。

3.先静态分析以下程序的运行结果,然后上机验证。

#include“stdio.h”

voidmain()

{inta=3,b=4,c=5,x,y,z;

x=c>b>a;

y=!

a+b

=c);

z=c/b+((float)a/b&&(float)(a/c));

printf(“\nx=%d,y=%d,z=%d”,x,y,z);

x=a||b--;

y=a---3&&b;

printf(“\n%d,%d,%d,%d,%d,%d”,a,b,c,x,y,z);

}

上机运行的结果与你分析的结果是否一致?

不一致的原因何在?

请在程序的最后一个花括号前加上语句:

getchar();后重新运行程序,注意事项加上这一语句后,程序的运行进程有何不同?

getchar()是一个函数调用,其作用是等待接收你从键盘输入的一个字符,在你未按键之前一直处于等待状态。

在这里可以起到暂停的作用。

当你看清结果并按任意键后,立即退出程序并切换回TC主屏幕。

用这一方法可以减少屏幕切换操作。

4.下列C程序的功能是:

计算并输出分段函数值。

其中x由键盘输入。

请通过调试修改程序中的错误(包括语法错误和逻辑错误)。

#include“stdio.h”

main()

{floatx,y;

printf(“inputx=”);

scanf("%f",&x);

if((-5.0<=x<0.0)&&(x!

=-2.0))y=1.0/(x+2.0);

elseif(x<5.O)y=l.0/(x+5.0);

elseif(x

elsey=0.0;

printf("x=%e\ny=%e\n",x,y);

}

具体要求如下:

①不允许改变计算的精度。

②不允许改变原来程序的结构,只能在语句或表达式部进行修改。

③调试正确后,用x=-7.0,-2.0,-1.0,0.0,2.0,5.0,8.0,10.0,11.0运行这个程序。

④画出与调试正确后的程序对应的流程图。

【自编程序上机】

1.数据整除判断

编程实现:

输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:

①能

同时被3,5,7整除;②能被其中两数(要指出哪两个)整除;③能被其中一个数(要指出哪一个)整除;④不能被3,5,7任一个整除。

提示:

⑴判断能否被某一个数整除应采用求余运算。

⑵在一个程序中利用选择结构把四种可能的信息全部表示出来。

2.用scanf函数输入一个百分制成绩(整型量),要求输出成绩等级A,B,C,D,E。

其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。

具体要求如下:

①用if语句实现分支。

②在输入百分制成绩前要有提示。

③在输入百分制成绩后,要判断该成绩的合理性,对于不合理的成绩(即大于100分或小于0分)应输出出错信息。

④在输出结果中应包括百分制成绩与成绩等级,并要有文字说明。

⑤分别输入百分制成绩:

-90,100,90,85,70,60,45,101,运行该程序。

3.将第2题中的

(1)改为“用switch语句实现”,其余不变,重复实现第2题中的各功能。

4.编程找出5个整数中的最大数和最小数,并输出找到的最大数和最小数。

【实验报告】

实习时间:

实习地点:

实习机号:

 

 

1、

#include"stdio.h"

voidmain()

{

intn;

scanf("%d",&n);

if(n%3==0&&n%5==0&&n%7==0)

printf("能同时被3,5,7整除的数:

%d\n",n);

if(n%3==0&&n%5==0&&n%7!

=0)

printf("能同时被3,5整除的数:

%d\n",n);

if(n%3==0&&n%7==0&&n%5!

=0)

printf("能同时被3,7整除的数:

%d\n",n);

if(n%5==0&&n%7==0&&n%3!

=0)

printf("能同时被5,7整除的数:

%d\n",n);

if(n%3==0&&n%5!

=0&&n%7!

=0)

printf("能被3整除的数:

%d\n",n);

if(n%5==0&&n%3!

=0&&n%7!

=0)

printf("能被5整除的数:

%d\n",n);

if(n%7==0&&n%3!

=0&&n%5!

=0)

printf("能被7整除的数:

%d\n",n);

if(n%7!

=0&&n%3!

=0&&n%5!

=0)

printf("不能被3,5,7任一整除的数:

%d\n",n);

}

 

2、

#include"stdio.h"

voidmain()

{

printf("请输入成绩:

");

floatscore;

scanf("%f",&score);

if(score>100||score<0)

printf("enterdataerror!

");

elseif(score>=90)

printf("scoreis%f,gradeisA\n",score);

elseif(score>=80)

printf("scoreis%f,gradeisB\n",score);

elseif(score>=70)

printf("scoreis%f,gradeisC\n",score);

elseif(score>=60)

printf("scoreis%f,gradeisD\n",score);

else

printf("scoreis%f,gradeisE\n",score);

}

3、

#include"stdio.h"

voidmain()

{

floatscore,s;

scanf("%f",&score);

s=score/10;

switch((int)s)

{

case10:

case9:

printf("scoreis%f,gradeisA\n",score);break;

case8:

printf("scoreis%f,gradeisB\n",score);break;

case7:

printf("scoreis%f,gradeisC\n",score);break;

case6:

printf("scoreis%f,gradeisD\n",score);break;

case5:

case4:

case3:

case2:

case1:

printf("scoreis%f,gradeisE\n",score);break;

default:

printf("enterdataerror!

\n");

}

}

4、

#include"stdio.h"

voidmain()

{

inta,b,c,d,e,m1,m2,s1,s2;

scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);

if(a>b)

m1=a;

s1=b;

if(a

m1=b;

s1=a;

if(c>d)

m2=c;

s2=d;

if(c

m2=d;

s2=c;

if(m1>m2)

if(m1>e)

printf("max=%d\n",m1);

else

printf("max=%d\n",e);

elseif(m2>e)

printf("max=%d\n",m2);

else

printf("max=%d\n",e);

if(s1

if(s1

printf("min=%d\n",s1);

else

printf("min=%d\n",e);

elseif(s2

printf("min=%d\n",s2);

else

printf("min=%d\n",e);

}

 

 

 

 

 

实验三循环结构程序设计

【实验目的】

1.进一步练习选择结构的程序设计。

2.练习并掌握实现循环结构的三种方法。

3.练习并掌握选择结构与循环结构的嵌套。

4.掌握多重循环的应用。

5.学会单步跟踪的操作方法。

【上机实习指导】

1.输入例6.2.

①上机运行程序,分析运行结果。

②用单步跟踪观察while语句的执行过程:

连续按三次F8键,再用两次Ctrl-F7操作分别将i和sum的值显示出来,然后不按断F8键,每次按F8后,观察绿条的变化和变量值的变化情况,以此来分析并弄清while语句的执行过程。

③修改程序,实现s=1+1/2+1/3+…+1/10。

【自编程序上机】

1.如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,

例如:

6的因子为1,2,3,且1+2+3=6,因此6是一个“完数”。

计算并输出1000以的所有“完数”之和。

具体要求如下:

①所有循环均用for循环。

②输出要有文字说明,并同时输出各“完数”。

输出形式为:

完数1+完数2+…=和值

2.彩票选号

某市体育彩票采用整数1、2、3、…、36表示36种体育运动,一彩票可选择7种运动。

编写程序,选择一彩票的,使这彩票的7个之和是105且相邻两个之差按顺序依次是1、2、3、4、5、6。

例如第一个是1,则后续应是2、4、7、11、16、22。

提示:

⑴若已知7个中的第一个是k0,则后续之间的关系是:

ki-ki-1=i,其中i=1,2,3,4,5,6。

⑵k0+k1+k2+k3+k4+k5+k6之和必须是105。

⑶ki≤36,其中i=0,1,2,3,4,5,6。

3.百钱买百鸡问题。

已知公鸡每只5元,母鸡每只3元,小鸡1元3只,要求100元钱正好买100只鸡,则应买公鸡、母鸡的小鸡各多少只?

4.某班有学生n人,从终端读入n及n个人学生的成绩,试编程实现以下功能:

①打印出前3个最好成绩及取得每个最好成绩的人数;

②若90分以上计为优,75-89分计为“良”,60-74分计为“中”,60分以下计为“不及格”,试统计各档成绩所占百分率。

【实验报告】

实习时间:

实习地点:

实习机号:

 

 

 

1、

#include

voidmain()

{

inti,m,sum1,sum2=0;

for(i=1;i<=1000;i++)

{

sum1=0;

for(m=1;m

{

if(i%m==0)

{

sum1=sum1+m;

}

}

if(sum1==i)

{

printf("完数%d+",i);

sum2=sum2+i;

}

}

printf("\b=%d\n",sum2);

}

2、

#include"stdio.h"

voidmain()

{

inti,j,k,sum;

for(i=1;i<=11;i++)

{

sum=0;

k=i;

for(j=0;j<=6;j++)

{

k=k+j;

sum=sum+k;

if(sum==105)

{

k=i;

for(j=0;j<7;j++)

{

printf("%2d",k=k+j);

}

}

}

}

printf("\n");

}

#include

voidmain()

{

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1