设有整型变量x=5,y=10,z=3,执行表达式 (x++ > 5 & y-- < 15) || (++z == 4) 后,x、y、z的值分别是多少?
答案解析
核心考点:短路逻辑运算符与位运算符的区别,以及自增操作的时序。
解题思路分析:
1. &运算符不会短路,无论左操作数结果如何都会执行右操作数
2. 表达式可分为两部分:(x++ >5 & y--<15) 和 (++z==4)
3. 计算第一个子表达式:x++(后自增)值为5,5>5为false;但&运算符仍需计算y--<15 → y=9,此时第一个子表达式结果为false & true → false
4. ||运算符需要继续计算右操作数:++z使z=4,判断4==4为true
5. 最终x自增为6,y自减为9,z自增为4
选项分析:
A. 错误,未考虑y的自减和z的自增
B. 错误,正确计算了y但遗漏z的自增
C. 正确,符合所有运算步骤结果
D. 错误,未考虑y的自减和z的自增
易错点提醒:
- 混淆&与&&的行为差异
- 后自增/自减的取值时机
- 忽略非短路运算符的强制求值特性
正确答案:C