1樓:匿名使用者
從左到右求值:
首先看括號裡面的:
1) b/a * 2.0 == (b/a) * 2.0 == (3/2) * 2.0 == 1 * 2.0 == 2.0 // 3/2整型相除,結果為去掉小數點的整型部分
然後:2) 2.0 * a / b == (2.0 * a) / b == (2.0 * 2) /3 == 4.0 / 3 = 1.33333333
然後看比較運算子:
1)和2)的值代入比較運算子即:
2.0 > 1.333333 (比較結果成立,比較運算子結果是「真」
因為比較運算子的結果要代入算數運算,所以將「真」轉換為整型,結果為1,此時表示式可寫為:
1 + ++a - b--
此時a為2, 1 + ++a的結果是,a(此時為2)先自加1,然後a(此時為3)再跟1相加,結果為 4,此時表示式為:
4 - b--
先取出b的值,此時為3用以做減數跟被減數4運算,然後b自減,自減後b為2;此時表示式等效於:
4 - 3
因此,整個表示式的結果是1
2樓:
編譯器不通過
我分析:
對是+(++)a;先是算b/a*2.0結果為3.0000,再算2.
0*a/b結果為1.33333;3.0000>1.
3333結果邏輯真,值為1;然後是++a 因為是前加1,結果為3 減去後減的b結果為0 最後結果為1
3樓:匿名使用者
看成四個加號了……不好意思……剛剛打算做一下,突然發現那個大於號……表示》認識,->也認識,>用於比較也認識,但是用於計算……還真沒見過……不好意思了,這回糗大了……
初級C語言條件判斷問題
1 if x 1 x 3 y 1 y 3 x 1 x 3 y 1 y 3 x 1 x 3 y 1 y 3 x 1 x 3 y 1 y 3 2 if abs x 1 abs x 3 abs y 1 abs y 3 這個題自己做不出來就不要學c c 了 額。我也不懂啊 書才看點點 呵呵 等我會了告訴你 ...
C語言初級有以下程式段輸出結果是
for i 1 i 15 j 4 一定是給錯了,應該是for i 1 i 15 i 4 取4個值1,5,9,13 for j 3 j 19 j 4 m 會執行5次m 也就是m 5,j分別取3,7,11,15,19 兩個迴圈是巢狀關係,合計執行為4 5 20。 外層迴圈應該是 for i 1 i 15...
C語言問題,C語言問題C語言問題
選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...