C语言第五次作业
(一).改错题
输入源程序,编译
发现循环语句for语句括号后多了分号,改正,如图:
发现for语句使用错误,改正,如图:
编译无错误,运行结果如图:
发现运行错误,源代码中输出格式错误,如图:
改正,如图:
运行结果:
发现源程序中计算式错误,改正后如图:
运行结果如图:
发现还是不符合,审题后发现应该是fahr+2,而不是fahr++,改正后如图:
运行结果如下:
符合期望。
(二).学习总结
1.描述程序
答:程序如图:
首先,存入4个变量;再执行“odd=0;even=0;”语句;再执行for循环语句,循环中输入整数,存在num中,此时i=1,
执行If判断句,判断整数是否为2的倍数,若是则even+1,不是则odd+1;此时一个循环结束;执行第二个循环,i+1=2。
再次输入一个整数,判断是否为2的倍数,若是则even+1,不是则odd+1;然后i+1=3,执行第三个循环,如此往复,
到达最后一个循环;当i=10的时候再次输入一个整数,判断是否为2的倍数,若是则even+1,不是则odd+1;此时循环结束,
跳出循环,结束程序。
此程序可以用来统计输入的一串整数中有多少奇数和偶数。
2.增量运算符
(1).运行下面程序,结果是什么?增量运算符在单独使用时,前缀和后缀形式有区别吗?
答;运行结果:
增量运算符在单独使用时,前缀和后缀形式没有区别。
(2).)运行下面的程序,结果是什么?两条输出语句的执行过程是怎样的?说明什么问题?这两条输出语句执行完后,i和j的值分别是多少?
答:运行结果:
第一条语句是先运行再加一;第二条语句是先加一再运行。说明前缀和后缀在语句运行中是有区别的。前缀是先进行加减,再在语句中进行运行;后缀是先在语句中运行,再进行加减。
这两条输出语句执行完成后,i为3,j为3,结果相同。
3.有些循环语句后面有{},有些没有,有些语句有缩进,运行下面的四个小程序,运行结果有什么不同?循环体的认定与缩格形式是否有关?
与{}是否有关?那么,应该如何正确判断一个循环语句中的循环体?下面的程序中,哪几种格式是正确的缩进格式。
(1).运行结果:
(2).运行结果:
(3).运行结果;
(4).运行结果:
(5).经过运行四个程序,发现:
第一个和第二个程序只有两个printf语句有区别,第二个有缩格,但是输出的结果是一样,所以循环体的认定与缩格形式无关;
第二个和第三个程序的区别在于多了一个花括号{},但是输出结果不同,再比较一下第三个和第四个程序都有花括号{},但是括号的范围不同,结果也不同,当printf("\n")在花括号外面时,
就不参与循环,结果就不会换行,所以与{}有关。
我认为判断循环体应该观察输出格式和花括号,根据二者来判断循环体。
4.对其他你认为需要进行总结的内容进行总结。
答:for语句后括号中必须要有三个条件,且要用分号隔开;如果没有条件但必须有分号。还要注意i++和++i的区别,一个是先加后赋值,另一个是先赋值后加。
还学会了用“sum+ = x”的形式来写程序,比较省时间,简单些。
(三).实验总结
1.统计学生平均成绩与及格人数
(1)流程图
(2)源代码
(3)实验分析:
本题没有太大问题,就是要注意if语句和for语句的嵌套。
(4)本题PTA提交列表
2.到底是不是太胖了
(1)流程图
(2)源代码
(3)实验分析
问题1:无法一次性判断
原因:将所有数据一起输出,并判断是否符合条件
解决办法:分开判断,先判断是否完美,以此类推。
问题2:浮点型数据应用错误
原因:浮点型等于时有误差
解决办法:避免使用浮点型
(4)本题PTA提交列表
3.统计学生成绩
(1)流程图
(2)源代码
(3)实验分析
本题没太大问题,比较简单。
(4)本题PTA提交列表
4.找出最小值
(1)流程图
(2)源代码
(3)实验分析
问题1:判断谁最小时错误
原因:没有弄清楚换值
解决办法:询问同学后,改了,了解到如何交换
(4)本题PTA提交列表
(四).博客互评
李晓晓 博客地址:http://www.cnblogs.com/Reloaded/p/7795161.html
许天笑 博客地址:http://www.cnblogs.com/snxtx/p/7812139.html
刘恺愃 博客地址:http://www.cnblogs.com/liukaixuan/p/7812027.html