如果 a 和 b 均为 int 类型的变量,下列表达式能够正确判断 “a 不等于 0 或 b 不等于 0” 的是( )
看到‘不等于0或’,别急着找||,先想它的反面——‘等于0且’,再用德摩根定律一转化就出来了。
最容易掉进A选项的坑,把‘或’偷换成‘且’;C选项也是直接写成与运算,命题意义全反;D选项连关系判断都算不上,纯逻辑与。这些错选都是因为没把自然语言先翻译成逻辑命题,而是盯着运算符符号死记硬背。
【考点】逻辑运算|德摩根定律|关系表达式
题目要判断的是‘a 不等于 0 或 b 不等于 0’,用符号写就是 a≠0∨b≠0。别一看到‘或’就去找||,C++ 里写 a!=0||b!=0 是对的,但选项里没这个写法,所以得换个角度:先想它的反面——什么时候‘a 不等于 0 或 b 不等于 0’是假的?只有当 a=0 且 b=0 时才是假的。于是原命题等价于‘并非 (a=0 且 b=0)’,即 ¬(a=0∧b=0)。