




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章循环结构的编程,5.1为什么需要循环控制,5.2使用while语句的循环,5.3使用do - while语句的循环,5.4使用for语句的循环,5.5循环的嵌套,5.6几个循环的比较,5.7改变循环执行的状态,5.8循环程序的例子,5.1为什么需要循环控制,在日常生活中或在程序处理的问题中,我们经常会遇到需要反复处理的问题。我们应该把全班50个学生的分数输入电脑,计算全班50个学生的平均分数,找出30个整数的和。老师应该检查30名学生的分数是否合格。1.while语句的一般形式如下:while (expression)语句、循环体一般是一个复合语句,需要添加或不添加,执行到第一个语句;结
2、尾,有三种形式的循环。1.while语句的一般形式如下:while语句、执行循环语句时为“真”,不执行时为“假”,循环条件表达式,while循环的特点是:先判断条件表达式,再执行循环语句;2.用do - while语句实现循环do -。do - while语句的特点是:首先无条件执行循环,然后判断循环条件是否有效。3.for语句不仅可以在确定循环数时使用,而且可以在循环数不确定且只给出循环结束条件时使用。for语句可以完全替换while语句。for语句的一般形式是for(表达式1;表达式2;表达式3)语句,设置初始条件并只执行一次。您可以为零、一个或多个变量设置初始值,for语句的一般形式是f
3、or(表达式1;表达式2;表达式3)语句,循环条件表达式,用于确定是否继续循环。每次在执行循环体之前执行此表达式,以决定是否继续执行循环。for语句的一般形式是for(表达式1;表达式2;表达式3),作为循环调节器,例如,增加循环变量的值,这是在循环体被执行之后执行的。for语句的执行过程:(1)首先求解表达式1 (2)求解表达式2,如果其值为真,则执行循环体,然后执行以下步骤(3)。如果为假,则结束循环,转到步骤(5) (3)求解表达式3 (4),并返回到上述步骤(2)继续执行(5)循环结束,并执行for语句下面的语句。循环的三个元素:循环变量给定初始值,循环结束条件,在示例5.1中,找到1
4、 2 3 100,即问题解决思路:这是一个累加问题。需要将100个数字一个接一个地相加,相加操作需要重复100次。如果最后一个数是前一个数加1,那么下一个数可以通过将1加1到I、#include int main() int i=1,sum=0得到;而(I=100)sum=sum I;I .printf(sum=%dn,sum);返回0;复合语句,不能小于,#include int main() int i=1,sum=0;而(I=100)sum=sum I;I .printf(sum=%dn,sum);返回0;不能丢失,否则循环永远不会结束。5.3使用do - while语句实现循环。示例5
5、.2使用dowhile语句查找:1 2 3 100,即#include int main() int i=1,sum=0;do sum=sum I;I .而(I=100);printf(sum=%dn,sum);返回0;示例5.3 while和do - while循环的比较。,int i,sum=0;printf(“I=?”);scanf(%d ,int i,sum=0;printf(“I=?”);scanf(“% d”),当while之后的表达式的第一个值为“真”时,两个循环得到相同的结果;否则,情况就不同了。5.4使用for语句实现循环,for(I=1;i=100I)sum=sum I;相
6、当于i=1。而(I=100)sum=sum I;I .使用for语句更简单、更方便。5.4使用for语句实现循环,for(表达式1;表达式2;表达式3)语句,可以省略一个或两个或三个表达式、5.4使用for语句实现循环,for(sum=0;i=100I)sum=sum I;与循环变量无关,并且是合法的。5.4使用for语句实现循环,for(sum=0,I=1;i=100I)sum=sum I;逗号表达式是合法的,对于(i=0,j=100I=j;I,j-)k=I j;5.4使用for语句实现循环,for(I=0;(c=getchar()!=n。I=c);合法,为(;(c=getchar()!=n
7、。)printf(%c,c);1.如果I和k是int变量,那么对于(i=0,k=-1;k=1;k)printf(* * * * * * n);以下关于语句执行的陈述是正确的:a)循环体被执行两次b)循环体被执行一次c)循环体不被执行一次D)形成一个无限循环,D,2,包括main() char b,c;int I;b=a;c=A;对于(I=0;i6;I)如果(I % 2)put char(I b);else put char(I c);printf(n);程序运行后的输出结果是a)abcdef b)abcdef c)abcdef d)abcdef,b,3。有以下程序段#包括main()和getc
8、har()!=n);下列说法是正确的:a)这份声明将无限期分发;B) getchar()不能出现在while语句的条件表达式中;c)当执行这个while语句时,程序只能通过按回车键继续执行;d)当执行这个while语句时,程序可以通过按任意键继续执行;C,4。有以下程序#包括main() int x=1,y=0如果(!x)y;否则如果(x=0)如果(x)y=2;否则y=3;printf(%dn,y);程序运行后,输出结果是a) 3 b) 2 c) 1 d) 0,d,5。下列程序包括main()int a=1,b=2;而(a6)b=a;a=2;b=10printf(d,dn ,a,b);程序运行
9、后的输出结果是a) 5,11b) 7,1c) 7,11d) 6,1,b,6。有以下程序#包括void main()int y=10;而(y-);printf(y=%dn,y);程序执行后的输出结果是A)y=0B)y=-1C)y=1D),同时形成一个无限循环,B,7。有以下程序#包括void main() int x,y;Scanf (-,程序运行时输入:1234567。程序运行结果为。,15,8,用下面的程序#include main() int c=0,k;对于(k=1;k3;k)开关(k)默认:c=k;案例2: c;打破;案例4: c=2;打破;printf(“% dn”,c);程序运行后
10、,输出结果是A)3 B)5 C)7 D)9,a9。有以下程序#包括main() int n=2,k=0;而(k程序运行后,输出结果是a) 0 2 b) 1 3 c) 5 7 d) 1 2,d,10。有以下定义语句。编译时,会出现编译错误:A)字符a=ab)char a=n;c)char a=aa;D)char a=x2d。C,11,有以下程序#包括main() char c1,C2;C1=A8-4;C2=A8-5;printf(%c,%dn ,c1,C2);众所周知,字母A的ASCII码是65,程序运行后的输出结果是A)E,68 B)D,69 C)E,D)没有固定值,A,12。以下程序运行后的
11、输出结果是 #include main() int a=1,b=7;do b=b/2;a=b;而(B1);printf(“% dn”,a);5,13,有以下程序#包括main() int f,f1,f2,I;f1=0;F2=1;printf(“% d % d”,f1,F2);对于(I=3;I=5;I)f=f1 F2;printf(“% d”,f);f1=f2F2=f;printf( n );程序运行后,输出结果为,0 1123,14。假设变量已被正确定义,下列不能计算一行中输入字符数(不包括回车)的程序段是A)n=0;而(ch=getchar()!=n)n;b)n=0;while(getcha
12、r()!=n)n;c)对于(n=0;getchar()!=n。n);d)n=0;for(ch=getchar();ch!=n。n);D,15。当下列程序运行时,如果输入labcedf2df输出为 #includemain()chara=0,ch;而(ch=getchar()!=n)if(a%2!=0,1 abcedf2df,16。下列不构成无限循环的语句或语句组是A)n=0;b)n=0;do n;而(n=0);而(1)n;c)n=10;d)对于(n=0,I=1;I)n=I;而(n);n-;a,5.5循环的嵌套,一个循环包含另一个完整的循环结构,而被称为循环的嵌套嵌入循环也可以嵌套循环,即多层循
13、环,三个循环(while循环,dowhile循环和for循环)可以相互嵌套,5.5循环的嵌套,示例:编写程序输出以下图形:1111111111222223333333333333444455555555555555555555555555555555555555555555555555555555555555555555555对于(I=1;I=9;I)对于(j=1;j=9;j ) printf(%d,I);printf(n);返回0;111111111 2222222222 33333333 44444444 55555555 6666667777777888888889999999,#inc
14、lude int main() int i,j;对于(I=1;I=9;I)对于(j=1;j=9;j ) printf(%d,I);printf(n);返回0;1 22 333 4444 55555 666666 777777 8888888 99999999、#包括int main() int i,j;对于(I=1;I=9;I)对于(j=1;j ) printf(%d,I);printf(n);返回0;j=I,1 22 333 4444 55555 66666 777777 888888999999,1。下列程序中的变量已正确定义(I=0;i4;I,I)为(k=1;k3;k);printf(
15、* );程序段的输出结果是a)* * * * * * * * b)* * * * c)* * d)*、d、2。有以下程序#包括main() int i,j;对于(I=3;I=1;i -)表示(j=1;j=2;j ) printf(%d,I j);printf(n);程序运行结果为()。45 34 23,3。以下程序的输出结果是。#包括main() int i,j,sum对于(I=3;I=1;I-)sum=0;对于(j=1;j=i。j)总和=I * j;printf(%dn,sum);几种循环的比较(1)通常,三种循环可以相互替换(2)在while和do - while循环中,循环体应该包含使循环结束的语句。(3)当使用while和do-while循环时,循环变量的初始化应该在while和do-while语句之前完成。for语句可以初始化表达式1中的循环变量。5.7改变循环执行的状态5.7.1用中断语句提前结束循环5.7.2用继续语句提前结束循环5.7.3中断语句和继续语句之间的差异5.7.1用中断语句提前结束循环,中断语句可用于跳出循环体,即提前结束循环。然后执行循环下面的语句,5.7.1用break语句提前结束循环,5.4在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册会计师考试基础大纲试题及答案
- 微生物检验重要法规与试题及答案
- 2025注册会计师自我考核方法试题及答案
- 宁夏银川市本年度(2025)小学一年级数学统编版期中考试(上学期)试卷及答案
- 试题对比注册会计师备考指南及答案
- 注册会计师交流和学习试题及答案
- 项目管理的有效工具考题及答案
- 课题申报书编码
- 项目管理实践中团队协作的方式试题及答案
- 2025年银行资格考试的信贷政策试题及答案
- 半导体物理与器件物理
- 200句话搞定上海中考单词(精华版)
- 船舶辅锅炉的自动控制系统分析
- 新员工培训考试【图书专员】
- 防伪包装技术
- 49000DWT江海直达成品油船设计
- 建设工程监理费计算器
- X互联网公司WLAN无线网络优化方案全解
- 装配及检验规范(修订版)【新版】
- 合成宝石特征x
- 英文译稿《药品注册管理办法》
评论
0/150
提交评论