第5章 数组与广义表
一、选择题(每小题1分,共10分)
1.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( A )。
.108 C
2.在数组A中,每一个数组元素A[i][j]占用3个存储字节,行下标i从1到8,列下标j从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字节数是( C )。
.100 C
3.假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为( C )。(无第0行第0列元素)
.16904 C D.答案A, B, C均不对
4.将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为( A )。
A. 198 B. 195 C. 197
5.数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( A )。
A. 1175 B. 1180 C. 1205 D. 1210数组和链表
6.假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]= ( B )。
A. 808 B. 818 C. 1010 D. 1020
7. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( B )。
A. BA+141 B. BA+180 C. BA+222 D. BA+225
8.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。
A、 13 B、 33 C、 18 D、 40
9. 二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素( B )的起始地址相同。设每个字符占一个字节。
A、 A[8,5] B、 A[3,10] C、 A[5,8] D、 A[0,9]
10.若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定aij(i<j)的位置k的关系为( B )。
A、 i*(i-1)/2+j B、 j*(j-1)/2+I C、 i*(i+1)/2+j D、 j*(j+1)/2+i
11.对稀疏矩阵进行压缩存储目的是( C )。
A、便于进行矩阵运算 B、便于输入和输出
C、节省存储空间 D、降低运算的时间复杂度
12.数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为( A )。
A、 j=r[j].next B、 j=j+1 C、 j=j->next D、 j=r[j]-> next
13. 数组A[0..4,-3..-1,5..7]中含有元素的个数为( B )。
A、 55 B、 45 C、 36 D、 16
14.有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是( B )。
A、 60 B、 66 C、 18000 D、 33
15.设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组*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
[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是( B )。
(i-1)/2+j B. j(j-1)/2+I C. i(j-i)/2+1 (i-1)/2+1
17.设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组(n+1)/2]中,对上述任一元素aij(1≤i,j≤n,且i≤j)在B中的位置为( B )。
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
18.对于以行为主序的存储结构来说.在数组A[c1..d1,c2..d2]中,c1和d1分别为数组A的第一维下标的下、上界,c2和d2分别为第二维下标的下、上界.每个数据元素占k个存储单元,二维数组中任一元素a[i,j]的存储位置可由( B )确定。
A、 Loc[i,j]=[(d2-c2+1)(i-c1)+(j-c2)]×k
B、 Loc[i,j]=[Loc[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)]×k
C、 Loc[i,j]=A[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)]×k
D、 Loc[i,j]=Loc[0,0]+[(d2-c2+1)(i-c1)+(j-c2)]×k
19. 设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组(n-1)/2]|中,对下三角部分中任一元素(i〉=j)在一维数组B的下标位置k值是( B )。
A、 i(i-1)/2+j-l B、 i(i-1)/2+j C、 i(i+1)/2+j-1 D、 i(i+1)/2+j
20.稀疏矩阵一般的压缩存储方法有( C )两种。
A、二维数组和三维数组 B、三元组和散列表
C、三元组和十字链表 D、散列表和十字链表
参考题:
21.数组SZ[-3…5,O… 10]含有元素数目为( B )。
A、88 B、 99 C、 80 D、 90
22.二维数组A的每个元素是由6个字符组成的串,其行下标i=0、1、…、8.列下标i=1、2、… 、10。若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素( B )的起始地址相同。设每个字符占一个字节。
A、 A[8,5] B、 A[3,10] C、 A[5,8] D、 A[0,9]
23.设有一个10阶的对称矩阵A,采用压缩破除计方式,以行序为主存储,a1,1为第一个元素,其存储地址为1,每个元素占1个地址空间,则a8,5的地址为( B )。
A、13 B、33 C、18 D、40
24. 稀疏矩阵进行压缩存储目的是( C )。
A、便于进行矩阵运算 B、便于输入和输出
C、节省存储空间 D、降低运算的时间复杂度
25.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使 沿链移动的操作为( A )。
A、j=r[j].next B、 j=j+1 C、 j=j->next D、 j=r[j]-> next
26.数组的基本操作主要包括( C )
A、 建立与删除 B、 索引与修改 C、 访问与修改 D、 访问与索引
27.设矩阵A是一个对称矩阵,为了节省空间,将其下三角矩阵按行序存放在一维数组B[1,n(n+1)/2]中,对下三角部分中任一元素aij(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
8.设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[8,5]的存储首地址为( B )。
A、 BA+141 B、 BA+180 C、 BA+222 D、 BA+225
数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[8][5]的起始地址为 C 。
A .SA+141 B. SA+144 C.SA+222 D .SA+225
二、判断题(每小题1分,共10分)
1.一个稀疏矩阵Am*n采用三元组形式表示,若把三元组中有关行下标与列下标的值互换,并把m和n的值互换,则就完成了Am*n的转置运算。( × )
2.二维以上的数组其实是一种特殊的广义表。( √ )
3.数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。( × )
4.稀疏矩阵压缩存储后,必会失去随机存取功能。( √ )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论