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

執行完下列C++語言程式片段後,那些敘述正確?電腦軟體設計(C++) 乙級 C++ 第 133 題 題目 圖片

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

難易度分析

4 / 5

本題採複選形式,且要求對指標陣列的解參考運算與運算子優先順序進行精確區分,需具備較高程度的邏輯推導能力以排除相似選項的干擾。

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

  • ① **p=40:`*p` 等同於 `p[0]`,而 `p[0] = a+3` 指向陣列 `a` 的第四個元素 `a[3]`,其值為 40,故 `*p = 40` 正確。
  • ② **(p+1)=20:`*(p+1)` 等同於 `p[1]`,而 `p[1] = a+1` 指向陣列 `a` 的第二個元素 `a[1]`,其值為 20,故 `*(p+1) = 20` 正確。

錯誤選項解析

  • ③ **p+3=30:`*p+3` 的運算順序為先解參考 `*p` 得到 40,再加 3,結果為 43 而非 30。此選項混淆了 `*p+3` 與 `*(p+3)` 的差異。
  • ④ **(p+3)=30:`*(p+3)` 等同於 `p[3]`,而 `p[3] = a` 指向陣列 `a` 的第一個元素 `a[0]`,其值為 10 而非 30。
Learning Tip

"本題核心考點為 指標陣列(pointer array) 的宣告與解參考運算。`int *p[]` 表示 `p` 是一個指標陣列,每個元素都是指向 `int` 的指標。需特別注意 `*p+3`(先解參考再加 3)與 `*(p+3)`(先移動指標位置再解參考)的運算子優先順序差異,此為 C++ 指標題型最常出現的陷阱。另外,`a+n` 表示陣列 `a` 的第 `n` 個偏移位置,`a[0]` 為起始位置。"

學員答題分佈

①**p=400%
②**(p+1)=200%
③**p+3=300%
④**(p+3)=300%

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

相似類型題目