C语言程序设计

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

题目

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

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设C数组A[20][10]每个元素占2个存储单元,且第1个元素的首地址为2000,则元素A[8][9]的存储地址为()。


参考答案:2178

第2题:

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


第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[-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。

第5题:

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


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

第6题:

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

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。

第7题:

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

A.5

B.7

C.10

D.15


正确答案:B
解析:本题考查数组元素的存储。
  若二维数组A[L1..U1,L2..U2]以行为主序存储,每个元素占用d个存储单元,则元素A[I,J]的存储位置相对于数组空间首地址的偏移量为
  ((I-L1)×(U2-L2+1)+J-L2)×d
  若二维数组A[L1..U1,L2..U2]以列为主序存储,每个元素占用d个存储单元,则元素A[I,J]的存储位置相对于数组空间首地址的偏移量为
  ((J-L2)×(U1-L1+1)+I-L1)×d
  本题中d=1,L1=0,U1=4,L2=1,U2=5,代入后计算可得偏移量为7。

第8题:

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

(34)

A. 28

B. 42

C. 48

D. 54


正确答案:D

第9题:

设数组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。

第10题:

设数组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

更多相关问题