第三单元循环结构练习题
选择题:
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);