问题 单项选择题

对于二维数组a[1..4,3..6],设每个元素占两个存储单元,若分别以行和列为主序存储,则元素a[3,4]相对于数组空间起始地址的偏移量分别是 (1) (2)

(2)()

A.12

B.14

C.16

D.18

答案

参考答案:A

解析:

每一个二维数组都可以被看作是一个矩阵。本题的二维数组a[1..4,3..6]的矩阵如下:

以行为主序存储,即以a[1,3]、a[1,4]、a[1,5]、a[1,6]、a[2,3]……这样的顺序连续存储,不难看出,a[3,4]是第10个元素。第1个元素的地址就是数组空间的起始地址,所以其偏移量为0,那么a[3,4]的偏移量难道为9千万不要忘记题目的要求“每个元素占两个存储单元”,所以a[3,4]的偏移量是9*2=18。故第1空应该选择D。

以列为主序存储,即以a[1,3]、a[2,3]、a[3,3]、a[4,3],a[1,4]……这样的顺序连续存储,所以a[3,4]是第7个元素。那么a[3,4]的偏移量就是6*2=12。故第2空应该选择A。

选择题
单项选择题