循环结构程序设计习题及答案
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 printf(“i=%d j=%d\n“,i,j); 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; B、 for( ; 1;) while(1) { i=i%100+1; if(i>100) break; } C、int a=0; D、 int x=21; do while(x) { ++a; --x; }while(a>=0); 三、阅读程序,写出程序运行结果。 1、#include"stdio.h" main() { int i=0,sum=1; do { sum+=i; i++; }while(i<5); printf("%d\n",sum); } 程序运行结果: 2、 #include"stdio.h" main() { int a,b; b=10;a=1; while(a<=b) a*=2; printf("%d\n",a); } 程序运行结果: 3、 #include"stdio.h" main() { int x=2; while(x--); printf("%d\n",x); } 程序运行结果: 4、 #include"stdio.h" main() { int x=3; do{ printf("%d\n",x-=2); }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",j); } printf("i=%d\n",i); } 程序运行结果: 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",x); } 程序运行结果: 四、编程题 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.1 4 7 10 13 16 19 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 ",i*j); 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",y); } 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 ",i); } 5. #include"stdio.h" main() { float cj,min,max=0; printf("请输入学生成绩,输入负数时结束:\n"); scanf("%f",&cj); min=cj;