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

針對以下C 程式,執行後如果第一個和第二個輸出是240ff18 和240ff38,則第三個輸出是那一個?電腦軟體設計(C++) 乙級 C++ 第 55 題 題目 圖片

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

難易度分析

4 / 5

本題要求考生理解二維陣列的記憶體儲存機制,並需結合資料型態的大小進行精確的十六進位位址計算,推論過程較為複雜且對計算精確度要求高。

正確答案:③240fed4

③ 240fed4:240fed4 為正確答案。二維陣列 `int x[5][7]` 以列優先連續配置,每個 int 佔 4 位元組。`&x[2][4]` 偏移量為 2×7+4=18 個元素,`&x[0][1]` 偏移量為 0×7+1=1 個元素,兩者相差 17 個元素即 68 位元組(0x44)。由 240ff18 減去 0x44 得 240fed4。

錯誤選項解析

  • ① 240ff80:240ff80 的計算結果錯誤。此數值與正確位址差距過大,未正確考量二維陣列的記憶體連續配置特性與 int 型態佔用 4 位元組 的偏移量。
  • ② 240ffc6:240ffc6 的計算結果錯誤。此數值未正確應用二維陣列的列優先(row-major)儲存順序來計算元素間的位址偏移。
  • ④ 240fedd:240fedd 的計算結果錯誤。此數值接近正確答案但末位數字有誤,未精確計算 17×4=68 位元組 的位址偏移量。
Learning Tip

"本題核心考點為 二維陣列的記憶體配置 與 位址運算。C/C++ 中二維陣列採 列優先(row-major) 連續儲存,元素 `x[i][j]` 相對於陣列起始位址的偏移量為 (i×列數+j)×sizeof(元素型態)。常考陷阱為混淆列數與行數,或忽略 int 佔 4 位元組 而非 1 位元組。解題時建議先由已知兩個位址的差值反推元素間距,驗證 sizeof(int)=4 後再計算目標位址。"

學員答題分佈

①240ff800%
②240ffc60%
③240fed40%
④240fedd0%

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

相似類型題目