首页 > 试题广场 >

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

[单选题]
设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以行为内存放时,元素A[5,8]的存储首地址为()
  • BA+141
  • BA+180
  • BA+222
  • BA+225
5,8就证明前面有4*10+7个元素,是141
发表于 2017-05-28 10:12:11 回复(2)
m为行,n为列,单个元素k占多少存储单元
         按行优先存放,第一个元素地址为a[0][0]的话,有LOC(ai,j)=LOC(a0,0)+(i×n+j)×k;
         按行优先存放,第一个元素地址为a[1][1]的话,有LOC(ai,j)=LOC(a1,1)+[(i-1)×n+(j-1)]×k
         按列优先存放,第一个元素地址为a[0][0]的话,有LOC(ai,j)=LOC(a0,0)+(j×m+i)×k;
         按列优先存放,第一个元素地址为a[1][1]的话,有LOC(ai,j)=LOC(a1,1)+[(j-1)×m+(i-1)]×k
上述例题:m为8,n为10,k=3;用LOC(ai,j)=LOC(a1,1)+[(i-1)×n+(j-1)]×k----》BA+[(5-1)*10+8]*3 =BA+141
发表于 2020-03-20 17:42:34 回复(4)
注意数组是从一开始计算
发表于 2018-04-17 09:56:24 回复(3)
(4*10+7)*3=141
发表于 2018-08-21 12:27:25 回复(3)
按行存储。每个占3位,则A[5, 8]为4行的所有+第5行的8-1个,即(3位*10个数*4行)+(3位*7个数)=BA+141
发表于 2020-12-02 17:31:32 回复(0)
i和j的值都是从1开始,我还固执地认为是题目错了😂
发表于 2017-08-06 22:49:54 回复(1)
划重点 数组从1开始计算!!!
发表于 2019-09-07 18:46:28 回复(0)
以行为内存放时,这个题说明前四行都是满的,所以4*10;第五行前七个也是满的,它是第八个,故答案为(4*10+7)*3=141
发表于 2022-11-10 13:21:58 回复(0)
为什么是加7啊,不是加8
发表于 2022-09-07 08:10:37 回复(0)
注意1开始还是0开始
发表于 2022-04-04 21:53:40 回复(0)
注意是存储首地址,不是*3。 不要想成(4×10+8)×3 因为是三个字节 所以是(4×10+7)×3。
编辑于 2021-06-07 11:55:18 回复(0)
SNE头像 SNE
(4×10+7)3
发表于 2018-09-05 13:58:33 回复(0)
一个元素的首地址不就是上一个元素的尾地址吗,所以是BA+((5-1)*10+7)*3=BA+141
发表于 2023-08-22 11:25:46 回复(0)
编辑于 2023-05-18 18:25:01 回复(0)
注意看题,一般数组是从0开始的,但这题的数组是从1开始的,我第一次也掉坑里了
发表于 2023-02-15 11:27:20 回复(0)
从(1,1)开始
发表于 2022-07-24 21:04:54 回复(0)
虽然做对了。但是不理解为什么不算第一个[0,0],我理解单看i和j的值可能确实没有0,但那应该只是逻辑上没有,实际存储的时候0应该也要考虑吧,只是不关心值是啥而已
发表于 2022-05-16 09:02:08 回复(0)
不应该是142么
发表于 2018-05-08 16:13:20 回复(0)