首页 > 试题广场 >

数组A=array[1..100,1..100]以行序为主序

[单选题]
数组A=array[1..100,1..100]以行序为主序存储,设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]应为。


  • 1020
  • 1010
  • 818
  • 808
发表于 2017-09-11 14:25:24 回复(1)
[(5-1)*100+(5-1)]*2+10=818,第一个5表示以行为序列,所以要使用列中的5,而不是使用行中的5,即使用A[5][5]中的第二个5,即(5-1)*100(这里的100表示列,相当于A[100][100]中的第二个100,),因为行和列都是从1开始,所以行和列都要-1,每个数据元素占2个存储,所以行和列都要*2,基地址为10,意思为首地址为10,所以选818
编辑于 2017-09-27 20:07:09 回复(0)
没看懂A=array[1..100,1..100]这是表示什么,求大神解
发表于 2017-08-23 20:17:10 回复(6)
这题的重点应该是上面描述中,二维数组计数从1开始,所以(5-1)
发表于 2018-06-22 17:06:54 回复(1)
1-按行优先存储:把二维数组中的数据一行一行地顺次存入存储单元。
2-A=array[1..100,1..100],就是A[100][100],元素开始下标从1开始,所以一行就是100个元素,一列也是100个元素。
3-LOC:存储首地址
4-对于A[1..m, 1....n],loc(i, j) = loc(1, 1) + [n*(i-1) + j -1] * b,b是每个元素占位大小

具体地,A[5][5]上面有1、2、3、4共四行,单独这行前面有1、2、3、4共四列,共有4*100+4=404个元素,每个元素占2个存储单元的话,共占404*2=808个存储单元,又因为数组A的起始地址(即基地址)是10,所以A[5][5]的起始地址就是808+10=818.  
发表于 2019-05-08 11:31:58 回复(1)
Loc(A ij )=10(基地址)+[(5-1)*100+(5-1)]*2=818。
发表于 2017-06-20 20:43:24 回复(0)
公式:—行序为主={(行-1)*列总数+(列-1)}*存储大小+基地址
发表于 2022-04-11 08:59:58 回复(0)
               1,           2,            3, ... ,        100
1         (1,1),     (1,2 ),       (1,3), ...      (1,100)
2         (2,1),     (2,2 ),       (2,3), ...      (2,100)

100   (100,1),  (100,2 ),   (100,3), ..., (100,100)                  
将二维数组映射到一维数组,然后按行排序的话就意味着需要先排序(1,1)(1,2)...(1,100),(2,1)...(2, 100), 那么题目要求的[5,5] 就是标记为 5的行数和5的列数,我们可以知道在5的行数前还有1,2,3,4这四行,每一行呢都是100个元素,所以是100*4,在这5行之前有400个元素,然后列数是5,那么列数5之前有4个元素,所以第5行有4个元素在第五列之前,所以总的元素加起来就是404, 然后每个元素占2个存储单元所以,404*2 = 808,已知基地址为10,这个基地址就是指A[0][0]的首地址是10,最后首地址+5行5列这其中所有的元素的大小 = 10 + 808 ,自然就可以得出这个范围内的地址大小了,也就是818
发表于 2021-07-21 21:50:38 回复(0)
该二维数组从A[1][1]开始。
发表于 2021-10-27 20:29:11 回复(0)
注意啦!该数组的基数组是1,1
发表于 2019-08-22 00:29:36 回复(0)
本题应注意其从1,1开始,和做过的题不一样,应警惕
发表于 2018-11-01 19:41:30 回复(0)
从1开始,从1开始…
发表于 2018-09-15 11:28:31 回复(0)
居然忘了首地址从10开始
发表于 2018-03-29 09:03:48 回复(0)
注意加上基地址
编辑于 2024-03-21 08:15:12 回复(0)
这题注意下标从1开始 定位到A[5][1] A[5][1] 到A[1][1] 共4行 每行100个元素(列) 每个元素2单位 总共是2✘100✘4=800 从A[5][1]到A[5][5] 总共是4列 每个元素2单位 总共是4✘2=8 再加上首地址10 一共是: 800+10+8=818
发表于 2023-11-12 09:37:59 回复(0)
首先要明确这里数组是从1开始计数,如果是a[100][100]那就是从0开始计数,对于lock[i][j]的地址=基地址+lock[(i-1)×100+(j-1)]×b,这里b指的是每个元素所占的字节数,也就是10+[4*100+4]*2=818
发表于 2023-07-13 07:51:53 回复(0)
mark
发表于 2023-01-27 23:15:25 回复(0)
我去,没看见基地址为10
发表于 2022-12-04 10:01:59 回复(0)
数组 是从1开始的,而不是从0开始的
发表于 2022-09-23 22:44:10 回复(0)
重点:下标从0开始i和j都不需要做-1计算,下标从1开始就需要做-1计算
发表于 2022-08-05 10:47:03 回复(0)