C++ 表达式 3+2 && 5-5 的值为 false。( )
这题核心就是C++里非零即真的规则。拿到题先按优先级算出左右两边的算术结果,再把非零数看成true、零看成false,最后用&&逻辑与合并。
很多考生会误以为&&两边只要有一边非零结果就为真,或者把5-5算错成负数。其实C++规定只有0是false,其他整数都转成true。这题最坑的就是5-5等于0,必须精准算出这个0,否则就会错选B。
本题考查GESP二级《信息学基础》中“逻辑运算符”与“运算符优先级”,命题人专挑C++里“非零整数自动转布尔值”这一底层规则下手。绝大多数考生只会背“&&为真才真”的口诀,却忽略C++里非零即真的核心机制,导致在混合算术与逻辑表达式时判断失误。
看到题先识别运算符优先级:算术运算+、-高于逻辑与&&,因此先算3+2得5、5-5得0。C++中非零整数自动视为真,零视为假,故表达式等价于true&&false,结果为false。这一类题的通法是“先按优先级拆分子表达式→求值→映射到布尔值→按逻辑规则组合”,对任意混合算术与逻辑的表达式都适用。