题目
20分 17、一维数组A,下标从0开始,每个元素占4个存储单元[1],A[8]的存储地址为100,则A[11]的存储地址为 _。
20分 17、一维数组A,下标从0开始,每个元素占4个存储单元[1],A[8]的存储地址为100,则A[11]的存储地址为 _。
题目解答
答案
根据题意,A[8]的地址为100,可得:
\[
LOC(A[0]) = 100 - 8 \times 4 = 68
\]
A[11]的地址为:
\[
LOC(A[11]) = 68 + 11 \times 4 = 112
\]
最终,A[11]的存储地址为112。
答案:112
解析
本题考查一维数组存储地址的计算。解题思路是先根据已知的$A[8]$的存储地址和每个元素所占存储单元数,求出数组首元素$A[0]$的存储地址,再根据首元素地址计算$A[11]$的存储地址。
步骤一:计算数组首元素$A[0]$的存储地址
已知每个元素占$4$个存储单元,$A[8]$的存储地址为$100$。
在一维数组中,若下标从$0$开始,第$i$个元素的存储地址$LOC(A[i])$与首元素存储地址$LOC(A[0])$的关系为$LOC(A[i]) = LOC(A[0]) + i\times$每个元素所占存储单元数。
那么对于$A[8]$,有$LOC(A[8]) = LOC(A[0]) + 8\times4$,将$LOC(A[8]) = 100$代入可得:
$\begin{align*} 100&=LOC(A[0]) + 8\times4\\ LOC(A[0])&=100 - 8\times4\\ LOC(A[0])&=100 - 32\\ LOC(A[0])&= 68 \end{align*}$
步骤二:计算$A[11]$的存储地址
根据上述存储地址计算公式,对于$A[11]$,有$LOC(A[11]) = LOC(A[0]) + 11\times4$,将$LOC(A[0]) = 68$代入可得:
$\begin{align*} LOC(A[11])&= 68 + 11\times4\\ LOC(A[11])&= 68 + 44\\ LOC(A[11])&= 112 \end{align*}$