第五章 选择结构.docx
《第五章 选择结构.docx》由会员分享,可在线阅读,更多相关《第五章 选择结构.docx(18页珍藏版)》请在冰豆网上搜索。
![第五章 选择结构.docx](https://file1.bdocx.com/fileroot1/2022-10/29/9815e5e9-68de-4656-b33c-8a8c282e60cc/9815e5e9-68de-4656-b33c-8a8c282e60cc1.gif)
第五章选择结构
第五章选择结构
一、选择题
1.关于C程序在作逻辑运算时判断操作数真、假的表述中,正确的是__________。
A)0为假.非0为真B)只有l为真
C)-l为假,l为真 D)0为真,非0为假
2.关于C程序关系运算、逻辑运算后得到的逻辑值的表述中,正确的是__________。
A)假为0,真为随机的一个非0值B)假为0,真为1
C)假为-l,真为lD)假为0,真为不确定的值
3.下列运算符中,优先级从高到低依次为__________。
A)&&!
||B)||&&!
C)&&||!
D)!
&&||
4.设inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为____________。
A)lB)2C)3D)4
5.若有定义:
inta=3,b=2,c=1;并有表达式:
①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是______________。
A)①和②B)②和③C)①和③D)③和④
6.设inti=10;表达式30-i<=i<=9的值是________________。
A)0B)1C)9D)20
7.设inta=0,b=0,m=0,n=0;则执行(m=a==b)||(n=b==a)后m和n的值是___________。
A)0,0B)0,1C)1,0D)1,1
8.表达式!
x等效于_____________。
A)x==lB)x==0C)x!
=lD)x!
=0
9.inta=1,b=2,c=4;经过表达式(c=a!
=b)&&(a==b)&&(c=b)运算后,a,b和c的值分别是___________。
A)1,2,0B)1,2,1C)1,2,2D)1,2,3
10.表达式!
x||a==b等效于____________。
A)!
((x||a)==b)B)!
(x||y)==bC)!
(x||(a==b))D)(!
x)||(a==b)
11.设intx=-1;执行表达式++x||++x||++x后x的值是_________________。
A)3 B)2 C)1 D)0
12.设intx=1,y=1;表达式(!
x||y--)的值是_____________。
A)-lB)0C)lD)2
13.设x,y,t均为int型变量,则执行语句:
x=y=3;t=++x||++y;后y的值为_________。
A)1B)3c)4D)不定值
14.已有定义intx=3,y=4,z=5;则表达式!
(x+y)+z-1&&y+z/2的值是_________。
A)6B)2 C)1 D)0
15.以下选项中非法的表达式是___________。
A)0<=x<100B)i=j==0C)(char)(x<100)D)x+1=x+1
16.设有定义:
inta=2,b=3,c=4;以下选项中值为0的表达式是_____________。
A)a||(b+b)&&(c-a)B)(a
c||1
C)a&&bD)(!
a==1)&&(!
b==0)
17.设有定义:
intk=1,m=2;floatf=7;则以下选项中错误的表达式是__________。
A)k=k>=kB)-k++C)k%fD)k>=f>=m
18.下面各组表达式运算结果均为真的是_________。
A)①0&&a==0②0||a==l
B)①a||!
a==0②a&&!
a==0
C)①!
(a||b)==!
a||!
b②!
(a&&b)==!
a||!
b
D)①a||a==a②a||!
a!
=0
19.下面程序段执行后的输出结果是_____________。
intx=-l,y=4,k;
k=x++<=0!
(y--<=0);
printf("%d,%d,%d",k,x,y);
A)0,0,3B)0,l,2C)1,0,3D)1,l,2
20.下面程序段执行后的输出结果是_____________。
inta=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a<b);
printf("%d,%d",k,m);
A)0,0B)0,lC)1,0D)1,l
21.下面程序段执行后的输出结果是_____________。
inta,b,d=25;
a=d/10%9;b=a&&(-1);
printf("%d,%d",a,b);
A)6,1B)2,lC)6,0D)2,0
22.下面程序段执行后x的值为______________。
inta=14,b=15,x;charc='A';
x=(a&&b)&&(c<'B');
printf("%d",x);
A)0B)1C)14D)15
23.下面程序段执行后的输出结果是______________。
inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf("%d",d);
A)0B)lC)非0的数D)-l
24.若w=l,x=2,y=3,z=4,则条件表达式ww:
yy:
z的值是_____________。
A)4B)3C)2D)l
25.若有inti=5;j=4,k=6;floatf;执行语句f=(ii:
(jj:
k;后f的值为___________。
A)4.0B)5.0C)6.0D)7.0
26.若定义了intx=100;则表达式x++>100?
x+20:
x+10的值为___________。
A)110B)111C)120D)121
27.设intm1=5,m2=3;表达式m1>m2?
(m1=1)Lm2=-1)运算后,m1和m2的值分别是________。
A)1和3B)1和-1C)5和-1D)5和3
28.若整型变量a,b,c,d的值依次为1,2,3,4,则表达式a
a:
cc:
d的值是________。
A)1B)2C)3D)4
29.下面程序段执行后的输出结果是____________。
inta,b,c;intx=5,y=l0;
a=(--y==x++)?
-y:
++x;
b=y++;c=x;
printf("%d,%d,%d",a,b,c);
A)6,9,7B)6,9,6C)7,9,6D)7,9,7
30.设charc='A';则表达式c=(c>='A'&&c<='Z')?
(c+32):
c的值是_____________
A)ZB)zA)AB)a
31.下面程序段执行后的输出结果是
inta=5,b=4,c=6,d;
d=a>b?
(a>c?
a:
c):
(b);
printf("%d",d);
A)6B) 5C) 4D)不确定
32.若变量c为char类型,能正确判断出c为小写字母的表达式是____________。
A)'a'<=c<='z'B)(c>='a')||(c<='z')
C)!
((c>='a')||(c<='z'))D)(c>='a')&&(c<='z')
33.下列表达式中,__________不满足“当x的值为偶数时值为其,为奇数时值为假”的要求。
A)x%2==0B)!
x%2!
=0c)(x/2*2-x)==0D)!
(x%2]
34.下列表达式中,能正确表示“当x的取值在[1,l0]和[200,210]范围内为真,否则为假”的表达式是_______________。
A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B)(x>=1)||(x<=10)||(x>=200)||(x<=210)
C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)
35.下述表达式中,___________可以正确表示x≤0或x≥1的关系。
A)(x>=1)||(x<=0)B)(x>=1)|(x<=0)
C)(x>=1)&&(x<=0)D)(x>=1)&(x<=0)
36.若x和y为整型数,以下表达式中不能正确表示数学关系|x-y|<10的是___________
A)abs(x-y)-10&&x-y<10
C)!
(x-y)<-10||!
(y-x)>10D)(x-y)*(x-y)<100
37.C语言对嵌套if语句的规定是else总是与___________配对。
A)之前最近的尚未配对的ifB)第一个if
C)缩进位置相同的ifD)最前面的if
38.“if(表达式)”中的“表达式”___________。
A)只能是逻辑表达式D)只能是关系表达式
C)只能是算术表达式D)以上三种都可以
39.当把以下四个表达式用作if语句的表达式时,有一个选项与其他三个选项含义不同,这个选项是____________。
A)k%2B)k%2==1C)(k%2)!
=0D)!
k%2==1
40.对于下面程序,____________是正确的判断。
#include
voidmain()
{
intx,y;
scanf("%d%d",&x,&y);
if(x>y)
x=y;y=x;
else
x++;y++;
printf("%d,%d",x,y);
}
A) 有语法错误,不能通过编译B)若输入3和4,则输出4和5
C)若输入4和3,则输出3和4 B)若输入4和3,则输出4和5
41.对于下面程序段,__________是正确的判断,
Intx=0,y=0,z=0;
if(x=y+z)printf("***");
elseprintf("###");
A)有语法错误,不能通过编译B)输出:
***
C)可以编译,但不能通过连接,所以不能运行D)输出:
###
42.设intx,a,b;下面__________是错误的if语句
A)if(a=b)x++;B)if(a=
C)if(a-b)x++;D)if(x)x++;
43.下面程序段执行后的输出结果是____________
inta=0,b=0,c=0;
if(++a>0||++b>0)++c;
printf("%d,%d,%d",a,b,c);
A)0,0,0B)l,l,1 C)1,0,1D)0,l,1
44.若a=1,b=3,c=5,d=4,则执行下面程序段后x的值是______________
if(a
if(celse
if(aif(belsex=3;
elsex=6;