第三单元 循环结构练习题
选择题:
1、有以下程序执行后的输出结果是( )。 main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1; printf(\
A.自然数1~9的累加和 B.自然数1~10的累加和
C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和 2、以下关于for语句的说法不正确的是( )。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先判断表达式,后执行循环体语句 C. for循环中,可以用break跳出循环体
D. for循环体语句中,可以保含多条语句,但要用花括号括起来 3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf(\下面关于语句执行情况的叙述中正确的是( )。
A.循环体执行两次 B.循环体执行一次 C.循环体一次也不执行 D.构成无限循环
4、已知 int t=0; while(t=1){...} 则以下叙述正确的是( )。 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 5、设有以下程序段 int x=0,s=0;
while(!x!=0)s+=++x; printf(\); 则 A)运行程序段后输出0 B)运行程序段后输出1
C)程序段中的控制表达式是非法的 D)程序段执行无限次
6、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为( )。 for(i=0, j=10; i<=j; i++, j- -) k=i+j;
A.6 B.9 C.10 D.11 7、C语言中,break; 语句可以用于循环语句和( )语句中。 A.if B.switch C.for D.while
8、for(i=0; i<=15; i++) printf(\i ); 循环结束后,i 的值为( )。 A.14 B.15 C.16 D.17 9、与语句“while(!x)”等价的语句是( )。
A. while(x==0) B. while(x!=0) C. while(x==1) D. while(x!=1) 10、下述程序段中,while循环执行次数是( )。 int k=0;
while(k=1) k++;
A.无限次 B. 有语法错误,不能执行 C.一次也不执行 D. 执行一次
11、以下程序中,while循环的次数是( )。 #include
while(i<10) { if(i<1) continue; if(i= =5)break; i++;}} A. 1 B. 死循环,不能确定次数 C. 6 D. 10 12.下面程序段 int k=2;
while (k=0) {printf(“%d”,k);k--;} 则下面描述中正确的是 。
A)while循环执行10次 B)循环是无限循环 C)循环题语句一次也不执行 D)循环体语句执行一次 13.以下程序段的循环次数是 。
for (i=2; i==0; ) printf(“%d” , i--) ;
A)无限次 B)0次 C)1次 D)2次 14. int i=100;以下不是死循环的程序段是 。
A)while (1) {i=i0+1 ;if (i>100) break ;} B)for ( ; ; ) ;
C) int k=0; do { ++k; } while (k>=0); D)int s=36;while(s) ;--s ; 15.下述程序段的运行结果是 。 int a=1,b=2, c=3, t;
while (a
16.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择 填空。 main ( )
{ int m=0,n=0; char c;
while ((【 】) ! ’\\n’) {
if (c>=’A’ && c<=’Z’) m++; if (c>=’a’ && c<=’z’) n++; } }
A)c=getchar( ) B)getchar( ) C)c==getchar( ) D)scanf(“%c”,&c)
17.下述语句执行后,变量k的值是 。 int k=1;
while (k++<10);
A)10 B)11 C)9 D)无限循环,值不定 18.下面for循环语句 。 int i,k;
for (i=0, k=-1; k=1; i++, k++)
printf(“***”);
A)判断循环结束的条件非法 B)是无限循环 C)只循环一次 D)一次也不循环 19. 以下for循环的执行次数是 。 for (x=0,y=0; (y=123) && (x<4) ; x++) ;
A)无限循环 B)循环次数不定 C)4次 D)3次 20.以下是死循环的程序段是 。 A) for (i=1; ; ) {
if (i++%2==0) continue ; if (i++%3==0) break ; }
B) i=32767; do { if (i<0) break ; } while (++i) ; C) for (i=1 ; ;) if (++I<10) continue ; D. i=1 ; while (i--); 21.以下程序段 。 x=-1; do
{ x=x*x; } while (!x);
A)是死循环 B)循环执行2次 C)循环执行1次 D)有语法错误
22.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。
main ( )
{ int a,max=0;
scanf(“%d”,&a);
while (【 】) { if (max A)a==0 B)a C)!a==1 D)!a 23.以下不是死循环的语句是 。 A)for (y=9,x=1;x>++y;x=i++) i=x ; B)for ( ; ; x++=i ) ; C)while (1) { x++ ; } D)for (i=10 ; ; i--) sum+=i ; 读程题: 1.以下程序的输出结果是 。 main() { int i, a[6]={2,3,4,5,6,7}; for(i=1; i<6; i+=2) printf(\} 2.写出下面程序运行的结果。 main ( ) { int i=5 ; for (; i<5 ;) { i++; if(i%4==0) printf(“%-2d”,i); else continue; } } 3.写出下面程序运行的结果。 main ( ) { int a,b; for (a=1,b=1 ; a<=100 ; a++) { if (b>=20) break; if (b%3==1) { b+=3 ; continue ; } b-=5; } printf(“%d\\n”,a);} 4.写出下面程序运行的结果。 main ( ) { int k=1,n=263 ; do { k*= n ; n/=10 ; } while (n) ; printf(“%d\\n”,k);} 5.若执行以下程序时从键盘上输入3和4,则输出结果是 main( ) { int a,b,s; scanf(\s=a; if(a printf(\ } 6.写出下面程序运行的结果。 main ( ) { int i ; for(i=1;i<10;i++) { if(i%3) i++; ++i ; printf(“%d ”,i) ; } } 编程题: 。