C语言程序设计第五次作业

(一)改错题

输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉。计算公式如下:
c = 5×(f-32)/9
其中,c表示摄氏温度,f表示华氏温度。
输入输出样例1:
  Enter lower:32
  Enter upper:35
  fahr celsius
  32 0.0
  34 1.1
输入输出样例2:
  Enter lower:40
  Enter upper:30
  fahr celsius
源程序(有错误的程序)

对源程序进行编译:
错误信息:
错误原因:for语句括号内语言不能用“,”隔开,应用“;”。
改正方法:把括号里的两个“,”都改为“;”
改正后编译正确,如
但运行有错误,如图
错误信息:
错误原因:fahr定义的是int类型的,而输出时却为“%f”,应该为“%d”。
改正方法:把“%f”改为“%d”。即

错误信息:
错误原因:计算错误,fahr++应该为fahr = fahr + 2;
改正方法:将fahr++改为fahr = fahr + 2,即


错误信息:
错误原因:计算公式错误,并应定义为double类型。
改正方法:5前加上(double),并把/9移到(fahr-32.0)的后面,即

改正后答案正确,如图;

(二)学习总结
1.详细描述程序的执行过程,即说明程序的每一步是执行的哪条代码,执行顺序如何。循环需描述前两次循环和最后一次循环的详细执行过程。最后说明程序实现的功能是什么。

答:①定义整形常量i,int:num,odd,even;②odd=0;even=0;③ 添加for循环,式1为i=1;式2为i<=10;式3为i=i+1;④输入变量num;⑤当num%2==0 时even++;
⑥如果num%2!= 0 时odd++;⑦i<=10成立程序继续;⑧再次输入变量num;⑨重复上面循环④⑤;⑩直到当i>10条件满足后再跳出循环后再输出even和odd的最终结果。
功能:统计输入的一串整数中有多少奇数和偶数。

2.增量运算符
(1)运行下面程序,结果是什么?增量运算符在单独使用时,前缀和后缀形式有区别吗?

结果:
答:有区别,++i是先加后用,而i++是先用后加。输出结果不同。
(2)运行下面的程序,结果是什么?两条输出语句的执行过程是怎样的?说明什么问题?这两条输出语句执行完后,i和j的值分别是多少?

结果:
答:第一条先i++是先用后加,而++j是先加后用;单独作表达式对程序无影响,但在语句里有影响;i=2,j=3。

3.有些循环语句后面有{},有些没有,有些语句有缩进,运行下面的四个小程序,运行结果有什么不同?循环体的认定与缩格形式是否有关?与{}是否有关?那么,应该如何正确判断一个循环语句中的循环体?下面的程序中,哪几种格式是正确的缩进格式。
1:

2:

3:

4:

通过观察对比:第一个和第二个程序只有两个printf语句有区别,第二个有缩格,但是输出的结果是一样,所以可以得出循环体的认定与缩格形式无关这个结论;
第二个和第三个程序的区别在于多了一个{},但是输出结果不同,比较第三个和第四个程序有花括号{},括号范围不同,导致结果不同,当printf("\n")在花括号外面时,
就不参与循环,结果就不会换行,所以是否换行
与{}有关。

4.对其他你认为需要进行总结的内容进行总结。
通过本章的学习,让许多的算术关系的表达式变得更加简单易懂,同时让程序更加简洁整齐;例如i = i + 1可用i++或i+=1等方式来表示 ;另外,要注意i++和++i的本质的执行程序顺序的区别;
for语句内标点符号的使用以及三个式子分别表示的意义。

(三)实验总结
1.统计学生平均成绩与及格人数
(1)题目
本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
(2)流程图


(3)源代码

(4)实验分析
注意定义int, double类型
(5)本题PTA提交列表

2.到底是不是太胖了
(1)题目
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。
(2)流程图

(3)源代码

(4)实验分析
注意计算式两个式子或式子和数之间相乘应加“*”号
(5)本题PTA提交列表

3.统计学生成绩
(1)题目
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
(2)流程图

(3)源代码

(4)实验分析
并且用&&表示,输出格式要和题目一致
(5)本题PTA提交列表

4.找出最小值
(1)题目
本题要求编写程序,找出给定一系列整数中的最小值。
(2)流程图


(3)源代码

(4)实验分析
因为是整数,定义为int类型而不是double。
(5)本题PTA提交列表

(四)博客互评
程晓磊:http://www.cnblogs.com/8426224ll/p/7813670.html

posted on 2017-11-10 15:14  永恒破碎  阅读(614)  评论(5编辑  收藏  举报

导航