设有int x=2,y=2,a;,执行语句a=(x=x +1)‖(y=y +1);后,则变量x, ,a的值分别是

2025-05-13 14:08:32
推荐回答(5个)
回答(1):

a=(x=x +1)||(y=y +1);
一句一句来哦, 
先看 或运算 || ,
m || n, 先执行m,
如果 m为真,返回真。(n 部分不会被执行)
如果 m为假,则执行n,
    如果 n 为假,返回假,
    如果 n 为真,返回真。

m =  (x = x + 1)  
所以 x 加了1 哦, x = 3 了,是 m =3 是真哦,所以不用执行 n 了。
a = 1 真 
x = 3
y = 2

回答(2):

这里涉及到的运算符优先级为:加号为4级,取模(求余)和乘除为3级,(int)是强制类型转换,为2级,而括号为最高的1级,因此该式首先计算x+y=8.5,然后取整,为8,剩下的取模和乘除运算依次从左到右,1%2=1,然后乘以8,等于8,接下来8%2=0,最后除以4,等于0,然后再加上x,因此最后的结果是x,即3.6。

回答(3):

结果是x==3,a==1,y==2。

回答(4):

m||n,错字太多了吧

回答(5):

为什么y==2