发布网友 发布时间:2022-11-04 23:41
共1个回答
热心网友 时间:2023-10-03 06:22
答案选B,即输出3,2,-1。
这题考查后缀自减和前缀自加运算符,以及逻辑与运算符 &&。
后缀 z--,是先使用 z 的值,再 -1。
前缀 ++x,是先 +1,再使用 x 的值。
逻辑与运算符 &&,只有其两边的条件都为真时,总的结果才为真。
当 && 左边的条件为假时,就不会计算其右边的表达式(重点)。因为只有两个条件都为真时,结果才为真,其他情况都为假,所以左边的条件为假,结果肯定为假,就没有必要耗时去判断其右边的结果。
判断 z > 0,即 3 > 0 为真;执行 ++x,此时 x = 1;判断 x < 5,即 1 < 5 为真。两个条件都为真,结果就为真。执行 z--,此时 z = 2。
执行循环体 y = y - 1,即 y = 5 - 1,此时 y = 4。
判断 z > 0,即 2 > 0 为真;执行 ++x,此时 x = 2;判断 x < 5,即 2 < 5 为真。两个条件都为真,结果就为真。执行 z--,此时 z = 1。
执行循环体 y = y - 1,即 y = 4 - 1,此时 y = 3。
判断 z > 0,即 1 > 0 为真;执行 ++x,此时 x = 3;判断 x < 5,即 3 < 5 为真。两个条件都为真,结果就为真。执行 z--,此时 z = 0。
执行循环体 y = y - 1,即 y = 3 - 1,此时 y = 2。
判断 z > 0,即 0 > 0 为假,执行 z--,此时 z = -1,退出循环。
输出 x、y、z,结果为:3,2,-1。