GESP 一级 · GESP 一级样题(C++ 组) 第 11 题

选择题 · 答案 B

← 整套速查表 GESP 一级 全部真题

题目

如果 a 和 b 均为 int 类型的变量,下列表达式能够正确判断 “a 不等于 0 或 b 不等于 0” 的是( )

答案:B

解题思维

看到‘不等于0或’,别急着找||,先想它的反面——‘等于0且’,再用德摩根定律一转化就出来了。

常见错误

最容易掉进A选项的坑,把‘或’偷换成‘且’;C选项也是直接写成与运算,命题意义全反;D选项连关系判断都算不上,纯逻辑与。这些错选都是因为没把自然语言先翻译成逻辑命题,而是盯着运算符符号死记硬背。

详细解析(节选)

【考点】逻辑运算|德摩根定律|关系表达式

1. 命题先翻译

题目要判断的是‘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)。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断