C++ 表达式 5 < 10 && 20 对应的逻辑值为 true。( )
答案A。根据C++基础知识分析判断。
注意题目中的限定词。不确定时用代入法或排除法。
【考点】运算符优先级|逻辑表达式求值|C++ 类型转换
🎯 考纲定位 GESP二级 C++ 模块的运算符优先级考点。命题人专挑学生“凭直觉分组”的弱点:很多人误以为 && 只作用于紧邻的两个数,或把 20 当成“非布尔值无效”,其实 C++ 里任何非零整数在逻辑表达式中都等价于 true,而 && 优先级高于 <,所以表达式等价于 (5 < 10) && (20)。
🧠 解题思维 第一步识别运算符:< 和 &&。第二步回忆优先级表:&& 在 < 之上。第三步按优先级加括号:(5 < 10) && (20)。第四步代入求值:5 < 10 为 1,20 为非零即 1,1 && 1 为 1。第五步对比题干:1 对应逻辑 true,故断言正确。通法——遇到混合比较与逻辑运算,先查优先级再分组,永远别靠“读起来顺不顺”来猜。
🪤 陷阱拆解 选 B 的典型误区有二:一是误以为 && 优先级低于 <,把式子看成 5 < (10 && 20),算出 10 && 20 为 1 再比较得假;二是把 20 当“数字不是布尔值”直接判无效,忽略 C++ 逻辑上下文中非零即真的规则。最阴险的细节是“&& 只结合左右两个数”的直觉,命题人故意把 20 放在 && 右边,逼你确认优先级。
🔄 反命题思维 若把 20 改成 0,答案翻转为错误;若把 && 换成 ||,答案仍为正确但逻辑不同;若改写成 5 < 10 && 10 < 20,答案还是正确。刷到这类题先问自己:命题人想考我优先级还是布尔值规则?