资源描述
2015-2016(2)循环结构练习题
一、单选题 (共40题,共100分)
1. 以下正确的描述是( ) (2分)
A.continue语句的作用是结束整个循环的执行
B.只能在循环体和switch语句体使用break语句
C.在循环体使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
.标准答案:B
考生答案:
2. 下面的关键字中,不能够从循环体中跳出循环体外的是() (2分)
A.goto B.break C.return D.continue
.标准答案:D
考生答案:
3. 以下叙述中错误的是() (2分)
A.语句标号是由合法的标识符后面加一个冒号构成
B.goto语句的作用是把程序的执行转向语句标号所在的位置
C.goto语句必须与语句标号在同一个函数
D.结构化程序设计主使用goto语句,使用goto语句的程序可读性强
.标准答案:D
考生答案:
4. 有以下程序段,while 循环执行的次数是()
int k=0;
while(k=1)k++; (2分)
A.无限次 B.有语法错,不能执行
C.一次也不执行 D.执行1次
.标准答案:A
考生答案:
5. 运行以下程序的结果为( )
main()
{
int num=0;
while (num<=2)
{num++;
printf("%d",num);
}
} (2分)
A.1234 B.123 C.12 D.1
.标准答案:B
考生答案:
6. 下述程序的输出结果是( )。
#include<stdio.h>
main()
{ int Y=100;
while(Y--);
printf("y=%d",Y);
(2分)
A.Y=0 B.Y=1 C.Y=随机值 D.Y=-1
.标准答案:D
考生答案:
7. 执行下面的程序后的输出结果为( )
int x,y,z;
x=20,y=40,z=15;
while(y>x)
x+=4,y-=4;
z/=2;
printf("%d,%d,%d",x,y,z); (2分)
A.40,36,30 B.32,8,7 C.32,28,7 D.32,28,7.5
.标准答案:C
考生答案:
8. 以下程序段的输出结果是()
int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z); (2分)
A.3,2,0 B.3,2,-1 C.4,3,-1 D.5,-2,-5
.标准答案:B
考生答案:
9. 下述语句执行后,变量k的值是()
int k=1;
while(k++<10); (2分)
A.10 B.11
C.9 D.此为无限循环,值不定
.标准答案:B
考生答案:
10. 下面程序的运行结果是( )。
main()
{ int c1=2, c2=0;
while(!c2--)
printf("%d,%d", c1--, c2);
} (2分)
A.1,-1 B.不输出任何容
C.2,-1 D.2,0
.标准答案:C
考生答案:
11. 运行以下程序后,如果从键盘上输入china#main( )
{ int v1=0,v2=0;
char ch ;
while((ch=getchar())!='#')
switch(ch)
{
case 'a':
case 'h':
default: v1++;
case '0': v2++;
}
printf("%d,%d\n",v1,v2);
(2分)
A.2,0 B.5,0 C.5,5 D.2,5
.标准答案:C
考生答案:
12. main( )
{
int p[7]={11,13,14,15,16,17,18}, i=0,k=0;
while(i<7&&p[i]%3)
{
k =k+ p[i]; i++;
}
printf("%d\n", k);
}
执行后输出结果是( ) (2分)
A.58 B.53 C.38 D.24
.标准答案:C
考生答案:
13. 有以下程序段: int x=3; do { printf("%d",x-=2);} while(!(--x)); 其输出结果是( ) (2分)
A.1 B.30 C.1-2 D.死循环
.标准答案:C
考生答案:
14. 以下叙述正确的是( ) (2分)
A.do-while语句构成的循环不能用其它语句构成的循环来代替。
B.do-while语句构成的循环只能用break语句退出。
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D.用do-while语句构成的循环,在while后的表达式为零时结束循环
.标准答案:D
考生答案:
15. 以下程序段的输出是()
int x=7,y=5,z=1;
do
{
if(!(z%x))
if(!(z%y))
{printf("%d",z);break;}
z++;
}while(z!=0); (2分)
A.70 B.35 C.105 D.140
.标准答案:B
考生答案:
16. 有以下程序段:
int x=23;
do
{ printf("%d",x--);}
while(!x);
其输出结果是( ) (2分)
A.321 B.23
C.不输出任何容 D.死循环
.标准答案:B
考生答案:
17. 有以下程序段:
int s=0,a=1,n;
scanf("%d",&n);
do
{
s+=1;a=a-2;
}
while(a!=n);
printf("%d\n",s);
若要使程序的输出值为2,则应该从键盘给n输入的值是( ) (2分)
A.-1 B.-3 C.-5 D.0
.标准答案:B
考生答案:
18. 有以下程序段:
int i=0,s=0;
do
{
if(i%2){i++;continue;}
i++;s+=i;
}
while(i<7);
printf("%d\n",s);
其输出结果是( ) (2分)
A.16 B.13 C.28 D.21
.标准答案:A
考生答案:
19. 下列程序段的输出结果是()
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3)continue;
n++;
}while(!i);
n++;
}
printf("n=%d\n",n); (2分)
A.n=5 B.n=2 C.n=3 D.n=4
.标准答案:D
考生答案:
20. 在C语言的循环语句for,while,do-while语句中,用于直接中断最层循环的语句是() (2分)
A.switch B.continue C.break D.if
.标准答案:C
考生答案:
21. 执行以下语句后sum的值为 ( )
int i=10;sum=0;
do
{sum+=i; i++;}
while(i<10); (2分)
A.0 B.1 C.11 D.10
.标准答案:D
考生答案:
22. 以下程序段满足什么条件时循环会结束:
int n=0,p;
do
{
scanf("%d",&p);
n++;
}while(p!=12345&&n<3); (2分)
A.p的值不等于12345并且n的值小于3
B.p的值等于12345并且n的值大于等于3
C.p的值不等于12345或者n的值小于3
D.p的值等于12345或者n的值大于等于3
.标准答案:D
考生答案:
23. 设j为int型变量,则下面for循环语句的执行结果是( )
for(j=10;j>3;j--)
{ if(j%3) j--;
--j;--j;
printf("%d ",j);
} (3分)
A.6 3 B.7 4 C.6 2 D.7 3
.标准答案:B
考生答案:
24. 以下程序的输出结果是( )
main()
{ int i,s=0;
for (i=1;i<10;i+=2) s+=i+1;
printf("%d\n",s);
} (3分)
A.自然数1到9的累加和 B.自然数1到10的累加和
C.自然数1到9中奇数之和 D.自然数1到10中偶数之和
.标准答案:D
考生答案:
25. 以下程序的输出结果是( )
main()
{int i;
for(i='A';i<'I';i++,i++)printf("%c",i+32);
printf("\n");
} (3分)
A.编译不通过,无输出 B.aceg
C.acegi D.abcdefghi
.标准答案:B
考生答案:
26. 下述for语句,假定运行时输入的值不是876
int i,x;
for(i=0,x=1;i<=9&&x!=876;i++)
scanf("%d",&x); (3分)
A.循环10次 B.循环9次
C.无限循环 D.一次也不循环
.标准答案:A
考生答案:
27. 以下程序段的输出结果是()
#include "stdio.h"
main()
{
int k=4,n;
for(n=0;n<k;n++)
{
if(n%3!=0)continue;
k--;
}
printf("%d,%d",n,k);
(3分)
A.1,1 B.2,2 C.3,3 D.4,4
.标准答案:C
考生答案:
28. 以下程序执行后sum的值是( )
main()
{ int i,sum;
for(i=1;i<6;i++) sum+=i;
printf("%d\n",sum);
} (3分)
A.15 B.14 C.不确定 D.0
.标准答案:C
考生答案:
29. 以下程序的输出结果是()
main()
{
int i=0,s=0;
for(;;)
{
if(i==3||i==5)continue;
if(i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
} (3分)
A.10 B.13
C.21 D.程序进入死循环
.标准答案:D
考生答案:
30. 下面程序段的输出结果是()
int a=1,b;
for(b=1;b<=10;b++)
{
if(a>=8) break;
if(a%2==1){a+=5;continue;}
a-=3;
}
printf("%d\n",b); (3分)
A.3 B.4 C.5 D.6
.标准答案:B
考生答案:
31. 下列程序的输出结果是( )
main( )
{
int i, j, m=0, n=0;
for(i=0; i<2; i++)
for(j=0; j<2; j++)
if(j>=i) m=1; n++;
printf("%d\n",n);
(3分)
A.4 B.3 C.2 D.1
.标准答案:D
考生答案:
32. 下列程序段的输出结果是()
int k=0,m=0;
int 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); (3分)
A.k=0,m=3 B.k=0,m=5 C.k=1,m=3 D.k=1,m=5
.标准答案:B
考生答案:
33. 以下程序的输出结果是
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<3;j++)
{ if(j%2) continue;
x++;
}
x++;
}
printf("x=%d\n",x);
} (3分)
A.x=4 B.x=8 C.x=6 D.x=12
.标准答案:B
考生答案:
34. 以下循环体的执行次数是( )
main()
{ int i,j;
for(i=0,j=1;i<=j+1;i+=2,j--)
printf("%d \n",i);} (3分)
A.3 B.2 C.1 D.0
.标准答案:C
考生答案:
35. 以下程序段的输出结果为()
int x, i;
for(i=1;i<=50;i++)
{
x=i;
if(x%2==0)
{
x++;
if(x%3==0)
{
x++;
if(x%7==0)
{ x++;printf("%d ",i);}
}
}
} (3分)
A.28 B.27 C.42 D.26
.标准答案:D
考生答案:
36. 以下程序段不是死循环的是( ) (5分)
A.int i=100;
while(1)
{
i=i%100+1;
if(i>100) break;
}
B.for(;;) ;
C.int k=0;
do{++k;}
while(k<10);
D.int s=36;
while(s);
--s;
.标准答案:C
考生答案:
37. 以下程序的输出结果是( )
main()
{ int i;
for(i=1;i<6;i++)
{ if(i%2){printf("#");continue;}
printf("*");
}
} (3分)
A.#*#*# B.##### C.***** D.*#*#*
.标准答案:A
考生答案:
38. 以下程序的输出结果是( )
main()
{ int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10) break;
if (b%3==1)
{b+=3;continue;}
}
printf("%d\n",a);
(3分)
A.101 B.6 C.5 D.4
.标准答案:D
考生答案:
39. 设x和y均为int型变量,则执行以下的循环后,y值为 ( )
for(y=1,x=1;y<=50;y++)
{
if(x==10)break;
if (x%2==1)
{x+=5;continue;}
x-=3;
} (3分)
A.2 B.4 C.6 D.8
.标准答案:C
考生答案:
40. 下面程序段的输出结果为()
int i,s;
s=0;
for(i=1;i<101;i++)
{
s+=i;
if(s>5) break;
}
printf("s=%d\n",s); (3分)
A.5050 B.6 C.5 D.0
.标准答案:B
考生答案:
10 / 10
展开阅读全文