设数组 A[ 1..m,1...n.] 的每个元素占用 1 个存储单元,对于数组

题库2022-08-02  59

问题 设数组 A[ 1..m,1...n.] 的每个元素占用 1 个存储单元,对于数组元素 A[i,j] (1≤i≤m≤1≤j≤n),在按行存储方式下,其相对于数组空间首地址的偏移量为(   );在按列存储方式下,其相对于数组空间首地址的偏移量为(   )。A.j*(n-1)+iB.(j-1)*n+i-1C.j*(m-1)+iD.(j-1)*m+i-1

选项 A.j*(n-1)+i
B.(j-1)*n+i-1
C.j*(m-1)+i
D.(j-1)*m+i-1

答案 D

解析 本题考查数据结构基础知识。数组 A[l..m,1..n]的元素排列如下。解答该问题需先计算排列在a[i,j] 之前的元素个数。按行方式存储下,元素a[i,j]之前有 i-1行,每行 n 个元素,在第 i行上a[i,j]之前有j-1 个元素,因此 ,a[i,j]之前共有(i-1)*n+j-1个元素。在按列存储方式下,元素a[i,j]之前有j-1列,每列 m 个元素,在a[i,j]所在列(即第j列),排在它之前的元素有 i-1 个,因此 ,a[i,j]之前共有(j-1)*m+i-1  个元素。数组中指定元素的存储位置相对于数组空间首地址的偏移量等于k*d,其中 k 为排在该元素前的元素个数 ,d 为每个元素占用的存储单元数。
转载请注明原文地址:https://tihaiku.com/congyezige/2426971.html

最新回复(0)