C语言程序设计实验三.docx
- 文档编号:3837804
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:19
- 大小:361.54KB
C语言程序设计实验三.docx
《C语言程序设计实验三.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验三.docx(19页珍藏版)》请在冰豆网上搜索。
C语言程序设计实验三语言程序设计实验三韶关学院学生实验报告册实验课程名称:
C语言程序设计实验项目名称:
选择与循环程序设计实验类型(打):
(基础、综合、设计)院系:
教育学院专业班级:
11教育技术学姓名杜子敬学号:
11114051006指导老师:
林育曼韶关学院教务处编制一、实验预习报告内容预习日期:
年月日实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理与公式、实验预习疑问等项目。
一、目的和要求1、熟悉C语言的上机步骤。
2、掌握语言程序的选择和循环结构。
3、掌握C的基本类型,理解并掌握流程图4、掌握算术运算符、优先级和结合律二、实验内容1.完成教材P52第4题。
要求:
分别用if语句和switch语句实现2.完成教材P52第5题。
要求:
分别用if语句和switch语句实现3.完成教材P76第3题。
4.完成教材P76第4题5.完成教材P76第7、8题说明:
实验要提供完整程序以及相应的注释,每题都必须有几组相应的测试数据三、实验心得体会撰写本次实验的心得体会实验预习评分:
二、实验原始(数据)记录实验时间:
2013年4月5(19)日(星期五第七八节)实验同组人:
杜子敬如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如不够,可另附相同规格的纸张)。
在程序测试中遇到的问题:
1、初次接触switch语句,没有很好地出来好switch结构和break跳转语句。
导致程序执行不是输出对于部分,而是全部输出。
2、在运用switch语句中,没有考虑到上一个“casen”中的数据不能直接运用到下一个“casen+1”中,所以在后面赋值时出现错误,所以输出的天数也出现错误。
指导教师批阅及签名签名:
年月日三、实验报告内容年月日实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。
实施内容:
一、根据实验要求:
完成教材P52第4题(要求:
分别用if语句和switch语句实现)完成教材P52第5题(分别用if语句和switch语句实现)完成教材P76第3题。
完成教材P76第4题完成教材P76第7、8题所以,编写程序实验程序如下:
1、某班综合考评,根据参加集体活动的次数加分。
(1)使用if语句编写的程序:
#includeintmain()intx;printf(请输入你参加活动次数:
);scanf(%d,&x);if(x10)printf(获得的加分为:
10n);elseif(x7)printf(获得的加分为:
8n);elseif(x3)printf(获得的加分为:
%dn,x);elseif(x1)printf(获得的加分为:
2n);elseif(x=1)printf(获得的加分为:
1n);elseprintf(输入错误,请输入正整数。
n);return0;输入对应的数字测试程序:
输入活动次数为“1”时,结果下输入活动次数为“3”时,结果下输入活动次数为“6”时,结果下输入活动次数为“9”时,结果下输入活动次数为“15”时,结果下
(2)使用switch语句编写的程序:
#includevoidmain()intx;printf(请输入你参加活动次数:
);scanf(%d,&x);switch(x)case1:
printf(获得加分为:
1n);break;case2:
case3:
printf(获得加分为:
2n);break;case4:
printf(获得加分为:
4n);break;case5:
printf(获得加分为:
5n);break;case6:
printf(获得加分为:
6n);break;case7:
printf(获得加分为:
7n);break;case8:
case9:
case10:
printf(获得加分为:
8n);break;default:
if(x10)printf(获得加分为:
10n);elseprintf(输入错误,请输入正整数。
n);输入对应的数字测试程序:
输入活动次数为“1”时,结果下输入活动次数为“3”时,结果下输入活动次数为“6”时,结果下输入活动次数为“9”时,结果下输入活动次数为“15”时,结果下2、输入日期,判断该日是当年的第几天。
编写的程序如下:
#includevoidmain()intyear,month,day,sum,sum2;printf(输入年月日:
);scanf(%d.%d.%d,&year,&month,&day);if(year%4=0&year%100!
=0|year%400=0)sum2=31+29;elsesum2=31+28;switch(month)case1:
if(day32)sum=day;elseprintf(youinputerror!
n);break;case2:
if(year%4=0&year%100!
=0|year%400=0)if(day30)sum=31+day;elseprintf(youinputerror!
n);elseif(day29)sum=31+day;elseprintf(youinputerror!
n);break;case3:
if(day32)sum=sum2+day;elseprintf(youinputerror!
n);break;case4:
if(day31)sum=sum2+31+day;elseprintf(youinputerror!
n);break;case5:
if(day32)sum=sum2+31+30+day;elseprintf(youinputerror!
n);break;case6:
if(day31)sum=sum2+31+30+31+day;elseprintf(youinputerror!
n);break;case7:
if(day32)sum=sum2+31+30+31+30+day;elseprintf(youinputerror!
n);break;case8:
if(day32)sum=sum2+31+30+31+30+31+day;elseprintf(youinputerror!
n);break;case9:
if(day31)sum=sum2+31+30+31+30+31+31+day;elseprintf(youinputerror!
n);break;case10:
if(day32)sum=sum2+31+30+31+30+31+31+30+day;elseprintf(youinputerror!
n);break;case11:
if(day31)sum=sum2+31+30+31+30+31+31+30+31+day;elseprintf(youinputerror!
n);break;case12:
if(day12输出错误,计算得出的天数错误。
结果如下:
输入闰年“2012.3.50”因为日数5031输出错误,计算得出的天数错误。
结果如下:
3、统计一个整数的位数。
编写的程序如下:
#include#includevoidmain()intx,y,i;y=1,i=0;printf(请输入一个整数:
);scanf(%d,&x);if(x=0)printf(该整数的位数为:
1n);elsewhile(y!
=0)y=x/(pow(10,i);i+;printf(该整数的位数为:
%dn,-i);输入整数“12345”,得到的位数为5,结果如下所示:
输入整数“1234567890”,得到的位数为10,结果如下所示:
4、输入一批学生成绩,以负数作为结束。
统计不同分数层的人数。
编写的程序如下:
#includevoidmain()intx,y,z,i,j,k;x=0;y=0,z=0,i=0,j=0,k=0;for(;x=0;)printf(请输入学生成绩:
);scanf(%d,&x);if(x=90)y+;elseif(x=80)z+;elseif(x=70)i+;elseif(x=60)j+;elseif(x=0)k+;printf(90分以上人数有%d人,80分以上人数有%d人,70分以上人数有%d人,60分以上人数有%d人,不及格人数有%d人。
n,y,z,i,j,k);测试程序,输入“90,90,89,87,78,78,67,56,45,,-1”结果如下:
5、从键盘输入指定金额,然后显示支付该金额的各种面额人民币的数量。
编写的程序如下:
#includevoidmain()floaty;intx,c,i=0;ints9=10000,5000,1000,500,200,100,10,5,1;printf(请输入指定金额:
);scanf(%f,&y);x=100*y;doc=x/si;x=x%si;if(i=0)printf(支付该金额的需人民币100元%d张,,c);if(i=1)printf(50元%d张,,c);if(i=2)printf(10元%d张,,c);if(i=3)printf(5元%d张,,c);if(i=4)printf(2元%d张,,c);if(i=5)printf(1元%d张,,c);if(i=6)printf(1角%d张,,c);if(i=7)printf(5分%d张,,c);if(i=8)printf(1分%d张。
n,c);i+;while(x0);程序测试,输入指定金额“345.89”得到的结果所下所示:
再输入其他金额“45989.78”得到的结果所下所示:
6、有30人(包括男人、女人和孩子)在一家饭馆吃饭消费50元,其中每个男人花费3元,每个女人花费2元,每个孩子花费1元。
问男人、女人、孩子各有多少人。
编写程序如下:
#includevoidmain()intx,y,z,h,k,m;/x表示男人,y表示女人,z表示孩子3*x+2*y+z=50;/男人、女人和孩子一个消费50元h=3*x+2*y+z;/赋值给hx+y+z=30;/男人、女人和孩子一共30人k=x+y+z;/赋值给km=2*k-h;/得到m=z-x=10,即孩子个数比男人多10个。
for(x=0;x=10;x+)z=x+10;y=30-x-z;printf(可能是结果为:
男人有%d个,女人有%d个,小孩有%d个。
n,x,y,z);测试程序,显示结果所下:
二、撰写本次实验的心得体会。
这次实验中,我有学习到了很多新的东西,感觉到C语言越来越有趣。
例如:
我们这次学习的if语句、switch语句的选择结构,while语句、do-while语句和for语句的循环结构。
在if语句中想要快速高效地判断是否执行语句组,就必须定义准确的“判断条件”,在这方面,我深有体会,之前好几次定义的条件有点模糊,所以当程序执行是出现了不同程度的缺陷或错误。
这个时候再去排查会浪费大量的时间,而且查找难度大,所以一个准确的“判断条件”可以使编程变得高效,让我们更好地理解。
所以,我们要学习怎样让我们写的判断条件变得准确,这需要我们不断地练习和参考别人写的一些优秀程序。
而另一种条件结构,switch结构。
我认为switch结构有2个方面很值得注意:
1、switch语句中case-break的运用。
因为没有break的话,语句组就会一开始一直执行到结束,不会分部分输出,不能达到筛选的作用,那么switch结构中的判断表达式就失去意义了,所以要善于结合break语句的运用,达到筛选的作用。
2、case1中运用了break语句,那么case1中的数据不能直接运用到下一个case2中。
因为case之间是不交融的,要用必须在switch语句之前定义。
我们这次实验还有一个重点就是我们的循环语句。
这三种循环语句有不同的特点,while语句先判断条件是否为真,是真则执行,假就结束。
do-while语句是先执行一次再执行判断,是真则继续执行下去。
for语句有三个表达式,分别是“for(初值表达式;循环条件表达式;增值变量表达式)”。
三个表达式使用分号隔开的,一般情况下,三个表达式都写。
因为1、我们是初学者有利于我们记忆每一个表达式的意义。
2、有利于我们检查时,对程序的检测。
3、有利于别人阅读我们的程序,这是可读性问题,在编程这方面是很重要的,它关系到信息的共享。
这次我还学到了,每学一种新的语句不是单独使用的,而是要结合前面所学的一起灵活运用,像这次的循环语句在实验中不仅仅是纯循环语句,还可以是循环与条件语句结合、循环语句的嵌套、循环语句与数组的结合,灵活多变的组合让我们的程序更加丰富多彩。
同时,让我们体现到不同的代码有一样的结果。
正如“条条大道通罗马”。
而且,在运用不同的语句进行组合,有利于我们对不同语句的深入了解,清楚这些语句的特点,做到我们在编程时可以得心应手。
再说一下这次实验的题目,我们觉得这次的实验题型还是比较符合我们这次的训练的,同时也可以增加学生的学习探究学习能力,相互讨论能力。
所以这次的题目比较好,希望老师多给我们一些像这次的比较好的实验题目。
对我来说,C语言真的很奇妙,因为短短的几行代码就可以完成我们一些复杂的数学计算,还可以判断不同的情况执行不同的语句,还可以循环利用语句。
就像我们这节课所做的实验一样,一些复杂的问题,在程序上也只是几行代码。
其实,我学习觉C语言最重要的是,要学会思维方式的转变。
我们要想怎样让电脑看得懂我们写的东西,就必须用电脑听得懂的语言跟它交流。
所以说,我们在写程序是不要被我们现实的固定思维绑定,要想的怎样写才能让电脑读得懂,怎样写才高效,这是我们需要学习的。
实验报告评分:
注:
1、如个别实验的实验报告内容多,实验报告册页面不够写,或有识图、画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。
2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)