C语言题库循环结构.docx
- 文档编号:26212090
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:30
- 大小:23.48KB
C语言题库循环结构.docx
《C语言题库循环结构.docx》由会员分享,可在线阅读,更多相关《C语言题库循环结构.docx(30页珍藏版)》请在冰豆网上搜索。
C语言题库循环结构
一、选择题
1.以下叙述正确的是
A:
do-while语句构成的循环不能用其它语句构成的循环来代替。
B:
do-while语句构成的循环只能用break语句退出。
C:
用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D:
用do-while语句构成的循环,在while后的表达式为零时结束循环。
2.下面有关for循环的正确描述是
A:
for循环只能用于循环次数已经确定的情况
B:
for循环是先执行循环体语句,后判定表达式
C:
在for循环中,不能用break语句跳出循环体
D:
for循环体语句中,可以包含多条语句,但要用花括号括起来
3.C语言中while和do-while循环的主要区别是
A:
do-while的循环体至少无条件执行一次
B:
while的循环控制条件比do-while的循环控制条件严格
C:
do-while允许从外部转到循环体内;
D:
do-while的循环体不能是复合语句;
4.下列关于switch语句和break语句的结论中,正确的是
A:
break语句是switch语句中的一部分
B:
在switch语句中可以根据需要使用或不使用break语句
C:
在switch语句中必须使用break语句
D:
switch语句是break语句的一部分
5..以下正确的描述是
A:
continue语句的作用是结束整个循环的执行;
B:
只能在循环体内和switch语句体内使用break语句;
C:
在循环体内使用break语句或continue语句的作用相同;
D:
从多层循环嵌套中退出时,只能使用goto语句;
6.语句while(!
e);中的条件!
e等价于
A:
e==0
B:
e!
=0
C:
e!
=1
D:
~e
7.在以下给出的表达式中,与while(E)中的E不等价的表达式是
A:
!
E=0
B:
E>0||E<0
C:
E==0
D:
E!
=0
8.在C语言中,当do-while语句中的条件为()时,结束该循环。
A:
TURE
B:
1
C:
0
D:
非0
9.对于for(表达式1;;表达式3)可理解为
A:
for(表达式1;0;表达式3)
B:
for(表达式1;1;表达式3)
C:
for(表达式1;表达式1;表达式3)
D:
for(表达式1;表达式3;表达式3)
10.以下不是死循环的语句为()
A:
for(y=1,x=1;x>=++y;x++)
B:
for(;;x++)
C:
while
(1){x++;}
D:
for(i=10;;i--)
11.以下不构成无限循环的语句或者与语句组是
A:
n=0;do{++n;}while{n<=0};
B:
n=0;while
(1){n++;}
C:
n=10;while(n);{n--;}
D:
for(n=0,i=1;i++)n+=1;
12.下列循环语句中有语法错误的是
A:
while(x=y)5;
B:
while(0);
C:
do2;while(x==b);
D:
dox++while(x==10);
13.在C语言中,设已定义k为int整型变量,则有下面while循环执行()
次。
k=10;while(k==0)k=k-1;
A:
10
B:
无限
C:
0
D:
1
14.有如下程序
main()
{intn=9;
while(n>6){n--;printf(“%d”,n);}
}
该程序段的输出结果是
A:
987
B:
876
C:
8765
D:
9876
15.以下程序的输出结果是()。
main()
{intn=4;
while(n--)printf("%d",--n);
}
A:
20
B:
31
C:
321
D:
210
16.以下程序的输出结果是()。
main()
{intnum=0;
while(num<=2)
{num++;printf(“%d\n”,num);
}
}
A:
1
2
3
4
B:
1
2
3
C:
1
2
D:
1
17.定义如下变量:
intn=10;则下列循环的输出结果是
while(n>7)
{n--;
printf("%d\n",n);
}
A:
10
9
8
7
B:
9
8
7
6
C:
10
9
8
D:
9
8
7
18.以下程序的输出结果是()
main()
{intnum=0;
while(num<=2)
{num++;
printf(“%d,”,num);
}
}
A:
1,
B:
1,2,
C:
1,2,3,
D:
1,2,3,4,
19.请读程序:
#include
main()
{intmun=0;
while(num<=2)
{num++;printf("%d\n",num);}
}
上面程序的输出结果是
A:
1
2
B:
1
2
3
C:
1
2
3
4
D:
1
20.下面程序片段,退出while循环时,s的值是_____。
inti=0,s=1;
while(i<3)s+=(++i);
A:
7
B:
6
C:
5
D:
4
21.下面程序片段,退出while循环时,s的值是____。
inti=0,s=1;
while(i<3)s+=(i++);
A:
6
B:
5
C:
4
D:
3
22.以下程序的输出结果是()
main()
{intx=0,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
23.以下程序的输出结果是()
main()
{intn=0;
while(n++<=2);
printf(“%d”,n);
}
A:
2
B:
3
C:
4
D:
有语法错误
24.以下程序的输出结果是()
main()
{intn=10;
while(n>7)
{n--;
printf(“%d,”,n);
}}
A:
10,9,8,
B:
9,8,7,
C:
10,9,8,7,
D:
9,8,7,6,
25.在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为
#include
main()
{charch;
while((ch=getchar())!
='\n')
{if(ch>='A'&&ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
A:
ABCdef
B:
abcDEF
C:
abc
D:
DEF
26.有以下程序:
#include
main( )
{int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是( )。
A.y=0
B.y=-1
C.y=l
D.while构成无限循环
27.以下程序的输出结果是()
main()
{inta=1,b=2,c=2,t;
while(a
printf(“%d,%d,%d”,a,b,c);
}
A:
1,2,0
B:
2,1,0
C:
1,2,1
D:
2,1,1
28.有以下程序段
#include
main()
{
while(getchar()!
=’\n’);
}
以下叙述中正确的是( )。
A.此while语句将无限循环
B.getchar()不可以出现在while语句的条件表达式中
C.当执行此while语句时,只有按回车键程序才能继续执行
D.当执行此while语句时,按任意键程序就能继续执行
29.有以下程序:
#include
main( )
{int a=1,b=2;
while(a<6){b+=a;a4+=2;b%=l0;)
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是( )。
A.5,11
B.7,1
C.7,11
D.6,1
30.有以下程序:
#include,
main()
{int S;
scanf("%d",&s);
while(s>O)
{switch(s)
{case l:
printf("%d",s+5);
case 2:
printf("%d",s+4);break;
case 3:
printf("%d",s+3);
default:
("%d",s+1);break;
}
scanf("%d",&s);
}
}
运行时,若输入1 2 3 4 5 0<回车>,由输出结果是( )。
A.6566456
B.66656
C.66666
D.6666656
31.下面的程序
main()
{intx=3;
do{
printf("%d\n",x-=2);
}while(!
(--x));}
A:
输出的是1
B:
输出的是1和-2
C:
输出的是3和0
D:
是死循环
32.以下程序段是()
x=-1;
do
{x=x*x;}while(!
x);
A:
死循环
B:
循环执行两次
C:
循环执行一次
D:
有语法错误
33.有以下程序段
intx=3
do
{printf(“%d”,x-=2);}
while(!
(--x));
其输出结果是
A:
1
B:
30
C:
1-2
D:
死循环
34.有以下程序段
intn,t=1,s=0;
scanf("%d",&n);
do{s=s+t;t=t-2;}while(t!
=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是()。
A:
任意正奇数
B:
任意负偶数
C:
任意正偶数
D:
任意负奇数
35.下面的程序
main()
{intx=3;
do{
printf("%d\n",x-=2);
}while(!
(--x));}
A:
输出的是1
B:
输出的是1和-2
C:
输出的是3和0
D:
是死循环
36.有如下程序
main()
{intx=23;
do
{printf(“%d”,x--);}
while(!
x);
}
该程序的执行结果是
A:
321
B:
23
C:
不输出任何内容
D:
陷入死循环
37.有以下程序
main()
{ints=0,a=1,n;
scanf("%d",&n);
do
{s+=1;a=a-2;}
while(a!
=n);
printf("%d\n",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是
A:
-1
B:
-3
C:
-5
D:
0
38.假定a和b为int型变量,则执行以下语句后b的值为
a=1;b=10;
do
{b-=a;a++;}
while(b--<0);
A:
9
B:
-2
C:
-1
D:
8
39.执行以下程序后,输出的结果是。
main()
{inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);
}
A:
–1
B:
1
C:
8
D:
0
40.以下程序的输出结果是()
main()
{inta=1,b=10;
do{b-=a;a++;}while(b--<0);
printf(“a=%d,b=%d”,a,b);
}
A:
a=3,b=11
B:
a=2,b=8
C:
a=1,b=-1
D:
a=4,b=9
41.若i和k都是int类型变量,有以下for语句:
for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是( )。
A.循环体执行两次
B.循环体执行一次
C.循环体一次也不执行
D.构成无限循环
42.以下程序执行后sum的值是()。
min()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf(“%d\n”,sum);
}
A:
15
B:
14
C:
不确定
D:
0
43.在C语言中,执行语句:
for(j=1;j<5;j++);后,变量j的值是()。
A:
3
B:
4
C:
5
D:
6
44.已知inti,j;执行语句for(i=1,j=10;i 是______。 A: 3,6 B: 4,4 C: 5,2 D: 其它三个答案都不对 45.以下循环体的执行次数是()。 main() {inti,j; for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i); } A: 3 B: 2 C: 1 D: 0 46.若i,j已定义为int类型,则一下程序段中内循环体的总的执行次数是 for(i=5;i;i--) for(j=0;j<4;j++) A: 20 B: 25 C: 24 D: 30 47.有以下程序 main() {inti,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中的偶数之和 48.若x是int型变量,且有下面的程序片段: for(x=3;x<6;x++)printf((x%2)? ("**%d"): ("##%d\n"),x); 上面程序片段的输出结果是 A: **3 ##4 B: ##3 **4 C: ##3 **4##5 **5 D: **3##4 **5 ##5 49.以下程序的输出结果是()。 main() {intx=10,y=10,i; for(i=0;x>8;y=++i) printf("%d,%d",x--,y); } A: 10192 B: 9876 C: 10990 D: 101091 50.有如下程序 main() {inti,sum; for(i=1;i<=3;sum++)sum+=i; printf(“%d\n”,sum); } 该程序的执行结果是 A: 6 B: 3 C: 死循环 D: 0 51.以下程序的输出结果是() main() {inti; for(i=1;i<=5;i++) {if(i%2)printf(“*”); elsecontinue; printf(“#”); } printf(“$”); } A: *#*#*#$ B: *#*#$ C: #*#*#*$ D: #*#*$ 52.有以下程序 #include main() {inty=9; for(;y>0;y--) if(y%3==0)printf(“%d”,--y); } 程序的运行结果是 A: 852 B: 875421 C: 741 D: 963 53.以下程序段中的变量已正确定义 for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”); 该程序段的输出结果是() A: * B: ******** C: ** D: **** 54.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已 赋值(c大于0) s=a; for(b=1;b<=c;b++)s=s+1; 则与上述程序段功能等价的赋值语句是 A: s=a+b; B: s=a+c; C: s=s+c; D: s=b+c; 55.设j为int型变量,则下面for循环语句的执行结果是 for(j=10;j>3;j--) {if(j%3)j--; --j;--j; printf("%d",j); } A: 63 B: 74 C: 62 D: 73 56.下述程序的输出结果是( )。 #include main() {int i; for(i=1;i<=10;i++) {if(i*i>=20)&&(i*i<=lOO)) break; } printf("%d\n",i*i); } A.49 B.36 C.25 D.64 57.下列程序的输出结果是( )。 #include main() { int a=0,i; for(i=1;i<5;i++) { switch(i) {case 0: case 3: a+=1; case l: case 2: a+=2; default: a+=3; } printf("%d",i); } A.19 B.1 C.6 D.8 58.有下列程序: 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); } 程序执行后的输出结果是( )。 A.x=4 B.x=8 C.x=6 D.x=12 59.有以下程序: #include main( ) {char a,b,C; b=’l’;c=’A’; for(a=0;a<6;a++) {if(a%2)putchar(b+a); else putchar(c+a); } } 程序运行后的输出结果是( )。 A.1B3D5F B.ABCDEF C.A2C4E6 D.123456 60.要求以下程序的功能是计算: s=1+1/2+1/3+…+1/100。 main() {intn;floats; s=1.0 for(n=100;n>1;n--) s=s+1/n; printf(“%6.4f\n”,s); } 程序运行后输出结果错误,导致错误结果的程序行是() A: s=1.0 B: for(n=100;n>1;n--) C: s=s+1/n; D: printf(“%6.4f\n”,s); 二、填空题 1、在C语言中,实现循环的语句主要有、、 2、在C语言程序中,当do-while语句构成的循环中的条件为______时,结束循环。 3.下面程序的功能是计算1至50中是7的倍数的数值之和,请进行填空。 main() { inti,sum=0; for(i=1;i<=50;i++) if(_____)sum+=i; printf(“%d”,sum); } 4.以下程序的功能是计算: s=1+12+123+1234+12345。 请填空。 main() {intt=0,s=0,i; for(i=1;i<=5;i++) {t=i+;s=s+t;} printf("s=%d\n",s); } 5.以下程序运行后的输出结果是 main() { charc1,c2; for(c1='0',c2='9';c1 printf("%c%c",c1,c2); printf(""); } 6.有以下程序 main() {intt=1,i=5; for(;i>=0;i--)t*=i; printf(“%d\n”,t); } 执行后输出结果是 7.以下程序的输出结果是 main() {ints,i; for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s); } 8.以下程序运行后的输出结果是 main() {inti=10,j=0; do {j=j+i;i-; }while(i>2); printf(“%d\n”,j); } 9.设有以下程序: main() {intn1,n2; scanf(“%d”,&n2); while(n2! =0) {n1=n2%10; n2=n2/10; printf(“%d”,n1); } } 程序运行后,如果从键盘上输入1298;则输出结果为 10.下面程序的功能是: 计算1到10之间奇数之和及偶数之和,请填空。 #include main() {inta,b,c,i; a=c=0 for=(i=0;i<10;i+=2) {a+=i; c+=b; } printf("偶数之和=%d\n",a); printf("奇数之和=%d\n",c-11); } 11.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--)k=i+j; 12.要使以下程序段输出10个整数,请填入一个整数。 for(i=0;i<=;printf(“%d\n”,i+=2)); 13.以下程序的功能是: 从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 请填空: main() {floatx,max,min; scanf(“%f”,&x); max=x;min=x: while (1) {if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库 循环 结构