第07讲 数组和特殊矩阵 课堂互动 显示答案 | 返回首页

作者:欧新宇(Xinyu OU)

最后更新:2023-10-02


【课前自测07】

1. 假设二维数组A[1..60, 1..70] 以列序为主序顺序存储,其基地址为10000,每个元素占用2个存储单元,那么元素A[32,58]的存储地址为( )。
A. 14454
B. 16902
C. 16904
D. 以上均不对

2. 设二维数组A[m][n],每个数组元素占用d个存储单元,第一个数组元素的存储地址是Loc[0][0],求按行优先顺序存储元素A[i][j](0≤i≤m-1,0≤j≤n-1)的存储地址是()。
A. Loc[0][0] + ((j-1)n + j -1)d
B. Loc[0][0] + ((i-1)m + j -1)d
C. Loc[0][0] + (jm + i)d
D. Loc[0][0] + (in + j)d

3. 对特殊矩阵采用压缩存储的主要目的是( )。
A. 表达变得简单
B. 对矩阵元素的存取变得简单
C. 去掉矩阵中的多余元素
D. 减少不必要的存储空间

4. 对n阶对称矩阵压缩存储时,需要表长为( )。
A. n/2
B. n×n/2
C. n(n+1)/2
D. n(n-1)/2

5. 【2017统考真题】适用于压缩存储稀疏矩阵的两种存储结构是( )。
A. 三元组表和十字链表
B. 三元组表和邻接矩阵
C. 十字链表和二叉链表
D. 邻接矩阵和十字链表

【课堂互动7.1】数组的基本概念及顺序存储实现

1. 在二维数组A中,假设每个数组元素的长度为3个存储单元,行下标i为0~8,列下标j为0~9,从首地址SA开始连续存放。在这种情况下,元素A[8][5]的起始地址为( )。
A. SA+141
B. SA+144
C. SA+222
D. SA+255

2.【2021统考真题】二维数组A按行优先方式存储,每个元素占用1个存储单元。若元素A[0][0]的存储地址是100,A[3][3]的存储地址是220,则元素A[5][5]的存储地址是( )。
A. 295
B. 300
C. 301
D. 306

3. 在二维数组A[m][n]中,每个元素A[i][j]占k个存储空间,所有元素相继存放在一个连续的存储空间中,则存放该数组至少需要的存储空间是( )。
A. (m-1)n
B. mn
C. (m-1)nk
D. mnk

4. 三维数组[1..10, -2..6, 2..8] 的每个元素的长度为4个字节,该数组要占( )个字节的存空间。
A. 630
B. 2800
C. 2520
D. 2880

【课堂互动7.2】特殊矩阵的压缩存储

1. 将三对角矩阵A[1,...,100][1,...,100]按行优先存入一维数组B[1,...,298]中,数组A中元素A[66][65]在数组B中的位置k为( )。
A. 198
B. 195
C. 197
D. 196

2. 有一个n×n的对称矩阵A,将其下三角部分按行存放在一维数组B中,而A[0][0]存放于B[0]中,则第i+1行的对角元素A[i][i]存放于B中的 ( ) 处。
A. (i+3)i/2
B. (i+1)i/2
C. (2n-i+1)i/2
D. (2n-i-1)i/2

3.【2016统考真题】有一个100阶的三对角矩阵M,其元素mi,jm_{i,j}(1≤i, j≤100)按行优先依次压缩存入下标从0开始的一维数组N中。元素m30,30m_{30,30}在N中的下标是( )。
A. 86
B. 87
C. 88
D. 89

4.【2018统考真题】设有一个12x12的对称矩阵M,将其上三角部分的元素mi,jm_{i,j}(1≤i≤j≤12)按行优先存入C语言的一维数组N中,元素m6,6m_{6,6}在N中的下标是( )。
A. 50
B. 51
C. 55
D. 66

5.【2020统考真题】将一个10x10对称矩阵M的上三角部分的元素mi,jm_{i,j}(1≤i≤j≤10)按列优先存入C语言的一维数组N中,元素m7,2m_{7,2}在N中的下标是( )。
A. 15
B. 16
C. 22
D. 23

【扩展练习07】

1. 设三维数组A[3..10, -1..8, 1..20]按高位优先(页/行/列)存放,首元素的存储地址为1000,每个元素占用4个存储单元,则元素A[5,3,6]的存储地址是( )。
A. 485
B. 1485
C. 1940
D. 2940

2. 设一维数组A[m×n]从A[0]开始,每隔n个元素取出一个元素存放到B[m]中,B[0] = A[0],B[1] = A[n] ......那么B[k]中存放的元素在A中的下标是( )。
A. (k-1)n
B. kn
C. (k-1)m
D. km

3. 若将n阶下三角矩阵A按列优先顺序压缩存放在一维数组B[1,...,n(n+1)/2+1]中,则存放到B[k]中的非零元素ai,ja_{i,j}(1≤i, j≤n)的下标i、j与k的对应关系是( )。
A. (j-1)(2n-j+1)/2+i-j
B. (j-1)(2n-j+2)/2+i-j+1
C. (j-1)(2n-j+2)/2+i-j
D. (j-1)(2n-j+1)/2+i-j-1

4. 若将n阶上三角矩阵A按列优先级压缩存放在一维数组B[1,...,n(n+I)/2+1]中,则存放到B[K]中的非零元素ai,ja_{i,j}(1≤i,j≤n)的下标i, j与k的对应关系是( )。
A. i(i+1)/2+j
B. i(i-1)/2+j-1
C. j(j-1)/2+i
D. j(j-1)/2+i-1

5. 将一个n×n的对称矩阵A的对角线和对角线以下的部分按行优先存储于一个一维数组B中,那么B中存放了( )个矩阵A的元素。
A. n(n-1)/2
B. n2n^2/2
C. n(n+1)/2
D. n(n-1)

6. 二位数组A的元素都是6个字符组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则A的第8列和第5行共占( )个字节。
A. 108
B. 114
C. 54
D. 60

7. 多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为( )。
A. 数组的元素处在行和列两个关系中
B. 数组的元素必须从左到右顺序排列
C. 数组的元素之间存在次序关系
D. 数组是多维结构,内存是一维结构

8. [0..4, -1..-3, 5..7] 中含有( )个元素。
A. 55
B. 45
C. 36
D. 16

9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。
A. BA+141
B. BA+180
C. BA+222
D. BA+225

10. 设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11a_{11} 为第一元素,其存储地址为1,每个元素占一个地址空间,则a85a_{85}的地址为( )。
A. 13
B. 32
C. 33
D. 40

11. 若对n阶对称矩阵以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定 aij(i<j)a_{ij} (i<j) 的位置k为( )。
A. i(i-1)/2+j
B. j(j-1)/2+i
C. i(i+1)/2+j
D. j(j+1)/2+i

12. 二维数组A的每个元素是由10个字符组成的串,其行下标i=0,1,...,8,列下标j=1,2,...,10。若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素( )的起始地址相同。设每个字符占1字节。
A. A[8,5]
B. A[3,10]
C. A[5,8]
D. A[0,9]

13. 二维数组A[1..m, 1..n](即m行n列)按行存储在数组B[1..m×n]中,则二维数组元素A[i,j]在一维数组B中的下标为( )。
A. (i-1)n+j
B. (i-1)n+j-1
C. i(j-1)
D. jm+i-1

14. 假设以行序为主序存储二维数组A=array[1..100, 1..100],设每个数据元素占2个存储单元,基地址为10,则Loc[5,5] =( )。
A. 808
B. 818
C. 1010
D. 1020

第07讲 数组和特殊矩阵 课堂互动 显示答案 | 返回首页