niusouti.com

● 若二维数组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

题目

● 若二维数组arr[1..M, 1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i, j]在该数组空间的地址为 __ 。

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[i,j]以前,应该存放了j-1列,而每一列中有M个元素(即数组的行数),那么应该有(j-1)*M个元素,而在第j列中,存放元素arr[i,j]以前,应该有i-1个元素被存放,因此,在存放元素arr[i,j]以前总共有(j-1)*M+i-1个元素被存放,而每个元素占用K个存储单元,因此本题答案选C。参考答案C
更多“● 若二维数组arr[1..M, 1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素 ”相关问题
  • 第1题:

    若二维数组P[1..5,0..8]的首地址为base,数组元素按行存储,且每个元素占用1个存储单元,则元素P[3,3]在该数组空间的地址为______。

    A.base+13

    B.base+16

    C.base+18

    D.base+21


    正确答案:D
    解析:根据定义,二维数组P[1..5,0..8]中的元素可表示如下:P[1,0]P[1,1]P[1,2]P[1,3]P[1,4]P[1,5]P[1,6]P[1,7]P[1,8]P[2,0]P[2,1]P[2,2]P[2,3]P[2,4]P[2,5]P[2,6]P[2,7]P[2,8]P[3,0]P[3,1]P[3,2]P[3,3]P[3,4]P[3,5]P[3,6]P[3,7]P[3,8]P[4,0]P[4,1]P[4,2]P[4,3]P[4,4]P[4,5]P[4,6]P[4,7]P[4,8]P[5,0]P[5,1]P[5,2]P[5,3]P[5,4]P[5,5]P[5,6]P[5,7]P[5,8]数组空间首地址为base,也就是说元素P[1,0]的存储地址为base,按行存储时,P[3,3]之前存储了2×9+3个元素,因此P[3,3]在该数组安间的地址为base+21。

  • 第2题:

    ●若二维数组arr[1..8,1..6]的首地址为base,数组元素按列存储,且每个元素占用4个存储单元,则元素arr[5,5]在该数组空间的地址为 (36) 。

    (36)

    A.base+(4*8+4)*4

    B.base+(5*8+5)*4

    C. base+(4*6+4)*4

    D.base+(5*6+5)*4


    正确答案:A
    本题考查数组元素的存储。
    二维数组arr[l..8,1..6]元素布局如下所示:
     
    按列存储时,元素arr[5,5]之前有4列(每列8个元素),在第5列中,arr[5,5]之前
    有4个元素,因此,存储在arr[5,5]前面的元素总数为4*8+4。
    综上,元素arr[5,5]在该数组空间的地址为base+(4*8+4)*4。
    参考答案
    (36)A

  • 第3题:

    若二维数组arr[1..M,1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为______。

    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。

  • 第4题:

    ●若二维数组arr[1..8,1..6]的首地址为base,数组元素按列存储,且每个元素占用

    4个存储单元,则元素arr[5,5]在该数组空间的地址为 (36) 。

    (36)

    A.base+(4*8+4)*4

    B.base+(5*8+5)*4

    C. base+(4*6+4)*4

    D.base+(5*6+5)*4


    正确答案:A

  • 第5题:

    若二维数组arr[1…M,1…N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为( )。

    A.base+((i一1)*M*j-i)*K
    B.b ase+((i-1)*N+j-1)*K
    C.baSe+((j-l)*M十i-1)*K
    D.base+((j-1)*N+i-1)*K

    答案:C
    解析: