1单选(2分)有一个三维数组A[-2…2][-4…5][2…6],其中元素个数是( )。
A.144
B.60
C.396
D.250
正确答案:D
解析: D、A的第1维长度为5【2-(-2)+1:-2,-1,0,1,2】,第2维长度为10【5-(-4)+1:-4,-3,-2,-1,0,1,2,3,4,5】,第3维长度为5【6-2+1:2,3,4,5,6】,元素个数=5×10×5=250。
课本考据:一个的二维数组可看作是每个数据元素都是相同类型的一维数组的一维数组。如下图所示:
故,任何多维数组都可看作一个线性表。
2单选(2分)设C/C++二维数组a[m][n],每个数组元素占用k个存储单元,第一个数组元素的存储地址是LOC(a[0][0]),求按行优先顺序存放的数组元素a[i][j](0≤i≤m-1,0≤j≤n-1)的存储地址为( )。
A.LOC(a[0][0])+[i×n+j]×k
B.LOC(a[0][0])+[j×m+i]×k
C.LOC(a[0][0])+[(j-1)×m+i-1]×k
D.LOC(a[0][0])+[(i-1)×n+j-1]×k
正确答案:A
解析: A、a[i][j]前面有0~i-1行,计i×n个元素,第i行前面有j个元素,则a[i][j]前面有i×m+ j个元素,所以a[i][j]的存储地址=LOC(a[0][0])+[i×n+j]×k。
课本考据:在内存中元素a[i][j]前面有i行,每行有n个元素,即已存放了i×n个元素,占用了i×n×k个内存单元;在第i行中元素a[i][j]前面有j个元素,即已存放了j个元素,占用了j-1乘k个内存单元;
3单选(2分)设二维数组a[1…5][1…8],若按行优先的顺序存放数组的元素,则a[4][6]元素的前面有( )个元素。
A.6
B.28
C.29
D.40
正确答案:C
解析: C、m=5,n=8,a[4][6]元素的前面的元素个数=(4-1) ×8+(6-1)=29。
课本考据:二维数组按行优先存放的示意图如
得该二维数组中任一元素a的存储地址,其中k为存储单元。
4单选(2分)设C/C++二维数组a[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放所有数组元素,a[3][5]的存储地址为1000,则a[0][0]的存储地址是( )。
A.868
B.872
C.860
D.864
正确答案:C
解析: C、C/C++二维数组下标从0开始。a[3][5]前面的元素个数=(3-0)×10+(5-0)=35。所以1000=LOC(a[0][0])+35×4,LOC(a[0][0])=860。
5单选(2分)一个n阶对称矩阵A采用压缩存储方式,将其下三角部分(含主对角线元素)按行优先存储到一维数组B中,则B中元素个数是( )。
A.n(n+1)/2+1
B.n(n+1)/2
C.n
D.n*n
正确答案:B
课本考据:特殊矩阵是指非零元素或零元素得分布具有一定规律得矩阵,为了节省存储空间,特别是在高阶矩阵的情况下可以利用特殊矩阵的对它们进行压缩存储以提高存储空间效率。将特殊矩阵压缩规律如图表示
显然,一维数组B中存放的元素个数为1+2+…+n=n(n+1)/2。
6单选(2分)一个n阶对称矩阵A[1…n,1…n]采用压缩存储方式,将其下三角部分按行优先存储到一维数组B[1…m]中,则A[i][j](i<j)元素在B中的位置k是( )。
A.j(j-1)/2+i
B.j(j-1)/2+i-1
C.i(i-1)/2+j-1
D. i(i-1)/2+j
正确答案:A
解析: A、对于下三角部分或者主对角线元素a[i][j],它存储在b[k]中,k=i(i-1)/2+j。对于上三角部分元素A[i][j](i<j),对应的k=j(j-1)/2+i。
7单选(2分)一个n阶上三角矩阵A按行优先顺序压缩存放在一维数组B,则B中元素个数是( )。
A.n*n
B.n(n+1)/2+1
C.n
D.n(n+1)/2
正确答案:B
**课本考据:对于上三角矩阵的压缩存储方法是采用 以行序为主序存储对其主对角线加上三角部分的元素,另外用一个元素存储常数c,并将压缩结果存放在一维数组B中,如图
显然,B中元素的个数为n(n+1)/2+1,即用B[0…n(n+1)/2]存放A 中的元素。**
8单选(2分)一个n(n>3)阶三对角矩阵A按行优先顺序压缩存放在一维数组B,则B中元素个数是( )。
A.3n-2
B.2n
C.n*n
D.3n
正确答案:A
课本考据:若 一个n阶方阵A 满足其所有非零元素都集中在对主对角线为中心的带状区域中。则称为n阶对角矩阵。
9单选(2分)稀疏矩阵常用的压缩存储方法有( )。
A.二维数组
B.哈希表和十字链表
C.三元组和哈希表
D.三元组和十字链表
正确答案:D
课本考据:把稀疏矩阵的三元组线性表按顺序存储结构存储,则称为稀疏矩阵的三元组顺序表(简称为三元组表);十字链表是稀疏矩阵的 一种链式存储结构。
10单选(2分)稀疏矩阵采用压缩存储后的缺点之一是( )。
A.丧失随机存取特性
B.无法由行、列值查找某个矩阵元素
C.无法判断矩阵的行列数
D.使矩阵元素之间的逻辑关系更加复杂
正确答案:A