下面选择项中,与 C++ 表达式 !(x > 5 && y <= 10) 等价的是( )。
答案C。考点: C++表达式求值——注意运算符优先级和类型转换
【考点】逻辑运算|德摩根定律|运算符优先级
🎯 考纲定位 GESP C++二级逻辑与算法模块。命题人卡住的是"德摩根定律"与"非运算符优先级"的混淆——考生背过"!A && !B"的变形,却忘了"!A || !B"才是正确方向。
🧠 解题思维 1. 识别结构:!(A && B) → 德摩根律 → !A || !B 2. 化简!A:!(x > 5)等价于x <= 5 3. 化简!B:!(y <= 10)等价于y > 10 4. 组合:x <= 5 || y > 10 → C
🪤 陷阱拆解
&&,把或变与,完全反了!x语法错误(非作用于变量而非表达式),且即便!x > 5也被解释为(!x) > 5,优先级陷阱叠加🔄 反命题思维 若改成!(x > 5 || y <= 10),答案是x <= 5 && y > 10。
刷到此类题先问自己:括号里是AND还是OR,然后决定外面用OR还是AND——德摩根定律永远有"反号不变号,连词要反过来"的口诀。