第5章 数组和广义表
1.选择题 (1)假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )。
A.808 B.818 C.1010 D.1020 (2)设有数组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
(3)设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( )。
A.13 B.33 C.18 D.40
(4)若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定aij(i A.i*(i-1)/2+j B.j*(j-1)/2+i C.i*(i+1)/2+j D.j*(j+1)/2+i (5)A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是( )。 A.i(i-1)/2+j B.j(j-1)/2+i C.i(j-i)/2+1 D.j(i-1)/2+1 (6)设二维数组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.j*m+i-1 (7)数组A[0..4,-1..-3,5..7]中含有元素的个数( )。 A.55 B.45 C.36 D.16 (8)广义表A=(a,b,(c,d),(e,(f,g))),则Head(Tail(Head(Tail(Tail(A)))))的值为( )。 A.(g) B.(d) C.c D.d (9)广义表((a,b,c,d))的表头是( ),表尾是( )。 A.a B.( ) C.(a,b,c,d) D.(b,c,d) (10)设广义表L=((a,b,c)),则L的长度和深度分别为( )。 A.1和1 B.1和3 C.1和2 D.2和3 二、问答题 (13)数组A中,每个元素A[i,j]的长度均为32个二进位,行下标从-1到9,列下标从1到11,从首地址S开始连续存放主存储器中,主存储器字长为16位。求: ① 存放该数组所需多少单元? ② 存放数组第4列所有元素至少需多少单元? ③ 数组按行存放时,元素A[7,4]的起始地址是多少? ④ 数组按列存放时,元素A[4,7]的起始地址是多少? 每个元素32个二进制位,主存字长16位,故每个元素占2个字长,行下标可平移至1到11。 (1)242 (2)22 (3)s+182 (4)s+142 (24)请将香蕉banana用工具 H( )—Head( ),T( )—Tail( )从L中取出。 L=(apple,(orange,(strawberry,(banana)),peach),pear)