若二维数组P[1..5,0..8]的首地址为base,数组元素按行存储,且每个元素占用1个存储单元,则元素P[3,3]在该数组空间的地址为(32)。A.base+13B.base+16C.base+18D.base+21

题目

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

A.base+13

B.base+16

C.base+18

D.base+21


相似考题
更多“若二维数组P[1..5,0..8]的首地址为base,数组元素按行存储,且每个元素占用1个存储单元,则元素P[3,3]在该数组空间的地址为(32)。A.base+13B.base+16C.base+18D.base+21”相关问题
  • 第1题:

    ● 设数组a[0..m,1..n]的每个元素占用1个存储单元,若元素按行存储,则数组元素a[i,j](0≤i≤m,1≤j≤n)相对于数组空间首地址的偏移量为 (32) 。

    (32)

    A. (i+1)*n+j

    B. i*n+j-1

    C. i*m+j

    D. i*(m+1)+j-1


    正确答案:B
    试题(32)分析
    本题考查数据结构基础知识。
        二维数组元素的存储布局可以按行安排,也可以按列安排。元素a[i.j]相对于数组空间首地址的偏移量计算方法为:先算出存储在该元素之前的行数(或列数),然后算出在该元素所在行(或列)上排在a[i.j]之前的元素个数。根据以上信息算出存储在a[i,j]之前的元素个数,再乘以每个元素占用的存储单元个数即可。题中数组元素按行存储,在a[i,j]之前有i行(行号为0、1、…、i-1)、每行n个元素,在其所在行,a[i,j]之前有j-1个元素,因此偏移量为i*n+j-1。
    参考答案
          (32)B

  • 第2题:

    设数组a[1..3,1..4]中的元素以列为主序存放,每个元素占用1个存储单元,则数组元素a[2,3]相对于数组空间首地址的偏移量为(42)。

    A.6

    B.7

    C.8

    D.9


    正确答案:B
    解析:二维数组中的元素可以用两种方式存储:以行为主序(按行存储)或以列为主序(按列存储)。刘于一个m行n列的二维数组,当数组元素以行为主序存储时,首先存储第一行的所有元素,第二行的元素存储在第一行的元素之后,第三行的所有元素存储在第二行的元素之后,依次类推,第m行的元素最后存储。每行的元素按列下标次序从低到高依次存储。同理,以列为主序存储时,先存储第一列的元素,然后是第二列的元素,依次类推,最后是第n列的元素。
      对于二维数组a[L1..H1,L2..H2],无论采用哪一种存储方式,都可以采用以下通式计算数组中元素a[i,j]在存储空间中的位置为
                   loc(a[i,j])=loc(a[L1,L2))+k*d
      其中,k表示数组中存储在a[i,j]之前的元素数目:d表示每个数组元素占用的存储单元个数。当数组的元素以列为主序存放时,存储在a[i,j]之前的元素数目k为
                   k=(j-L2)*(H1-L1+1)+(i-L1)
      因此对于题目中定义的数组a[1..3,1..4],以行为主序存放时,a[i,j]((1≤i≤3,1≤j≤4)的地址计算公式为
              loc(a[i,j])=loc(a[1,1])+((j-1)*3+(i-1))*1=a-4+i+3j
      因此,loc(a[2,3])=a-4+2+3×3=a+7。

  • 第3题:

    设C++二维数组a[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放数组元素,a[3][5]的存储地址为1000,则a[0][0]的存储地址是()。

    A.872

    B.860

    C.868

    D.864


    参考答案:B

  • 第4题:

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

    A.base+13

    B.base+16

    C.base+18

    D.base+21

    A.

    B.

    C.

    D.


    正确答案:D

  • 第5题:

    设数组a[1..3,1..4]中的元素以列为主序存放,每个元素占用1个存储单元,则数组元素 a[2,3]相对于数组空间首地址的偏移量为______。

    A.6

    B.7

    C.8

    D.9


    正确答案:B
    解析:当数组元素以列为主序存储时,首先存储第1列的所有元素,然后存储第2列的所有元素,再存储第3列的所有元素,以此类推,最后存储最后一列的所有元素。数组元素a[2,3]表示是在第3行的第2个元素。所以,根据以列为主序存储元素的方式,它的位置前有2列元素,再加上两个元素,所以,它的位置为2*3+2=8,相对第一个元素的偏移量为8-1=7。本题正确答案为选项B。

  • 第6题:

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

  • 第7题:

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

  • 第8题:

    设数组a[1..6,0..9]的元素以行为主序存放,每个元素占用一个存储单元,则数组元素a[3,3]的地址为 ( ) 。

    A.a+23
    B.a+27
    C.a+39
    D.a+35

    答案:A
    解析:
    本题考查数组元素的存储。二维数组a[1..6,0..9]的元素排列情况如下所示:a[1,0] a[1,1] a[1,2] a[1,3] a[1,4] a[1,5] a[1,6] a[1,7] a[1,8] a[1,9]a[2,0] a[2,1] a[2,2] a[2,3] a[2,4] a[2,5] a[2,6] a[2,7] a[2,8] a[2,9]a[3,0] a[3,1] a[3,2] a[3,3] a[3,4] a[3,5] a[3,6] a[3,7] a[3,8] a[3,9]a[4,0] a[4,1] a[4,2] a[4,3] a[4,4] a[4,5] a[4,6] a[4,7] a[4,8] a[4,9]a[5,0] a[5,1] a[5,2] a[5,3] a[5,4] a[5,5] a[5,6] a[5,7] a[5,8] a[5,9]a[6,0] a[6,1] a[6,2] a[6,3] a[6,4] a[6,5] a[6,6] a[6,7] a[6,8] 8[6,9]以行为主序存储,元素a[3,3]之前存储了23个元素,由于每个元素仅占一个存储单元,因此元素a[3,3]的存储位置相对于数组空间起始地址的偏移量为23,其地址为 a+23。

  • 第9题:

    若二维数组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
    解析:

  • 第10题:

    设二维数组intM[4][4],每个元素(整数)占2个存储单元,元素按列优先的顺序存储,数组的起始地址为100,元素M[2][1]的地址是()


    正确答案:116

  • 第11题:

    任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占用存储空间。


    正确答案:正确

  • 第12题:

    填空题
    设二维数组intM[4][4],每个元素(整数)占2个存储单元,元素按行优先的顺序存储,数组的起始地址为100,元素M[2][3]的地址是()

    正确答案: 122
    解析: 暂无解析

  • 第13题:

    设有一个二维数组A[1…6,1…4],若数组的起始地址为200,并且数据元素以行序为主序存放在数组中,每个元素占用4个存储单元,那么元素A[3,4]的存储地址为【】。


    正确答案:260
    A[]是一个二维数组,A[3,4]代表第三行第4个数,前面有二行,第三行有三个元素,所以元素个数为2*6+3=15,15*4=60,所以存储地址为260。

  • 第14题:

    数组A[-5..5,0..8]按列存储。若第一个元素的首地址为100,且每个元素占用4个存储单元,则元素A[2,3]的存储地址为______。

    A.244

    B.260

    C.364

    D.300


    正确答案:B
    解析:数组A[-5..5,0..8)如果按列存储的话,在内存中的顺序就是:A[-5,0],A[-4,0],A[-3,0],…,A[4,8],A[5,8]。我们把A[-5,0]~A[5,0]称为第0列;A[-5,1)~A[5,1]称为第1列…,则元素A[2,3]之前共有0~2,三个整列,每列有-5~5共11个元素。并且,在第3列中,元素A[2,3]之前还有A[-5,3]~A[1,3]这7个元素。所以,元素A[2,3]之前共有11×3+7=40个元素。首地址为100,且每个元素占用4个存储单元,则元素A[2,3]的存储地址为100+40×4=260。

  • 第15题:

    设数组a[1..6,0..9]的元素以行为主序存放,每个元素占用一个存储单元,则数组元素a[3,3]的地址为______。

    A.a+23

    B.a+27

    C.a+39

    D.a+35

    A.

    B.

    C.

    D.


    正确答案:A

  • 第16题:

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

    (21)

    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

  • 第17题:

    数组A[-5..5,0..8]按列存储。若第一个元素的首地址为100,且每个元素占用4个存储单元,则元素A[2,3]的存储地址为(43)。

    A.244

    B.260

    C.364

    D.300


    正确答案:B
    解析:本题考查数组元素的存储结构。
      二维数组A[-5..5,0..8]的示意图如下。
      A[-5,0] A[-5,1] A[-5,2] A[-5,3]  …  A[-5,8]
      A[-4,0] A[-4,1] A[-4,2] A[-4,3]  …  A[-4,8]
      ┇    ┇    ┇    ┇        ┇
      A[2,0] A[2,1] A[2,2] A[2,3]    …  A[2,8]
      ┇    ┇    ┇    ┇   …    ┇
      A[4,0] A[4,1] A[4,2] A[4,3]    …  A[4,8]
      A[5,0] A[5,11 A[5,2] A[5,3]    …  A[5,8]
      以列为主序存储元素时,存储在A[2,3]之前的元素个数为11x3+7,因此A[2,3]的存储地址为100+40*4=260。

  • 第18题:

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

    (32)

    A. base+13

    B. base+16

    C. base+18

    D. base+21


    正确答案:D

  • 第19题:

    二维数组A[8][9]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087,A[4][7]的存储地址为1153,则数组元素A[6][7]的存储地址为 ( )

    A.1207

    B.1209

    C.1211

    D.1213


    正确答案:A

  • 第20题:

    设二维数组A[6][0],每个数组元素占用4个存储单元,若按行优先顺序存放的数组元素,a[0][0]的存储地址为860,则a[3][5]的存储地址为()。

    A.1000
    B.860
    C.1140
    D.1200

    答案:A
    解析:
    每个数组元素占用4个存储单元,按行优先顺序存放的数组元素,则a[3][5]的存储地址为860+(3×10+5)×4=1000。

  • 第21题:

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

  • 第22题:

    设二维数组intM[4][4],每个元素(整数)占2个存储单元,元素按行优先的顺序存储,数组的起始地址为200,元素M[1][1]的地址是()


    正确答案:210

  • 第23题:

    单选题
    若二维数组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


    正确答案: A
    解析: 数据arr共M行N列,下标均从1开始。元素arr[i,j]在数据arr的第i行第j列,如果数组元素按列存储,则1~j-1列共有(j-1)*M个元素,a[i,j]之前共(j-1)*M+i-1个元素,元素arr[i,j]在该数组空间的地址为base+((j-1)*M+i-1)*K。