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
源程序(有错误的程序)

错误信息1:

错误原因:for语句中,表达式之间不能用逗号隔开,后边不加分号
改正方法:for语句中表达式之间用分号隔开,把分号去掉
错误信息2:

错误原因:
fahr在定义时是整型,但在输出时却以%f的形式输出
改正方法:
将%3.0f改为%d
错误信息3:

错误原因:
在输出时,celsius却保留了6位小数
改正方法:
将%6.1f改为%.1f
错误信息4:
错误原因:celsius是浮点型,但在运算中却计算为整型
改正方法:将5改为5.0
错误信息5:

错误原因:for语句后缺少大括号
改正方法:在for语句后加上大括号
错误信息5:

错误原因:计算的式子并不正确
改正方法:将fahr++改为fahr=fahr+2
(二)学习总结

1.有如下程序:

详细描述程序的执行过程,即说明程序的每一步是执行的哪条代码,执行顺序如何。循环需描述前两次循环和最后一次循环的详细执行过程。最后说明程序实现的功能是什么。
答:
<1>定义变量i,num,odd,even。
<2>给变量odd,even赋初值。
<3>开始for循环语句
<4>给i赋初值i=1
<5>给定循环条件i<=10
<6>输入num
<7>判断num是否能被2整除,如果是,执行even++
<8>如果num不能被2整除,便执行odd++
<9>给i加1,此时i=2
<10>继续输入num
<11>判断num是否能被2整除,如果是,执行even++
<12>如果num不能被2整除,便执行odd++
<13>给i加1,此时i=3
<14>继续输入num
<15>判断num是否能被2整除,如果是,执行even++
<16>如果num不能被2整除,便执行odd++
.
.
.
<17>给i加1,此时i=10
<18>判断num是否能被2整除,如果是,执行even++
<19>如果num不能被2整除,便执行odd++
<20>给i加1,此时i=11
<21>i不满足循环条件
<20>结束循环
<21>输出even和odd
该程序实现的功能是:输入10个整数,计算这十个数中的奇数和偶数的数量
2.增量运算符
(1)运行下面程序,结果是什么?增量运算符在单独使用时,前缀和后缀形式有区别吗?
增量运算符在单独使用时,前缀形式和后缀形式的结果是一样的,说明没有区别。
(2)运行下面的程序,结果是什么?两条输出语句的执行过程是怎样的?说明什么问题?这两条输出语句执行完后,i和j的值分别是多少?
这两条输出语句的执行过程是:
对于i++来说,是先取i的值,再对i进行加法运算,而对++j来说则是先对j进行加法运算,再取j的值。这说明,在增量运算符作为表达式的一部分时,前缀形式和后缀形式的执行过程是不一样的。最后,i的值为2,j的值为3。
3.有些循环语句后面有{},有些没有,有些语句有缩进,运行下面的四个小程序,运行结果有什么不同?循环体的认定与缩格形式是否有关?与{}是否有关?那么,应该如何正确判断一个循环语句中的循环体?下面的程序中,哪几种格式是正确的缩进格式。

对比可知,只有第三个程序输出的结果和其它三个不同。
因此,开始对比(1)和(2)发现,printf的缩进不同,但是,(1)和(2)的输出结果却是相同的,由此可知,缩进并不影响运行结果。
但是,反观(1)(2)和(3)(4)可以发现,(1)(2)的循环语句并没有加{},而三四的语句都加了{},但是(1)(2)(4)程序的结果都相同,只是(3)的{}括住的语句和(4)不同,由此可知,{}可以影响运行结果。
我认为第四种格式才是正确的缩进格式。
4.对其他你认为需要进行总结的内容进行总结。
<1>在if后的语句最好不要出现表达式,以减少误差
<2>如果有浮点数的比较,要先计算出来再运行,或者将小数同时乘以一个数,变为整数
<3>N项和连加是要循环N次即为if(i=1;i<=N;i++)
<4>在for语句中,表达式可全部可部分省略,但是两个分号不能省略
(三)实验总结

求奇数分之一序列前N项和
(1)题目:本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。
(2)流程图:

(3)源代码:

(5)本题的PTA提交情况为:

3.奇偶分家
(1)题目:给定N个正整数,请统计奇数和偶数各有多少个?
(2)流程图:


(3)源代码:

(5)本题的PTA提交情况为:

5.统计字符
(1)题目:本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
(2)流程图:


(3)源代码:

(5)本题的PTA提交情况为:

7.求交错序列前N项和
(1)题目:本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
(2)流程图:

(3)源代码:

(4)pta提交列表:

(四)博客互评
未进行博客互评

posted @ 2017-11-12 18:04  Shirley软妹  阅读(395)  评论(0编辑  收藏  举报