第五讲循环结构.pptVIP

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五讲循环结构

11、以下程序的输出结果是( )   #includestdio.h   main()   { int i;    for(i=a;if;i++,i++) printf(%c,i-a+A);    printf(\n);   } 2007-9 ACE 12、以下不构成无限循环的语句或语句组是 A)n=0;          B)n=0;  do{++n;}while(n=0);   while(1){n++;} C)n=10;          D)for(n=0,i=1; ;i++)n+=i;  while(n);{n--;} 13、若有定义:int k;,以下程序段的输出结果是( ##2##4 )    for(k=2;k6;k++,k++) printf(##%d,k); 2008-4 14.有以下程序 #include stdio.h void main ( ) {int n=2,k=0; while(k++n++2); printf(%d %d\n,k,n); } 程序运行后的输出结果为: A 0 2 B 1 3 C 5 7 D.1 2. 15.以下程序运行后的输出结果是() #include stdio.h void main ( ) {int a=1,b=7; do { b=b/2; a+=b; }while(b1); printf(%d\n,a); } 5 2009-9 5.5 循环的嵌套 当循环体语句又是一条循环语句,或作为循环体的复合语句中又包含循环语句时称为循环的嵌套。嵌套可以是两层或多层。While 、do-while、for三种循环都可以互相嵌套。 循环体语句可以是任何形式的语句,简单语句、空语句、复合语句、流程控制语句都可作为循环体语句。 复习:判断一个数是否是素数 例2:求3~150中所有素数的和。 算法分析: 1. 用变量a从3到150循环,每次值增加1 2. 用变量i从2到a-1循环,每次值增加1 3. 若a%i==0 ,结束i的循环,执行第4步 4. 若i==a,把a累加到s上。 5. 输出s的值 注意:此题中执行第4步时有两种情况。第一种:在第3步 中发现了满足a%i==0的情况,直接跳出了i的循环,此时的 i一定是在2到a-1中间的一个值,而且a不是素数。第二种:一 直没有发现满足a%i==0的i,在i==a时,不再满足i循环的执行 条件,i循环结束,此时的a是素数! 程序: #includestdio.h main( ) { int a,s=0,i; for(a=3;a=150;a++) { for(i=2;i=a-1;i++) if(a%i==0) break; if(a==i) s=s+a; } printf(“\n%d”,s) } 求素数的方法很 多,大同小异。此 题可以做一些改动 。如:i的值可以是 从2取到sqrt(a);可 以不用最后察看i的 值,而是通过在发 现因子时改动标志 变量,最后根据标 志变量的值判断是 否是素数。 题目9:关于素数:46-1;49-3;57-2;74-2;12-2;28-2 46-1 答案有错 蓝色:答案太死 例:已知abc0,a、b、c为整数,且a+b+c100,求满足1/a2+1/b2=1/c2的a、b、c共有多少组? 算法分析: 这是一道典型的三重嵌套循环的题目。a、b、c都是位于1到99之间整数。编程的基本思路是:找出1到99之间的所有a、b、c的排列,察看同时满足abc、a+b+c100、1/a2+1/b2=1/c2这三个条件的a、b、c有多少组。 值的注意的是, 1/a2+1/b2=1/c2这个条件并不能简单的原样照写,因为在求分数的过程中必然有四舍五入,不能得出真正的准确的结果,必须把条件变形成:c2(a2+b2)=a2b2才能得出正确的结果。 1. a从1到99循环 2. b从1到99循环 3. c从1到99循环

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档