内容正文:
专题七 分支表达式和逻辑运算符
1、 选择题
1.判断char 型变量ch是否为小写字母的正确表达式是______。
A.'a'<=ch<='z'
B.(ch>='a')& (ch<='z')
C.(ch>='a')&& (ch<='z')
D.('a'<=ch)AND ('z'>=ch)
答案:C
解析:ch为小写字母的表达式为ch>='a'&& ch<='z'
2.以下运算符中优先级最低的运算符为( )。
A.! B.&& C.!= D.%
答案:B
解析:运算符!级别为2,运算符&&级别为12,运算符!=级别为7,运算符%级别为3.
3.下面程序段的输出结果是______。
int a=-1,b=4,k;
k=(a++<=0)&&(!b--<=0);
printf("%d,%d,%d",k,a,b);
A.0,0,3
B.0,1,2
C.1,0,3
D.1,1,2
答案:C
解析:逻辑运算&&,运算规则为同真为真,结合性自左向右,先算a++<=0,由于++为后缀,先用,再加1,所以a<=0为真,后a=0;再执行!b--<=0,由于--是后缀,先执行!b为0,后b=b-1变为3,再执行0<=0为真;同真为真,故k为1。
4.有定义语句: int a=1,b=2,c=3; ,则以下_______对应的表达式的值不为真。
A.a!= 'a'
B.a+b-c!='0'-48
C.c-a=='C'-'A'
D.c<='7'+'0'
答案:B
解析:选项A中a!= 'a',左边为变量a=1,右边为字符a为97,所以不相等,表达式为1。
选项B中a+b-c!='0'-48,左边a+b-c为0,右边字符'0'为48,表达式'0'-48为0,0!=0不成立,为0。选项C中,左边为2,右边也为2,左右相等,表达式为1。选项D中,'7'+'0'为55+48=103,故c<103为1。
5.设x、y 和z 是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0 的是______。
A.'x'&&'y'
B.x<=y
C.x||y+z&&y-z
D.!((x<y)&&!z||1)
答案:D
解析:选项D中表达式!((x<y)&&!z||1)为逻辑非表达式,先计算逻辑或表达式(x<y)&&!z||1,由于||右侧为1,所以此表达式为真,真的非为假,故整个表达式为假。
6.下列表达式中, ______不是关系表达式。
A.x%2= =0
B.!(x%2)
C.(x/2*2-x)==0
D.x%2!=0
答案:B
解析:根据运算符类别,选项B为逻辑表达式,其它均为关系表达式。
7.当变量c 的值不为2、4、6 时,值也为“真”的表达式是_______。
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
答案:B
解析:当变量c 的值不为2、4、6 时,值也为“真”的含义是对于任意数值c,表达式的值均为真。
8.若变量c 的值为非0,则能正确地将c 的值赋给变量a 和b 的表达式是_______。
A.(a=c)||(b=c)
B.(b=a)=c
C.(a=c) && (b=c)
D.a=c=b
答案:C
解析:选项A中,因为c!=0,根据逻辑或运算规则,左侧为真,右侧短路,所以执行完a=c后,右侧不执行。选项B,赋值符号左侧只能是变量,不能是表达式,所以不合法。选项C中,根据逻辑与运算规则,左侧为真,右侧计算,a=c为真,执行b=c,完成赋值运算。选项D,是将b的值赋值给c和a。
9.下述程序段的输出结果是_______。
int a=2,b=3,c=4,d=5;
int m=2,n=2;
a=(m=a>b)&&(n=c>d)+5;
printf("%d, %d ",n,a);
A.2,5
B.0,5
C.2,0
D.0,6
答案:C
解析:赋值表达式a=(m=a>b)&&(n=c>d)+5,先执行(m=a>b)为0,根据逻辑&&运算规则,左边为假,右侧不执行,所以n的值不变,整个表达式为假,即a=0。
10.若a 是数值类型,则逻辑表达式(a==1)||(a!=1)的值是_______。
A.0
B.1
C.2
D. 不能确定
答案:B
解析:逻辑表达式(a==1)||(a!=1),当