第五章 循环结构 |
一、选择题 1、 以下程序段的输出结果是 A) 9 B) 1 C) 11 D) 10 int k,j,s; for (k=2;k<6;k++,k++) { s=1; for (j=k;j<6;j++) s+=j; } printf(“%d\n”,s); 2、以下程序段的输出结果是 A)12 B)15 C)20 D)25 int i,j,m=0; for (I=1;I<=5;I+=4) for (j=3;j<=19;j+=4)m++; printf(“%d\n”,m); 3、 以下程序段的输出结果是 A)10 B)9 C)10 D)9 9 8 9 8 8 7 8 7 7 6 int n=10 ; while (n>7) { n--; printf(“%d\n”,n); } 4、以下程序段的输出结果是 A) 1 B)3 0 C) 1 –2 D)死循环 int x=3; do {printf(“%3d”,x-=2);} while (!(--x)); 5、 以下程序的输出结果是 A) 15 B)14 C)不确定 D)0 main() { int i,sum; for (i=1;i<6;i++) sum+=sum; printf(“%d\n”,sum); } 6、 以下程序的输出结果是 A)741 B)852 C)963 D)875421 main() { int y=10; for ( ;y>0;y--) if (y%3==0) { printf(“%d”,--y); continue} } 7、若x 是int 型变量,以下程序段的输出结果是 A) **3 B)##3 C)##3 D)**3##4 ##4 **4 **4##5 **5 **5 ##5 for (x=3;x<6;x++) printf((x%2)?(“**%d”):(“##%d\n”),x); 8、 以下程序的输出结果是 A) *#*#*#$ B)#*#*#*$ C) *#*#$ D)#*#*$ main() { int i; for (i=1;i<=5;i++) { if (i%2) printf(“*”); else continue; printf(“#”); } printf(“$\n”); } 9、 以下叙述正确的是 A)do-while语句构成的循环不能用其他语句构成的循环代替. B)do-while语句构成的循环只能用break语句退出 C)用do-while语句构成循环时,只有在while后的表达式为非零时结束循环 D)用do-while语句构成循环时,只有在while后的表达式为零时结束循环 10、 以下程序的输出结果是 A)39 81 B)42 84 C)26 68 D)28 70 main() { int x,i; for (i=1;i<=100;i++) { x=i; if (++x%2==0) if (++x%3==0) if (++x%7==0) printf(“%d”,x); } printf(“\n”); } 二.填空题 1、当执行以下程序段后,i的值是___、j的值是___、k的值是___。 int a, b,c,d,i,j,k; a=10; b=c=d=5;i=j=k=0; for ( ;a>b;++b)i++; while (a>++c)j++; do k++; while (a>d++); 2、 以下程序段的输出结果是____. int k,n,m; n=10;m=1;k=1; while (k<=n) m*=2; printf(“%d\n”,m); 3、 以下程序段的输出结果是____. main() { int x=2; while (x--); printf(“%d\n”,x); } 4、 以下程序段的输出结果是____. int i=0,sum=1; do {sum+=i++;} while (i<5); printf(“%d\n”,sum); 5、有以下程序段: s=1.0; for(k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(“%f\n”,s); 请填空,使下面的程序段的功能完全与之等同。 s=0.0; _______; k=0; do { s=s+d; ________; d=1.0/(k*(k+1)); } while (________); printf(“%f\n”,s); 6、以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 main() { float x,amax,amin; scanf(“%f”,&x); amax=x;amin=x; while (________) { if (x>amax) amax=x; if (_______) amin=x; scanf(“%f”,&x); } printf(“\namax=%f\namin=%f\n”,amax,amin); } 三.编程题 1、编写程序,求1-3+5-7+…-99+101的值。 2、 编写程序,求e 的值。e»1+1/1!+1/2!+1/3!+..+1/n! (1) 用循环,计算前50项。 (2) 用循环,要求直至最后一项的值小于10-4 3、 编写程序,输入从公元1000年至2000年所有闰年的年号。每输出3个年号换一行。判断公元年是否为闰年的条件是: (1)公元年数如能被4整除,而不能被100整除,则是闰年; (2)公元年数能被400整除也是闰年。 4、 编写程序,打印以下图: * *** ***** ******* ********* ******* ***** *** *
|
|