LONGEPASS
電腦軟體設計(C++)/C++/Q132
困難
正確率 -
Q132.

執行完下列C++語言程式片段後,那些值會包括在程式輸出的一部份?電腦軟體設計(C++) 乙級 C++ 第 132 題 題目 圖片

電腦軟體設計(C++) · 乙級 · C++ · Q132

難易度分析

4 / 5

本題採用複選題型,要求考生必須完整判別所有選項的正確性,且涉及指標運算與記憶體位址偏移的精確推論,增加了認知負荷與分析難度。

正確答案 (複選):①, ④

  • ① 1:指標運算 `*y` 中,`y` 指向陣列 `z` 的起始位址(即 `z[0]`),因此 `*y` 取值為 1,會出現在輸出中。
  • ④ 7:指標位移運算 `x = *(y + 3)` 將 `y` 位移 3 個元素後取值,即 `z[3] = 7`,因此 `x` 的值為 7,會出現在輸出中。

錯誤選項解析

  • ② 3:程式中沒有任何 `printf` 會直接輸出 3。`z[1]` 的值雖為 3,但程式未對 `*(y+1)` 或 `z[1]` 進行印出操作。
  • ③ 5:程式中沒有任何 `printf` 會直接輸出 5。`z[2]` 的值雖為 5,但程式未對 `*(y+2)` 或 `z[2]` 進行印出操作。
Learning Tip

"本題核心考點為 C++ 指標與陣列的關係 及 指標算術運算。關鍵陷阱在於區分 `*z+3`(先取值再加 3,結果為 1+3=4)與 `*(z+3)`(先位移再取值,結果為 7)的運算優先順序差異。實務上需熟記 陣列名稱即為指向首元素的指標,以及 `*(ptr+n)` 等價於 `ptr[n]` 的對應關係。"

學員答題分佈

①10%
②30%
③50%
④70%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目