第5章 选择Word文档下载推荐.docx
《第5章 选择Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第5章 选择Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。
B)
6.下列叙述错误的是:
A.if语句允许用户选择是否执行某个操作
B.ifelse语句允许用户选择执行两个操作中的某个操作
C.switch语句允许用户选择执行多个操作中的某个操作
D.if语句不能实现多分支选择结构
7.以下关于if语句的错误描述是:
A.条件表达式可以是任意的表达式
B.条件表达式只能是关系表达式或逻辑表达式
C.条件表达式的括号不可以省略
D.与else配对的if语句是其之前最近的未配对的if语句
8.下列条件语句中,功能与其他语句不同的是:
( )
A.if(a)printf("
%d\n"
x);
elseprintf("
y);
B.if(a==0)printf("
C.if(a!
=0)printf("
D.if(a==0)printf("
9.下列错误的语句是:
10.以下4个选项中,不能看作一条语句的是:
A.{;
}
B.a=0,b=0,c=0;
C.if(a>
D.if(b==0)m=1;
n=2;
D)
11.if
语句的语法格式可描述为
格式1:
if(<
条件>
)<
语句>
或
格式2:
语句1>
else<
语句2>
关于上面的语法格式,下列表述中错误的是
A)、<
部分可以是一个if
语句,例如if(if(a
=0)?
)?
B)、<
语句,例如if(?
)if(?
C)、如果在<
前加上逻辑非运算符!
并交换<
和<
的位置,语句功能不变
D)、<
部分可以是一个循环语句,例如if(?
)while(?
12.设变量x、y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是:
()
A.if(x++);
B.if(x>
y&
y!
=0);
C.if(x>
y)x--D.if(y<
0){;
elsey++;
elsex++;
C)
16.为了避免在嵌套的条件语句if…else中产生二义性,C语言规定:
else字句总是与()配对:
if语句的嵌套;
17.运行以下程度段后变量x的值是:
a=b=c=0;
x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A.34B.4C.35D.3
26.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;
x=2;
y=3;
z=4;
m=(w<
x)?
w:
x;
m=(m<
y)?
m:
y;
z)?
m:
z;
则该程序运行后,m的值是:
A.4B.3C.2D.1
条件运算符和条件表达式;
27.在TC中,设a=1,b=2,c=3,d=4,则表达式:
a<
b?
a:
C的值是:
A.4
B.3
C.2
D.1
28.以下程序段中与语句k=a>
(b>
c?
1:
0):
0;
功能等价的是:
A.if((a>
B)&
C))k=1;
B.if((a>
B)||(b>
C))k=1elsek=0;
C.if(a<
=B)k=0;
D.if(a>
B)k=1;
elseif(b<
=C)k=1;
elseif(b>
C)k=1;
elsek=0;
A)
29.下列关于switch语句和break语句的结论中,正确的是:
A.break语句是switch语句中的一部分
B.在switch语句中可以根据需要使用或不使用break语句
C.在switch语句中必须使用break语句
D.break语句只能用于switch语句中
switch语句;
30.设有说明语句“inta=1,b=0;
”,则执行以下语句后,输出为:
switch(a)
{case1:
switch(b)
{case0:
printf(“**0**”);
break;
case1:
printf(“**1**”);
}
case2:
printf(“**2**”);
A.**0**B.**0****2**
C.**0****1****2**D.有语法错误
31.若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是
A.swich(a+b);
y=a+b;
case0:
y=a-b;
}case3:
y=b-a,break;
B.switch(a*a+b*b)
{case3:
case1:
break;
C.switcha
{casec1:
break
casec2:
x=a*d;
default:
x=a+b;
}
D.switch(a-b)
{default:
y=a*b;
break
case3:
case4:
break
case10:
case11:
32.以下程序的运行结果是:
main()
{intk=5,n=0;
switch(k)
{case1:
case3:
n+=1;
n=0;
case2:
case4:
n+=2;
printf("
%d"
n);
A.2B.3C.4D.5
33.
二、多选题(圆括号要求同上)
1.关于if语句,下列叙述正确的是:
A.if语句中,条件表达式只能是关系表达式或逻辑表达式
B.if语句中,条件表达式的括号不可以省略
C.else子句不能作为语句单独使用,必须是if语句的一部分。
D.if和else后面可以包含多个操作语句,此时要用“{}”把几个语句括起来成为一个复合语句。
E.if语句中,条件表达式可以是任何表达式
BCDE)
2.以下4条语句,没有语法错误的是:
A.if(a>
b)m=a;
B.if(a);
C.if((a=b)>
=0)m=a;
D.if((a=b;
)>
E.if(6)m=a;
ABCE)
3.如果不加花括号表示else与if的配对关系,则else与if的匹配方法,不正确的是:
A.else与它上面最远的if配对
B.else与它上面最近的if配对
C.else与离它最近的if配对
D.else与它上面最近的且没有和其他else配对的if配对
E.else可独立成子句,不需要和if匹配
ABC)
5.关于条件运算符的叙述正确的是:
A.条件运算符的优先级别比关系运算符和算术运算符都低
B.条件运算符是C语言中惟一的一个三目运算符
C.条件运算符的结合方向是“自右至左”
D.条件运算符不能替代任何if语句
E.if(a>
b)max=a;
elsemax=b;
可用该为:
max=(a>
b)?
b
条件运算符;
ABCE)
6.下列叙述正确的是:
A.表达式“a>
c>
d?
c:
d”等价于“a>
(c>
d)”
B.表达式a>
b+1等价于a>
(b+1)
C.表达式a>
b+1等价于(a>
b)+1
D.条件运算符的结合方向是“自左至右”
E.条件运算符可以替代任何if语句
AB)
7.关于switch语句叙述正确的是:
A.switch语句中,case的冒号后面允许没有语句。
B.switch语句中,每一个case的冒号后面都允许跟有多条语句。
C.在与switch语句配套的case语句中所使用的表达式可以是变量或常量
D.switch语句中,可以没有default语句。
E.switch后面括号中的“表达式”可以是任何表达式
ABDE)
8.
在switch语句中必须使用break语句。
ABD)
三、判断题(圆括号要求同上,加在编号与题干之间)
1.( )关于if语句中,条件表达式只能是关系表达式或逻辑表达式
F)
2.( )关于if语句中,条件表达式的括号不可以省略
T)
3.( )
4.( )if和else后面只可能含一个内嵌的操作语句
5.( )if和else后面可以包含多个操作语句,此时要用“{}”把几个语句括起来成为一个复合语句。
6.( )关于if语句中,条件表达式的括号可以省略
7.语句if(x==0)…等价于if(!
x)…
8.语句if(a)s1;
elses2;
等价于if(!
a)s2;
elses1;
9.
10.
11.
12.
13.
14.( )为了避免在嵌套的条件语句if…else中产生二义性,C语言规定:
else字句总是与缩排位置相同的if配对。
15.( )在if语句的嵌套中,if与else的数目不一致时,可以加“{}”来确定配对关系
16.( )在if语句的嵌套中,else总是与它上面的最近的if配对
17.( )在if语句的嵌套中,else总是与它上面的最近的且未配对的if配对
18.( )在if语句中又包含一个或多个if语句称为if语句的嵌套
19.( )
20.( )
21.( )条件运算符的优先级别比关系运算符和算术运算符都低
T)
22.( )条件运算符是C语言中惟一的一个三目运算符
23.( )表达式“a>
24.( )若有inti=20;
switch(i/10){case2:
A"
B"
}的输出结果为A。
25.( )在switch语句中使用continue语句与使用break语句作用相同。
26.( )switch语句中,case的冒号后面允许没有语句。
27.( )switch语句中,每一个case的冒号后面都允许跟有多条语句。
28.( )switch语句中,可以没有default语句。
四、填空题
1.执行下面程序时,若从键盘上输入正数和0,则输出该数本身,若输入负数,则输出其相反数,请填空。
{intx,y;
scanf("
&
x);
if(
)
{y=x;
printf("
else
{y=②;
}}
A.x>
=0B.-xC.xD.x<
②A.x>
、A②、B)
2.输入两个整数,按照由大到小的顺序输出这两个数,请填空。
main()
{
intx,y,t;
%d%d"
x&
y);
{
t=x;
②;
③
printf("
x,y);
A.x<
yB.x=yC.y=tD.x>
y
②A.x<
③A.x<
、A②、B③、C
、)
3.请填空,完成函数(输入分段函数)的功能
{inta,b;
scanf("
a);
if(
)
y=-1;
else
if(②)y=0;
else③;
x=%d,y=%d\n"
2;
、x<
0②、x==0③、y=1)
4.请填空,完成函数(输入分段函数)的功能
if(②)y=1;
elsey=0;
、x>
=0②、x>
0③、y=-1)
5.“表达式1?
表达式2:
表达式3”的执行顺序是先求解
,若为非0则求解②,否则求解表达式3。
、表达式1②、表达式2)
6.若inta=100,x=10,y=9;
执行a=(--x==y++)?
--x:
++y;
变量a的值是
、8)
7.switch后面括号中的“表达式”可以是
A.关系表达式B.算术表达式C.逻辑表达式D.以上表达式都可以
、D)
8.若有charch=’B’,则执行以下程序后变量x=
;
去掉程序中所有的break后,执行程序后变量x=②
{switch(ch)
{case'
A'
:
x=95;
case'
B'
x=85;
case'
C'
x=75;
D'
x=60;
default:
x=0;
A.85B.75C.60D.0
、A②、D)
五、阅读程序,选择结果(圆括号要求同上)
1.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是:
intx;
if(x++>
5)printf("
x)
x--);
A.7和5B.6和3C.7和4D.6和4
2.若执行下面的程序从键盘输入3和4,则输出是:
{inta,b,s;
%d%d"
a,&
b);
s=a;
if(a<
b)s=b;
s=s*s;
s);
A.14B.16
C.18D.20
3.以下程序段的输出结果是()
inta=10,b=50,c=30;
if(a>
b)
a=b;
b=c;
c=a;
printf(“a=%db=%dc=%d\n”,a,b,c);
A、a=10b=50c=10B、a=10b=30c=10
C、a=50b=30c=10D、a=50b=30c=5
4.若执行以下程序时从键盘上输入9,则输出结果是:
main()
{intn;
,&
n);
if(n++<
10)printf("
,n);
elseprintf("
,n--);
A、11B、10C、9D、8
if语句;
5.阅读以下程序:
{intx;
x);
if(x--<
5) printf("
,x);
else printf("
,x++);
程序运行后,如果从键盘上输人5,则输出结果是:
A、3B、4C、5D、6
6.main()
{floatx=2.0,y;
if(x<
0.0) y=0.0;
elseif(x<
10.0) y=1.0/x;
else y=1.0;
%f\n"
,y);
该程序的输出结果是:
A、0.000000B、0.250000C、0.500000D、1.000000
C)
7.有以下程序
{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.编译时有错,无结果
IF嵌套语句;
8.有如下程序
A、0.000000B、0.250000C、0.500000D、1.000000