1、循环结构习题循环结构一选择题1.下面程序段int k=2;while (k=0) printf(“%d”,k);k-;则下面描述中正确的是 。A)while循环执行10次 B)循环是无限循环C)循环题语句一次也不执行 D)循环体语句执行一次2.以下程序段的循环次数是 。for (i=2; i=0; ) printf(“%d” , i-) ;A)无限次 B)0次 C)1次 D)2次4.下面程序的输出结果是 。main ( ) char c=A;int k=0;do switch (c+) case A : k+ ; break ;case B : k- ;case C : k+=2 ; brea
2、k ;case D : k%=2 ; continue ;case E : k*=10 ; break ;default : k/=3 ;k+; while (c0; x-) if (x%3=0) printf(“%d”,-x); continue ;A)741 B)852 C)963 D)8754216.以下不是死循环的程序段是 。A) int i=100; B)for ( ; ; ) ;while (1) i=i%100+1 ;if (i100) break ; C) int k=0; D)int s=36;do +k; while (k=0); while (s) ; -s ;7.下述程
3、序段的运行结果是 。int a=1,b=2, c=3, t;while (ab=A & c=a & c=z) n+;A)c=getchar( ) B)getchar( ) C)c=getchar( ) D)scanf(“%c”,&c)9.下述语句执行后,变量k的值是 。int k=1;while (k+10);A)10 B)11 C)9 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) ;A
4、)k=0,m=3 B)k=0,m=5 C)k=1,m=3 D)k=1,m=511.下面for循环语句 。int i,k;for (i=0, k=-1; k=1; i+, k+)printf(“*”);A)判断循环结束的条件非法 B)是无限循环C)只循环一次 D)一次也不循环12.语句while (!E); 括号中的表达式!E等价于 。A)E=0 B)E!=1 C)E!=0 D)E=113.以下是死循环的程序段是 。A) for (i=1; ; ) if (i+%2=0) continue ;if (i+%3=0) break ;B) i=32767;do if (i0) break ; whi
5、le (+i) ;C) for (i=1 ; ;) if (+I10) continue ;D) i=1 ; while (i-);14.执行语句for (i=1;i+4;) ; 后变量i的值是 。A)3 B)4 C)5 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 ;B)for ( ;
6、 ; x+=i ) ;C)while (1) x+ ; D)for (i=10 ; ; i-) sum+=i ;18.下面程序段的运行结果是 。x=y=0;while (x15) y+,x+=+y ;printf(“%d,%d”,y,x);A)20,7 B)6,12 C)20,8 D)8,2019.以下for循环的执行次数是 。for (x=0,y=0; (y=123) & (x4) ; x+) ;A)无限循环 B)循环次数不定 C)4次 D)3次20.若运行以下程序时,输入2473,则程序的运行结果是 。main ( ) int c;while (c=getchar( ) ! =n)swit
7、ch (c-2) case 0 :case 1 : putchar (c+4) ;case 2 : putchar (c+4) ; break ;case 3 : putchar (c+3) ;default : putchar (c+2) ; break ;printf(“n”);A)668977 B)668966 C) D)6688766二填空题语言三个循环语句分别是 语句, 语句和 语句。2.至少执行一次循环体的循环语句是 。3.循环功能最强的循环语句是 。5.程序段for (a=1,i=-1; -1i1; i+) a+ ; printf(“%2d”,a); ;printf(“%2d”,
8、i) ;的运行结果是 。三判断题1.在while循环中允许使用嵌套循环,但只能是嵌套while循环。【 】2.在实际编程中,do-while循环完全可以用for循环替换。【 】语句只能用于三个循环语句中。【 】4.在不得已的情况下(例如提高程序运行效率),才使用goto语句。【 】5.语句标号与C语言标识符的语法规定是完全一样的。【 】循环的三个表达式可以任意省略,while,do-while也是如此。【 】允许从外部转到循环体内。【 】的循环控制条件比do-while的循环控制条件严格。【 】循环中,根据情况可以省略while。【 】循环的while后的分号可以省略。【 】四程序阅读题1.写
9、出下面程序运行的结果。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) ;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;prin
10、tf(“%dn”,a);4.写出下面程序运行的结果。main ( ) int k=1,n=263 ;do k*= n%10 ; n/=10 ; while (n) ;printf(“%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(
11、“%d,”,j);continue ; -i ;j- ;printf(“%d,”,j) ;7.写出下面程序运行的结果。main ( ) int a=10,y=0 ;do a+=2 ; y+=a ;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.写出下面程序运行的结果
12、。main ( ) int y=2,a=1;while (y-!=-1)do a*=y ;a+ ; while (y-) ;printf(“%d,%dn”,a,y);10.写出下面程序运行的结果。main ( ) 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则结束,此时的被除数就是最大公约数。否则,将除数作为新的被除数,余数作
13、为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。main ( ) int m,n,w;scanf(“%d,%d”,&m,&n);while (n) w=【1 】;m=【2 】;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;
14、i=1000; i+=5) m = i ;while (【1 】) k+; m=m/5 ; 4.下面程序接受键盘上的输入,直到按键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序完整。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