1樓:匿名使用者
當然是0了啊 printf("%d\n",1.0+x/y); 因為後面1.0加上x/y(0)的結果是浮點型 沒有匹配前面的%d。只有x/y匹配 所以是0
int x=1,y=2; printf("%d",x+y,x++,y++); 為什麼得的值是5,而不是2或者3.
2樓:匿名使用者
pirntf函式中的表示式的結合順序是由右向左,所以先算y++,再算x++,最後算x+y,因為只有一個%d,所以輸出對應的x+y的值為5
3樓:百劫度厄
標準c編譯器的話,應該是3,x++、y++是在所在語句執行完後再+1的,
即使是printf("%d",x+y,++x,++y);結果也為3,因為執行順序是從左至右,運算x+y時,xy還沒自加
不知道你用的什麼編譯器,是哪種c
4樓:
這可不一定是5,通常是3。請看:
5樓:匿名使用者
這個主要看編譯器編譯順序的問題
你看下這個問題就明白了
6樓:匿名使用者
vc++6.0執行結果是3
以前回答過這樣一個帖子,有空的話去看下。
7樓:
x和y都自增以後再相加的
8樓:匿名使用者
你是用tc編譯器吧。tc是5. vc是3
int x=-1,y=1;printf("%d,%d\n",x+y++,y);的結果是多少?
9樓:匿名使用者
不可能呀,我也除錯了一遍,就是0,2,這個答案應該是肯定的,可能是你的c語言編輯器有問題吧,你在找個別的試試看,會不會出錯
10樓:3問全不知
這個不怪你的,你用vc吧!!用tc就知道了
11樓:孤舟釣客
我用vs2010除錯了一下是0, 2啊。。。
main {int x=1,y=2,z=3; z+=x>y?++x;++y; printf("%d",z); } 此程式的執行結果??
12樓:匿名使用者
執行結果為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
13樓:
1 程式來先改正:
void main() //本行少源()2 執行結果:dao6
14樓:匿名使用者
答案: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
#include
15樓:匿名使用者
我來給bai你詳細說說:du(++x,y++),這是逗號表示式,先執行++x,然zhi後執行y++;結果取逗號dao後面表示式的回值,也就是答y++的值。y++的值為3,因為這是後加表示式,如果是前加++y的話,值就是4;z+2的值是1+2=3;所以結果輸出是33
16樓:匿名使用者
if(x=2)對x賦值2 並且邏輯判斷為真 z=x z=2 ......
17樓:匿名使用者
咋了???????????????
JAVA問題 int x 1,y 2,z 3則語句y zx的值是
x 2,y 3,z 2 月亮望見了copy 小魚的結果正確,過bai程分析不對。woniu157的結果就du錯了。都是因為 和zhi 這兩個運算dao 符。遞增和遞減運算子出現在變數的前面和後面時優先順序是不一樣的。出現在變數前時,優先順序最高要先算遞增 遞減的值,再參與其他運算子號的操作。出現在變...
設有變數定義「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 等號 運算子結合方向為自右...
設有宣告int x 1,y 2,z 3下面表示式的值為0的有()A x《z B z》2 C y y D x yE z y x為什麼
完整bai的是bcde b 右移2位,du相當於除以4,3 4 因為是zhiint型別的,所dao以等於0 c 異或操作 y y 相同專等屬於0d 1 2 等於0 10 01 00e 1 2 3 等於0 00 1100 應該是d e a左移2,相對於 1 2,b右移2,相對於3 2,c異或時還是y ...