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

詳解 (共 2 筆)

#6121093
int x = 1; 宣告變數 x ...
(共 259 字,隱藏中)
前往觀看
9
0
#6427074

這段 C/C++ 程式碼的執行過程如下:

  1. int x = 1;

    • 宣告一個整數變數 x,並將其初始化為 1。
    • 目前 x = 1。
  2. 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。
  3. printf("x=%d, y=%d ", x, y);

    • 這個指令會列印出變數 x 和 y 當前的值。
    • 它將會顯示 x=2, y=0。

因此,執行畫面會顯示 x=2, y=0。

最終答案是 C

1
0