单选题
设有定义: 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.
【正确答案】
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。