问题 单项选择题

设有定义: int a=2,b=3,c=4;, 则以下选项中值为0的表达式是

A.(!a==1)&&(!b==0)

B.(a<b)&& !c‖1

C.a && b

D.all(b+b)&&(c-

答案

参考答案:A

解析: 计算逻辑表达式要注意的问题有三个:一、3个逻辑表达式的优先级从高到低依次是!(逻辑非)、&&(逻辑与)、‖(逻辑或);二、运算符&&或‖的左边运算分量分别为“假”或“真”的时候已经能够得出整个表达式的值,故右边运算分量将被“短路”,即忽略右边的表达式.三、逻辑值能够自动转换为整数值: “真”=1、“假’ =0;整数值也能自动转换为逻辑值:0=“假”,非 0= “真” 。选项 A 中(!a=1)&&(!b==0)→ (12==1)&&(!b==0) → (0==1)&&(!b==0)→ 0&&(!b==0)→0(&&右边表达式(!b==0)被“短路”);选项B中(a<b)&&!c‖1 → (2<3)&&!4‖1→ 1&&0‖→ 0‖→1;选项C中a&&b → 2&&3→1选项Da‖(b+b)&&(c-a) → 2‖(b+b)&&(c,a) → 1(‖右边表达式(b+b)&&(c-a)被“短路”)。所以本题选A。

选择题
问答题