循环结构程序设计习题及答案
1、循环语句的三要素分别是 、 、 。
2、for语句括号内的3个表达式的作用分别
是 、 、 。
3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地 ,只有当 时,才结束整个循环。
4、在循环结构中,break语句的作用是 ;continue语句的作用是 。
5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体 次、 次、 次。
6、下面程序段的执行次数:
int a=0;
while(a=0)
{ printf(\"good\\n\");
a--;
}
7、下面程序段的执行次数:
int a=0;
while(a==0)
{ printf(\"good\\n\");
a--;
}
8、下面程序段的执行次数:
int a=1;
while(a=1)
{ printf(\"good\\n\");
a++;
}
9、下面程序段的执行次数:
int a=1;
while(a==1)
{ printf(\"good\\n\");
a++;
}
10、下列程序段的运行结果是 。
for(i=5;i>=0;i--)
printf(“%d “,i);
11、下列程序段的运行结果是 。
for(n=1;n<20;n=n+3)
printf(“%d “,n);
12、下列程序段的运行结果是 。
for( ch='a' ;ch<='e' ;ch++)
printf(“%d“,ch-97);
13、下列程序段的运行结果是 。
for(i=1,j=5 ; i 14、下列程序段的运行结果是 。 for(n=1 ; n*n<20 ; n++) printf(“%d \\n“,n+n); 二、选择题 1、下列程序段中,死循环的是( ) A、 for (i=1; ;) B、 i=32767; { if(++i%2==0) continue; do if(++i%3==0) break; { if(i<0) break; } }while(++i); C、 i=1; D、 for(i=1; ; ) while(i--); if(++i<10) break; 2、下列程序段中,不是死循环的是( A、 int i=10; while(1) { i=i%100+1; if(i>100) break; } C、int a=0; do { ++a; }while(a>=0); B、 for( ; 1;) D、 int x=21; while(x) --x; ) 三、阅读程序,写出程序运行结果。 1、#include\"stdio.h\" main() { int i=0,sum=1; do { sum+=i; i++; }while(i<5); printf(\"%d\\n\ } 程序运行结果: 2、 #include\"stdio.h\" main() { int a,b; b=10;a=1; while(a<=b) a*=2; printf(\"%d\\n\ } 程序运行结果: 3、 #include\"stdio.h\" main() { int x=2; while(x--); printf(\"%d\\n\ } 程序运行结果: 4、 #include\"stdio.h\" main() { int x=3; do{ printf(\"%d\\n\ }while(!x); } 程序运行结果: 5、 #include\"stdio.h\" main() { int i; for(i=1;i<=5;i++) switch(i%5) { case 0:printf(\"*\");break; case 1:printf(\"#\");break; case 2:printf(\"&\");break; default:printf(\"\\n\"); } } 程序运行结果: 6、 #include\"stdio.h\" main() { char ch; while((ch=getchar())!='!') putchar(++ch); } 程序运行结果: 7、 #include\"stdio.h\" main() { int i,j; for(i=0;i<=5;i++) { for(j=1;j<10;j++) if(j==5) break; if(i<2) continue; if(i>2) break; printf(\"j=%d\\n\ } printf(\"i=%d\\n\ } 程序运行结果: 8、 #include\"stdio.h\" main() { int x ,y; x=37,y=13; while(x!=y) { if(x>y) x=x-y; if(y>x) y=y-x; } printf(\"x=%d\\n\ } 程序运行结果: 四、编程题 1、输出下列图案 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 2、输出下列图案 ***** *** * 3、编程求2-4+6-8+…-100+102的值。 4、输出公元1500年至2500年所有的闰年的年号。 5、从键盘上输入若干学生的C语言成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 循环结构程序设计(参考答案) 一、 填空题、 1. 循环条件 循环体 循环控制变量 2. 循环变量赋初值 循环测试条件 循环变量更新 3. 执行整个周期 外层循环条件为假 4. 提前结束包含它的循环语句的执行 提前结束本次循环周期开始执行下一次循环周期 5. 0 1 0 6. 0 7. 1 8. 无数 9. 1 10. 54321 11. 147****1619 12. 01234 13. I=1,j=5 I=2,j=4 14. 1 4 9 16 二、 选择题 1. B 2. D 三、 程序运行结果 1.11 2.16 3.-1 4.1 5.#& * 6.bgufsoppo 7.i=5 J=3 8.x=1 四、编程题 1. #include\"stdio.h\" main() { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) printf(\"%d \ printf(\"\\n\"); } } 2. #include\"stdio.h\" main() { int i,j; for(i=5;i>=1;i-=2) { for(j=1;j<=i;j++) printf(\"*\"); printf(\"\\n\"); } } 3. #include\"stdio.h\" main() { int i,y=1,s=0; for(i=2;i<=102;i+=2) { s=s+y*i; y*=-1; (y=-y); } printf(\"2-4+6+...-100+102=%d\ } 4. #include\"stdio.h\" main() { int i; for(i=1500;i<=2500;i++) if(i%4==0&&i%100!=0||i%400==0) printf(\"%d \ } 5. #include\"stdio.h\" main() { float cj,min,max=0; printf(\"请输入学生成绩,输入负数时结束:\\n\"); scanf(\"%f\ min=cj; while(cj>=0) { if(cj>max) max=cj; if(cj scanf(\"%f\ } printf(\"max=%f\\nmin=%f\ } 因篇幅问题不能全部显示,请点此查看更多更全内容