1樓:匿名使用者
y=529
解析:++或--後置運算子優先順序小於*,而前置運算子優先順序卻大於*,所以,執行y=x++*x++;時,首先內計容算y=x×x=5×5=25,再計算x=x+1=6;x=x+1=7;執行y=--y*--y;時,先y=y-1=25-1=24,;再計算y=24-1=23;最後計算y=23×23=529.
即等效**為:
int x=5;
y=x*x;
x=x+1;
x=x+1;
y=y-1;
y=y-1;
y=y*y;
執行結果如下:
2樓:夢中夢
【529】
驗證的copy
程式:#include
int main()
這涉及到運算
符優先順序的問題,自增自減的運算級是大於*乘法運算的,自己推導一下,另外x++和++x的區別是,誰在前,先操作誰
不懂再追問,希望可以幫你
3樓:
首先,要知道++、--這樣的運算子,在程式中是如何執行的。
有兩種形式:
1、前專++、前--:在表示式屬執行之前,先進行++或--操作。
2、後++、後--:在表示式執行結束後,再進行++或--操作。
例如問題中提到的 y = x++ * x++;
這則表示式是後++操作,表達的執行流程如下:
1、y = x + x
2、x++ (即:x = x + 1)
這步執行後,y=25,x=7(因為在表示式執行後,x自加了2次)。
所以在 y = --y * --y;操作時1、--y(即:y = y - 1),執行2次,因為有2個 --y。
這步執行後,y=23。
2、y = y * y (這裡的y值已經做過2次自減操作。)這步執行後,y=529。
c語言程式,x=5,y=x++*x++,y=--y*--y,求最後y的結果以及過程原理。
4樓:匿名使用者
y= 529
執行 y = x++* x++後
y = 25,
++在後表示執行後再遞增,所以不影響
--在前,表示先減了再運算
所以 y = 23*23 = 529
5樓:匿名使用者
y = x++* x++ 中x要乘完再自增的,所以是5*5
6樓:聽海的聲音
529 這種問題少問的好
c語言題目,用中文解釋一下,比如x=y=5,x++*x++和--y*--y分別等於多少?
7樓:安僧
我剛打了;如果是x++後邏輯運算是直接乘法後加一,所以x++*x++=27;
但++x是前邏輯運算,所以++x*++x=49;
其次++x*x或x*x++才=36;
8樓:匿名使用者
x=y=5, 這句完了之後x=5,y=5
x++*x++ 第一個x還是5,第二個x是6,所以這個表示式的值是30
--y*--y 第一個y是4,第二個是3,所以這個表示式的值是12
9樓:匿名使用者
x++之後,x為6,兩個6相乘,我就不說答案了,同理,後面的--y,y自減兩次所以y=3,兩個3相乘的答案我也不說了,希望能幫到你,不要只看表面,而不去實踐,這句話我是對2樓的同志說的,,,
10樓:匿名使用者
x++ x-- 記住是使是後加減
++x --x 是加或減後使用的
11樓:匿名使用者
有用vc試驗麼,試驗結果是25 9
彙編結果太長,貼不了:先乘再++,先--再乘。
c語言 int x=4,y=25,z=2; z=(--y/++x)*z--;請問z的值是多少?
12樓:miss_繁華盡落
#include
main()
結果是7並不是8 別忘了你最後的得出的結果z--是被執行了的。所以z=8之後還要再減1 所以z=7 如果你定義個其他變數,比如d. 讓d=(--y/++x)*z--; 的時候d是等於8的 而z最後還是要減一的。
因為z開始等於2 所以z--之後等於1了。
13樓:暗中黑雷
算術運算優先順序 由高到低為 (),
+(單目), -(單目),*,/,%,+,-除+(單目), -(單目)外 以上均為雙目運算子其中單目運算子 只對一個運算數操作 如i++ 它的結合順序由右向左
其中 i++是先用i的值之後i+1 而++i是 i 先加一 在呼叫加一後的i
雙目運算子對兩個運算數操作 如 a+b 它的結合順序由左向右瞭解這些後先算括號內的 --y = 24 , ++x=5 , --y/++x=4
之後*z--但此時呼叫的z=2 , 4*2=8因此結果為8
希望可以幫到你 如果有不清楚的地方還請指出我會改正
14樓:晁溫嶽雁
這是自增自減運算子,如果是--y,表示y的值減少一,即24.才參加運算,如果是y--,表示y的值先運算了再減一。同樣,++就是自加一,也依上面的方法算,不知這樣你明白不。
15樓:聽不清啊
z的值是8
z=(24/5)*2=4*2=8
16樓:匿名使用者
z=8;
z=z--; 結果z=7;
17樓:匿名使用者
--y=24;
++x=5;
24/5=4;
4*2=8
最後結果7
關於c++的問題。int x=4,y=5 表示式y>x++?x--:y++。。。的值是
18樓:匿名使用者
c++裡面的 問號bai表示式du
1: y>x //由於++在後面所以是
zhi 5 和 4 比較
2:x++ //比較完
dao x = 5了
3:由於 第一步 結果為true 所以執內行容x-- 那麼x 又由5 變成4 了
4:y++**不執行 所以還是 5
5: int z = y>x++?x--:y++;由於x--,--在後面
所以 x =4 ,y = 5, z = 5;
19樓:她在哪阿
這是個問號表示式,如果y大於x則執行x--反之執行y++,但是執行之前都會執行x++;那麼回此時x==,y==,比較是答比較的x++之前的值,所以執行x--;此時x==5,但是先執行x,所以表示式的值為5,之後x==4y==5;
20樓:最終幻夜
您好 根據您的題意 三目運算子 首先進行判斷 5>4++ 顯然條件為真 然後x的值+1變成5了 返回冒號左邊的 x的值 為5 所以最後表示式返回的是 5 但是x仍舊是4
C語言中intx5,y5,z5執行語句xy
因為 運算 符的優先順序copy低於 所以 bai,先算y z 5 5 10 x y z x 10 x x 10 5 10 5 表示取模後,結果du還賦值給左zhi變數 表示模運dao算,即 整除取餘數。已知int x 5,y 5,z 5 執行語句x y z 後,x的值是 x y z x x y z...
int x 5,y 1,p,則執行語句p 3,p y,x x p後變數x的值
int x 5,y 1,p x 這時 p 指向來 變數源 x.p 3 使bai x 3 了 p y 讓 p 指向 變數 y p 值等於 y 的當前值 1 x x p x 3 1 變數 x 的值du變成 4 回答 zhi 執行語句這dao幾個語句後,變數x的值 是 4。設有int x 5,y 1,p ...
已知int x 10,y 20,z 30以下語句執行後x
if x y z x 如果x y 執行z x,因為x不大於y,所以z x這句話不執行,繼續向下執行 x y x 20 y z y 30 z還是原來版的30。已知int x 1,y 2,z 3 以下語句執權行後x,y,z的值是 if x y z x x y y z a x 1,y 2,z 3 b x ...