- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 循环结程序设计
第6章 循环结构程序设计
【计划课时】授课6课时+上机4课时
6.1 概述
循环是在循环条件为真时计算机反复执行的一组指令(循环体)。
循环控制通常有两种方式:
·计数控制——事先能够准确知道循环次数时用之
用专门的循环变量来计算循环的次数,循环变量的值在每次执行完循环体各语句后递增,达到预定循环次数时则终止循环,继续执行循环结构后的语句。
·标记控制——事先不知道准确的循环次数时用之
由专门的标记变量控制循环是否继续进行。当标记变量的值达到指定的标记值时,循环终止,继续执行循环结构后的语句。
在C语言中可用以下语句构成循环:
if … goto
while
do … while
for
6.2if … goto语句循环结构 P106
goto是一种无条件转向语句。
一般形式: goto 标号;
if … goto 可构成当型/直到型循环结构(尽量少用,以提高程序可读性/结构性)。
【例一】
main int n 0,sum 0;
loop: sum+ n;
++n;
if sum 10000 goto loop;
printf “n %d\n”,n ; 【例二】
main int n 0,sum 0;
loop: if sum 10000 goto end;
sum+ n;
++n;
goto loop;
end: printf “n %d\n”,n ; 6.3 while语句循环结构 P107
一般形式 while 条件表达式 循环体;
用于构成当型循环:先判断后执行/条件为真继续循环,直到条件为假时结束循环。
【注意】条件表达式或循环体内应有改变条件使循环结束的语句,否则可能陷入“死循环”。
【例一】
main int n 0;
while n 2 n++;
printf “%d”,n ; 结果:123
【讨论】若去while语句中的{},结果:3;若将n++移到printf 语句中,结果:012
【例二】
int n 0;
while n++ 2 ;
printf “%d”,n ;
结果:4
【讨论】n 3时,while条件为假,结束循环,但比较后n自加了一,所以n 4。
【例三】
main int i 0;
while 1 printf “*” ; i++;
if i 3 break;
printf “\n” ; 结果:*
【讨论】若将if i 3 改为if i 3 ,结果:****
【例四】编程实例研究:求解全班平均成绩
问题描述:某个班中有n个学生,已知他们参加某次考试的成绩(0至100之间的整数),编程求全班学生在这次考试中的平均成绩。
思路:
使用用自顶向下、逐步求精的技术,先用伪码表示问题的顶层:
Determine the class average for the quiz (求解全班平均成绩)
顶层只有一句(描述程序的整个功能,但未给出足够的细节)。
第一步求精——
initialize variables (初始化变量)
input,sum,count the quiz grades (输入各人成绩,求其总和,计数键入次数)
calculate and print the class average (计算并输出全班的平均成绩)
这里只用到顺序结构,即所列出的步骤是按顺序一个接一个执行的。
说明:如果用total表示总成绩,用counter表示键入成绩的次数,则使用前这两个变量应先初始化(设置为0)。
第二步求精:
①伪码语句 initialize variables 可作如下求精: initialize total to zero initialize counter to zero
讨论:为什么只对这两个变量进行初始化?
②伪码语句 input,sum,count the quiz grades 可作如下求精: input the first grade while the user has not as yet entered the sentinel add this grade into the running total add one to the grade counter input the next grade possibly the sentinel
因为本例不知道要输入多少个成绩,所以程序必须能够处理任意个数的成绩。程序如何判断何时终止输入成绩呢?方法之一是使用一个专门的值来指示数据输入的结束。这个值称为“标志值”(sentinet value)。由于考试成绩是非负的整数值,本例中将取-1为标记值。
③伪码语句 calculate and
您可能关注的文档
- 第27课 明日学校へ来なくてもいいです.doc
- 第2章 第3 离子键、配位键与金属键.doc
- 第2章 MATAB语言基础.doc
- 第2章 《Malab软件基础及应用》.doc
- 第2章 化学物及其变化.doc
- 第2章 数据类、运算符和表达式C#.doc
- 第2章 液压流力学基础R.doc
- 第2章 真核微物的形态、构造和功能 复习题.doc
- 第2章 运算符表达式.docx
- 第2章(Winows XP操作系统)习题及参考答案.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)