02331数据结构

设二维数组a[0‥5,0‥6]按行存储,每个元素占d个存储单元,如果每个元素改为2d个存储单元,起始地址不变,则元素a[2,6]的存储地址将要增加()个存储单元。A、20dB、21dC、38dD、39d

题目

设二维数组a[0‥5,0‥6]按行存储,每个元素占d个存储单元,如果每个元素改为2d个存储单元,起始地址不变,则元素a[2,6]的存储地址将要增加()个存储单元。

  • A、20d
  • B、21d
  • C、38d
  • D、39d
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.872

B.860

C.868

D.864


参考答案:B

第2题:

对于二维数组a1..6,1..8,设每个元素占2个存储单元,且以列为主序存储,则元素a4,4相对于数组空间起始地址的偏移量是______个存储单元。

A.28

B.42

C.48

D.54

A.

B.

C.

D.


正确答案:B

第3题:

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

A.28

B.42

C.48

D.54


参考答案:B

由于是以列为主序,则前3列有3×6=18个元素,因此a[4,4]的位置是在第18+4=22位。因此相对于数组空间起始地址的偏移量是(22-1)×2=42个存储单元,故答案为B。

第4题:

对于二维数组A[0…5,1…8],设每个元素占1个存储单元,且以列为主序存储,则元素A[3,6]相对于数组空间起始地址的偏移量是(60)。

A.9

B.18

C.29

D.33


正确答案:D
解析:若二维数组A[L1…U1,L2…U2]以列为主序存储,每个元素占用d个存储单元,则元素A[I,j]的存储位置相对于数组空间首地址的偏移量为((J-L2)×(U1-L1+1)+I-L1)×d。对于二维数组A[0…5,1…8],设每个元素占1个存储单元,即d=1,L1=0,U1=5,L2=1,U2=8。若以列为主序存储,则元素A[3,6]相对于数组空间起始地址的偏移量为((J-L2)×(U1-L1+1)+I-L1)×d =((6-1)×(5-0+1)+3-0)×1=33。另外,若二维数组A[L1…U1,L2…U2]以行为主序存储,每个元素占用d个存储单元,则元素A[I,J]的存储位置相对于数组空间首地址的偏移量为((I-L1)×(U2-L2+1)+J-L2)×d。可见,若二维数组A[0…5,1…8]以行为主序存储,每个元素占1个存储单元,则元素A[3,6]相对于数组空间起始地址的偏移量是((3-0)×(8-1+1)+6-1)×1=29。

第5题:

对于二维数组a[0.. 4,1.. 5],设每个元素占1个存储单元,且以列为主序存储,则元素a[2,2]相对于数组空间起始地址的偏移量是______。

A.5

B.7

C.10

D.15


正确答案:B
解析:此类题型以前考过多次,为了让大家能更好地理解题目的意思以及解题的思想,图3-81给出了二维数组a[0..4,1..5]的结构。因为以列为主序存储,所以a[0,1]存储在1号存储单元,a[1,1]存储在2号存储单元……以此类推,a[2,2]存储在8号存储单元,所以相对于数组空间起始地址的偏移量为8-1,即7。偏移量就是差值。所以答案为:B。此外,若数组以行为主序存储,则数组的结构如图3-82所示。

第6题:

对于二维数组A[0..5,1..8],设每个元素占1个存储单元,且以列为主序存储,则元素A[3,6]相对于数组空间起始地址的偏移量是(40)。

A.9

B.18

C.29

D.33


正确答案:D
解析:若二维数组A[L1..U1,L2..U2]以列为主序存储,每个元素占用d个存储单元,则元素A[i,j]的存储位置相对于数组空间首地址的偏移量为((J-L2)×(U1-LI+1)+I-L1)×d。对于二维数组A[0..5,1..8],设每个元素占1个存储单元,即d=1,L1=O,U1=5,L2=1,U2=8。若以列为主序存储,则元素A[3,6]相对于数组空间起始地址的偏移量为((J-L2)×(U1-L1+1)+I-L1)×d=(6-1)×X(5-0+1)+3-0)×1=33。另外,若二维数组A[L1..U1,L2..U2]以行为主序存储,每个元素占用d个存储单元,则元素A[i,j]的存储位置相对于数组空间首地址的偏移量为((1-L1)×(U2-L2+1)+J-L2)×d。可见,若二维数组A[0..5,1..8]以行为主序存储,每个元素占1个存储单元,则元素A[3,6]相对于数组空间起始地址的偏移量是((3-0)×(8-1+1)+6-1)×1=29。

第7题:

假设以行序为主序存储二维数组array[100][100],设每个数据元素占2个存储单元,基地址为10,下标从0开始,则元素array[5][5]的地址为()。

A.808

B.818

C.1010

D.1020


正确答案:C

第8题:

设有二维数组A[0…9][0…19],其每个元素占两个字节,数组按列优先顺序存储,第一个元素的存储地址为100,那么元素A[6,6]的存储地址为__________。


正确答案:
232
二维数组A[0…m][0…n]数据按行优先顺序存储时,下界为0时元素aij的地址计算公式为:LOC(aij)=LOC(a00)+D×(m+1)+i]×d。所以本题中元素的存储地址为100+[6×10+6]×2=232。

第9题:

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

A.12

B.14

C.16

D.18


正确答案:D
解析:本题考查的是程序中数组元素的存储。二维数组a[1…4,3…6]以行为主序和以列为主序存储时如下图所示。

在数组元素以行为主序存储的情况下,从数组空间起始位置起,a[3,4]之前有9个元素,如图(a)所示,每个元素占两个存储单元,所以a[3,4]相对于数组空间起始地址的偏移量是18。在以列为主序存储的情况下,从数组空间起始位置起,a[3,4]之前有6个元素,如图(b)所示,每个元素占两个存储单元,所以a[3,4]相对于数组空间起始地址的偏移量是12。

第10题:

设二维数组a[10][20]按列优先存储在内存中,假设每个元素占3个存储单元,已知a[4][5]的存储单元地址为500,则a[8][7]的存储单元地址为【】

A.746

B.743

C.569

D.572


正确答案:D

更多相关问题