C语言第四版完整第6章 循环控制ppt课件_第1页
C语言第四版完整第6章 循环控制ppt课件_第2页
C语言第四版完整第6章 循环控制ppt课件_第3页
C语言第四版完整第6章 循环控制ppt课件_第4页
C语言第四版完整第6章 循环控制ppt课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,1,第6章循环控制,c程序设计,.,2,顺序结构的特点:1.每一条语句按顺序执行;2.每一条语句只执行一遍,不重复执行;3.也没有语句不执行。,复习,复习:程序的基本结构,.,3,复习:,分支结构的特点:1.每一条执行了的语句最多执行一遍。2.不重复执行;3.但有语句不执行。,复习:程序的基本结构,.,4,第6章循环结构程序设计,主要内容:循环的基本概念while语句dowhile语句for语句循环的嵌套,.,5,功能:无条件转移语句作用:1.用if和goto语句构成循环2.跳出多重嵌套循环说明:1.不能用整数作标号2.标签只能出现在goto所在函数内,且唯一3.标签只能加在可执行语句前面4.限制使用goto语句,goto语句及用goto构成循环goto语句一般格式:,goto语句标号;标号:语句;,goto语句,#includemain()inti,sum=0;i=1;loop:sum+=i;i+;gotoloop;,.,6,#includemain()inti,sum=0;i=1;loop:if(i0)x-;,#includevoidmain()inti,s;i=1;while(i=10)s=s+i;i=i+1;printf(“pleaseoutputs=%dn”,s);,.,9,例:求S=1+2+3+10的值,源程序:#includevoidmain()inti,s;i=1;while(i=10)s=s+i;i=i+1;printf(“pleaseoutputs=%dn”,s);,.,10,用while循环语句实现求1+2+100,#includemain()inti,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);,.,11,源程序:#includevoidmain()inti,s,n;scanf(“pleaseinputn:%d”,例:求S=1+2+3+n的值,.,12,dowhile语句构成的循环结构,一般形式:,do语句;while(表达式),执行流程:,#includemain()inti,sum=0;i=1;dosum=sum+i;i=i+1;while(i10);i=+;x-;printf(“%d”,i);,i=0;x=0doi+;x+;While(x10);printf(“%d”,i),while和dowhile循环,.,16,for语句,一般形式,for(expr;expr;expr3)循环体语句;,执行流程,#includemain()inti,sum=0;for(i=1;i=100;i+)sum+=i;printf(%d,sum);,.,17,for语句中expr1,expr2,expr3类型任意,都可省略,但分号;不可省for(;):无限循环for语句可以转换成while结构语句,i=1;for(;i=100;i+)sum=sum+i;,for(i=1;i+)sum=sum+i;,for(sum=0,i=1;i=100;)sum=sum+i;i+;,i=1;for(;i=100;)sum=sum+i;i+;,for(;)语句相当于while(1)语句,expr1;while(expr2)循环体语句;expr3;,for语句的几点说明,for(i=0;(c=getchar()!=n;i+=c);,.,18,#includemain()inti=0;for(i=0;i10;i+)putchar(a+i);,#includemain()inti=0;for(;i10;i+)putchar(a+i);,#includemain()inti=0;for(;i10;)putchar(a+i+),#includemain()inti=0;for(;i10;putchar(a+i),i+);,例从a显示到j,运行结果:abcdefghij,.,19,例:求,即计算,main()inti,s,n;s=1;printf(Entern:);scanf(%d,.,20,练习1:观察以下程序运行结果并分析。,main()intn=0;while(n3)printf(nis%dn,n);n+;printf(Thatsallthisprgramdoesn);,在使用while时,只有位于判断条件之后的单个语句(简单语句或复合语句)才是循环的部分。,.,21,intmain(void)intn=0;while(n+3);printf(nis%dn,n);printf(Thatsallthisprogramdoes.n);return0;,循环在判断条件后的第一个简单或复合语句处就结束了。,练习2:观察以下程序运行结果并分析。,.,22,循环的嵌套,三种循环可互相嵌套,层数不限外层循环可包含两个以上内循环,但不能相互交叉嵌套循环的执行流程,(1)while()while().,(2)dodowhile();.while();,(3)while()dowhile();.,.,23,main()inti,j=1;for(i=0;i=2;i+)printf(%d,%dn,j,i);,1,01,11,2,main()inti,j=1;for(i=0;i=2;i+)printf(%dn,j);printf(%dn,i);,main()inti,j=1;for(j=0;j=2;j+)for(i=0;i=2;i+)printf(“%d,%d”,j,i);printf(n);,循环的嵌套,101112,0,00,10,21,01,11,22,02,12,2,.,24,例:循环嵌套,输出九九表,-|123456789-1|1234567892|246810121416183|3691215182124274|48121620242832365|510152025303540456|612182430364248547|714212835424956638|816243240485664729|91827364554637281,.,25,按如下格式打印100以内整数的平方根表。,.,26,编程输出如下上三角形式的九九乘法表。,.,27,例:打印如图显示:,#include#defineROWS6#defineCHARS6intmain(void)introw;charch;for(row=0;row=a,例break举例:小写字母转换成大写字母,直至输入非字母字符。,.,33,功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中,continue语句,.,34,main()intn;for(n=1;n=100;n+)if(n%7=0)continue;printf(“%d”,n);,continue举例:输出100以内不能被7整除的数。,.,35,break和continue,definePI3.14159main()intr;floatarea;for(r=1;r100)break;printf(%d,%.2fn,r,area);,main()intn;for(n=1;n=a,例从终端输入一行字符,把所有的小写转换成大写。,.,37,应用综合举例,例:求n以内(不包括n)同时能被3和7整数的所有自然数之和的平方根s,main()inti,j=0;doublek;printf(“pleaseinputn:”);scanf(“%d”,n);for(i=0;in;i+)if(i%3=0,.,38,*,应用综合举例(在屏幕上用*显示下面图形),*,*,*,*,main()intx,y;for(x=1;x7;x+)for(y=1;y=x;y+)putch(*);printf(“n”);getch();,.,39,例:在三位整数(100至999)中寻找符合条件的整数,它既是完全平方数,又有两位数字相同,例如144、676等。,应用综合举例,#includemain()intI,j,k=0;inthun,ten,data;clrscr();for(j=10;j=sqrt(999);j+)I=j*j;hun=I/100;data=I-hun*100;ten=data/10;data=data-ten*10;if(hun=ten|hun=data|ten=data)printf(%d,I);getch();,.,40,应用综合举例,输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。,.,41,应用综合举例,打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。,.,42,应用综合举例,将1元钱兑换成1分、2分、5分的硬币,若每种面值的硬币都不得少于一个,问有几不同的兑换方法?,.,43,应用综合举例,我国古代的张丘建算经中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?,.,44,#includemain()inta,n,i=1;longintsn=0,tn=0;printf(“pleaseinputaandn:n”);scanf(“%d,%d”,while(i=n),例求s=a+aa+aaa+aaaa+aaa的值,其中a是一个数字。例如:2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入。,tn=tn+a;sn=sn+tn;tn=tn*10;i+;printf(“%d”,sn);,应用综合举例,.,45,用公式求,应用综合举例,.,46,应用综合举例,一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:6itsfactorsare1,2,3,.,47,应用综合举例,有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,求出这个数列的前20项之和。,.,48,Dijkstra,编程的艺术就是处理复杂性的艺术简单是可靠的先决条件优秀的程序员很清楚自己的能力是有限的,所以他对待编程任务的态度是完全谦卑的,特别是,他们会象逃避瘟疫那样逃避“聪明的技巧”。1972年图灵奖演讲,.,49,练习,在循环语句结构中,当循环条件为()时,执行循环体语句。A.0B.falseC.trueD.非0,答案:D,以下程序的运行结果是()main()intsum=0,i=11;dosum=sum+i;i+;while(i=10);prinf(“sum=%d,i=%d”,sum,i);A.sum=0,i=11B.sum=0,i=12C.sum=11,i=11D.sum=11,i=12,答案:D,.,50,练习,对循环语句:for(表达式1;表达式2;表达式3)语句,以下叙述正确的是()。A.for语句中的三个表达式一个都不能少B.for语句中的循环体至少要被执行一次C.for语句中的循环体可以是一个复合语句D.for语句只能用于循环次数已经确定的情况,答案:C,以下程序段执行后i的值是()。inti;for(i=1;i0;y-)if(y%3=0)printf(%d,-y);A.741B.852C.963D.87521,答案:B,.,52,练习,执行完循环语句for(i=1,s=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论