1个回答
展开全部
一开始, abcd分别赋值1,2,3,4
第一个if, 因为是&&操作,所以两个表达式都会被计算, 这两个表达式又是个赋值表达式, a变成2, b变成1, 而且都不为0, 所以条件成立, 执行c=2
此时, a=2, b=1, c=2, d=4
第二个if, || 运算, 从左向右计算, 只要满足一个条件, 判定终止. 首先判定c是否等于3, 失败(c的值是2, 不等于3), 从而判定第二个条件, 这个条件又是一个赋值表达式, d变成了-1, 不为0, 判定结果为真, 整个if的条件为真, 所以执行a=5
此时, a=5, b=1, c=2, d=-1
因此, 选择B
PS. 这是个很扣细节的题, 在现实中这么写会被人打死
第一个if, 因为是&&操作,所以两个表达式都会被计算, 这两个表达式又是个赋值表达式, a变成2, b变成1, 而且都不为0, 所以条件成立, 执行c=2
此时, a=2, b=1, c=2, d=4
第二个if, || 运算, 从左向右计算, 只要满足一个条件, 判定终止. 首先判定c是否等于3, 失败(c的值是2, 不等于3), 从而判定第二个条件, 这个条件又是一个赋值表达式, d变成了-1, 不为0, 判定结果为真, 整个if的条件为真, 所以执行a=5
此时, a=5, b=1, c=2, d=-1
因此, 选择B
PS. 这是个很扣细节的题, 在现实中这么写会被人打死
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询