题目
二维数组 A 按行优先顺序存储,其中每个元素占 1 个存储单元。若 A [ 1 ][ 1 ]的存储地址为 420 , A [ 3 ][ 3 ]的存储地址为 446 ,则 A [ 5 ][ 5 ]的存储地址为A. 470 B. 471 C. 472 D. 473
二维数组 A 按行优先顺序存储,其中每个元素占 1 个存储单元。若 A [ 1 ][ 1 ]的存储地址为 420 , A [ 3 ][ 3 ]的存储地址为 446 ,则 A [ 5 ][ 5 ]的存储地址为
A. 470B. 471
C. 472
D. 473
题目解答
答案
正确答案:C 满分:5
解析
考查要点:本题主要考查二维数组的存储方式及地址计算,重点在于理解行优先存储的规律,并能根据已知条件推导出数组的列数,进而计算目标元素的地址。
解题核心思路:
- 明确行优先存储规则:元素按行依次排列,同一行的元素连续存储。
- 建立地址计算公式:元素
A[i][j]
的地址 = 起始地址 +(i-1)*列数 + (j-1)
(假设索引从1开始)。 - 利用已知条件求列数:通过
A[1][1]
和A[3][3]
的地址差,建立方程求解列数。 - 代入公式计算目标地址:将列数代入公式,计算
A[5][5]
的地址。
破题关键点:
- 索引从1开始:题目中元素索引从1开始,需注意偏移量的计算。
- 列数的确定:通过已知地址差推导列数,是解题的核心步骤。
步骤1:建立地址计算公式
假设数组每行有n
列,元素A[i][j]
的存储地址为:
$\text{地址} = 420 + (i-1) \times n + (j-1)$
步骤2:代入已知条件求列数
已知A[3][3]
的地址为446,代入公式:
$446 = 420 + (3-1) \times n + (3-1)$
化简得:
$446 = 420 + 2n + 2 \implies 2n = 24 \implies n = 12$
因此,数组每行有12列。
步骤3:计算A[5][5]
的地址
将i=5
,j=5
代入公式:
$\text{地址} = 420 + (5-1) \times 12 + (5-1) = 420 + 48 + 4 = 472$