C語言中int x 1,y 2,z 3則z xyxy的值為多少?為什麼?求大神指教

時間 2021-10-17 05:08:03

1樓:匿名使用者

答案應該是6.因為先進行x>y?這個判斷,而x>y為假,所以z+=++y,++y的值是3,所以z+=3,本來z=3,所以z的值為6

2樓:焚香一隻鬼

值 為 6

原因是z + = x > y ? ++x : ++y ==> z = z+ x > y ? ++x : ++y

取 z + 右邊 運算

可設 z + 右邊 為 int c;

c = x > y ? ++x : ++y;

x > y 不滿足 則 c 的值等於 : 右邊的 部分即 c = ++y = 3

然則 z = z + c = 6

3樓:玩n膩

z=3 z+=x>y? 是 先算x>y? 為0 然後z=z+0 所以是3

++x 是先計算在用x的值 x=2

++y 是先計算 在用y的值 y=3

4樓:匿名使用者

如果x>y為真,z+=++x; 即z=z+2=5

如果x>y為假,z+=++y; 即z=z+3=6 (x>y為假,所以這是結果)

5樓:匿名使用者

結果是6

先判斷大小,y大,取++y=3,等式變為z+=3,所以z=6

假設有條件 int x=1,y=2,z=3;則表示式z+=x>y?++x:++y的值是6,為什麼是6呢?

6樓:墨汁諾

先判斷後面的條件,因為x大於y不成立,所以返回++y也就是3,再加到z裡所以是6。

或結果是6

因為+=運算子的優先順序低於後面的運算,

所以先求後面表示式的值,可得結果為3

接著,z+=3可得z=6

7樓:匿名使用者

你好 ,比目運算子(?:) 和》 的優先順序都比 += 高。

所以上式可以這樣看 z = z + (x>y?++x:++y)z = z + (++y) = 3 + (2+1) = 6請採納,有問題可追問。

若int x=1,y=2,z=3;表示式z+=x+y?++x:++y的值是_____。

8樓:匿名使用者

答案是5.

+=後面是一個三目運算子。

先求?前面的表示式,若表示式的值是0,則取:後面的值,非0取:前面的值,而自加運算子的用法是:

++x:先自增1在使用;

x++:先使用在自增1;

所以x+y?++x:++y的值是2;

z+=2相當於z=z+2=5.

9樓:冰糖也是糖

感覺這個表示式應該是這樣 z += (x + y)?++x:++y)首先由於三元運算子的優先順序比較低,因此先要計算括號裡面的加法運算對於三元運算子(x+y)?

++x:++y,由於x+y>0因此條件成立,計算++x

那麼整個表示式的值就是++x值,也就是2,同時x進行了累加,變成了2那個原來的表示式就變成了z += x,由於x為2,則最後表示式的結果為5

int x=1,y=2,z=3; z+=x>y?++x:++y; 計算後的值為什麼是6?

10樓:霜玉花德靜

【分析】

z+=x>y?++x:++y

該表示式執行分為兩個過程:

1).x>y?++x:++y

這個表示式的運算子為

a?b:c,即根據邏輯表示式a的真假情況返回表示式b或c.

若a為真(即a運算結果非0),則返回表示式c;若為0,則返回表示式c.

因此x>y++x:++y的意思是判斷x>y的真假,若為真,則返回表示式++x,若為假,則返回++y.

2).執行z+=

【執行過程】

表示式z+=x>y?++x:++y等價於z=z+(x>y?++x:++y).變數賦值後即為z=3+(1>2?++1:++2),

1)由於1>2為假(即表示式結果為0),因此返回表示式++y;

2)執行++y.++y是先對y變數執行自加,在返回自加後結果,即為3(即為(x>y?++x:++y)的結果).

3)執行z+=.將(x>y?++x:++y)結果帶入,為z+=3

4)返回z為6

.——————————————————————————————————

樓主,這些都是c的基本運算,要紮實c功底啊

main {int x=1,y=2,z=3; z+=x>y?++x;++y; printf("%d",z); } 此程式的執行結果??

11樓:匿名使用者

執行結果為6

z+=x>y?++x;++y;

先處du理表達zhi式:

daox>y?++x;++y

由於x=1,y=2,所

以版x>y為假,表示式的值權等於++y,

由於y=2,所以++y等於3,所以表示式:x>y?++x;++y的值等於3

z+=x>y?++x;++y;轉化為z+=3;,也就是z=z+3,由於z=3,所以z=z+3=3+3=6

12樓:

1 程式來先改正:

void main() //本行少源()2 執行結果:dao6

13樓:匿名使用者

答案:6

int x=1,y=2,z=3;

z+=x>y?++x:++y; //中間冒號//先比較x>y? 為真,返回版++x,否則返回++y。

z += ++y;

++y先執行

權y+1,y = 3

z +=3 ====》 z = z + 3 = 6

c語言 設int x=2,y=3,z; z=(++x>=y--)?((--y==1)?x--:--y):y--;

14樓:旅泉典南風

先判斷(++x>=y--),因為++在前,所以x+1=3,而--在後,所以先比較,y後變化,因此,在比較時,y仍為2,因此x=y,所以,z=((--y==1)?x--:--y)也就是前一項的值。

此時,x=3,y=2;

再判斷(--y==1),因為y先前已經變為2,所以此時y變為1,因此,z=x--;由上同理,--在後,因此z=x=3,後面x才會變為2。

大致如此,不懂可以再問我

int x 1,y 2,z 3則表示式z xy

姚令怡周義 答案是5.後面是一個三目運算子。先求?前面的表示式,若表示式的值是0,則取 後面的值,非0取 前面的值,而自加運算子的用法是 x 先自增1在使用 x 先使用在自增1 所以x y?x y的值是2 z 2相當於z z 2 5. 計好樂智 結果是6 因為 運算子的優先順序低於後面的運算,所以先...

在C語言中,若int x 2,y 2,z 2則表示式zxy 的值為求過程

答案為6 x 當這句執行完時才加一,同理y 因此計算z z x y 6 天外凝視 int x 2,y 2,z 2 z x y z x y 相當於z z x y x x 1 y y 1 不管有沒有加括號,都一樣的,都是最後表示式計算完才自加的,所以結果等於6 先進行z z x y 然後x,y再自加 x...

設有變數定義“intx 1,y 2,z 3計算下列表示式的值

曉晨之巔 1 這個是要求什麼表示式的值呢?後面的除2 2 完全沒有作用啊,執行後x 2,因為x是整型 若是x float y 0.5 2,執行後x 1 2 逗號 運算子求職順序為自左至右,所以,執行 x,y 後x 0,y 3,z 3,然後求得最右邊x y z 6並將此結果賦給z 3 等號 運算子結合...