




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章循环结构程序设计,5.1概述,为了方便地处理循环问题,C语言提供了3种用于循环控制的语句:while语句、do-while语句、for语句。,5.2while语句一般形式为:while(表达式)循环体语句,表达式,语句,非0,0,例5.1求1+2+3+.+10的和。,#includestdio.hvoidmain()inti=1,iSum=0;while(i1e-6)pi=pi+t;n=n+2;s=-s;t=(float)(s)/(float)(n);pi=pi*4;printf(npi=%lfn,pi);,输出结果:pi=3.141591,例5.3求两个正整数的最大公约数。,/*用Euclid(欧几里得)算法求最大公约数*/#includestdio.hvoidmain()intm,n,r;printf(pleaseinputtwopositiveintegers:);scanf(%d%d,输出结果:pleaseinputtwopositiveintegers:6424Theirgreatestcommondivisoris8.,例5.4跳过输入字符中的空白字符,输出第一个非空白字符。,#includestdio.hvoidmain()charc;while(c=getchar()=|c=t|c=n);putchar(c);putchar(n);,例5.5不用空语句实现的例5.4。,5.3do-while语句一般形式为:do循环体语句while(表达式);,语句,表达式?,0,非0,例5.6求1+2+3+.+10的和。,#includestdio.hvoidmain()inti=1,iSum=0;doiSum=iSum+i;printf(i=%2d,iSum=%2dn,i,iSum);i+;while(i=10);printf(1+2+3+.+10=%dn,iSum);,输出结果:i=1,iSum=1i=2,iSum=3i=3,iSum=6i=4,iSum=10i=5,iSum=15i=6,iSum=21i=7,iSum=28i=8,iSum=36i=9,iSum=45i=10,iSum=551+2+3+.+10=55,例5.7将一个给定的整数反序输出。,#includestdio.hvoidmain()inti,r;printf(nInputaninteger:);scanf(%d,输出结果:Inputaninteger:19833891,例5.8/*用while循环将一个给定的整数反序输出*/#includestdio.hvoidmain()inti,r;printf(nInputaninteger:);scanf(%d,注意:循环体的有效范围例:i=1;while(i=100)putchar(*);i+;,程序段一:intk=1;while(!k=0)k=k+1;printf(“%dn”,k);,程序段二intk=0;while(k+1);printf(“%dn”,a);,5,5.4for语句,for语句的一般形式for(表达式1;表达式2;表达式3)循环体语句,例5.9求1+2+3+.+10的和。,#includestdio.hvoidmain()inti,iSum=0;for(i=1;i=10;i+)iSum=iSum+i;printf(i=%2d,iSum=%2dn,i,iSum);printf(1+2+3+.+10=%dn,iSum);,输出结果:i=1,iSum=1i=2,iSum=3i=3,iSum=6i=4,iSum=10i=5,iSum=15i=6,iSum=21i=7,iSum=28i=8,iSum=36i=9,iSum=45i=10,iSum=551+2+3+.+10=55,例5.10输入10个字符,输出这10个字符中ASCII码值最大的那个字符的ASCII码值。,#includestdio.hvoidmain()inti,ch,max=0;for(i=1;imax)max=ch;printf(ThelargestASCIIvalueis%d.n,max);,输出结果:12AB9XabThelargestASCIIvalueis98.,例5.11国王的许诺。相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着88共64格的象棋盘说:陛下,请您赏给我一些麦子吧,在棋盘的第1个格子中放1粒,第2格放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依次放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人抗来一袋麦子,他要兑现的承诺。请问:国王能兑现他的承诺吗?试编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米(已知1立方米麦子约1.42e8粒)?,#includestdio.h#includemath.hvoidmain()intn;doubleterm,sum=0;for(n=1;n=64;n+)term=pow(2,n-1);sum=sum+term;printf(Sum=%en,sum);printf(Volum=%en,sum/1.42e8);,输出结果:Sum=1.844674e+019Volum=1.299066e+011,#includestdio.hvoidmain()intn;doubleterm=1,sum=1;for(n=2;n=64;n+)term=term*2;sum=sum+term;printf(Sum=%en,sum);printf(Volum=%en,sum/1.42e8);,输出结果:Sum=1.844674e+019Volum=1.299066e+011,(2010.3)有以下程序include(stdio.h)main()inta5=1,2,3,4,5,b50,2,1,3,0,i,s0;for(i0;i5;i+)ss+abi);printf(%dn,s);程序运行后的输出结果是A)6B)10C)11D)15,C,(2009.3)22.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=0;while(ch=getchar()!=n)n+;B)n=0;while(getchar()!=n)n+;C)for(n=0;getchar()!=n;n+);D)n=0;for(ch=getchar();ch!=n;n+);,D,(2009.9)(10)有以下程序main()intf,f1,f2,i;f1=0;f2=1;printf(“%d%d”,f1,f2);for(i=3;i=5;i+)f=f1+f2;printf(“%d”,f);f1=f2;f2=f;printf(“n”);程序运行后的输出结果是【10】。,01123,5.5循环的嵌套,5.5.1二重循环如果一个循环语句的循环体内只包含一层循环,这样的嵌套循环叫作二重循环。对于一个二重循环,如果外层循环的循环变量变化s次,内层循环的循环变量变化t次,则外层循环每执行1次,内层循环就执行t次,当外层循环执行了s次之后,内层循环的循环体已经执行了st次。,例:输入nxn个字符*main()inti,j,n=3;for(i=1;i=n;i+)for(j=1;j=n;j+)putchar(*);putchar(n);,例:编写程序输出如下图形。*,main()inti,j,n=5;for(i=1;i=n;i+)for(j=1;j=i;j+)putchar(*);putchar(n);,例5.12求100以内的全部素数。,voidmain()intm,n,i,prime;i=0;for(m=2;m=100;m+)prime=1;for(n=2;nm;n+)if(m%n=0)prime=0;if(prime)printf(%6d,m);i+;if(i%5=0)printf(n);if(i%5!=0)printf(n);,输出结果:2357111317192329313741434753596167717379838997,5.5.2多重循环如果一个循环语句的循环体包含两层甚至两层以上的循环时,就构成了多重循环。例5.13打印所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为153=13+53+33。,voidmain()intn,x,y,z;printf(Theresultis:);for(x=1;x=9;x+)for(y=0;y=9;y+)for(z=0;z=9;z+)if(x*x*x+y*y*y+z*z*z=100*x+10*y+z)printf(%dt,100*x+10*y+z);printf(n);,输出结果:Theresultis:153370371407,(2010.3)有以下程序include(stdio.hmain()inta1;b2;for(;a8;a+)b+=a;a+=2;printf(%d,%dn,a,b);程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14,D,(2009.3)20.以下程序段中的变量已正确定义for(i=0;i4;i+,j+)for(k=1;k3;k+);printf(*);程序段的输出结果是A)*B)*C)*D)*,D,(2010.3)有以下程序includestdio.hmain()inti,j,m=1;for(i=1;i3;i+)for(j=3;j0;j-)if(i*j)3)break;m*=i*j;printf(m=%dn,m);程序运行后的输出结果是A)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030装配式装修行业发展分析及前景趋势与投资研究报告
- 2025-2030营销分析服务行业市场现状供需分析及投资评估规划分析研究报告
- 输液证证考试题及答案
- 2025年高考备考高中物理个性化分层教辅尖子生篇《运动和力的关系》
- 精准确保卫生管理试题及答案
- 酒吧服务考试题及答案
- 针对2024年专利代理人资格考试的高分策略试题及答案
- 西医临床考试科学复习法试题及答案
- 高三一诊二诊试题及答案
- 阐释乡村全科执业助理医师考试试题及答案
- 2024年新乡职业技术学院单招职业技能测试题库及答案解析
- 供水管网抢修管理课件
- 2024届广东省广州市高三下学期一模生物试题及答案
- 发作性睡病病案分析
- 银行业审计培训课件
- 匡威营销方案
- 神经重症镇静镇痛护理课件
- 呆滞分析报告
- 土豆的介绍课件
- 《房地产客户分类》课件
- 人工智能在医学教学中的应用设计
评论
0/150
提交评论