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。

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

c語言 已有定義int x 3,y 4,z 5則表示式

答案是1。涉及到的運算子 運算子優先順序為 運算過程 x 3,y 4,z 5 x y z 1 y z 2 3 4 5 1 4 5 2 所以表示式計算步驟為 3 4 5 1 4 5 2 7 5 1 4 5 2 7為 0 0 5 1 4 5 2 5 2 整數除整數得整數 2 0 5 1 4 2 4 6 ...

C語言 已有定義int x 3,y 4,z 5則表示式

經海秋皋驕 x y z 1 y z 2 代入資料為 3 4 5 1 4 5 2 3 4 為0,剩餘5 1 4 5 2,因為算術運算優先順序較高,等價於4 4 5 2,4 4為1,結果為3.5 若賦值給執行變數,或直接列印的時用 d,則為3 李丹溪仍妞 只是等於1的,我是經過turbo c2.0編譯過...

定義 int x 3,y 4,z 5則表示式 x y z 1 y z

仍易闕鈴 c語言的優先順序 從上到下依次遞減 醋 初等,4個 指向結構體成員 結構體成員 壇 單目,9個 負號 型別 指標 取地址 sizeof長度 酸 算術,5個 減味 位移,2個 灌 關係,6個 等於 不等於 味 位邏,3個 按位與 按位異或 按位或 落 邏輯,2個 邏輯與 邏輯或 跳 條件,1...