循环结构程序设计复习题一.选择题1.以下while循环中,循环体执行的次数是:()k=1;while (--k) k=10;a) 10次b) 无限次c) 一次也不执行d) 1次2.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=0;while (!x!=0) x++;a) 退出while循环后,x的值为0b) 退出while循环后,x的值为1c) while的控制表达式是非法的d) while循环执行无限次3. 有以下程序段,其中n为整型变量,执行后输出结果是:()n=20 ;while(n--) ; printf(“%d”,n) ;a) 2 b) 10 c) -1 d) 04. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:()t=1;while (-1){ t--;if(t) break;}a) 循环一次也不执行b) 循环执行一次c) 循环控制表达式(-1)不合法d) 循环执行2次5. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=-1;do{;}while (x++);printf(“x=%d”,x);a) 该循环没有循环体,程序错误b) 输出x=1c) 输出x=0d) 输出x=-16. 有以下程序段,其中x,y为整型变量,程序输出结果是:()for(x=0,y=0;(x<=1)&&(y=1);x++,y--) ;printf(“x=%d,y=%d”,x,y);a) x=2,y=0 b) x=1,y=0x=0,y=0d) x=1,y=1 c)解析:在开始时 x=0,y=0;进入循环判断(x<=1)&&(y= 1) 条件成立,同时把1赋给y,此时x=0,y=1;然后执行 x++,y--,执行之后x=1,y=0;再进入循环判断(x<=1)&&(y= 1),条件成立,同时同时把1赋给y,此时x=1,y=1; 然后执行 x++,y--,执行之后x=2,y=0;再进入循环判断(x<=1)&&(y= 1),条件不成立,跳出循环输出x=2,y=0 。
7. 有以下程序:main(){ int x=0,y=0;while(x<5&&++y) y--,x++;printf(“%d,%d”,y,x);}程序的输出结果是:()a) 0,5 b) 1,5 c) 0,4 d) 1,48. 有以下程序:main()int num=0; {do,num); } { num++ ;printf(“%d\n”while(num<=2);}程序的输出结果是:() 1 1c) 1 d)1 a) b)22 23 349. 有以下程序:main(){ int x=3;do{ printf(“%d”,x-=2); }while(!(--x));}程序的输出结果是:()a) 1 b) 3 0 c) 1 -2 d) 死循环有以下程序:10.main()int y=10;{{ y--; } while(--y); do,y--); %d\n”printf( “}程序的输出结果是:()8 c) a) 1 b) -1 0d)有以下程序:11.main()int x=3,y;{do{ y=--x;if( !y) printf(“x”) ;else printf(“y”) ;} while(x);}程序的输出结果是:()a) xyx b) yyx c) yxx d) yxy12. 有以下程序段,此处do-while循环的结束条件是:()int n=0,p;do {scanf(“%d”,&p);n++;} while (p!=12345&&n<3);a) p的值不等于12345并且n的值小于3b) p的值等于12345并且n的值大于等于3c) p的值不等于12345或者n的值小于3d) p的值等于12345或者n的值大于等于313. 有以下程序:main(){ int a,b,t;for(a=3,b=0 ;!a==b ;a--,b++)if(a>b) { t=a;a=b;b=t;}printf(“%d,%d\n”,a,b);}程序的输出结果是:()a) 4,1 b) 1,4 c) 4,-1 d) -1,414. 有以下程序:main(){ int x=3,y=0;do{ while( !y) y=-x;} while(x--);printf(“%d,%d\n”,x,y);}程序的输出结果是:()a) -1,3 b) -1,-3c) 0,0 d) 1,-315. 有以下程序:main(){ int m,n;printf(“Enter m,n:”) ; scanf(“%d%d”,&m,&n);while(m!=n){while(m>n) m-=n;while(n>m) n-=m;}printf(“m=%d\n”,m);})(程序的输出结果是:a) m=3 b) m=2 c) m=1 d) m=016. 有以下程序:main(){ int i,s=1;for(i=1 ;i<=50 ;i++)if( !(i%5)&& !(i%3)) s+=i;printf(“%d\n”,s);}程序的输出结果是:()a) 409 b) 277 c) 1 d) 91有以下程序:17.main()int x=0,y=0,i; {for(i=1 ; ;++i){x++ ;continue ;} { if(i%2==0){y++ ;break ;} if(i%5==0)},x,y); ”%d,%d printf(“}()程序的输出结果是:d) a) 2,1 b) 2,2 c) 2,5 5,2有以下程序:18.main(){ int i=0,a=0;while(i<30){for(;;){if((i_x0010_)==0) break;else i--;}i+=11; a+=i;}printf(“%d\n”,a);}程序的输出结果是:()a) 66 b) 63 c) 33 32 d)19. 有以下程序:main()int a,b;{for(a=1,b=1 ;a<=100 ;a++)break;{ if(b>=10)if(b%3==1){ b+=3; continue; }},a); printf( %d\n“”}程序的输出结果是:()a) 101 b) 6 c) 5 d) 420. 有以下程序:main(){ int i=0;for(i+=3 ;i<=5 ;i=i+2)switch(i%5){ case 0: printf(“*”);case 1: printf(“#”); break;default: printf(“!”); break;case 2: printf(“&”);}}程序的输出结果是:()a) *# b) !& c) !*# d) *#*二.填空题10个整数,请填空。
1.要求使以下程序段输出,i+=2)); ”for(i=0;i<=_18_;printf(“%d\n的值是_____0_____。
执行下面程序段后,2. k r=1; n=203; k=1; while(n); do {k*=n_x0010_*r; n/=10; r++;}。
3. 下面程序的输出结果是__ 1 5 2 10 main(){ int i,x=10;for(i=1;i<=x;i++)if(x%i==0) printf(“%d ”,i);}4. 下面程序的输出结果是___无定值________。
main(){ int i,sum;for(i=1;i<6;i++) sum+=i;printf(“%d”,sum);}5. 下面程序的输出结果是_20__。
main(){ int i,sum=0;for(i=2;i<10;i++){ if((i%2)!=0) continue;sum+=i;}printf(“%d\n”,sum);}6.下面程序的输出结果是**!*!!。
__!!!____main(){ int i,j;for(i=2;i>=0;i--){ for(j=1;j<=i;j++) printf(“*”); for(j=0;j<=2-i;j++) printf(“!”);printf(“\n”);}}7. 下面程序的输出结果是___1,1____。
main(){ int i,j=0,a=0;for(i=0;i<5;i++)do{ if(j%3) break;a++; j++;} while(j<10);printf(“%d,%d\n”,j,a);}8. 下面程序的输出结果是___852____。
main(){ int x=9;for(;x>0;){ if(x%3==0){ printf(“%d”,--x); continue; }x--;}}9. 下面程序的输出结果是____***#____。
main(){ int i,j=2;for(i=1;i<=2*j;i++)switch(i/j){ case 0: case 1: printf(“*”); break;case 2: printf(“#”);}}三.操作题1.计算1到10之间的奇数之和以及偶数之和。
2.输出100以内能被3整除且个位数为6的所有整数。
3.找出2至99之间的全部同构数。
同构数是这样一组数:它出右边625是25右边的数,25是5现在其平方数的右边,例如,的数,5和25都是同构数。
4.根据以下近似公式求∏值。
2?111?1???......?222 n3625.根据以下公式求S的值。
1111S?1????......3572n?16.根据以下公式求S的值。
111S?1???....?..!n!3!2。