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 等號 運算子結合...