c语言程序设计第五次作业——循环结构,1

(一)改错题

题给源代码

c语言程序设计第五次作业——循环结构,1

错误信息(1):

c语言程序设计第五次作业——循环结构,1

错误原因:for语句后面不需要加分号

改正方法:把for语句后面的分号删掉

错误信息(2):

c语言程序设计第五次作业——循环结构,1

错误原因:

for语句中三条语句之间必须用分号隔开,而该语句中“for (fahr = lower , fahr <= upper, fahr ++) ;”括号内的三条语句之间没用分号分隔

改正方法:

把for语句括号中的三条语句之间的逗号改为分号

错误信息(3):

c语言程序设计第五次作业——循环结构,1

错误原因:

c语言程序设计第五次作业——循环结构,1

c语言程序设计第五次作业——循环结构,1

在定义变量时fahr为整型,而输出语句中fahr为浮点型,且题干中fahr均为整数,故需要该输出语句中的fahr输出类型

改正方法:

把“printf("%3.0f %6.1f\n", fahr, celsius);”改为“printf("%d %6.1f\n", fahr, celsius); ”

错误信息(4):

c语言程序设计第五次作业——循环结构,1

错误原因:

c语言程序设计第五次作业——循环结构,1

c语言程序设计第五次作业——循环结构,1

程序中 celsius 定义为浮点型,而计算语句中运行的是整型的语言,故需要对计算语句进行强制转换

改正方法:把celsius = 5 /9 * (fahr - 32.0); 改为 celsius = (double)5 /9 * (fahr - 32.0);

错误信息(5):

c语言程序设计第五次作业——循环结构,1

错误原因:

c语言程序设计第五次作业——循环结构,1

因为for为循环语句,在for语句后面的语句并没有进入循环,故需要把for语句后面的语句加上大括号

改正方法:

在for语句后面加大括号,并且把for语句后面的俩条语句移动到大括号里面

错误信息(6)

c语言程序设计第五次作业——循环结构,1

错误原因:

c语言程序设计第五次作业——循环结构,1

题干中要求每次增加2℉,而该循环中每次增加1,所以需要该每次增加的度数

改正方法:

把for (fahr = lower ; fahr <= upper; fahr ++) 改为 for (fahr = lower ; fahr <= upper; fahr +=2)

最后正确程序与正确结果:

c语言程序设计第五次作业——循环结构,1

(二)学习总结

1.有如下程序:

c语言程序设计第五次作业——循环结构,1

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

(1)声明变量i,num,odd,even,

(2)给odd,even,赋初值

(3)给i赋初值,之后进入循环

(4)输入一个数

(5)判断输入的数是否为偶数

(6)是偶数则给even加1,否则给odd加1

(7)给i加1,判断此时的i是否大于10,若i小于10,则进入循环

(8)输入一个数

(9)判断输入的数是否为偶数

(10)是偶数则给even加1,否则给odd加1

(11)给i加1,判断此时的i是否大于10,若i小于10,则进入循环

(12)最后一步:

(13)输入一个数

(14)判断输入的数是否为偶数

(15)是偶数则给even加1,否则给odd加1

(16)给i加1,判断此时的i大于10,则退出循环

(17)输出此时even,和odd的值

实现的功能:统计输入的10个数中奇数和偶数的个数分别为多少

2.增量运算符

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

c语言程序设计第五次作业——循环结构,1

c语言程序设计第五次作业——循环结构,1

在该程序中,增量运算符在单独使用时,前缀和后缀形式没有区别

(2)运行下面的程序,结果是什么?两条输出语句的执行过程是怎样的?说明什么问题?这两条输出语句执行完后,i和j的值分别是多少?

运行结果

c语言程序设计第五次作业——循环结构,1

第一条输出语句:先输出i,再给i加1

第二条输出语句:先给j加1,再输出j

说明问题:

在该程序中,前缀是先进行加、减,后运行;后缀是先运行,后进行加、减

这两条输出语句执行完后,i和j的值分别是多少

i=2;j=3

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

c语言程序设计第五次作业——循环结构,1

运行程序(2)源代码及结果

c语言程序设计第五次作业——循环结构,1

运行程序(3)源代码及结果

c语言程序设计第五次作业——循环结构,1

运行程序(4)源代码及结果

c语言程序设计第五次作业——循环结构,1

(1)由这四个程序比较得出:循环体的认定与缩格形式无关,与{}有关

(2)判断循环体要看for语句后面的并且在for语句下面的大括号里面的语句都是循环语句

(3)第四个是正确的循环体缩进格式

其他总结

(1)使用for语句时注意for后面的括号内有三条语句,所以必须用俩个分号来分隔,即使没有第一条赋值语句也要有分号,否则就不能构成一条循环语句

(2)循环语句中一般会有判断语句,否则就是无限循环

(3)循环语句一定要放在大括号里面才能进行循环

(4)写一个循环首先要搞清楚题目要求干什么,语句的先后顺序,思路一定要清楚

(三)实验总结

(一)题目

求奇数分之一序列前N项和:

(1)流程图:

c语言程序设计第五次作业——循环结构,1

(2)源代码:

c语言程序设计第五次作业——循环结构,1

(3)实验分析:

问题1:

提交作业时出现答案错误

原因:

输出结果需要保留小数,而输出语句中没有保留小数的语句

解决办法:

通过错误信息的提示,仔细读题干,找出错误

(4)本题PTA提交列表:

c语言程序设计第五次作业——循环结构,1

(二)题目:

给定N个正整数,请统计奇数和偶数各有多少个?

(1)流程图:

c语言程序设计第五次作业——循环结构,1

(2)源代码

c语言程序设计第五次作业——循环结构,1

(3)实验分析:

问题1:

不会判断输入的数字是奇数还是偶数

原因:

对所学过的知识掌握的不够熟练

解决方法:

复习老师讲过的东西,问同学,得出正确结果

(4)本题PTA提交列表:

c语言程序设计第五次作业——循环结构,1

(三)题目:

本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

(1)流程图:

c语言程序设计第五次作业——循环结构,1

c语言程序设计第五次作业——循环结构,1

(2)源代码:

c语言程序设计第五次作业——循环结构,1

(3)实验分析:

问题1:

不会定义输入的数据

原因:

对基础只是掌握不牢因为本题输入的数据比较多样,故不能用int ,而是用char定义字符型变量

解决办法:

问同学得出思路,编写出正确程序

(4)本题PTA提交列表:

c语言程序设计第五次作业——循环结构,1

(四)题目:

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

(1)流程图:

c语言程序设计第五次作业——循环结构,1

(2)源代码:

c语言程序设计第五次作业——循环结构,1

(3)实验分析:

问题1:

累加的每一项符号不同,注意判断每一项是加还是减有困难

原因:

每一项都应该判断是奇数项,还是偶数项

解决办法:

问同学,查看以前的知识,得出简便方法

(4)本题PTA提交列表:

c语言程序设计第五次作业——循环结构,1

(四)博客互评

**的博客:

(1)在第一大题中,错误程序的错误地方都特地标记出来,而且修改错误的每一步都非常清楚值得学习

(2)在第二大题的第二小题的最后一问我认为i等于2,j等于3.

**博客地址:http://www.cnblogs.com/myg123/p/7802056.html

曲儿说的博客:

在流程图的部分,给出了运行程序的截图,给人清晰明了,值得学习

曲儿说博客地址:http://www.cnblogs.com/abc15369938639/p/7810952.html

人满为患的博客:

虽然我看的不太懂,但感觉写的特别牛逼,值得学习

人满为患的博客地址:http://www.cnblogs.com/liukaixuan/p/7812027.html