9. 在 C/C++程式語言中 int x=1; int y=(++x==1); printf("x=%d, y=%d
", x, y); 這三
個指令執行後,執行的畫面會顯示出下列何者?
(A) x=1, y=0
(B) x=1, y=1
(C) x=2, y=0
(D) x=2, y=1
答案:登入後查看
統計: A(19), B(16), C(25), D(11), E(0) #3246964
統計: A(19), B(16), C(25), D(11), E(0) #3246964
詳解 (共 2 筆)
#6427074
這段 C/C++ 程式碼的執行過程如下:
-
int x = 1;
- 宣告一個整數變數 x,並將其初始化為 1。
- 目前 x = 1。
-
int y = (++x == 1);
- 這是一個包含前置遞增運算子 ++x 和相等比較運算子 == 的複合語句。
- ++x (前置遞增):這個運算子會先將 x 的值加 1,然後才使用 x 的新值進行運算。
- x 原本是 1,執行 ++x 後,x 的值變為 2。
- 此時,表達式中 ++x 的結果是 2。
- == 1 (相等比較):接下來,比較 ++x 的結果 (2) 是否等於 1。
- 2 == 1 這個判斷是 false(假)。
- 在 C/C++ 中,布林值 false 通常會被轉換為整數 0。
- 所以,變數 y 被賦值為 0。
- 目前 x = 2,y = 0。
-
printf("x=%d, y=%d ", x, y);
- 這個指令會列印出變數 x 和 y 當前的值。
- 它將會顯示 x=2, y=0。
因此,執行畫面會顯示 x=2, y=0。
最終答案是 C
1
0