民國111年 第2梯次 電腦軟體設計(C++)乙級 學科

第73題

程式語言在實作多維陣列(Multid imensional Array)與儲存記憶體間之對應時,可以使用不同方 式,若有一個3×3 的二維陣列A[1..3,1.…

題目

程式語言在實作多維陣列(Multid imensional Array)與儲存記憶體間之對應時,可以使用不同方 式,若有一個3×3 的二維陣列A[1..3,1..3 ],其在記憶體中之值排列順序為:3,1,9,6,4,2,5,7,8,下 列那些敘述為正確?

  1. (1) 當採用Row Major 順序時,A[3,1]=5
  2. (2) 當採用Co lumn Major 順序時,A [2,1]=1
  3. (3) 對於一個一維陣列,採用Row Major 或Column Major 方式儲存資料,結果並不相同
  4. (4) Row Major 方式不可用於三維以上陣列

官方答案

(1) 當採用Row Major 順序時,A[3,1]=5、(2) 當採用Co lumn Major 順序時,A [2,1]=1

解析

Row Major 是同一列先存,A[3,1] 是第 (3-1)×3+(1-1)+1=7 個元素,序列第7個為5,故1正確。Column Major 是同一行先存,A[2,1] 是第 (1-1)×3+(2-1)+1=2 個元素,序列第2個為1,故2正確。一維陣列只有一個維度,兩種方式結果相同,3錯誤;Row Major 可推廣至三維以上,4錯誤。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料