首页 > 试题广场 >

设有数组A[i,j],数组的每个元素长度为3字节,i的值为1

[单选题]
设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()。
  • BA+180
  • BA+225
  • BA+222
  • BA+141

1 2 3 4 5 6 7 8 9 10
1
2
3
4
5 这里
6
7
8
计算A[5,8]的地址就等于计算在 A[5,8]之前(“前”)保存的所有变量的地址偏移量
((7*8+5)-1)*3 = 180
发表于 2015-10-30 19:49:04 回复(34)
让我来终结连错3道类似题的噩梦:
多加注意 i,j 的起始数值是从 1 开始的
Amn, m 对应行, n 对应列

行优先: Loc(aij) = Loc(a11) +[(i-1)*n + j-1 ]*sizeof(元素)
列优先: Loc(aij) = Loc(a11) + [(j-1)*m + i-1]*sizeof(元素)
这道题 m = 8 , n = 10 ; i = 5 , j = 8
列优先
Loc(aij) = BA + [(8-1)*8 + 5-1]*3 = BA + 180
编辑于 2015-11-21 13:43:09 回复(6)
看题目是用以列为主存放,还是以行为主存放
本题目是按照以列为主存放的,那么计算方法如下:(8*7+5-1)*3=180 
如果按照以行为主存放时,那么计算方法如下:(4*10+8-1)*3=141
发表于 2016-01-06 10:19:15 回复(0)
行优先:先放满第一行,再到下一行; 列优先:先放满第一列,再到下一列。
发表于 2015-12-06 10:19:33 回复(0)
数组A[ij],求元素A[mn]位置

i,j初始为1时
行优先:LOC(A[1][1]) + ((i - 1) * n + (j - 1))
列优先:LOC(A[1][1]) + ((j - 1) *m + (i - 1))

i,j初始为0时
行优先:LOC(A[0][0]) + (i * n + j)
列优先:LOC(A[0][0]) + (j * m + i)

最后如果有元素长度,再乘上去
编辑于 2020-06-01 16:03:51 回复(0)
(7*8+5-1)*3 +BA
发表于 2015-10-30 19:43:56 回复(1)
一行占3*8=24个字节
第a[0,y] 占(y-1)*24个字节
a[x,y] 占(y-1)*24 + (x-1)*3
a[5,8] = (8-1)*24 + (5-1)*3 = 180
发表于 2016-03-22 15:21:32 回复(0)
以列主存,第一个元素的存储首地址+ ( 数组行数*(所在行数-1)+所在列-1 )个 每元素所占存储单元数 就是某元素的存储首地址
发表于 2015-11-05 09:14:37 回复(0)
注意1<=i<=8,1<=j<=10,说明有8行10列,从1开始计数;
以列为主存放,说明内存中按行展开排列进行存储;
那么a[5,8]对应的就是第8行5列的元素,即7*8+5=61
内存地址 = BA + (61 -1) * 3 = BA + 180
发表于 2022-04-23 15:17:57 回复(0)
没注意到是以列存放的。。。可恶!
发表于 2015-10-31 16:40:38 回复(0)
前面有道同样的数据以行和优先,直接秒选了这道。。结果。
发表于 2019-10-26 16:23:51 回复(0)
做这类题目要注意区分,初始是从[0,0]开始的,还是[1,1]开始的
发表于 2016-09-26 10:52:59 回复(1)
细心
发表于 2022-08-22 08:54:44 回复(0)
做这个题首先要先看清楚题目是按列存储的哟,不然很容易做错,7*8+5-1=60,60*3=180,答案就出来了。
发表于 2019-10-26 16:03:56 回复(0)
需要注意是按行存储,还是按列存储
发表于 2018-06-05 11:44:11 回复(0)
这个题最主要的是注意到以列为主序
发表于 2017-05-09 15:36:10 回复(0)
此题是以列为主存放A[10,12] A[m][n]--->A[k][b] 列:((b-n)*10+(k-m))*字节数 [列数差*行个数+行差数]--数组间隔数 行: [行差数*列个数+列差数]--数组间隔数
编辑于 2024-04-05 16:24:16 回复(0)
列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序列为主序
发表于 2023-04-30 21:00:31 回复(1)
解析如我,越短越好:以列为主存放就等价于10行8列的8行5列位置位置,只不过矩阵反转了90度,算的时候(7*8+4)*3=60
发表于 2022-08-28 21:30:48 回复(0)
记得偏移量
发表于 2022-03-23 17:29:48 回复(0)