当前位置:首页 » 服务存储 » 每个元素占用5个存储单元
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

每个元素占用5个存储单元

发布时间: 2022-08-28 01:57:06

‘壹’ 数组A[5][6]的每个元素占5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素A[4]

Address(A)+4*6*5+4*5
=1000+120+20=1140

‘贰’ 关于计算数组元素地址(设数组a[3..16,5..20]的元素以列为主序存放,每个元素占用两个存储单元.......)

按照常规的,假设我们是以行为主序列,(设定一行的长度为N,每个元素占用B个存储单元)那么a[2,3]的的位置为[(2-0)*N+(3-0)]*B,因为数组的坐标是从0开始的。
同理,如果是以列为主序列,那么坐标就要换下位置了。[(3-0)*N+(2-0)]*B

如题中,是以列为主序列,那么公式就应该是[(J-5)*14+(I-3)]*2

14 是说明有14行 3..16 得出的。。

下面就要说明a是怎么来的了,数组中我们默认是以a0作为数组的第一存储地址,按照题目的意思,就是a了。
所以结果可以确定为a+[(J-5)*14+(I-3)]*2

即为D选项。如有疑问,咱们可以验证,a(3,5)应该是数组的第一存储地址a,选项中只有D符合。

如有疑问,请网络消息。

‘叁’ 数组A[0..5,0..6]的每个元素占5个单元

可以自己画张6*7的表,即可得出答案:A.1175
1楼的答案是正确的,但稍显复杂,A[5,5]显然是个大索引(最后一元素为A[5,6]),反向检索的算法效率会更高,即
5*6*(7-1) - (7-6)*5 +1000 =
5*6*6 - 5 +1000 = 1175
字面意思就是A[5,6]的地址-5,1*5会被编译器优化掉,相比1楼少一次乘法效率更高些

‘肆’ .已知数组a[1..11][0..8]按行优先存储,每个元素占5个存储单元,

显然A[0][0]的地址是1000
A[6][8]是第69个元素(行优先),每个元素占5个存储单元,69*5+1000就是存储地址

‘伍’ 1.若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素的存储地址为100,则第12个元

(12-1)*4=44
100+44=144,选B

‘陆’ 在二维数组A[9[10]中,每个数组元素占用5个存储空间,从首地址S开始连续存放,则元素A[8][5]的起始地址是

二维数组也是线性存储,按行号从小到大存储。A[8][5]前面共有完整八行,每行十个元素。本行前还有5个元素,共85个元素排在前面。该元素的起始地址是S+85*5。

‘柒’ 已知数组A[10][10]为对称矩阵,其中每个元素占5个单元

首先题目说的是按列优先 那么就是说优先存储列

简单地说,就是以下的存储方式:

A[0,0] -> A[1,0] -> A[2,0] -> A[3,0] -> A[4,0] -> A[5,0]

A[0,1] -> A[1,1] -> A[2,1] -> A[3,1] -> A[4,1] -> A[5,1]

……

A[0,6] -> A[1,6] -> A[2,6] -> A[3,6] -> A[4,6] -> A[5,6]

那么按照这中存储方式,因为A[5,5]的列标为5,那么它前面有0~4 共有5列 每一列6个元素

也就有5*6=30个元素

再加上列表为5的列中,含有0~5(航标是5) 共有6个元素 , 但是排除A[5,5]本身 就只有5个元素

也就是30+5=35个 每一个占5个字节

因此A[5,5]的地址为:

1000 + 35 * 5 = 1175

‘捌’ 已知数组A[9,9]的每个元素占5个存储单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中

如果你的单元是指一个字节,应该就是1310
但其实得看不同机器的,有些可能要字节对齐.