C++ 中,定义变量 int a=5,b=4,c=3,则表达式 (a<b<c) 的值为逻辑假。( )
答案B。根据C++语法规则分析各选项。注意赋值、运算、类型等细节。
仔细审题,注意每个选项的语法细节。区分合法写法与错误写法。
【考点】运算符优先级|逻辑运算|条件表达式
考纲定位:该题典型地出现在 GESP 一级「运算符」章节,考察学生是否真正理解 C++ 的表达式求值规则,而非照搬 Python 的链式比较。
解题思维:C++ 中关系运算符左结合,(a<b<c) 按 (a<b)<c 执行:a<b 得 0,0<c 得 1,整体为真。原命题称「值为逻辑假」显然错误。注意:C++ 会将布尔结果 0 或 1 参与后续比较,因此 (a<b)<c 完全合法。
陷阱拆解:选项 A 对应「直觉式链式比较」的误区;命题人利用「关系运算符优先级高于逻辑运算符」的细节,但更阴险的是「左结合导致中间结果为布尔值」,学生若只背结论就会掉坑。命题人故意用「值为逻辑假」这种绝对化表述,掩盖了计算过程,只记结论就会踩坑。
反命题思维:若改为 (a<b) && (b<c) 则答案为假;若改为 a<b && b<c 则答案为假。刷到类似题先问「命题人想考我什么」——是考结合性还是考逻辑组合?