$X$ 是 C++ 的整型变量,则表达式 3 < X < 5 求值结果是 4。( )
答案B。表达式(3==0)+'A'+1+3.0中,有double参与运算,整个表达式结果提升为double类型。
表达式结果类型由最高精度的操作数决定。double参与运算后整个表达式提升为double。
【考点】关系运算符优先级|布尔值类型|左结合性
🎯 考纲定位 本题考查GESP一级C++模块中"运算符与表达式"核心考点。命题人专攻学生从数学思维到编程思维的转换缺陷——很多人把3<X<5当成数学不等式链,却不知C++中关系运算符严格左结合,会先算3<X得布尔值,再把布尔值与5比较。
🧠 解题思维 看到表达式先判断结合性:C++中<是左结合,故3<X<5等价于(3<X)<5。再判断类型:3<X结果为bool类型(true或false),bool与int比较时,true=1、false=0,故表达式最终结果是1或0,绝不可能得到4。这是C++表达式求值的铁律。
🪤 陷阱拆解 错误选项A是典型"数学直觉陷阱"——命题人知道学生会被类似3<X<5这种写法误导,以为X=4时整体就是4。实际上X=4时,3<X为true(1),1<5为true(1),结果仍是1。命题人精准卡住"变量值代入求值"与"运算符结合性"两个薄弱点。
🔄 反命题思维 若改成X=3<X<5,命题人会考察赋值与比较的交互:先算3<X<5得1,再将X赋值为1。刷到链式比较题时,先问自己"这个表达式是按数学规则还是C++运算符规则求值"。