【考试临时抱佛脚】系列文章针对于<学习时间少>、<时间紧迫>、<想短时间提升成绩>的考生打造。无论你是<自考>、<专升本>还是<考研>这个专栏都适合你,Let’s go!
一、方法
解题步骤:
不用死记硬背,大不了全部画出来,文章最后面有图解简单计算方法,无脑解出此类题目。
二、考察形式1
1、问题
将20个数据元素的线性表存储在数组中,若第9个元素的存储地址是1000,第11个元素的存储地址是1040,则最后一个元素的存储地址是( )
A. 1200
B. 1210
C. 1215
D. 1220
2、解析&回答
分析:
**方法1:**用笨方法将其画出来,计算格子多少和间隔多少
【注意:元素的存储地址为:起始位置的地址】
方法2:用公式计算
基地址 + (最后元素下标 - 起始元素下标)* 元素大小 = 元素存储地址
结果为:1000 + (20 - 9) * 20 =1220
答案:D
三、考察形式2
1、问题
设线性表采用顺序存储方式保存,每个元素占8个存储单元,第1个元素的存储地址为200,则第5个元素占用的最后一个存储单元的地址是( )
A. 239
B. 240
C. 247
D. 248
2、解析&回答
答案:A
四、考察形式3
1、问题
将100个数据元素保存在顺序表中,若第一个元素的存储地址是1000,第二个元素的存储地址是1004,则该顺序表最后一个元素的存储地址是()
2、解析&回答
用公式计算: 【基地址 + (最后元素下标 - 起始元素下标)* 元素大小 = 元素存储地址】
答案:1396
五、考察形式4
1、问题
将10个数据元素保存在顺序栈S中,若栈顶元素的存储地址是100,栈中每个元素占4个存储单元,进栈按S.top =S.top+1 修改栈顶,则栈底元素的存储地址是(B)
A. 60
B. 64
C. 136
D. 140
2、解析&回答
六、考察形式5
1、问题
设二维数组M有3行4列,按行优先的方式存储,每个元素占6个存储单元,第1个元素的存储地址为100,则M[2] [2] 的存储地址为(C)
A. 135
B. 153
C. 160
D. 165
2、解析&回答
a00和a22之间间隔10个格,那么M[2] [2] = 100 + 10*6 = 160
七、绝杀招之无脑计算法
1、列优先时:
第一步:元素A的列数 乘以 二维数组的行数
第二步:元素A的行数,加上第一步的结果
第三步:第一、二步之和 乘以 元素大小
第四步:最后加上首元素的偏移量,得出的结果即元素A的存储地址。