若二维数组arr[1..M,1..N]的首地址为base,数组元素按列存储且每个

考试题库2022-08-02  48

问题 若二维数组arr[1..M,1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为______。A.base+((i-1)*M+j-1)*KB.base+((i-1)*N+j-1)*KC.base+((j-1)*M+i-1)*KD.base+((j-1)*N+i-1)*K

选项 A.base+((i-1)*M+j-1)*K
B.base+((i-1)*N+j-1)*K
C.base+((j-1)*M+i-1)*K
D.base+((j-1)*N+i-1)*K

答案 C

解析 本题考查数组元素的存储知识。二维数组arr[1..M,1..N]的元素可以按行存储,也可以按列存储。按列存储时,元素的排列次序为,先是第一列的所有元素,然后是第二列的所有元素,最后是第N列的所有元素。每一列的元素则按行号从小到大依次排列。因此,对于元素arr[i,j],其存储位置如下计算:先计算其前面j-1列上的元素总数,为(j-1)*M,然后计算第j列上排列在arr[i,j]之前的元素数目,为i-1,因此arr[i,j]的地址为base+((j-1)*M+i-1)*K。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2416792.html

最新回复(0)