有问题或有错误欢迎交流与指正
第1关: 串、数组、广义表客观题测试(一)
1、串是一种内容受限的线性表。
A、对
B、错
2、空串是由空格组成的串。
A、对
B、错
3、串中任意连续的字符组成的子序列称为该串的子串。
A、对
B、错
解:书本定义
4、串的特殊性体现在数据元素可以是多个字符。
A、对
B、错
解:串是一种特殊的线性表,其特殊性体现在数据元素是一个字符
5、子串的定位运算通常称为串的模式匹配。
A、对
B、错
6、最简单直接的模式匹配算法是KMP算法。
A、对
B、错
解:BF
7、KMP 算法的特点是在模式匹配时指示主串 的指针不会变小。
A、对
B、错
8、串是一种数据对象和操作都特殊的线性表。
A、对
B、错
9、模式匹配一定是从主串的第一个位置开始。
A、对
B、错
10、由一个或多个空格组成的串称为空格串,其长度为0。
A、对
B、错
第2关: 串、数组、广义表客观题测试(二)
1、稀疏矩阵压缩存储后, 必会失去随机存取功能。
A、对
B、错
2、数组是由类型相同的数据元素构成的有序集合,每个元素称为数组元素。
A、对
B、错
3、广义表中原子个数即为广义表的长度。
A、对
B、错
解:元素可以是原子或者子表
4、广义表的长度是指广义表中括号嵌套的层数。
A、对
B、错
解:广义表的长度是指广义表中元素的个数,而不是括号嵌套的层数。
5、广义表是一种多层次的数据结构, 其元素可以是单个元素,也可以是子表。
A、对
B、错
6、广义表可以为其他广义表所共享。
A、对
B、错
7、取表头操作中取出的表头为去除表尾之外,由其余元素构成的表。
A、对
B、错
8、广义表是线性表的推广,也称为列表。
A、对
B、错
9、数组采用链式存储结构表示比较合适。
A、对
B、错
解:数组是一种线性数据结构,其元素具有连续的内存空间,而链式存储结构则更适合用于非连续存储的复杂数据结构,如链表等。因此,对于数组这种线性数据结构,通常采用顺序存储结构更为合适。
10、由于广义表中的数据元素可以有不同的结构,因此通常采用链式存储结构。
A、对
B、错
第3关: 串、数组、广义表客观题测试(三)
1、串是一种特殊的线性表,其特殊性体现在()。
A、可以顺序存储
B、可以链式存储
C、数据元素是一个字符
D、数据元素可以是多个字符
2、下面关于串的叙述中,哪一项是不正确的。()
A、串是字符的有限序列
B、串既可以采用顺序存储,也可以采用链式存储
C、模式匹配是串的一种重要运算
D、空串是由空格构成的串
3、串的长度是指()。
A、串中所含不同字母的个数
B、串中所含非空格字符的个数
C、串中所含不同字符的个数
D、串中所含字符的个数
4、设有两个串p和q, 其中q是p的子串,求q在p中首次出现的位置的算法称为()。
A、求子串
B、匹配
C、联接
D、求串长
5、若串 S='software'
, 其子串 的数目 是()。
A、8
B、9
C、36
D、37
解:记公式或自己推都行 ,不要忘记空串也是子串 n(n+1)/2+1
6、串"ababaaababaa"的next数组为()。
A、012345123456
B、011234223456
C、012121111212
D、012301232345
7、已知串 S='aaab'
, 其 Next 数组值为()。
A、1231
B、1123
C、0123
D、1211
8、串 ' abababababba'
的 next 数组为()。
A、011234567891
B、012121111212
C、011234223456
D、012301231234
9、模式串 t=' abcaabbcabcaabdab' , 该模式串 的 next 数组的值为()。
A、0 1 1 1 2 2 1 1 1 2 3 4 5 6 7 1 2
B、0 1 1 1 2 2 3 1 0 1 1 0 2 1 7 8 2
C、0 1 1 1 2 2 3 1 1 2 3 4 5 6 7 1 2
D、0 1 1 1 0 0 1 3 1 0 1 1 0 0 7 0 1
10、对于KMP算法,在模式匹配时指示主串匹配位置的指针()。
A、不会变小
B、不会变大
C、可能会变大,也可能会变小
D、无法判断
第4关: 串、数组、广义表客观题测试(四)
1、设主串的长度为n,子串的长度为m,那么对于KMP算法,平均时间复杂度为( )。
A、O(m)
B、O(n)
C、O(nm)
D、O(n+m)
2、设目标T="abccdcdccbaa"
,模式P="cdcc"
,用BF算法匹配第()次匹配成功。
A、5
B、6
C、7
D、8
3、串的模式匹配是指()。
A、判断两个串是否相等
B、对两个串进行大小比较
C、找某字符在主串中第一次出现的位置
D、找某子串在主串中第一次出现的第一个字符位置
4、设二维数组 A[m][n]
,每个数组元素占用 d 个存储单元,第一个数组元素的存储地址是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]*d
B、Loc(a[0][0]) +[(j-1) *m+i-1]*d
C、Loc(a[0][0]+[j*m+i]*d
D、Loc(a[0][0]) +[i*n+j]*d
5、已知二维数组 A[6][10]
,每个数组元素占 4 个存储单元,若按行优先顺序存放数组元素a[3][5]
的存储地址是1000,则a[0][0]
的存储地址是( )。
A、860
B、868
C、872
D、864
6、假设以行序为主序存储二维数组A=array[1…100,1…100]
,设每个数据元素占2个存储单元,基地址为10,则LOC[5,6]
=()。
A、808
B、810
C、818
D、820
7、设有数组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
8、若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1...(n(n+1))/2]
中,则在B中确定aij(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
9、二维数组A的每个元素是由10个字符组成的串,其行下标i =0,1,…,8
,列下标j =1,2,…,10
。若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素( )的起始地址相同。设每个字符占1字节。
A、A[8,5]
B、A[0,9]
C、A[5,8]
D、A[3,10]
10、二维数组A[1…m,1…n]
(即m行n列)按行存储在数组B[1,…,m*n]
中,则二维数组元素A[i,j]
在一维数组B中的下标为( )。
A、(i-1)*n+j-1
B、(i-1)*n+j
C、i*(j-1)
D、j*m+i-1
第5关: 串、数组、广义表客观题测试(五)
1、数组A[0. . 5, 0. . 6]
的每个元素占5个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5] [5]
的地址是( )。
A、1175
B、1180
C、1205
D、1210
2、多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为()。
A、数组的元素处在行和列两个关系中
B、数组的元素必须从左到右顺序排列
C、数组是多维结构,内存是一维结构
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、设有一个n*n
的对称矩阵A,将其下三角部分按行存放在一维数组B 中,而A[0][0]
存放于B[0]
中,那么,第i 行对角线元素A[i][i]
存放于B 中( )处。
A、(2n-i+1)i /2
B、(2n-i-1)i /2
C、(i+3)i /2
D、(i+1)i /2
解:注意下标与位序的关系,
A[i][i]是第i+1行第i+1列元素,1+2+...+(i+1)=[(i+1)*(i+2)/2],又因为起始坐标是0。所以存放在[(i+1)*(i+2)/2]-1=[ (i+3)*i/2 ]处
6、有一个100阶的三对角矩阵M,其元素mi,j(1≤i≤100,1≤j≤100)
按行优先次序压缩存入下标
从0开始的一维数组N中。元素m30,30在N中的下标是( )。
A、85
B、86
C、87
D、88
7、[0,…,4,1,…,3,5,…,7]
中含有元素的个数是( )。
A、55
B、45
C、36
D、16
8、广义表A = (a,b,(c,d),(e,(f,g)))
,则Tail(Tail(Head(Tail(Tail(A)))))
的值为( )。
A、(g)
B、(d)
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和2
C、1和3
D、2和3
第6关: 串、数组、广义表客观题测试(六)
1、下列说法正确的是()。 (1)稀疏矩阵压缩存储后,必会失去随机存取功能。 (2)若一个广义表的表头为空表,则此广义表亦为空表。
(3)广义表的取表尾运算,其结果通常是个表,但有时也可是个单元素值。
(4)从逻辑结构上看,n维数组是由多个n-1维的数组构成。
A、仅(1)(2)
B、仅(1)(4)
C、仅(2)(3)
D、仅(3)(4)
2、下面说法不正确的是()。
A、广义表的表头总是一个广义表
B、广义表的表尾总是一个广义表
C、广义表难以用顺序存储结构
D、广义表可以是一个多层次的结构
3、设广义表 L=(a, b, L)
其深度是 () 。
A、2
B、3
C、正无穷
D、都不对
4、下列广义表是线性表的有 () 。
A、Ls=(a, (b, c) )
B、Ls=(a, b)
C、Ls=(a, Ls)
D、Ls=(a, (() ) )
5、一个非空广义表的表尾 () 。
A、只能是子表
B、不能是子表
C、只能是原子元素
D、可以是原子元素或子表
6、已知广义表 A=((a, (b, c) ) , (a, (b, c) , d) )
,则运算 head(head(tail(A))) 的结果是 ( ) 。
A、a
B、(b,c)
C、(a,(b,c))
D、()
7、串"ababaabab"
的nextval
数组为( )。
A、010104101
B、010104001
C、010101001
D、010101101
8、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( )。
A、13
B、31
C、32
D、33
9、将三对角矩阵A[1…100,1…100]
按行优先存入一维数组B[1,…,298]
中,A中元素A[66,67]
在B中的位置K为( )。
A、198
B、197
C、199
D、195
10、假设有60行70列的二维数组 a[1…60, 1…70]
以列序为主序顺序存储,其基地址10000,每个元素占2个存储单元,那么第 32 行第 58 列的元素 a[32,58]
的存储地址为( )。
A、14454
B、16902
C、16904
D、14456