定義 int x 1,y 2,z執行z xy xy表示式後,x,y,z的值是

2021-06-01 03:02:55 字數 1571 閱讀 5477

1樓:歷玉巧淦賦

||先明白x++||y++||z++這個表示式結果只有可能2個值,0和1,||運算子有個特

回點,如果第一個表答達式結果是真,則後面的表示式將不執行,因為x=5,結果非零,所以這裡只執行了一個x++,最後x=6,y=6,z=8

2樓:匿名使用者

? :為三元運算子,例如:a?b:c

表示如果a為真,則表示式值為b,如果a為假,則表示式值為c

先算x>y 為false其值為y++,即為3,所以最後x=2,y=3,z=3

3樓:匿名使用者

相當於:

if ( x>y )

else

所以執行完成後:x=1 y=3 z=2

c語言:已有定義int x=3,y=4,z=5;則表示式 !(x+y)+z-1&&y+z/2的值是?

4樓:

答案是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語言運算子的優先順序:

如果同一優先順序的運算子,結合次序由結合方向所決定。

5樓:匿名使用者

只是等於1的,我是經過turbo c2.0編譯過的,答案應該沒什麼問題的,程式是:

main()

答案為什麼會等於1呢?那是因為運算級別的問題,根據運算級別,實現算括號裡面的先,所以程式就變成!7+z-1&&y+z/2;

然後就算!運算,由於7是大於1的,也就是真,所以!真就是假,也就是0,所以函式就變成0+z-1&&y+z/2;

然後再算除號的,由於你這裡兩個都是整形的,所以小數點後面的數忽略,所以就變成0+z-1&&y+2;

接著計算加減運算,也就是變成4&&6;

因為4和6都是大於1的數,所以就是真,由於&&兩邊都是真的話,輸出的就是真,所以結果就是1。

要是還有什麼不明白的話,就mm我吧!嘻嘻~~~~~~

6樓:匿名使用者

1優先順序: 算數》條件》關係》賦值

關係中的優先順序: 非》與》或

7樓:匿名使用者

1,把運算子優先順序搞清楚就好了

8樓:匿名使用者

x等於y加4。四家外加1+3+5+4+1等於三五+4+5+1。

9樓:匿名使用者

!(3+4)+5-1&&4+5/2

=!7+4&&4+2

=!11&&6

所以說那個式子的值是:不是11並且是6

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

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

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則表示式

答案是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 ...