第五章选择结构程序设计2445Word文件下载.docx
《第五章选择结构程序设计2445Word文件下载.docx》由会员分享,可在线阅读,更多相关《第五章选择结构程序设计2445Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
D.能判断x和y是否相等
6.以下有关switch语句的正确说法是(B)。
A.break语句是语句中必须的一部分
B.在switch语句中可以根据需要使用或不使用break语句
C.break语句在switch语句中不可以使用
D.在switch语句中的每一个case都要用break语句
7.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>
b)&
(n=c>
d)后,n的值为(B)
A.1
B.2
C.3
D.4
8.要用C语言表示数学关系式a≥b≥c,正确的表达式是(D)。
A.a>
=b>
=c
B.(a>
=b)&
(b>
=c)
C.(a>
=b)||(b>
=c)
D.(a>
9.与y=(x>
0?
1:
x<
-1:
0);
的功能相同的if语句是(A)。
A.if(x>
0)y=1;
elseif(x<
0)y=-1;
elsey=0;
B.if(x)
if(x>
elsey=0;
C.y=-1;
if(x)
if(x>
elseif(x==0)y=0;
elsey=-1;
D.y=0;
=0)
10.已知year为整型变量,不能使表达式
(year%4==0&
year%100!
=0)||year%400==0的值为"
真"
的数据是(A)。
A.1990
B.1992
C.1996
D.2000
11.以下运算符中,优先级最高的运算符是(C)。
A.||
B.%
C.!
D.==
12.在嵌套使用if语句时,C语言规定else总是(C)。
A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
13.有如下程序段inta=14,b=15,x;
charc=′A′;
x=(a&
(c<
′B′);
执行该程序段后,x的值为(D)。
A.ture
B.false
C.0
D.1
14.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是(C)。
A.(!
E==0)
B.(E>
0‖E<
0)
C.(E==0)
D.(E!
15.有以下程序
main()
{inta=0,b=0,c=0,d=0;
if(a=1)b=1;
c=2;
elsed=3;
printf("
%d,%d,%d,%d\n"
,a,b,c,d);
程序输出(D)。
A.0,1,2,0
B.0,0,0,3
C.1,1,2,0
D.编译有错
16.以下关于逻辑运算符两侧运算对象的叙述中正确的是(D)。
A.只能是整数0或1
B.只能是整数0或非0的整数
C.可以是结构体类型的数据
D.可是任意合法的表达式
17.有以下程序
Main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:
n+=1;
break;
Default:
n=0;
k--;
Case2:
case4:
n+=2;
Printf(“%d”,n);
}while(k>
0&
n<
5);
}
程序运行后的输出结果是(A)。
A.2345
B.235
C.2356
D.2356
18.表达式“0?
(0?
3:
2):
(10?
1:
0)”的值为(C)。
A.3
B.2
C.1
D.0
19.以下程序的输出结果是(A)。
{inta=4,b=5,c=0,d;
d=!
a&
!
b||!
c;
%d\n"
d);
A.1
B.0
C.非0数
D.-1
20.设实型变量为f1、f2、f3、f4的值分别为4,3,2,1整型变量ml、m2的值为1。
表达式“(ml=fl>
f2)&
(m2=f3<
f4)”的值是(A)。
A.0
B.1
C.2
D.出错
21.有如下条件表达式,若a=2、b=4、c=5、d=7则表达式的值为(D)。
a>
b?
a:
c>
d?
c:
d
A.2
C.5
D.7
22.以下程序输出结果是(B)。
main()
{intm=5;
if(m++>
5)printf("
m);
elseprintf("
m--);
A.7
B.6
D.4
23.下列if语句中,不正确的是(C)。
A.if(x>
y);
B.if(x==y)x+=y;
C.if(x!
=y)scanf("
%d"
&
x)elsex=1;
D.if(x<
y){x++;
y++}
24.表示关系x<
=y<
=z的c语言表达式为(A)。
A.(X<
=Y)&
(Y<
=Z)
B.(X<
=Y)AND(Y<
C.(X<
=Y<
D.(X<
25.C语言中数组下标的下限是(B)。
C.视具体情况而定
D.无固定下限
26.表达式:
10!
=9的值是(C)。
A.ture
B.非零值
27.能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是(C)
A.(x>
=1)&
(x<
=10)&
(x.>
=200)&
=210)
B.(x>
=1)││(x<
=10)││(x.>
=200)││(x<
C.(x>
=1)&
=200)&
D.(x>
(x.>
28.以下程序的运行结果是(B)
#include“stdio.h”
{inta,b,d=241;
a=d/100%9;
b=(-1)&
(-1);
printf(“%d,%d”,a,b);
A.6,1
B.2,1
C.6,0
D.2,0
29.请阅读以下程序:
{inta=5,b=0,c=0;
if(a+b+c)printf(“***\n”);
elseprintf(“$$$\n”);
以上程序(C)
A.有语法错误不能通过编译
B.可以通过编译但不能直接通过连接
C.输出***
D.输出$$$
30.有如下程序:
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
a++;
case2:
b++;
a=%d,b=%d\n"
a,b);
该程序的输出结果是(A)
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
31.有以下程序
{inti=1,j=1,k=2;
if((j++||k++)&
i++)
%d,%d,%d\n"
i,j,k);
执行后输出结果是(C)
A.1,1,2
B.2,2,1
C.2,2,2
D.2,2,3
32.有如下程序
{floatx=2.0,y;
if(x<
0.0)y=0.0;
elseif(x<
10.0)y=1.0/x;
elsey=1.0;
%f\n"
y);
该程序的输出结果是(C)
A.0.000000
B.0.250000
C.0.500000
D.1.000000
33.设intx=1,y=1;
表达式(!
x||y--)的值是(B)
34.若运行时给变量x输入12,则以下程序的运行结果是(A)
{intx,y;
scanf("
x);
y=x>
12?
x+10:
x-12;
%d\n"
}
B.22
C.12
D.10
35.在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。
在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”.(A)
A.10
B.01
C.非0非0
D.11
36.若已定义:
inta=25,b=14,c=19;
以下三目运算符(?
:
)所构成语句的执行后a<
=25&
b--<
=2&
c?
***a=%d,b=%d,c=%d\n"
a,b,c):
###a=%d,b=%d,c=%d\n"
,a,b,c);
程序输出的结果是(C)
A.***a=25,b=13,c=19
B.***a=26,b=14,c=19
C.###a=25,b=13,c=19
D.###a=25,b=14,c=19
37.以下4个选项中,不能看做一条语句的是(D)
A.;
B.a=5,b=2.5,c=3.6;
C.if(a<
D.if(b!
=5)x=2;
y=6;
38.能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是(D)
A.a>
=10ora<
=0
B.a>
=0|a<
=10
C.a>
=10&
a<
D.a>
=10‖a<
=0
39.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是(D)
A.x&
y
B.x<
=y
C.x||++y&
y-z
D.!
y&
z||1)
40.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是(B)
A.(exp==0)
B.(exp!
C.(exp==1)
D.(exp!
=1)
41.设x,y,t均为int型变量,执行语句:
完成后,y的值为(C)
A.不确定
42.若执行下面的程序时,从键盘上输入5和2,则输出结果是(C)
{inta,b,k;
%d,%d"
a,&
b);
k=a;
if(a<
b)k=a%b;
elsek=b%a;
%d\n"
k);
A.5
B.3
43.下列程序的运行结果是(D)
#include"
stdio.h"
{intx=-9,y=5,z=8;
y)
if(y<
0)z=0;
elsez+=1;
z);
A.6
B.7
C.8
D.9
44.判断char型变量ch是否为大写字母的正确表达式是(C)。
A.‘A’<
=ch<
=‘Z’
B.(ch>
=‘A’)&
(ch<
=‘Z’)
C.(ch>
D.(‘A’<
=ch)AND(‘Z’>
=ch)
45.逻辑运算符两侧运算对象的数据类型(D)。
A.只能是0和1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
46.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。
则以下不能满足要求(C)
A.A%2==1
B.!
(A%2==0)
C.!
(A%2)
D.A%2
47.已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是(B)。
y)z=x;
x=y;
y=z;
A.x=10,y=20,z=30
B.x=20,y=30,z=30
C.x=20,y=30,z=10
D.x=20,y=30,z=20
48.程序段int
x=5,y=8,max;
max=(x>
y)?
x:
y;
max);
的输出结果是(
C)。
D.13
49.下列错误的语句是(B)
A.if(a>
b)printf(“%d”,a);
B.if(&
);
a=m;
C.if
(1)a=n;
elsea=n;
D.if(a>
{elsea=n;
50.对下述程序,(D)是正确的判断。
voidmain()
{
intx=3,y=0,z=0;
if(x=y+z)printf("
****"
elseprintf("
####"
B.输出****
C.可以通过编译,但不能通过连接,因而不能运行
D.输出####
51.对下述程序,(D)是正确的判断。
intx,y;
scanf("
%d,%d"
x,&
y=x;
else
x++;
y++;
x,y);
A.若输入数据4和3,则输出3和4
B.若输入数据3和4,则输出4和5
C.若输入数据4和3,则输出4和4
D.有语法错误,不能通过编译
52.下面(C)不是c语言的关键字。
A.if
B.goto
C.print
D.else
53.下列程序段的执行结果(A)
inta=8,b=1;
if(a>
=5)printf("
b+a);
elseif(a>
b)printf("
a-b);
b);
A.9
D.编译错误
54.下列程序段的执行结果(D)
inti=-1;
if(i<
****\n"
else
%%%%\n"
A.****C
B.%%%%
C.%%%%C
D.****
55.已有定义:
intx=3,y=4,z=5;
则表达式!
(x+y)+z-1&
y+z/2的值是(D)。
56.选择出合法的if语句(设intx,a,b,c;
)(A)。
A.if(a=b)c++;
B.if(a=<
b)c++;
C.if(a<
>
D.if(a=>
57.假定等级和分数有以下对应关系:
等级:
A分数:
85——100
B分数:
60——84
C分数:
60以下
对于等级grade输出相应的分数区间,能够完成该功能的程序段是(D)。
A.switch(grade)
{case’A’:
printf(”85——100\n”);
case’B’:
printf(”60——84\n”);
case’C’:
printf(”<
60\n”);
default:
printf(”gradeiserror!
\n”);
B.switch(grade)
{case’A’:
break;
case’B’:
C.switch(grade)
break;
D.switch(grade)
{case’C’:
default:
case’A’:
58.以下程序的运行结果是(C)。
#include”stdio.h”
inta=2,b=-1,c=2;
if(a<
b)
if(b<
c=0;
elsec++;
printf(”%d\n”,c);
D.3
59.有以下程序,若输入为字符s,则程序运行结果为(A)。
charch;
ch=getchar();
switch(ch)
{case’a’:
printf(”a=%c\n”,ch);
default:
printf(”end!
case’b’:
printf(”b=%c\n”,ch);
case’c’:
printf(”c=%c\n”,ch);
A.end!
b=s
c=s
B.end!
C.有语法错误
D.a=s
end!
60.以下程序的输出结果是(C)。
{
inta=5,b=4,c=6,d;
printf(”%d\n”,d=a>
a>
a:
c:
C.6
D.不确定
61.下列运算符中优先级最高的是(C)
A.&
B.<
C.+
D.!
=