C语言ppt课件第5章.ppt
南昌大学计算中心,C语言程序设计,南昌大学计算中心,第5章 循环结构,5.1 while语句和用while语句构成的循环结构while (表达式) 循环体,南昌大学计算中心,例:编写程序求1+2+3+100的和。#include main() int i=1,s=0; while (i=100) s=s+i; i+; printf(“s=%dn”,s);,南昌大学计算中心,练习:下面程序的输出结果是_。main() int n=9; while (n6) n-;printf(“%d”,n); A)987B)876C)8765D)9876,南昌大学计算中心,练习:下面程序的输出结果是_。main() int k=10; while (k=0) k=k-1; printf(“%d”,k); ,0,南昌大学计算中心,填空:执行语句s=0;n=5;while(-n) s+=n;后变量s,n值依次为_。,10,0,南昌大学计算中心,练习:设有如下程序段:int x=0,s=0; while (!x!=0) s+=+x; printf(“%d”,s);A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次,南昌大学计算中心,练习:下面程序的输出结果是_。main() int x=0,y=5,z=3; while (z- 0 A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5,南昌大学计算中心,5.2 do-while语句和用do-while语句构成的循环结构do 循环体while (表达式);,南昌大学计算中心,上例:编写程序求1+2+3+100的和。#include main() int i=1,s=0; do s=s+i; i+; while (i=100); printf(“s=%dn”,s);,南昌大学计算中心,练习:对以下程序段的描述,正确的是_。x=-1; do x=x*x; while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误,南昌大学计算中心,练习:以下程序段循环体执行的次数是_。int x=3; do printf(“%d”,-x); while (!x);,1,南昌大学计算中心,练习:下面程序的输出结果是_。main() int y=10; do y-; while (-y); printf(“%dn”,y-); A)-1B)1C)8D)0,南昌大学计算中心,练习:若有如下语句:int x=3; do printf(“%dn”,x-=2); while (!(-x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误,南昌大学计算中心,练习:有以下程序:main() int s=0,a=1,n; scanf(“%d”,若要使程序的输出值为2,则应该从键盘给n输入_。A)-1B)-3C)-5 D)0,南昌大学计算中心,5.3 for语句和用for语句构成的循环结构for (表达式1;表达式2;表达式3) 循环体,南昌大学计算中心,上例:编写程序求1+2+3+100的和。#include main() int i; int s=0; for (i=1;i=100;i+) s=s+i; printf(“s=%dn”,s);,南昌大学计算中心,练习:以下程序执行后的输出结果是_。main() int i,s=0; for(i=1;i10;i+=2) s+=i+1; printf(“%d”,s); A)正整数1 9的累加和B)正整数1 10的累加和C)正整数1 9中奇数之和D)正整数1 10中偶数之和,南昌大学计算中心,练习:以下程序执行后的输出结果是_。main() int a,i; for(a=1,i=-1;-1=i1;i+) a+;printf(“%2d”,a); printf(“%2d”,i); ,-1,南昌大学计算中心,南昌大学计算中心,练习:在下述程序中,判断ij共执行的次数是_。main() int i=0,j=10,k=2,s=0; for( ; ;) i+=k; if(ij) printf(“%d”,s); break; s+=i; A)4 B)7 C)5 D)6,南昌大学计算中心,5.4 循环结构的嵌套如果循环语句的循环体内又包含了另一个循环结构,则称为循环的嵌套。如:for (a=1;a=10;a+) for (b=0;b=5;b+) ,南昌大学计算中心,练习:下面程序的输出结果是: main( ) int i,j; for(i=4;i=1;i-) printf(“*”); for(j=1;j=4-i;j+) printf(“*”); printf(“n”); ,*,南昌大学计算中心,练习:下面程序的输出结果是_。main() int k=0,m=0,i,j; for(i=0;i2;i+) for(j=0;j3;j+) k+; k-=j; m=i+j; printf(“k=%d,m=%d”,k,m); ,k=0,m=5,南昌大学计算中心,5.5 break和continue语句在循环体中的作用break语句也可以用在循环体中,作用是结束循环。,南昌大学计算中心,continue语句只能用在循环体中,作用是结束本次循环(不跳出循环),即不再执行循环体中continue 语句之后的语句,转入下一次循环执行。,南昌大学计算中心,练习:下面程序的输出结果是_。main() int a=10,y=0; do a+=2;y+=a; if(y50) break; while (a=14); printf(“a=%d y=%d”,a,y); ,a=16 y=60,南昌大学计算中心,练习:下面程序的输出结果是_。main() int k=4,n=0; for( ;nk; ) n+; if(n%3!=0) continue; k-; printf(“%d,%dn”,k,n); A)1,1B)2,2C)3,3D)4,4,南昌大学计算中心,练习:下面程序的输出结果是_。main() int a,b; for(a=1,b=1;a=20) break; if(b%3=1) b+=3;continue; b-=5; printf(“%dn”,a); A)7 B)8 C)9 D)10,南昌大学计算中心,练习:下面程序的输出结果是_。main() int i=5; do switch (i%10) case 4: i-;break; case 6: i-;continue; i-; i-; printf(“%d ”,i); while (i0); ,3 1 -1,