第4章选择程序习题110403文档格式.docx
《第4章选择程序习题110403文档格式.docx》由会员分享,可在线阅读,更多相关《第4章选择程序习题110403文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
main()
{
intp,a=5;
if(p=a!
=0)
printf("
p);
else printf("
p+2);
A)1 B)2C)5D)7
7.若k是int型变量,且有下面的程序段,,其执行后的输出结果是_______。
D?
k=-3;
if(k<
=0)printf("
####"
);
elseprintf("
"
A)####B)&
C)####&
D)有语法错误,无输出结果
8.以下程序输出结果是_______。
main()
{
intm=5;
if(m++>
5)printf("
,m);
,m--);
A)7B)6C)5D)4
9.若执行下面的程序时从键盘上输入3和4,则输出是_______。
B
A)14B)16C)18D)20
{
inta,b,s;
scanf("
%d%d"
a,&
b);
s=a;
if(a<
b)s=b;
s=s*s;
printf("
s);
10.假定所有变量均已正确定义,下列程序段运行后x的值是_______。
B
a=b=c=0;
x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A)34
B)4
C)35
D)3
11.已有定义:
charc;
,程序前面已在命令行中包含ctype.h文件。
不能用于判断c中的字符是否为大写字母的表达式是_______。
[G07Q1-23答案:
B]
A)isupper(c)B)'
A'
<
=c<
='
Z'
C)'
=c&
c<
D)c<
=('
z'
-32)&
('
a'
-32)<
=c
12.若有定义语句:
inta=1,b=2,c=3,d=4,e;
则执行下述语句后,e的值为_______。
C
e=a>
b?
a:
c<
d?
c:
d;
A)1
B)2
C)3
D)4
13.执行下述程序的输出结果是_______。
A
#include<
stdio.h>
main()
{
intx=100,a=10,b=20,ok1=5,ok2=0;
if(a<
b)
if(b!
=15)
if(!
ok1)
x=1;
else
if(ok2)
x=10;
x=-1;
printf("
x);
A)-1
B)0
C)1
D)不确定的值
14.与语句y=(x>
0?
1:
x<
-1:
0);
的功能相同的if语句是_______。
A
A)if(x>
0)y=1;
B)if(x)
elseif(x0)y=-1;
if(x>
elsey=0;
elseif(x<
0)y=-1;
elsey=0;
C)y=-1;
D)y=0;
if(x)
if(x>
elseif(x==0)y=0;
elsey=-1;
15.两次运行下述程序,如果从键盘上分别输入6和4,则输出结果是_______。
A
{
intx;
scanf("
&
x);
if(x++>
5)
else
x--);
A)7和5
B)6和3
C)7和4
D)6和4
16.执行下述程序的输出结果是_______。
C
#include<
main()
{
inta=-1,b=1,k;
if((++a<
0)&
(!
b--<
=0))
%d%d\n"
a,b);
else
b,a);
A)-11
B)01
C)1
0
D)00
17.假定所有变量均已正确说明,执行下述程序段后x的值是_______。
a=b=c=0;
x=35;
if(!
a)x--;
elseif(b)if(c)x=3;
B)4
C)35
D)3
18.若设n是个整型变量且已有值,则与给定条件表达式(!
n)?
n+10:
n-10等价的条件表达式是_______。
A)(n!
=0)?
n-10
B)(n!
=1)?
n-10
C)(n==0)?
D)(n==1)?
19.设有程序如下:
则以下叙述正确的是_______。
intx=3,y=0,z=0;
if(x=y+z)
;
****\n"
else
####\n"
A)程序有语法错误,不能通过编译
B)程序可执行,输出结果是****
C)程序可以通过编译,但是不能通过连接,因而不能运行
D)程序可执行,输出结果是####
20.与语句if(a>
b)if(c>
d)x=1;
elsex=2;
等价的是_______。
A
A)if(a>
b){if(c>
B)if(a>
}elsex=2;
C)if((a>
b)&
(c>
d))x=1;
D)if(a<
=b)x=2;
elseif(c>
21.设有以下程序段,
则执行以下程序段的输出结果为_______。
B
int
a=1,b=0;
switch
(a)
case1:
switch
(b)
{case0:
**0**"
**1**"
break;
case2:
**2**"
\n"
A)**0**
B)**0****2**
C)**0****1****2**
D)有语法错误
22.执行下列程序段后输出的结果是_______。
C
inta=8,b=7,c=6;
if(a<
b)if(b>
c){a=c;
c=b;
}
printf("
%d,%d,%d\n"
a,b,c);
A)6,7,7
B)6,7,8
C)8,7,6
D)8,7,8
23.若变量已正确定义,有以下程序段,其输出结果是_______。
B
inta=3,b=5,c=7;
if(a>
b)a=b;
c=a;
if(c!
=a)c=b;
A)程序段有语法错
B)3,5,3
C)3,5,5
D)3,5,7
24.有以下程序,程序的运行结果是_______。
D
#include<
intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
case1:
b++;
}
case2:
b++;
case3:
}
printf("
a=%d,b=%d\n"
A)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=1
25.有以下计算公式,若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是_______。
A)if(x>
=0)y=sqrt(x);
B)y=sqrt(x);
elsey=sqrt(-x);
if(x<
0)y=sqrt(-x);
C)if(x>
D)y=sqrt(x>
=0?
x:
-x);
If(x<
26.设变量x和y均已正确定义并赋值。
以下if语句中,在编译时将产生错误信息的是_______。
C
A)if(x++);
B)if(x>
y&
y!
=0);
0)x--D)if(y<
0){;
elsey++;
elsex++;
27.在嵌套使用if语句时,C语言规定else总是_______。
A)和之前与其具有相同缩进位置的if配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对
D)和之前的第一个if配对
28.下列叙述中正确的是_______。
A)break语句只能用于switch语句
B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用
D)在switch语句中,不一定使用break语句
29.若有定义:
floatx=1.5;
inta=1,b=3,c=2;
则正确的switch语句是_______。
A)switch(x)B)switch((int)x);
{case1.0:
*\n"
{case1:
case2.0:
**\n"
}case2:
C)switch(a+b)D)switch(a+b)
{case1:
{case1:
case2+1:
}casec:
30.有以下程序,程序输出结果是_______。
{
inta=0,b=0,c=0,d=0;
if(a=1)b=1;
c=2;
elsed=3;
%d,%d,%d,%d\n"
a,b,c,d);
A)0,1,2,0
B)0,0,0,3
C)1,1,2,0
D)编译有错
31.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是_______。
A)k%2
B)k%2==1
C)(k%2)!
=0
D)!
k%2==1
32.设变量a、b、c、d和y都已正确定义并赋值。
若有以下if语句,该语句所表示的含义是_______。
if(a<
b)if(c==d)y=0;
elsey=1;
A)
B)
C)
D)
33.以下程序的输出结果是_______。
inti=1,j=2,k=3;
if(i++==1&
(++j==3||k++==3))
%d%d%d\n"
i,j,k);
A)123
B)234
C)223
D)233
34.若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a<
b?
a:
d?
c:
d的值是_______。
A)1B)2C)3D)4
35.下列程序段中,能将变量x、y中值较大的数保存到变量a,值较小的数保存到变量b的程序段是_______。
A)if(x>
y)a=x;
b=y;
elsea=y;
b=x;
B)if(x>
y){a=x;
}elsea=y;
C)if(x>
}else{a=y;
D)if(x>
}else(x<
y){a=y;
36.有以下程序,执行后输出的结果是_______。
inti=1,j=1,k=2;
if((j++||k++)&
i++)
i,j,k);
A)1,1,2B)2,2,1C)2,2,2D)2,2,3
37.有以下程序,执行后输出的结果是_______。
inta=5,b=4,c=3,d=2;
if(a>
b>
c)
,d);
elseif((c-1>
=d)==1)
d+1);
d+2);
A)2B)3C)4D)编译时有错,无结果
38.对下述程序,_______是正确的判断。
intx,y;
%d,%d"
x,&
y);
if(x>
y)
x=y;
y=x;
elsex++;
y++;
%d,%d\n"
,x,y);
A)有语法错误,不能通过编译B)若输入数据3和4,则输出4和5
C)若输入数据4和3,则输出3和4D)若输入数据4和3,则输出4和4
39.若有表达式(w)?
(--x):
(++y),则其中与w等价的表达式是_______。
A)w==1B)w==0C)w!
=1D)w!
=0
40.执行以下程序段后,w的值为_______。
intw='
x=14,y=15;
w=((x||y)&
(w<
'
));
A)-1B)NULLC)1D)0
41.有以下程序段,程序的输出结果是_______。
inta,b,c;
a=10;
b=50;
c=30;
if(a>
b)a=b,b=c;
a=%db=%dc=%d\n"
a,b,c);
A)a=10b=50c=10
B)a=10b=50c=30
C)a=10b=30c=10
D)a=50b=30c=50
42.有以下程序,程序的运行结果是_______。
D
main()
intx=1,y=2,z=3;
if(x>
if(y<
z)printf("
++z);
elseprintf("
++y);
x++);
A)331B)41C)2D)1
43.下面_______表达式满足x为奇数时为真,x为偶数时为假。
A)x%2==0B)(x/2*2-x)==0C)x%2D)!
(x%2!
44.C语言中对于嵌套if语句规定else总是与_______配对。
A)第一个ifB)其之前最近的if
C)缩进位值相同的ifD)其之前最近的不带else的if语句
45.已有声明“inta=3,b=3,c=2;
”,以下选项中值为0的表达式是________。
A)!
a&
!
b&
cB)!
a||!
b||cC)a==b&
=cD)a>
=b&
c
46.有以下程序
x);
if(x<
=3);
elseif(x!
=10)
x);
程序运行时,输入输入的值在哪个范围才会有输出结果________。
A)不等于10的整数B)大于3且不等于10的整数
C)大于3或等于10的整数D)小于3的整数
47.有以下程序
inta=1,b=2,c=3,d=0;
if(a==1&
b++==2)
if(b!
=2||c--!
=3)
a,b,c);
elseprintf("
程序运行后的输出结果是________。
A)1,2,3B)1,3,2C)1,3,3D)3,2,1
48.当c的值不为0时,在下列选项中不能正确将c的值赋给变量a和b的是_______。
A)c=b=a;
B)(a=c)||(b=c)A/B/D
C)(a=c)&
(b=c) D)a=c=b;
49.以下可以判断字符变量ch中为数字字符的有_______。
A/B/C
A)isdigit(ch)B)ch>
='
0'
&
ch<
9'
C)ch>
=48&
=57D)ch>
=0&
=9
50.语句while(!
E);
中的!
E条件与下列关系式等价的有_______。
A/B
A)E!
=1B)E==0C)E!
=0D)E==1
51.以下叙述正确的是________。
C
A)"
或"
运算时,两个变量都为"
1"
时,结果为"
0"
B)"
非"
运算是二元运算符
C)所有逻辑运算都是按位操作的
D)16H和16D的"
与"
运算结果为32D
52.若给定条件表达式(M)?
(a++):
(a--)则其中表达式M和________等价。
A)(M==0)B)(M==1)C)(M!
=0)D)(M=0)
53.为表示关系x≥y≥z,应使用的C语言表达式是________。
A
A)(x>
=y)&
(y>
=z)B)(x>
=y)AND(y>
=z)
C)(x>
=y>
=z)D)(x>
54.以下程序的输出结果是________。
inta=2,b=-1,c=2;
b)
if(b<
0)c=0;
elsec+=1;
c);
A)0B)1C)2D)3
55.