首页 > 试题广场 >

已知二维数组A[1: 4, 1: 6]采用列序为主序方式存储

[单选题]

已知二维数组A[1: 4, 1: 6]采用列序为主序方式存储,每个元素占用4个存储单元,并且A[3,4]的存储地址为1234,元素A[1, 1]的存储地址是()

  • 1178
  • 1190
  • 1278
  • 1290
二维数组A[1: 4, 1: 6]可看成是四行六列,初始位置是A[1,1],由题中知道A[3,4]的存储地址为1234,即第三行第四列的地址为1234。
由于是从采用列序为主序方式存储,故A[1,1]到A[3,4]要先走三列完整的四行元素,然后再第四列中走两个元素即可到达。
由于每个元素占用4个存储单元,故公式为A[1,1] + (3*4+2)*4 = 1234。
最终可得A[1,1] = 1178 选A
发表于 2020-06-21 20:57:57 回复(6)
发表于 2021-03-12 10:02:02 回复(3)
a11+(3*4+2)*4=1234。这样就可以得到a11
编辑于 2018-07-13 09:38:59 回复(5)
唉,大意了。是按照 列序,不是行序。
首先计算a00的位置:a00+(4*4+3)*4=1234  求得:a00=1158
有了a00的位置在求a11位置:a00+(1*4+1)*4=a11 即a11=1178

首先,我们应该明白的是,按照行序求的话,应该使用待求数组的 行数*数组列的容量+待求数组的列值。
那么 按照列序的话   应该是  数组的  列数*数组行的容量+待求数组的行值 
发表于 2019-05-30 15:42:18 回复(2)
如果以任意的A[c1..d1,c2..d2]A[c1..d1,c2..d2](其中c1c2c1、c2表示基地址元素;d1c1+1d2c2+1d1−c1+1、d2−c2+1表示数组的行数和列数)可得:address(aij)=address(ac1c2)+((jc2)(d1c1+1)+(ic1))e    (每个元素占用空间ee个单位)
如题意:c1=c2=1,d1=4,d2=6
则address(a34)=a11+(3*4+2)*4
求得a11

发表于 2018-08-08 08:39:33 回复(0)
可以看作二维数组[4,6]以列序为主序方式存储,所以A[3,4]和A[1,1]之中有(4-1)*4+(3-1)=14个元素 所以地址为1234-14*4=1178
发表于 2021-11-18 08:38:37 回复(0)
首先A[1:4,1:6]:A是一个4行6列的二维数组,实际上就相当于一个4×6的矩阵,将矩阵画出来,总结公式就一目了然。
发表于 2020-03-01 14:27:08 回复(0)
因为是列优先,所以前两列都是满的,((3-1)行*6列+4个元素)*4每空间的大小=64。往回走到a[0][0]得1234-64=1170,因为求a[1][1]所以行列各加一个空间1170+4+4=1178
发表于 2019-04-08 08:25:22 回复(0)

3(二维坐标4-1差3)*4(按照列储存,每次4个数)+ 2(3 -1 一维相对)得到相对地址

不明白可以画个图

1 5 9   13 17

2 6 10 14 18

3 7 11 15 19

4 8 12 16 20

A[3][4]就是15

发表于 2018-10-04 09:36:23 回复(3)
二维数组A[1: 4, 1: 6]可看成是四行六列,初始位置是A[1,1],由题中知道A[3,4]的存储地址为1234,即第三行第四列的地址为1234。
由于是从采用列序为主序方式存储,故A[1,1]到A[3,4]要先走三列完整的四行元素,然后再第四列中走两个元素即可到达。
由于每个元素占用4个存储单元,故公式为A[1,1] + (3*4+2)*4 = 1234。
最终可得A[1,1] = 1178 选A
发表于 2022-04-13 16:03:57 回复(0)
气死了,算术算错了😭
发表于 2023-03-23 21:11:23 回复(0)
每个元素占用4个存储单元,切记
发表于 2022-08-19 12:49:02 回复(0)
审题不仔细,我就说怎么是14个而不是15个,哭了,列序为主,我还在这想了几天
发表于 2022-07-28 21:27:27 回复(0)
这道题关键在于清楚什么是以列为主序方式存储.
发表于 2022-06-17 20:18:49 回复(0)
1234 = x + ( (4-1)* 4 + (3-1) )*4
x = 1178
注意数组A的下标是以1开始,而不是0
如果下标是从0开始,则是
1234 = x + ( (4-0)* 4 + (3-0) )*4
发表于 2022-03-30 18:21:43 回复(0)
注意是求地址还是存储地址
发表于 2021-10-04 20:27:42 回复(0)
问一下这种题怎么确定是0开头还是1开头
发表于 2021-01-13 18:31:05 回复(1)
抛出去最后一个
发表于 2019-05-03 20:12:47 回复(0)
a11+(3*4+2)*4=1234
发表于 2018-09-08 16:00:28 回复(0)