C語言問題,intx1,y1,z1xyzxyz的值是多少

2021-03-04 09:00:54 字數 1465 閱讀 2229

1樓:匿名使用者

x=0y=1

z=1原因是:

--x && (--y || --z) 中,&& 是邏輯與運算子。

程式執行時會先判斷 && 左邊的部分,如果內左邊部分為真,再判斷右容邊部分。

左邊的部分是 --x ,也就是讓 x 先自減 1,即 x 為 0 ,邏輯運算時 0 被當作 "假" 來處理。

邏輯與運算時有一項為假,結果必為假,因而不用再判斷右邊的部分。

所以 && 右邊的部分不會被執行,所以 y 和 z 的值會保持不變。

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

2樓:

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

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

3樓:匿名使用者

只是等於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我吧!嘻嘻~~~~~~

4樓:匿名使用者

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

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

5樓:匿名使用者

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

6樓:匿名使用者

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

7樓:匿名使用者

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

=!7+4&&4+2

=!11&&6

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

C語言int x 3,y 4,z 5那xyz 1 是什麼意思

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

C語言add x 1,y 1 ,C語言 add x 1,y

不太清楚你的意思是問這段 是什麼意思 還是 define add x,y x y 如果是後者,define的本質其實是乙個代換即編譯後add x,y 將被替換為 x y對這段 來說 add x 1,y 2 即為 x 1 y 2 x,y都被初始化為 2 所以s的值為8 2 1 2 2 1 巨集定義是直...

c語言。。int a 5,b 3,w 1,x 2,y 3,z 4a wxb yz 最後b的值為什麼是三

因為w 1 x 2這個條件不成立,所以整個邏輯語句就是不成立,程式不會再去執行 後面的 b y z這個語句,所以判斷後b的值不變還是3 主要看最抄後的乙個表示式 求值 襲a w x b y z 這個表示式的值是多少呢?顯然不是true就是false,因為這是個邏輯表示式 先看 前面的表示式,求值是f...