1樓:瀚漠
(y*5,y=y+6,y/z,y+=2+(z-=1))逗號表示式,規則:
從左到右依次計算每個表示式,整個表示式的值為最右邊表示式的值。
左邊開始:
y*5 無實際效果y=y+6 此時:y=7+6=13y/z 無實際效果y+=2+(z-=1) 轉化:y = y+2 + (z = z-1),y=y+2+3,y=13+2+3 = 18
最右邊表示式的值即:18,所以整個表示式的值為18,即:x = 18
c語言一道題。假設所有變數均為整型,則表示式(x=2,y=5,y=++,x+y)的值為?答案是8,
2樓:和藹的雨後餘輝
這是逗號表示式,運算順序為最後乙個式子x+y的結果,y=++該式等價於y=y++,就是y自加1,因而y的值變為6,而x值沒有改變,因而x+y的值為8
3樓:匿名使用者
這是逗號表示式,從左往右計算,最後乙個表示式的值就是整個表示式的值.
第三個表示式,y++以後,y=6. 所以最後乙個表示式x+y=8.
4樓:匿名使用者
寫錯了,親。知識,逗號運算子,y++與++y的區別,
5樓:匿名使用者
你確定是 y=++ 而不是y++?
#include
6樓:匿名使用者
巨集定義只執行簡單的替換操作,就像你把x用5代替一定,y就用x+1代替就是6,z用y*x/2代替,這時候要注意了,是x+1*x/2,也就是5+1*5/2,結果z就是7,如果你#define y (x+1),這是帶了括號的,然後再去替換到z裡,又是另乙個結果,(x+1)*x/2,把5帶進去算就是15了,巨集定義中帶括號和沒帶括號差別很大的,要特別特別注意,因特他真的是很簡單很簡單的「替換」操作。
7樓:匿名使用者
printf("%d %d\n",z ,語句不全,
z = x + 1*x/2 = 5 + 1*5/2 = 5 +2 = 7;因為#define 定義的巨集只進行單純的替換,
8樓:水de幻想
如果你這是完整的話,那結果應該是7,而不是7.5
c語言:已有定義int x=3,y=4,z=5;則表示式 !(x+y)+z-1&&y+z/2的值是?
9樓:經海秋皋驕
!(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
10樓:李丹溪仍妞
只是等於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我吧!嘻嘻~~~~~~
C語言中怎麼計算x,y的值,c語言中(x,y)中怎麼計算
int x,y 定義的時候如果不初始化,不同的環境會初始化不同的值,有的是0,有的不是,你的這個程式,x的結果是不定的,同時,有些環境下除錯也會報錯! 此處無名勝有名 c語言的賦值語句是從右到左執行的,比如 x y 1 意思就是 把y 加1後賦值給x但c語言的語序是從上到下執行的 本題中,當執行in...
C語言中這個題有會的嗎,C語言這個題有沒有人會呀?
y 1 y 1 y 10成立,開始迴圈 x 3 y,x 3 1 3 x 1 得到4作為 x 3 y,x 1 這個表示式取值 x 1 y 2,作為整個逗號表示式的取值 y 10成立,繼續迴圈 x 3 y,x 3 2 6 x 1 得到7作為 x 3 y,x 1 這個表示式取值 x 1 y 5 y 10成...
C語言中int x 1,y 2,z 3則z xyxy的值為多少?為什麼?求大神指教
答案應該是6.因為先進行x y?這個判斷,而x y為假,所以z y,y的值是3,所以z 3,本來z 3,所以z的值為6 焚香一隻鬼 值 為 6 原因是z x y x y z z x y x y 取 z 右邊 運算 可設 z 右邊 為 int c c x y x y x y 不滿足 則 c 的值等於 ...