03_循环语句的执行流程_第1页
03_循环语句的执行流程_第2页
03_循环语句的执行流程_第3页
03_循环语句的执行流程_第4页
03_循环语句的执行流程_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、Lesson 3循环语句的执行流程,3,本课内容,三种循环语句比较,while 语句,for 语句,do-while 语句,continue 语句,while语句求和,int i = 1, s = 0; while (i = 100) s = s + i; i = i + 1; ,i = 1,s = 0,2,3,+1,+2,99,100,101,+,+99,+100,while语句与自增,int i = 0, s = 0; while (i+ = 100) s += i;,i = 0,s = 0,1,2,+1,+2,99,100,101,+,+99,+100,+101,102, i = 100

2、,必做,真:循环 假:退出, i+,必做,while语句5-1,2006.9.22以下程序的运行结果是 int k = 5; while (-k) printf(%d, k -= 3); A)1 B)2 C)4 D)死循环,2006.4.302010.9.212011.9.20以下程序的运行结果是 int y = 10; while (y-); printf(%d, y);,-1,while语句5-2,2004.4.23以下程序的运行结果是 int a = 0, b = 5, c = 3; while (c- 0 ,3,2,-1,2007.9.8以下程序的运行结果是 int n = 12345

3、, d; while (n != 0) d = n % 10; printf(%d, d); n /= 10; ,54321,while语句5-3,2010.9.20以下程序的运行结果是 int a = 1, b = 2; while (a 6) b += a; a += 2; b %= 10; printf(%d,%d, a, b); A)5,11 B)7,1 C)7,11 D)6,1,while语句5-4,2005.9.36以下程序运行后,n的值是 int k = 5, n = 0; while (k 0) switch (k) default: break; case 1: n += k

4、; case 2: case 3: n += k; k-; ,7,while语句5-5,2011.3.19输入:1 2 3 4 5 0,则输出 int s; scanf(%d, ,6566456,for语句的一般格式,for (表达式1; 表达式2; 表达式3) 语句 ,例如,下面的程序计算1至100的和: for (s = 0, i = 1; i = 100; i+) s += i;,for语句5-1,2008.4.8以下程序的运行结果是 for (k = 2; k 6; k+, k+) printf(#%d, k);,#2#4,2005.4.10以下程序的运行结果是 for (a = 0,

5、 b = 6; a b; a+, b-) printf(%d%d, a, b);,061524,2007.9.22以下程序的运行结果是 for (y = 9; y 0; y-) if (y % 3 = 0) printf(%d, -y);,852,for语句5-2,2010.3.21以下程序运行后,a和b的值是 for (a = 1, b = 2; a 8; a+) b += a; a += 2; ,10,14,2011.9.8以下程序运行后,i和j的值是 for (i = 6; i 3; i-) j = i;,3,4,2011.3.22对下述循环语句,说法正确的是 for (i = 0, k

6、 = -1; k = 1; i+, k+) printf(*); A)程序编译有错 B)是无限循环 C)只循环一次 D)一次也不循环,for语句5-3,2009.9.18以下程序运行后,c的值是 int c = 0, k; for (k = 1; k 3; k+) switch (k) default: c += k; case 2: c+; break; case 4: c += 2; break; ,3,for语句5-4,2004.9.20以下程序的运行结果是 int i; for (i = 0; i 3; i+) switch (i) case 0: printf(%d, i); cas

7、e 2: printf(%d, i); default: printf(%d, i); ,000122,for语句5-5,2009.9.10以下程序的运行结果是 int f, 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; ,01123,水仙花数,153=13+53+33,台阶问题,1,1,2,2,3,3,4,5,5,8,6,13,7,21,Fibonacci数列,a,b,a,b,a,b,a,b,a,b,c,a

8、,b,c,a,b,c,a,b,c,回文数,a = 456; b = 0; w = a; do b = b * 10 + a % 10; a = a / 10; while (a 0);,b = 0;,a = 456;,w = 456;,a = 456/10 = 45;,b = 0*10+6 = 6;,b = 6*10+5 = 65;,b = 65*10+4 = 654;,a = 45/10 = 4;,a = 4/10 = 0;,if (b=w) printf(是); else printf(否);,回文数: 66,121,8998,7 不是: 456,67,do-while语句4-1,例以下程

9、序的运行结果是 int a = 3; do printf(%d, a -= 2); while (!-a);,1-2,2009.9.9以下程序运行后,a的值是 int a = 1, b = 7; do b = b / 2; a += b; while (b 1);,5,do-while语句4-2,2007.9.19以下程序的运行结果是 int i = 0; do printf(%d, i); while (i+); printf(%dn, i); A)0,0 B)0,1 C)1,1 D)死循环,do-while语句4-3,2008.9.29以下程序的运行结果是 int i = 5; do if

10、 (i % 3 = 1) if (i % 5 = 2) printf(*%d, i); break; i+; while (i != 0);,*7,do-while语句4-4,2007.4.23以下程序的运行结果是 int k = 5, n = 0; do switch (k) case 1: case 3: n+=1; break; default: n = 0; k-; case 2: case 4: n+=2; k-; break; printf(%d, n); while (k 0 ,2345,循环语句比较,i = 100; s = 0; while (i = 9) s+;,s = 0

11、; for (i = 100; i = 9; i+) s+;,i = 100; s = 0; do s+; while (i = 9);,三种循环语句的比较,while 语句,for 语句,do - while 语句,当循环次数无法确定,需根据某个条件控制循环次数时,通常用 while 语句。,当已经知道循环次数的时候,用 for 语句比较方便。,当需要先执行循环体,后判断循环条件时,用 do - while 语句。,循环语句比较,2004.9.25若变量已正确定义,要求程序完成求5!的计算,以下不能完成此操作的程序是 A)for (i = 1, s = 1; i = 5; i+) s *=

12、i; B)i = s = 1; while (i = 5) s *= i+; C)i = 0; s = 1; do s *= +i; while (i 5); D)for (i = 1; i = 5; i+) s = 1; s *= i; ,for与while语句,2007.9.29有以下程序段,且变量已正确定义和赋值 for (s = 1.0, k = 1; k = n; k+) s = s + 1.0 / (k * (k + 1); 请填空,使下面程序段的功能为完全相同 s = 1.0; k = 1; while (_) s = s + 1.0 / (k * (k + 1); _; ,k

13、= n,k+,for (表达式1; 表达式2; 表达式3) 语句1; continue; 语句2; ,continue语句,while (表达式) 语句1; continue; 语句2; ,do 语句1; continue; 语句2; while (表达式);,continue语句6-1,2009.3.9以下程序的运行结果是 int k = 1, s = 0; do if (k % 2 != 0) continue; s += k; k+; while (k 10); printf(s = %d, s);,s = 0,continue语句6-2,2008.4.21以下程序的运行结果是 int

14、x = 8; for ( ; x 0; x-) if (x % 3) printf(%d, x-); continue; printf(%d, -x); ,8542,continue语句6-3,2005.4.41以下程序运行后,b的值是 int a = 1, b; for (b = 1; b = 8) break; if (a % 2 = 1) a += 5; continue; a -= 3; ,4,continue语句6-4,2004.9.24以下程序的运行结果是 int i = 0, s = 0; for ( ; ; ) if (i = 3 | i = 5) continue; if (

15、i = 6) break; i+; s += i; printf(%d, s); A)10 B)13 C)21 D)死循环,continue语句6-5,2011.3.20以下关于程序段叙述正确的是 for (i = 0; i 8; i+) n = rand() % 4; switch (n) case 1: case 2: printf(%d, n); break; case 3: printf(%d, n); continue; case 0: exit(0); printf(%d, n); ,A)for循环语句固定执行8次 B)当产生的随机数n为3时结束循环操作 C)当产生的随机数n为1时

16、不做任何操作 D)当产生的随机数n为0时结束程序运行,continue语句6-6,例填空实现程序的功能:输出100以内(不含100)能被3整除且个位数为7的所有整数 for (i = 0; _; i+) j = i * 10 + 7; if (_) continue; printf(%d, j); ,i 100,i 10,j % 3 != 0,控制语句,控制语句 if ().else.条件语句 for ().循环语句 while ().循环语句 do.while ()循环语句 continue结束本次循环语句 break中止switch或循环语句 switch多分支选择语句 goto转向语句

17、return从函数返回语句,1.,2.,3.,4.,5.,6.,7.,8.,9.,输出和的平方根,请编写程序:输入整数n,输出n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根。 #include int n, i, s = 0; / 累加器s置0 scanf(%d, / 计算平方根,i % 3 = 0 scanf(%d%d, ,a = a * 10 + a % 10;,输入密码,请编写程序:输入密码,如果三次输入错误,则停止输入。 int mima = 123456, m, i = 0; do printf(请输入密码:); scanf(%d, ,m != mima for (i

18、= 1; i = 5; i+) scanf(%d, ,a % 2 = 0 , t, m = 1;,t = w; while (t) t /= 10; m *= 10; printf(%u, w % (m / 10);,习题演练,请编写程序:删除整数尾部的0。例如:若整数是34000、3400、340或34,都输出34。 scanf(%d, ,a % 10 = 0,2005.9.10实现:s = 1+12+123+1234+12345 int t = 0, s = 0, i; for (i = 1; i = 5; i+) t = + i; s = s + t; ,t * 10,课后题:Fibonacci数列,输出Fibonacci数列中大于t的最小的一个数。其中

温馨提示

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

评论

0/150

提交评论