C语言实验报告.docx
- 文档编号:23425156
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:61
- 大小:298.81KB
C语言实验报告.docx
《C语言实验报告.docx》由会员分享,可在线阅读,更多相关《C语言实验报告.docx(61页珍藏版)》请在冰豆网上搜索。
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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告