《c语言程序设计ppt电子课件教案-03_循环语句的执行流程》由会员分享,可在线阅读,更多相关《c语言程序设计ppt电子课件教案-03_循环语句的执行流程(44页珍藏版)》请在金锄头文库上搜索。
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 0 ,3,2
2、,-1,2007.9.8以下程序的运行结果是int n = 12345, 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 0)switch (k)default: break;case 1: n += k;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语句的一般格式
3、,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, b = 6; a 0; y-)if (y % 3 = 0)printf(“%d“, -y);,852,for语句5-2,2010.3.21以下程序运行后,a和b的值是for (a = 1, b = 2; a 3; i-
4、) j = i;,3,4,2011.3.22对下述循环语句,说法正确的是for (i = 0, k = -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+
5、)switch (i)case 0: printf(“%d“, i);case 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 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
6、;,a = 4/10 = 0;,if (b=w) printf(“是“); else printf(“否“);,回文数: 66,121,8998,7 不是: 456,67,do-while语句4-1,例以下程序的运行结果是int a = 3;doprintf(“%d“, a -= 2);while (!-a);,1-2,2009.9.9以下程序运行后,a的值是int a = 1, b = 7;dob = b / 2; a += b; while (b 1);,5,do-while语句4-2,2007.9.19以下程序的运行结果是int i = 0;do printf(“%d,“, i); wh
7、ile (i+);printf(“%dn“, i);A)0,0 B)0,1 C)1,1 D)死循环,do-while语句4-3,2008.9.29以下程序的运行结果是int i = 5;doif (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;doswitch (k)case 1: case 3: n+=1; break;default: n = 0; k-;case 2: case 4: n+=2;
8、 k-; break;printf(“%d“, n); while (k 0 ,2345,循环语句比较,i = 100; s = 0; while (i = 9)s+;,s = 0; for (i = 100; i = 9; i+)s+;,i = 100; s = 0; do s+; while (i = 9);,三种循环语句的比较,while 语句,for 语句,do - while 语句,当循环次数无法确定,需根据某个条件控制循环次数时,通常用 while 语句。,当已经知道循环次数的时候,用 for 语句比较方便。,当需要先执行循环体,后判断循环条件时,用 do - while 语句。,
9、循环语句比较,2004.9.25若变量已正确定义,要求程序完成求5!的计算,以下不能完成此操作的程序是A)for (i = 1, s = 1; i = 5; i+)s *= 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);
10、请填空,使下面程序段的功能为完全相同s = 1.0; k = 1;while (_)s = s + 1.0 / (k * (k + 1);_;,k 10); printf(“s = %d“, s);,s = 0,continue语句6-2,2008.4.21以下程序的运行结果是int 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
11、(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 (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“
12、, n); break;case 3: printf(“%d“, n); continue;case 0: exit(0);printf(“%d“, n);,A)for循环语句固定执行8次B)当产生的随机数n为3时结束循环操作C)当产生的随机数n为1时不做任何操作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 转向语句return 从函数返回语句,