二维数组A按行序优先顺序存储,每个数据元素占1个存储单元。若数据元素A[1][1]的存储地址是420,A[3][3]的存储地址是446,则A[5][5]的存储地址是

二维数组A按行序优先顺序存储,每个数据元素占1个存储单元。若数据元素A[1][1]的存储地址是420,A[3][3]的存储地址是446,则A[5][5]的存储地址是


A、

470


B、

471


C、

472


D、

473


【正确答案】:C
【题目解析】:

对于二维数组a[m][n],如果每个元素占k个存储单元,以行为主序为例,讨论数组元素a[i] [j]位置与下标的关系。
由于下标从0开始,元素a[i] [j]之前已经有i行元素,每行有n个元素,在第i行, 有j+1个元素,总共有n*i+j+1个元素,第一个元素与a[i] [j]相差n*i+j+1-1个位置, 故 a[i] [j]的位置为:loc[i, j]=loc[0,0]+(n*i+j)*k。 

本题中,k=1,故有:

A[1][1]=loc[0,0]+n+1=420

A[3][3]=loc[0,0]+3n+3=446

解二元一次方程可得:loc[0,0]=407;n=12。故代入公式可得A[5][5]=loc[0,0]+5n+5=407+5*12+5=472。故选C。


Top