14 假設記憶體中儲存一個整數(Integer)資料必須使用 4 個位元組(Byte),若一整數陣列(Array)宣告為 A[m][n]且 A[0][0]為其第一個元素。若 A[3][11]儲存於記憶體中之位址(Address)為 146774,又 A[8][2]儲存於記憶體中之位址(Address)為 147078,則下列各敘述何者正確?
(A)m 無法判斷其值,但 n<16
(B)n 無法判斷其值,但 m>22
(C)陣列 A 組成元素儲存於記憶體中之位置順序是依“行為主順序(Column major order)”之方式儲存
(D)陣列 A 至少有 153 個組成元素
答案:登入後查看
統計: A(48), B(27), C(61), D(108), E(0) #682768
統計: A(48), B(27), C(61), D(108), E(0) #682768
詳解 (共 2 筆)
#1298686
只有( D) 是對的,
153 是因為至少有 9 列,m 至少等於 9,因為有 A[8][2] 這個元素,第一個維度可以到 8,m 當然至少為 9。
4*(3*n+11)+ A = 146774
4*(8*n+2) + A = 147078
可以算出 n = 17,m 又至少為 9,那當然至少有 153 個元素。
( C) 是錯的,因為 A[8][2] 在 A[3][11] 後面,所以是 row major order、不是 column major order。
----轉自樓上
153 是因為至少有 9 列,m 至少等於 9,因為有 A[8][2] 這個元素,第一個維度可以到 8,m 當然至少為 9。
4*(3*n+11)+ A = 146774
4*(8*n+2) + A = 147078
可以算出 n = 17,m 又至少為 9,那當然至少有 153 個元素。
( C) 是錯的,因為 A[8][2] 在 A[3][11] 後面,所以是 row major order、不是 column major order。
----轉自樓上
10
0
#1194527
http://lineq.tw/q/3232429
1
0