1、循环结构习题循环结构一选择题int k=2;while (k=0) printf(“%d,k);k-;那么下面描述中正确的选项是 。Awhile循环执行10次 B循环是无限循环C循环题语句一次也不执行 D循环体语句执行一次2.以下程序段的循环次数是 。for (i=2; i=0; ) printf(“%d , i-) ;A无限次 B0次 C1次 D2次 。main ( ) char c=A;int k=0;do switch (c+) case A : k+ ; break ;case B : k- ;case C : k+=2 ; break ;case D : k%=2 ; continu
2、e ;case E : k*=10 ; break ;default : k/=3 ;k+; while (c0; x-) if (x%3=0) printf(“%d,-x); continue ;A741 B852 C963 D8754216.以下不是死循环的程序段是 。A int i=100; Bfor ( ; ; ) ;while (1) i=i%100+1 ;if (i100) break ; C int k=0; Dint s=36;do +k; while (k=0); while (s) ; -s ; 。int a=1,b=2, c=3, t;while (ab=A & c=a
3、& c=z) n+;Ac=getchar( ) Bgetchar( ) Cc=getchar( ) Dscanf(“%c,&c)9.下述语句执行后,变量k的值是 。int k=1;while (k+10);A10 B11 C9 D无限循环,值不定10.下面程序的输出结果是 。main ( ) int k=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) ;Ak=0,m=3 Bk=0,m=5 Ck=1,m=3 Dk=1,m=511.下面for循环语句 。int i,k;fo
4、r (i=0, k=-1; k=1; i+, k+)printf(“*);A判断循环结束的条件非法 B是无限循环C只循环一次 D一次也不循环12.语句while (!E); 括号中的表达式!E等价于 。AE=0 BE!=1 CE!=0 DE=113.以下是死循环的程序段是 。A for (i=1; ; ) if (i+%2=0) continue ;if (i+%3=0) break ;B i=32767;do if (i0) break ; while (+i) ;C for (i=1 ; ;) if (+I10) continue ;D) i=1 ; while (i-);14.执行语句f
5、or (i=1;i+4;) ; 后变量i的值是 。A3 B4 C5 D不定15.以下程序段 。x=-1;do x=x*x; while (!x);A是死循环 B循环执行2次 C循环执行1次 D有语法错误16.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择 填空。main ( ) int a,max=0;scanf(“%d,&a);while (【 】) if (max+y;x=i+) i=x ;Bfor ( ; ; x+=i ) ;Cwhile (1) x+ ; Dfor (i=10 ; ; i-) sum+=i ;18.下面程序段的运行结果是 。x=y=0;while (x
6、15) y+,x+=+y ;printf(“%d,%d,y,x);A20,7 B6,12 C20,8 D8,2019.以下for循环的执行次数是 。for (x=0,y=0; (y=123) & (x4) ; x+) ;A无限循环 B循环次数不定 C4次 D3次20.假设运行以下程序时,输入2473,那么程序的运行结果是 。main ( ) int c;while (c=getchar( ) ! =n)switch (c-2) case 0 :case 1 : putchar (c+4) ;case 2 : putchar (c+4) ; break ;case 3 : putchar (c+
7、3) ;default : putchar (c+2) ; break ;printf(“n);A668977 B668966 C66778777 D6688766二填空题 语句, 语句和 语句。 。 。for (a=1,i=-1; -1i1; i+) a+ ; printf(“%2d,a); ;printf(“%2d,i) ;的运行结果是 。三判断题1.在while循环中允许使用嵌套循环,但只能是嵌套while循环。【 】2.在实际编程中,do-while循环完全可以用for循环替换。【 】3.continue语句只能用于三个循环语句中。【 】4.在不得已的情况下例如提高程序运行效率,才使用
8、goto语句。【 】5.语句标号与C语言标识符的语法规定是完全一样的。【 】6.for循环的三个表达式可以任意省略,while,do-while也是如此。【 】7.do-while允许从外部转到循环体内。【 】8.while的循环控制条件比do-while的循环控制条件严格。【 】9.do-while循环中,根据情况可以省略while。【 】10.do-while循环的while后的分号可以省略。【 】四程序阅读题1.写出下面程序运行的结果。main ( ) int x,i ;for (i=1 ; i=100 ; i+) x=i;if (+x%2=0)if (+x%3=0)if(+x%7=0)
9、printf(“%d ,x) ;2.写出下面程序运行的结果。main ( ) int i,b,k=0 ;for (i=1; i=5 ; i+) b=i%2;while (b-=0) k+ ;printf(“%d,%d,k,b);3.写出下面程序运行的结果。main ( ) int a,b;for (a=1,b=1 ; a=20) break;if (b%3=1) b+=3 ; continue ; b-=5;printf(“%dn,a);4.写出下面程序运行的结果。main ( ) int k=1,n=263 ;do k*= n%10 ; n/=10 ; while (n) ;printf(“
10、%dn,k);5.写出下面程序运行的结果。main ( ) int i=5 ;do switch (i%2) case 4 : i- ; break ;case 6 : i- ; continue ;i- ; i- ;printf(“%d,i);while (i0) ;6.写出下面程序运行的结果。main ( ) int i,j;for (i=0;i=0; j-) if (j+i)%2) j- ;printf(“%d,j);continue ; -i ;j- ;printf(“%d,j) ;7.写出下面程序运行的结果。main ( ) int a=10,y=0 ;do a+=2 ; y+=a
11、;if (y50) break ; while (a=14) ;printf(“a=%d y=%dn,a,y) ;8.写出下面程序运行的结果。main ( ) int i,j,k=19;while (i=k-1) k-=3 ;if (k%5=0) i+ ; continue ; else if (k5) break ; i+;printf(“i=%d,k=%dn,i,k);9.写出下面程序运行的结果。main ( ) int y=2,a=1;while (y-!=-1)do a*=y ;a+ ; while (y-) ;printf(“%d,%dn,a,y);10.写出下面程序运行的结果。ma
12、in ( ) int i,k=0;for (i=1; ; i+) k+ ;while (ki*i) k+ ; if (k%3=0) goto loop ;loop:printf(“%d,%dn,i,k);六程序填空题1.下述程序用“碾转相除法计算两个整数m和n的最大公约数。该方法的根本思想是计算m和n相除的余数,如果余数为0那么结束,此时的被除数就是最大公约数。否那么,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填3空使程序完整。main ( ) int m,n,w;scanf(“%d,%d,&m,&n);while (n) w=【1 】;m=【2
13、】;n=【3 】;printf(“%d,m);2.下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填3空使程序完整。main ( ) int n,k=1,s=0,m ;for (n=1 ; ns) printf(“%dd,n);3.下面程序段的功能是计算1000!的末尾有多少个零,请填(1)空使程序完整。main ( )int i,k;for (k=0,i=5; i=1000; i+=5) m = i ;while (【1 】) k+; m=m/5 ; 4.下面程序接受键盘上的输入,直到按键为止,这些字符被原样输出,但假设有连续的一个以上的空格时只输出一个空格,请填(3)空
14、使程序完整。main ( ) char cx , front=0 ;while (【1 】!=n) if (cx!= ) putchar(cx) ;if (cx= )if (【2 】)putchar(【3 】)front=cx ;5.下面程序按公式 求和并输出结果,请填(3)空使程序完整。main ( ) 【1 】;int k ;for (k=1 ; k=100 ; k+)s+=k ;for (k=1 ; k=50 ; k+)s+=k*k ; for (k=1 ; k=10 ; k+)s+=【2 】;printf(“sum=【3 】,s);七编程题1.输入两个正整数m和n,求其最大公约数和最小公倍数。2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。3.求 即求1!+2!+3!+19!+20!。4.有一个分数数列: 求出这个数列前20项之和。5.提高题:打印出所有的“水仙花数,所谓“水仙花数是指一个3位数,其各位数字立方之和等于该数本身。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1