循环和条件作业.docx
《循环和条件作业.docx》由会员分享,可在线阅读,更多相关《循环和条件作业.docx(13页珍藏版)》请在冰豆网上搜索。
循环和条件作业
条件和循环二级试题
1.若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.
答案:
Y
2.以下程序的运行结果是()。
main()
{intn;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d",n);
}
}
A)12457810
B)369
C)12
D)1234567890
答案:
A
3.设j和k都是int类型,则for循环语句
for(j=0,k=-1;k=1;j++,k++)printf("****\n");()。
A)循环结束的条件不合法
B)是无限循环
C)循环体一次也不执行
D)循环体只执行一次
答案:
B
4.若所用变量均已正确定义,则执行下面程序段后的值是【1】.
for(i=0;i<2;i++)printf("YES");printf("\n");
答案:
YESYES
5.设j和k都是int类型,则下面的for循环语句()。
for(j=0,k=0;j<=9&&k!
=876;j++)scanf("%d",&k);
A)最多执行10次
B)最多执行9次
C)是无限循环
D)循环体一次也不执行
答案:
A
6.以下语句中,循环次数不为10次的语句是()。
A)for(i=1;i<10;i++);
B)i=1;do{i++;}while(i<=10);
C)i=10;while(i>0){--i;}
D)i=1;m:
if(i<=10){i++;gotom;}
答案:
A
7.以下程序段的输出结果为()。
for(i=4;i>1;i--)
for(j=1;j
putchar('#');
A)无
B)######
C)#
D)###
答案:
B
8.以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);()。
A)是无限循环
B)循环次数不定
C)4次
D)3次
答案:
C
9.下面有关for循环的正确描述是()。
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案:
D
10.若i为整型变量,则以下循环执行次数是()。
for(i=2;i==0;)printf("%d",i--);
A)无限次
B)0次
C)1次
D)2次
答案:
B
11.执行语句for(i=1;i++<4;);后变量i的值是()。
A)3
B)4
C)5
D)不定
答案:
C
12.对for(表达式1;;表达式3)可理解为()。
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
答案:
B
13.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【1】.
for(i=0,j=10;i<=j;i++,j--)
k=i+j;
答案:
10
14.若所用变量都已正确定义,请填写以下程序段的输出结果【1】.
for(i=1;i<=5;i++);
printf("OK\n");
答案:
OK
15.执行以下程序段后,s的值是【1】inta[]={5,3,7,2,1,5,3,10},s=0,k;
for(k=0;k<8;k+=2)
s+=*(a+k);
答案:
16
16.设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】.
for(x=0,y=0;y!
=123&&x<3;x++)
scanf("%d",&y);
答案:
3
17.若有说明intc;则while(c=getchar());是正确的C语句。
答案:
Y
18.以下程序的运行结果是()。
main()
{
inti=1,sum=0;
while(i<10)sum=sum+1;i++;
printf("i=%d,sum=%d",i,sum);
}
A)i=10,sum=9
B)i=9,sum=9
C)i=2,sum=1
D)运行出现错误
答案:
D
19.设j和k都是int类型,则for循环语句
for(j=0,k=-1;k=1;j++,k++)printf("****\n");()。
A)循环结束的条件不合法
B)是无限循环
C)循环体一次也不执行
D)循环体只执行一次
答案:
B
20.以下程序段要求从键盘输入字符,当输入字母为'Y'时,执行循环体,则括号内应填写【】.
ch=getchar();
while(ch____'Y')/*在括号中填写*/
ch=getchar();
答案:
==
21.设j和k都是int类型,则下面的for循环语句()。
for(j=0,k=0;j<=9&&k!
=876;j++)scanf("%d",&k);
A)最多执行10次
B)最多执行9次
C)是无限循环
D)循环体一次也不执行
答案:
A
22.以下语句中,循环次数不为10次的语句是()。
A)for(i=1;i<10;i++);
B)i=1;do{i++;}while(i<=10);
C)i=10;while(i>0){--i;}
D)i=1;m:
if(i<=10){i++;gotom;}
答案:
A
23.以下程序段的输出结果为()。
for(i=4;i>1;i--)
for(j=1;j
putchar('#');
A)无
B)######
C)#
D)###
答案:
B
24.语句while(!
E);中的表达式!
E等价于()。
A)E==0
B)E!
=1
C)E!
=0
D)E==1
25.C语言中while和do-while循环的主要区别是()。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件更严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
答案:
A
26.以下描述中正确的是()。
A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作
D)do-while循环中,根据情况可以省略while
答案:
C
27.以下叙述正确的是()。
A)do-while语句构成的循环不能用其它语句构成的循环来代替.
B)do-while语句构成的循环只能用break语句退出.
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环.
D)用do-while语句构成的循环,在while后的表达式为零时结束循环
答案:
D
28.程序段intk=10;while(k=0)k=k-1循环体语句执行【1】次.
答案:
0
29.若输入字符串:
abcde<回车>,则以下while循环体将执行【1】次.
While((ch=getchar())=='e')printf("*");
答案:
0
30.以下do-while语句中循环体的执行次数是【1】.
a=10;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
答案:
3
31.以下不是无限循环的语句为()。
A)for(y=0,x=1;x>++y;x=i++)i=x;
B)for(;;x++=i);
C)while
(1){x++;}
D)for(i=10;;i--)sum+=i;
答案:
A
32.若有intⅰ=10,j=0;则执行完语句
if(j=0)ⅰ++;elseⅰ--;ⅰ的值为11。
答案:
N
33.C语言源程序的基本单位是()。
A)过程
B)函数
C)子程序
D)标识符
答案:
B
34.假定所有变量均已正确定义,下列程序段运行后x的值是()。
k1=1;
k2=2;
k3=3;
x=15;
if(!
k1)x--;
elseif(k2)x=4;
elsex=3;
A)14
B)4
C)15
D)3
答案:
B
35.执行下列语句后的输出为()。
intj=-1;
if(j<=1)printf("****\n");
elseprintf("%%%%\n");
A)****
B)%%%%
C)%%%%c
D)有错,执行不正确
答案:
A
36.C语言的if语句嵌套时,if与else的配对关系是()。
A)每个else总是与它上面的最近的if配对
B)每个else总是与最外层的if配对
C)每个else与if的配对是任意的
D)每个else总是与它上面的if配对
答案:
A
37.为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的【1】语句配对.
答案:
if
38.当a=1,b=2,c=3时,执行以下程序段后a=【】.
if(a>c)b=a;
a=c;
c=b;
答案:
3
39.当a=1,b=2,c=3时,执行以下程序段后b=【】.
if(a>c)b=a;
a=c;
c=b;
答案:
2
40.当a=1,b=2,c=3时,执行以下程序段后c=【】.
if(a>c)b=a;
a=c;
c=b;
答案:
2
41.当a=3,b=2,c=1;时,执行以下程序段后a=【】.
if(a>b)a=b;
if(b>c)b=c;
elsec=b;
c=a;
答案:
2
42.当a=3,b=2,c=1;时,执行以下程序段后b=【1】.
if(a>b)a=b;
if(b>c)b=c;
elsec=b;
c=a;
答案:
1
43.当a=3,b=2,c=1;时,执行以下程序段后c=【1】.
if(a>b)a=b;
if(b>c)b=c;
elsec=b;
c=a;
答案:
2
44.inta=1,b=2,c=3;
if(a>c)b=a;a=c;c=b;则c的值为()。
A)1
B)2
C)3
D)不一定
答案:
B
45.inta=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
则a的值为()。
A)1
B)2
C)3
D)不一定
答案:
A
46.inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为()。
A)3
B)2
C)1
D)0
答案:
C
47.选择结构中的条件与循环结构中循环成立的条件,
在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。
哪个数作为逻辑“假”值()。
A)-1
B)1
C)非零的数
D)0
答案:
D
48.inti=20;switch(i/10){case2:
printf("A");
case1:
printf("B");}的输出结果为A。
答案:
N
49.下列程序的输出结果是()。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A)a=1,b=0
B)a=2,b=1
C)a=1,b=1
D)a=2,b=2
答案:
B
50.下列程序的输出结果是()。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A)a=1,b=0
B)a=2,b=1
C)a=1,b=1
D)a=2,b=2
答案:
B