南昌大学计算中心C语言程序设计南昌大学计算中心第5章循环结构5.1while语句和用while语句构成的循环结构while(表达式)循环体NY流程图表达式非0?循环体南昌大学计算中心例:编写程序求1+2+3+…+100的和。#includestdio.hmain(){inti=1,s=0;while(i=100){s=s+i;i++;}printf(“s=%d\n”,s);}南昌大学计算中心练习:下面程序的输出结果是____。main(){intn=9;while(n6){n--;printf(“%d”,n);}}A)987B)876C)8765D)9876√南昌大学计算中心练习:下面程序的输出结果是____。main(){intk=10;while(k=0)k=k-1;printf(“%d”,k);}0南昌大学计算中心填空:执行语句s=0;n=5;while(--n)s+=n;后变量s,n值依次为_______。10,0南昌大学计算中心练习:设有如下程序段:intx=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次√南昌大学计算中心练习:下面程序的输出结果是____。main(){intx=0,y=5,z=3;while(z--0&&++x5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5√南昌大学计算中心5.2do-while语句和用do-while语句构成的循环结构do循环体while(表达式);NY循环体表达式非0?流程图南昌大学计算中心上例:编写程序求1+2+3+…+100的和。#includestdio.hmain(){inti=1,s=0;do{s=s+i;i++;}while(i=100);printf(“s=%d\n”,s);}南昌大学计算中心练习:对以下程序段的描述,正确的是____。x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误√南昌大学计算中心练习:以下程序段循环体执行的次数是____。intx=3;do{printf(“%d”,--x);}while(!x);1南昌大学计算中心练习:下面程序的输出结果是____。main(){inty=10;do{y--;}while(--y);printf(“%d\n”,y--);}A)-1B)1C)8D)0√南昌大学计算中心练习:若有如下语句:intx=3;do{printf(“%d\n”,x-=2);}while(!(--x));A)是死循环B)循环执行两次C)循环执行一次D)有语法错误√南昌大学计算中心练习:有以下程序:main(){ints=0,a=1,n;scanf(“%d”,&n);do{s+=1;a=a-2;}while(a!=n);printf(“%d\n”,s);}若要使程序的输出值为2,则应该从键盘给n输入____。A)-1B)-3C)-5D)0√南昌大学计算中心5.3for语句和用for语句构成的循环结构for(表达式1;表达式2;表达式3)循环体NY流程图计算表达式1循环体计算表达式3表达式2为真?南昌大学计算中心上例:编写程序求1+2+3+…+100的和。#includestdio.hmain(){inti;ints=0;for(i=1;i=100;i++)s=s+i;printf(“s=%d\n”,s);}南昌大学计算中心练习:以下程序执行后的输出结果是_____。main(){inti,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(){inta,i;for(a=1,i=-1;-1=i1;i++){a++;printf(“%2d”,a);}printf(“%2d”,i);}-1南昌大学计算中心√练习:若x是int型变量,下面的程序段输出结果是____。for(x=3;x6;x++)printf((x%2)?(“**%d”):(“##%d\n”),x)A)**3##4**5B)##3**4##5C)##3**4##5D)**3##4**5南昌大学计算中心练习:在下述程序中,判断ij共执行的次数是____。main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(ij){printf(“%d”,s);break;}s+=i;}}A)4B)7C)5D)6√南昌大学计算中心5.4循环结构的嵌套如果循环语句的循环体内又包含了另一个循环结构,则称为循环的嵌套。如:for(a=1;a=10;a++){for(b=0;b=5;b++)……}外层循环了10次,内层每次循环6次,正常结束时,内循环总共进行了10×6=60次循环。南昌大学计算中心练习:下面程序的输出结果是:main(){inti,j;for(i=4;i=1;i--){printf(“*”);for(j=1;j=4-i;j++)printf(“*”);printf(“\n”);}}**********南昌大学计算中心练习:下面程序的输出结果是____。main(){intk=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.5break和continue语句在循环体中的作用break语句也可以用在循环体中,作用是结束循环。后续语句…break;…YN表达式?后续语句…break;…表达式?YNwhile语句do-while语句后续语句计算表达式3计算表达式1…break;…表达式2?YNfor语句南昌大学计算中心continue语句只能用在循环体中,作用是结束本次循环(不跳出循环),即不再执行循环体中continue语句之后的语句,转入下一次循环执行。后续语句…continue;…YN表达式?后续语句…continue;…表达式?YNwhile语句do-while语句后续语句计算表达式3计算表达式1…continue;…表达式2?YNfor语句南昌大学计算中心练习:下面程序的输出结果是____。main(){inta=10,y=0;do{a+=2;y+=a;if(y50)break;}while(a=14);printf(“a=%dy=%d”,a,y);}a=16y=60南昌大学计算中心练习:下面程序的输出结果是____。main(){intk=4,n=0;for(;nk;){n++;if(n%3!=0)continue;k--;}printf(“%d,%d\n”,k,n);}A)1,1B)2,2C)3,3D)4,4√南昌大学计算中心练习:下面程序的输出结果是____。main(){inta,b;for(a=1,b=1;a=100;a++){if(b=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf(“%d\n”,a);}A)7B)8C)9D)10√南昌大学计算中心练习:下面程序的输出结果是____。main(){inti=5;do{switch(i%10){case4:i--;break;case6:i--;continue;}i--;i--;printf(“%d”,i);}while(i0);}31-1