当前位置:文档之家› 循环结构程序设计练习题内含答案

循环结构程序设计练习题内含答案

循环结构程序设计练习题内含答案
循环结构程序设计练习题内含答案

第三单元循环结构练习题

选择题:

1、有以下程序执行后的输出结果是( D )。

main( )

{ int i,s=0;

for(i=1;i<10;i+=2) s+=i+1;

printf("%d\n",s);}

A. 自然数1?9的累加和B ?自然数1?10的累加和

C.自然数1?9中的奇数之和 D .自然数1?10中的偶数之和

2、以下关于for 语句的说法不正确的是( A )。

A. for 循环只能用于循环次数已经确定的情况

B. for 循环是先判断表达式,后执行循环体语句

C. for 循环中,可以用break 跳出循环体

D. for 循环体语句中,可以保含多条语句,但要用花括号括起来

3、若i 和k 都是int 类型变量,有以下for 语句

for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是( d )。

A. 循环体执行两次

B. 循环体执行一次

C. 循环体一次也不执行

D. 限循环

4、以下程序程序的执行后的输出结果是( c )。

main()

{int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf( “%d”,t[2 -i][i]);}

A.7 5 3

B. 3 5 7

C.3 6 9

D.7 5 1

5、以下程序运行后的输出结果是( A )。

void fun(char*s)

{ while(*s)

{ if(*s%2==0) printf( “%c”,*s); s++;}

}

main()

{ char a[]={ “ good” };fun( a) ;printf( 注

意:字母a的ASQ码值为97

A.d

B.go

C.god

6、已知int t=0 ;while (t=1 ) {...}

A) 循环控制表达式的值为0

B) 循环控制表达式的值为1

C) 循环控制表达式不合法

D) 以上说法都不对

7、设有以下程序段B int x=0,s=0;

while ( !x!=0 ) s+=++x; printf ( "%d",s ) ; 则

A) 运行程序段后输出0

B) 运行程序段后输出1

C) 程序段中的控制表达式是非法的

D) 程序段执行无限次

8、设i , j,k均为int型变量,则执行完下面的for语句后,k的值为(C )。for ( i=0, j=10; i<=j; i++, j- - ) k=i+j; 构成无

n”);}

D.good 则以下叙述正确的是( B )

A.6

B.9

C.10

D.11

9、C语言中,break; 语句可以用于循环语句和(B )语句中。

A.if

B.switch

C.for

D.while

10、for(i=0; i<=15; i++) printf("%d", i ); 循环结束后,i 的值为( C )。

A.14

B.15

C.16

D.17

11、有以下程序( B )

main()

{ char b,c; int i; b='a'; c='A';

for(i=0;i<6;i++)

{ if(i%2) putchar(i+b);

else putchar(i+c);

} printf("\n");}

程序运行后的输出结果是()

A. ABCDEF

B. AbCdEf

C. aBcDeF

D. abcdef

12、与语句“ while(!x) ”等价的语句是( A )。

A. while(x==0)

B. while(x!=0)

C. while(x==1)

D. while(x!=1)

13、下述程序段中,while 循环执行次数是( A )。 (分情况这题有问题) ; int k=0; while(k=1) k++

A. 无限次

B. 有语法错误,不能执行

C. 一次也不执行

D. 执行一次

14、以下程序中,while 循环的次数是( b )。

#include

void main( )

{int i=0;

while(i<10) { if(i<1) continue; if(i= =5)break; i++;}}

A. 1

B. 死循环,不能确定次数

C. 6

D. 10

15、下面程序段

int k=2;

while (k=0) {printf( “%d”,k);k --;}

则下面描述中正确的是。

A) while 循环执行10次B )循环是无限循环

C)循环题语句一次也不执行 D )循环体语句执行一次

16、以下程序段的循环次数是B 。

for (i=2; i==0; ) printf( “%d” , i--) ;

A) 无限次 B ) 0次C ) 1次D ) 2次

17、下面程序的输出结果是B 。

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 ; continue ;

case ‘ E ' k*=10 ; break ;

default : k/=3 ;

}

k++;

} while (c< ' G ' ) ;

printf ( “k=%d ” ,k) J }

A )k=3

B ) k=4

C ) k=2

D )k=0 19. 下面程序的输出结果是 。 B

main ( )

{ int x=9;

for (; x>0; x--) {

if (x%3==0) {

23. 下述语句执行后,变量 k 的值是

} } }

A )741 B

) 852 C )963 D 20. int i=100; 以 下不是死循环的程序段是 。 A

)875421

C ) int k=0; do { ++k; } while (k>=0); D

21. 下述程序段的运行结果是 C 。 int

a=1,b=2, c=3, t=4;

while (a

printf( “%d,%d,%”d ,a,b,c);

)1,2,1 D )2,1,1 22. 下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个 数,选择 A 填空。

main ( )

{ int m=0,n=0;

char c; while (( 【 】 ) ! '

{

if (c>= ' A ' if (c>= 'a ' } } A ) c=getchar( ) B

scanf( “%c ”,&c) n ') && c<= ' Z ' ) m++; && c<= ' z ' ) n++; ) getchar( ) C c==getchar( ) D )

printf( “%d ”,--x);

continue ;

A )while (1) {i=i%100+1 ;if (i>100) break ;}

B )for ( ; ; ) ;

while (k++<10) int k=1;

A)10 B )11 C )9 D )无限循环,值不定

24. 下面程序的输出结果是。----- B ----- ( 太麻烦不做了哎,还是

作罢!!) main ( )

{ int k=0,m=0,i,j;

for (i=0; i<2; i++) {

for (j=0; j<3; j++) k++ ;

k-=j ;

}

m = i+j ;

printf( “k=%d,m=%”d ,k,m) ;

}

A) k=0,m=3 B ) k=0,m=5 C ) k=1,m=3 D ) k=1,m=5

25. 下面for 循环语句。B int i,k;

for (i=0, k=-1; k=1; i++, k++) printf( “*** ”);

A)判断循环结束的条件非法 B )是无限循环

C)只循环一次 D ) 一次也不循环

26. 语句while (!E); 括号中的表达式!E 等价于A 。

A) E==0 B ) E!=1 C ) E!=0 D ) E==1

27. 以下是死循环的程序段是。A

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--);

28. 执行语句for (i=1;i++<4;) ; 后变量i 的值是B 。

A) 3 B ) 4 C ) 5 D )不定

29. 以下程序段。A x=-1;

do

{ x=x*x; } while (!x);

A)是死循环B )循环执行2次C )循环执行1次D )有语法错误

30. 下面程序的功能是在输入的一批正数中求最大者,输入0 结束循环,选择填空。C

main ( ) { int a,max=0;

seanf( “%d,&a);

,&a); } while ( 【】){ if (max

printf( “%d ,max);}

A) a==0 B ) a C ) !a==1 D ) !a

31. 以下不是死循环的语句是。A

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 ;

32. 下面程序段的运行结果是。(自己算算吧不难!) x=y=0;

while (x<15) y++,x+=++y ; printf( “%d,%d ,y,x);

A) 20,7 B ) 6,12 C ) 20,8 D ) 8,20

33. 以下for循环的执行次数是C 。

for (x=0,y=0; (y=123) && (x<4) ; x++);

A)无限循环B )循环次数不定C ) 4次D ) 3次

34. 若运行以下程序时,输入2473/,则程序的运行结果是mai n ()

{ 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+3);

default : putchar (c+2) ; break ;

}

printf( “ n”);

}

A) 668977 B ) 668966 C ) 66778777 D ) 6688766 读程题:

1. 以下程序的输出结果是357 。

main ()

{ int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0; i<3; i++) prin tf("%d ",x[i][2-i]);

}

2. 以下程序的输出结果是0 。

mai n()

{int n[2] , i , j ;

for(i=0 ;i<2 ;i++)n[i]=0 ;

for(i=0 ;i v 2;i++) for(j=0 ;j<2 ;j++)n [j ] =n「i」+ 1 ;

printf( ”%n”,n[1]) ; }

3. 以下程序的输出结果是3 5 7 _________ 。

mai n()

{ int i, a[6]={2,3,4,5,6,7};

for(i=1; i<6; i+=2)

prin tf("%d ", a[i]);

}

4. 以下程序的输出结果是7 8 0 0

4 5 6

20 _____ 。

mai n()

{ int i, j, a[3][4]={{0,1,2},{3,4,5,6},{7,8}};

for(i=0;i<3;i++)

{ for(j=i;j<4;j++)

prin tf("%5d", a[2-i][j]);

prin tf("\n"); }

}

5. 以下程序的输出结果是」____________ 。

mai n()

{ char s[ ]="012xy\08s34f4w2";

int i,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>='0'&&s[i]<=9) n++;

prin tf("%d\n", n); }

)

6. 写出下面程序运行的结果。------- 20 70 -------------

mai n ()

{ 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) ; }}

7. 写出下面程序运行的结果。 ------ 3 -1——

mai n ()

{ int i,b,k=0 ;

for (i=1; i<=5 ; i++) { b=i%2; while (b--) k++ ; } printf( “%d,%d ,k,b);} 8. 写出下面程序运行的结果。----1——

mai n ()

{ 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( “%dn”,a);}

9. 写出下面程序运行的结果。___________ 36 ________

main ( )

{ int k=1,n=263 ;

do { k*= n%10 ; n/=10 ; } while (n) ;

printf( “%dn”,k);}

10. 写出下面程序运行的结果。----- 31-1

main ( )

{ int i=5 ;

do {

switch (i%2) { case 4 : i-- ; break ; case 6 : i-- ; continue ;

}

i-- ; i-- ;

printf( “%d”,i);

}while (i>0) ;

}

11. 写出下面程序运行的结果。3,1,-1,3,1,-1, main ( )

{ int i,j;

for (i=0;i<3;i++,i++) {

for (j=4 ; j>=0; j--) {

if ((j+i)%2) { j-- ; printf( “%d,”,j); continue ;

}

--i ; j-- ;

printf( “%d,”,j) ; }}}

12. ----------------------------------------------- 写出下面程序运行的结果。a=16 y=60 main ( )

{ int a=10,y=0 ;

do {

a+=2 ; y+=a ;

if (y>50) break ;

} while (a=14) ;

printf( “a=%d y=%dn”,a,y) ;

}

13. 写出下面程序运行的结果。----- i=6,k=4

main ( )

{ int i,j,k=19;

while (i=k-1) {

k-=3 ;

if (k%5==0) { i++ ; continue ; }

else if (k<5) break ;

i++;

}

printf( “i=%d,k=%d n”,i,k);

}

14. 写出下面程序运行的结果。------- 1,-2 -----

main ( )

{ int y=2,a=1;

while (y--!=-1)

do { a*=y ; a++ ;

} while (y--) ;

printf( “%d,%d n” ,a,y);

}

15. 写出下面程序运行的结果。----- 2,3 -----

main ( )

{ int i,k=0;

for (i=1; ; i++) {

k++ ;

while (k

k++ ;

if (k%3==0) goto loop ;

}

}

loop:

printf( “%d,%d n” ,i,k);

}

编程题:

相关主题
文本预览
相关文档 最新文档