首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
假设有60行70列的二维数组 a[1 …60, 1…70 ]
[单选题]
假设有60行70列的二维数组 a[1 …60, 1…70 ] 以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素 a[ 32,58 ] 的存储地址为
16902
16904
14454
以上答案均不对
查看正确选项
添加笔记
求解答(14)
邀请回答
收藏(651)
分享
31个回答
添加回答
69
牛客小小菜鸟
注意:题目是说按列存储,不是按行存储!!存储第32行第58列元素之前,一共存储的元素个数为:57*60+31=3451,需要的存储单元数为3451*2=6902,又因为基地址为10000,故存储完第31行第58列元素位置为16901,所以存储第32行第58列元素地址为16902(开始)。
发表于 2017-07-31 10:23:32
回复(4)
36
爱吃青菜皮卷面的byr
本渣表示对二维数组的表示不太熟悉
第32行第58列的元素
表示为
a[
32,58
] ,但是我们习惯写成a【31】【57】
首先,二维数组可以表示为A【60】【70】 (60行70列)
a[
31,57
]
以列序为主: (57*60+31)*2+10000= 16902
以行序为主: (31*70+57)*2 +10000= 14454
编辑于 2017-06-07 20:05:37
回复(0)
12
黏黏糖
A为什么不对,10000+(57*60+31)*2=16902
发表于 2017-05-16 16:48:04
回复(1)
9
↹201807051357711
我就搞不懂他数组是怎么从1开始的!
发表于 2018-08-09 14:06:56
回复(0)
5
sunlight_run
以列为主应该是(60*57 + 32)*2 + 10000 - 2= 16902
发表于 2017-05-24 17:01:42
回复(2)
3
@追星逐月@
[(58-1)*60+(32-1)]*2+10000就是答案
发表于 2017-09-28 16:03:05
回复(0)
3
。。。Ql
只想知道第1行第1列也就是第一个数据是多少? 按答案来看,应该是说的10000。如果是10000+2,那计算方式应该是((列数-1)*60+行数))*2+10000 ,就对于这个基地址不是很了解,不知道这个基地址是不是指第一个数据的地址。
发表于 2017-07-26 03:52:10
回复(1)
2
Sophia50
首先需要了解什么是基地址,存储区中第一个字节的地址用来当存储区的首地址,又称基地址, 且该题是以列主导的,所以(57×60 + 32)× 2 + 10000 = 16904,但是可以看出基地址被计算了两次,所以需要减去一次,即16904-2=16902
编辑于 2022-02-09 12:32:27
回复(0)
2
Tiiiiiik
注意 是按列存储
发表于 2021-03-24 01:06:17
回复(0)
2
牛客1637647号
基地址等于初始地址,比存储地址少一个
发表于 2018-07-23 17:56:04
回复(0)
2
laymond
狗蛋,直接按照老套路计算,发现没有一个答案,直接选中D了。题目说的是从1行1列开始!以列序为主原来的行就是列了,原来的列就是行了
a[32][58]表示 57*60+31 =3451,10000+3451*2 = 16902
发表于 2018-02-09 22:02:48
回复(1)
2
滚筒洗衣机3
是不是14456?
(31*70 + 58)*2 + 10000
发表于 2017-05-16 23:26:38
回复(5)
1
响亮的上进星星冰可乐
注意⚠️“以列序为主序”。由于它在第 58 列,所以先计算前面 57 列有多少元素,第一个元素是从 1 开始的,不用减 1:57×60=3420 然后再计算第 58 列前面有几个元素:32-1=31。前面共 3420+31=3451 个元素。占用储存空间:3451×2=6902。所以存储地址就是 10000+6902=16902
发表于 2023-10-24 18:06:02
回复(0)
1
三叶秋
1. 注意要区分是按照行优先还是列优先进行存储的。
2. 注意元素的下标是从0开始还是从1开始
3. 注意最后一个元素的位置,一般是开头,相当火车的车头而不是火车的车尾巴!
发表于 2023-08-31 14:11:16
回复(1)
1
牛客珊珊
[(57*60+31)*2]+10000=16902
发表于 2023-04-25 13:14:11
回复(1)
1
潜水系的徐先森
<p>先求实际排序个数,然后看题求第k值还是之间的差值。</p><p>若是存到另一个数组看另一个数组起始值在判定要不要减一</p><p>如是指明是数组,默认从0开始</p><p>如问存储地址就是问中间个数</p><p><br></p>
发表于 2020-12-18 15:57:56
回复(0)
1
稻草人2018
57*60表示共57列每一列有30个单位
发表于 2018-08-16 22:14:02
回复(0)
1
n不正
答案错了,应该选A
发表于 2017-05-22 22:44:03
回复(0)
0
在冲浪的秋田犬很大胆
57×60+31=3451,3451×2=6902
发表于 2023-07-03 19:45:07
回复(0)
0
lanker
真要认真看题,列为主序!!!!!!!!!!
计算都很简单的,关键在方法,在路,路选错了就啥也不是!!!!!!!
发表于 2023-04-30 21:03:48
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
数组
上传者:
娃哈哈呀~
难度:
31条回答
651收藏
7783浏览
热门推荐
相关试题
假定一个待哈希存储的线性表为(32...
哈希
评论
(1)
5.下列判断正确的是( )
资料分析
言语理解与表达
资料分析
评论
(1)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
你有没有崇拜的偶像,你欣赏他/她身...
通用能力
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题