数据结构习题3(数组)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1. 将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为()。
供选择的答案:
A. 198
B. 195
C. 197
2. 二维数组A的元素都是6个字符组成的串,行下标i的范围从0到8,列下标j的范圈从1到10。
从供选择的答案中选出应填入下列关于数组存储叙述中()内的正确答案。
(1)存放A至少需要(E)个字节;
(2)A的第8列和第5行共占(B)个字节;
(3)若A按行存放,元素A[8,5]的起始地址与A按列存放时的元素( B )的起始地址一致。
供选择的答案:
(1)A. 90 B. 180 C. 240 D. 270 E. 540
(2)A. 108 B. 114 C. 54 D. 60 E. 150
(3)A. A[8,5] B. A[3,10] C. A[5,8] D. A[0,9]
3. 设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1..n(n+1)/2]中,对上述任一元素aij(1≤i,j≤n,且i≤j)在B中的位置为( A )。
A. i(i-l)/2+j
B. j(j-l)/2+i
C. j(j-l)/2+i-1
D. i(i-l)/2+j-1
4. A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是(B)。
A. i(i-1)/2+j
B. j(j-1)/2+i
C. i(j-i)/2+1
D. j(i-1)/2+1
5. 设二维数组A[1.. m,1..n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( A)。
A.(i-1)*n+j
B.(i-1)*n+j-1
C. i*(j-1)
D. j*m+i-1
6.有一个二维数组A,行下标的范围是0到8,列下标的范围是1到5,每个数组元素用相邻的4个字节存储。
存储器按字节编址。
假设存储数组元素A[0,1]的第一个字节的地址是0。
存储数组A的最后一个元素的第一个字节的地址是(⑧)。
若按行存储,则A[3,5]和A[5,3]的第一个字节的地址分别是(③)和(⑤)。
若按列存储,则A[7,1]和A[2,4]的第一个字节的地址分别是(①)和(⑥)。
供选择的答案:A~E:①28 ②44 ③76 ④92 ⑤108 ⑥116 ⑦132 ⑧176 ⑨184 ⑩188
7.有一个二维数组A,行下标的范围是1到6,列下标的范围是0到7,每个数组元素用相邻的6个字节存储,存储器按字节编址。
那么,这个数组的体积是((12))个字节。
假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A的最后一个元素的第一个字节的地址是((11))。
若按行存储,则A[2,4]的第一个字节的地址是(③)。
若按列存储,则A[5,7]的第一个字节的地址是(⑨)。
供选择的答案A~D:①12 ②66 ③72 ④96 ⑤114 ⑥120 ⑦156 ⑧234 ⑨276 ⑩282 (11)283 (12)288
8. 设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组B[ 1, n(n-1)/2 ]中,对下三角部分中任一元素ai,j(i≤j), 在一维数组B中下标k 的值是:(B)
A.i(i-1)/2+j-1 B.i(i-1)/2+j C.i(i+1)/2+j-1 D.i(i+1)/2+j
二、填空题
1. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。
已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为 288 ;末尾元素A57的第一个字节地址为1282;若按行存储时,元素A14的第一个字节地址为1072 ;若按列存储时,元素A47的第一个字节地址为1276 。
2.设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为6501、6502 。
3.三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的、和。
三、简答题
1. 已知二维数组Am,m采用按行优先顺序存放,每个元素占K个存储单元,并且第一个元素的存储地址为Loc(a11),请写出求Loc(aij)的计算公式。
如果采用列优先顺序存放呢?答:行优先:Loc(aij)=Loc(a11)+[(i-1)*m+j-1]*K;
列优先:Loc(aij)=Loc(a11)+[(j-1)*m+i-1]*K。