参考教材:数据结构教程(Java语言描述) 作者:李春葆
1 . 容易 (4分)二维数组为a[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放的数组元素,a[0][0]的存储地址为860,则a[3][5]的存储地址是______。
A. 1000
B. 860
C. 1140
D. 1200
2 . 容易 (4分)二维数组为a[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放的数组元素a[3][5]的存储地址为1000,则a[0][0]的存储地址是______。
A. 872
B. 860
C. 868
D. 864
3 . 容易 (4分)一个n阶对称矩阵A采用压缩存储方式,将其下三角+主对角部分元素按行优先存储到一维数组B中,则B中元素个数是______。
A. n
B. n2
C. n(n+1)/2
D. n(n+1)/2+1
4 . 容易 (4分)一个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
D. i(i-1)/2+j-1
5 . 容易 (4分)一个n阶对称矩阵A[1..10,1..10]采用压缩存储方式,将其下三角+主对角部分元素按行优先存储到一维数组B[0..m]中,则A[8][5]元素在B中的位置k是______。
A. 32
B. 37
C. 45
D. 60
6 . 容易 (4分)一个n阶对称矩阵A[1..10,1..10]采用压缩存储方式,将其上三角+主对角部分元素按行优先存储到一维数组B[0..m]中,则A[5][8]元素在B中的位置k是______。
A. 10
B. 37
C. 45
D. 60
7 . 容易 (4分)一个n阶(n>1)三对角矩阵A按行优先顺序压缩存放在一维数组B中,则B中的元素个数是______。
A. 3n
B. n2
C. 2n
D. 3n-2
8 . 容易 (4分)对稀疏矩阵进行压缩存储的目的是______。
A. 便于进行矩阵运算
B. 便于输入和输出
C. 节省存储空间
D. 降低运算的时间复杂度
9 . 容易 (4分)一个稀疏矩阵采用压缩后,和直接采用二维数组存储相比会失去______ 特性。
A. 顺序存储
B. 随机存取
C. 输入输出
D. 以上都不对
10 . 容易 (4分)m行n列的稀疏矩阵采用十字链表表示时,其中循环单链表的个数为______。
A. m+1
B. n+1
C. m+n+1
D. MAX{m,n}+1
11 . 普通 (4分)数组是同类型元素的集合。
错误
数组是由同类型元素构成,但不同于集合,每个元素都有自已的位置,其中可能存在相同的元素。
12 . 普通 (4分)数组可看成线性表的一种推广,因此与线性表一样,其基本运算有插入和删除等。
错误
数组可看成线性表的一种推广,但插入和删除不是其基本运算。
13 . 普通 (4分)数组只能采用顺序存储结构。
错误
数组是一种逻辑结构,主要的基本运算是存、取元素,所以最适合采用顺序存储结构,但并不能说数组只能采用顺序存储结构。
14 . 普通 (4分)二维数组中每一行的元素个数都是相等的。
错误
15 . 普通 (4分)二维数组的顺序存储方式只能以行优先存储。
错误
二维数组的顺序存储方式分为以行优先和以列优先存储两种方式。
16 . 普通 (4分)二维数组A[-3..5,0..10]中共有80个元素。
错误
其元素个数=[5-(-3)+1]×[10-0+1]=99。
17 . 普通 (4分)定义二维数组A[1..8,0..10],起始地址为LOC,每个元素占2个存储单元,在以行序为主序的存储方式下,某数据元素的地址为LOC+50,则在以列序为主序的存储方式下,该元素的存储地址为LOC+36。
错误
这里m=8,n=11,k=2。在以行序为主序时,设该元素为ai,j,有LOC(ai,j)=LOC+[(i-1)×n+j] ×k=LOC+50,即11i+j=36,由于1≤i≤8,0≤j≤10,由此推出i=3,j=3。 在以列序为主序时,LOC(ai,j)=LOC+[j×m+i-1]×k,所以LOC(a3,3)=LOC+52。
18 . 普通 (4分)特殊矩阵是指用途特殊的矩阵。
错误
特殊矩阵是指元素值分布具有某种规律的矩阵。
19 . 普通 (4分)用一维数组存储特殊矩阵,可以简化对矩阵的存取操作。
错误
主要用于数据压缩。
20 . 普通 (4分)以下属于数组的基本运算的是( )。
A. 插入元素
B. 删除元素
C. 读指定位置的元素
D. 以上都不是
数组的基本运算只有元素的存和取,前者是更新指定元素的值,后者是读指定元素的值,每个元素由其下标确定位置。
21 . 普通 (4分)有一个三维数组A[-2..2][-4..5][2..6],其中元素个数是( )。
A. 60
B. 250
C. 144
D. 396
该数组的元素个数=[2-(-2)+1]×[5-(-4)+1]×[6-2+1]=5×10×5=250。
22 . 普通 (4分)一个二维数组A中,每个元素的长度为3个字节,行下标从0到9,列下标从0到11,则连续存放该数组至少需要______ 个字节。
A. 100
B. 240
C. 360
D. 340
该数组的元素个数=(9-0+1)×[11-0+1]=120,每个元素的长度为3个字节,总种占用3×120=360个字节。
23 . 普通 (3分)设二维数组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-1)×n+j-1]×k
B. LOC(a[0][0])+[i×n+j]×k
C. LOC(a[0][0])+[j×m+i]×k
D. LOC(a[0][0])+[(j-1)×m+i-1]×k
数组a为m行n列,行号从0到m-1,列号从0到n-1。
24 . 普通 (3分)设二维数组a[1..5][1..8],若按行优先的顺序存放数组的元素,则a[4][6]元素的前面有( )个元素。
A. 6
B. 28
C. 29
D. 40
该数组的行、列号从1开始,当按行优先的顺序存储时,a[4][6]元素的前有1~3行,每行8-1+1=8个元素,小计24个元素,在第6行中,a[4][6]元素的前有a[4][1..5]共5个元素,所以a[4][6]元素的前面有24+5=29个元素。
25 . 普通 (3分)设二维数组a[1..5][1..8],若按列优先的顺序存放数组的元素,则a[4][6]元素的前面有( )个元素。
A. 6
B. 28
C. 29
D. 40
该数组的行、列号从1开始,当按列优先的顺序存储时,a[4][6]元素的前有1~5列,每列5-1+1=5个元素,小计25个元素,在第6列中,a[4][6]元素的前有a[1..3][6]共3个元素,所以a[4][6]元素的前面有25+3=28个元素。
26 . 普通 (3分)在二维数组中,每个数组元素同时处于( )个向量中。
A. 0
B. 1
C. 2
D. n