若二维数组mn按行优先存储,元素00的存放位置是LO[00],每个元素占S个存储单元,则元素ij的存放地址是()
A: (ni+j)S
B: LOC[A00]+(ni+j)S
C: LOC[A00]+(n(i-1)+j-1)S
D: LOC[A00]+(n(i+1)+j+1)S
A: (ni+j)S
B: LOC[A00]+(ni+j)S
C: LOC[A00]+(n(i-1)+j-1)S
D: LOC[A00]+(n(i+1)+j+1)S
举一反三
- 设二维数组A[0..m-1][0..n-1]按行优先顺序存储在内存中,每个元素aij占d个字节,则元素aij的地址为( ) A: LOC(a00)+(j*n+i-1)*d B: LOC(a00)+((j-1)*n+i-1)*d C: LOC(a00)+((i-1)*n+j-1)*d D: LOC(a00)+(i*n+j)*d
- 若下三角矩阵An*n,按行顺序压缩存储在数组a[0..(n+1)n/2]中,则非零元素aij的地址为()(设每个元素占d个字节) A: LOC(a00)+((j-1)j/2+i)*d B: LOC(a00)+((i+1)i/2+j)*d C: LOC(a00)+((i-1)i/2+j-1)*d D: LOC(a00)+((i-1)i/2+i-1)*d
- 二维数组A[m,n]按行序为主序存放在内存,每个数组元素占1个存储单元,则元素aij的地址计算公式是( )。 A: A) LOC(aij)=LOC(a00)+[(i-1)*m+(j-1)] B: B) LOC(aij)=LOC(a00)+[(j-1)*m+(i-1)] C: C) LOC(aij)=LOC(a00)+[(i-1)*n+(j-1)] D: D) LOC(aij)=LOC(a00)+[(j-1)*n+(i-1)]
- 假设以列优先顺序存储二维数组A[5][8],其中元素A[0][0]的存储地址为LOC(a00),且每个元素占4个存储单元,则数组元素A[i][j]的存储地址为LOC(a00)+(j×5+i)×4。[/i]
- 设二维数组A[m][n]按列优先存储,每个元素占1个存储单元,元素A00的存储地址loc(A00),则Aij的存储地址loc(Aij)=()。