参考教材:《数据结构(C语言版 第2版)》 严蔚敏,李冬梅,吴伟民编著,人民邮电出版社,2022年版。
截图未标明出处均为原创或取自《数据结构(C语言版 第2版)》~
本文对应的作业题讲解视频:
作业讲解文档链接目录:
(۶//•̀ᴗ•́)۶// (۶//*'▽'*)۶// (۶//๑˃̵ᴗ˂̵)۶/ (۶//•̀ᴗ•́)۶// (۶//*'▽'*)۶// (۶//๑˃̵ᴗ˂̵)۶/
╭═════╮╭═══════════╮
╭╯让路! ║ 题来了!题来了!
╰⊙═══⊙╯╰═⊙═══⊙═══⊙╯
单选题1 | 下面关于串的叙述中,哪一个是不正确的?( ) | ||||||||||||||||||||
A. 串是字符的有限序列 | |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
单选题2 | 下标从1开始,若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,执行 | ||||||||||||||||||||
| |||||||||||||||||||||
正确答案:E concat: concatenate, 连接, 拼接 substr: substring, 子串, substr(字符串,截取开始位置,截取长度) 已知:S1 = ‘ABCDEFG’ S2 = ‘9898’, S3= ‘###’, S4 = ‘012345’ 求:concat(replace(S1, substr(S1, length(S2), length(S3)), S3), substr(S4, index(S2, '8'), length(S2)))
① substr(S1, length(S2), length(S3)) → substr(‘ABCDEFG’, 4, 3) → ‘DEF’ ② replace(S1, ’EFG’, S3) → replace(‘ABCDEFG’, ’DEF’, ‘###’) → ‘ABC###G’
→ ‘1234’ 最后:concat(‘ABC###G’, ‘1234’) → ‘ABC###G1234’ | |||||||||||||||||||||
单选题3 | 设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( ) | ||||||||||||||||||||
A. 求子串 | |||||||||||||||||||||
正确答案:C | |||||||||||||||||||||
单选题4 | 若串S=’software’,其子串的数目是( )。 | ||||||||||||||||||||
A. 8 | |||||||||||||||||||||
正确答案:B 子串的定义: 长度为0的子串个数:1 长度为1的子串个数:8 长度为2的子串个数:7 长度为3的子串个数:6 长度为4的子串个数:5 长度为5的子串个数:4 长度为6的子串个数:3 长度为7的子串个数:2 长度为8的子串个数:1 所以一共有子串个数= 1 + (8 + 2)*7 /2 +1 =37 | |||||||||||||||||||||
单选题5 | 设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为( ) | ||||||||||||||||||||
| |||||||||||||||||||||
正确答案:D 方法1: 第4题的非平凡子串个数: 长度为1的子串个数:8 长度为2的子串个数:7 长度为3的子串个数:6 长度为4的子串个数:5 长度为5的子串个数:4 长度为6的子串个数:3 长度为7的子串个数:2 ↓推广到更一般的 字符串长度为n↓ 字符串长度为n: 长度为1的子串个数:n 长度为2的子串个数:n-1 长度为3的子串个数:n-2 ... 长度为n-1的子串个数:2 等差数列求和= (n-1)*(n+2)/2 = (n^2/2) + (n/2) -1 方法2:特殊值法 令n=1, 则根据定义,非平凡子串的个数为0,将n=1带入所有答案: A:1 ×; B:2 ×;C:1 ×;D:0 √;E:-1 ×。 所以最后答案选择D; | |||||||||||||||||||||
单选题6 | 串的长度是指( ) | ||||||||||||||||||||
A. 串中所含不同字母的个数 | |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
单选题7 | 下标从1开始,INDEX(‘DATASTRUCTURE’, ‘STR’)= ( ) | ||||||||||||||||||||
| |||||||||||||||||||||
正确答案:A 思路: | |||||||||||||||||||||
单选题8 | 两个字符串相等的充分必要条件是( ) | ||||||||||||||||||||
| |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
多选题9 | 串的两种最基本的存储方式是__和__ | ||||||||||||||||||||
| |||||||||||||||||||||
正确答案:A, D | |||||||||||||||||||||
单选题10 | 串是一种数据对象和操作都特殊的线性表。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:A | |||||||||||||||||||||
单选题11 | 设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( ) | ||||||||||||||||||||
A. 13 | |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
单选题12 | 有一个二维数组A[1:6,0:7],每个数组元素用相邻的6个字节存储,存储器按字节编址,那么这个数组的体积是( )个字节。假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A的最后一个元素的第一个字节的地址是()。若按行存储,则A[2,4]的第一个字节的地址是()。若按列存储,则A[5,7]的第一个字节的地址是()。(选择四个答案即可) | ||||||||||||||||||||
| |||||||||||||||||||||
正确答案:C, I, J, L | |||||||||||||||||||||
单选题13 | 就一般情况而言,当( )时,按行存储的A[I,J]地址与按列存储的A[J,I]地址相等。 | ||||||||||||||||||||
A. 行与列的上界相同 | |||||||||||||||||||||
正确答案:C 假设A为n行m列的二维数组且A[p,q]为数组的第一元素,则: 按行存储A[i, j] 的地址: (i - p) * m + j - q 按列存储A[j, i] 的地址: (i - q) * n + j - p 只有同时满足行与列的上下界都相同,即m=n且p=q时,才能保证两式相等,所以答案选C。 | |||||||||||||||||||||
单选题14 | 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。 | ||||||||||||||||||||
A. BA+141 | |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
单选题15 | 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )。 | ||||||||||||||||||||
A. 808 | |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
单选题16 | 将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为( )。 | ||||||||||||||||||||
A. 198 | |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
单选题17 | 二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素( )的起始地址相同。设每个字符占一个字节。 | ||||||||||||||||||||
A. A[8,5] | |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
单选题18 | 若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定aij(i<j,矩阵元素下标从1开始)的位置k的关系为: | ||||||||||||||||||||
A. i*(i-1)/2+j | |||||||||||||||||||||
正确答案:B aij(i<j,矩阵元素下标从1开始),说明aij是在矩阵的上三角区域。又因为A是对称矩阵,即aji = aij,且存储的是下三角的元素, 所以求aji在B中的位置即可。最终得到aij= aji = j*(j-1)/2+i。 | |||||||||||||||||||||
单选题19 | 设二维数组A[1..m,1..n](即m行n列)按行存储在数组B[1..m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( )。 | ||||||||||||||||||||
A. (i-1)*n+j | |||||||||||||||||||||
正确答案:A | |||||||||||||||||||||
单选题20 | 数组A[0..4,-1..-3,5..7]中含有元素的个数( )。 | ||||||||||||||||||||
A. 55 | |||||||||||||||||||||
正确答案:B 第一维0..4: 5; 第二维1..3: 3;第三维5..7:3 元素个数= 5*3*3 = 45 | |||||||||||||||||||||
单选题21 | 已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子项t的运算是( )。 | ||||||||||||||||||||
A. head(tail(tail(L))) | |||||||||||||||||||||
正确答案:D | |||||||||||||||||||||
单选题22 | 已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是( )。 | ||||||||||||||||||||
A. head(tail(LS)) | |||||||||||||||||||||
正确答案:C | |||||||||||||||||||||
单选题23 | 广义表A=(a,b,(c,d),(e,(f,g))),则Head(Tail(Head(Tail(Tail()))))为( )。 | ||||||||||||||||||||
A. (g) | |||||||||||||||||||||
正确答案:D | |||||||||||||||||||||
单选题24 | 广义表运算式Tail(((a,b),(c,d)))的操作结果是( )。 | ||||||||||||||||||||
A. (c,d) | |||||||||||||||||||||
正确答案:C | |||||||||||||||||||||
单选题25 | 广义表L=(a,(b,c)),进行Tail()操作后的结果为( )。 | ||||||||||||||||||||
A. c | |||||||||||||||||||||
正确答案:D | |||||||||||||||||||||
多选题26 | 广义表((a,b,c,d))的表头是( ),表尾是( )。(请选择两项) | ||||||||||||||||||||
A. a | |||||||||||||||||||||
正确答案:C;B (1)取表头GetHead(LS):取出的表头为非空广义表的第一个元素,它可以是一个单原子,也可以是一个子表。 (2)取表尾GetTail(LS):取出的表尾为除去表头之外,由其余元素构成的表。即表尾一定是一个广义表。 ((a,b,c,d)): GetHead操作:(a,b,c,d),选答案C GetTail操作:(),选答案B | |||||||||||||||||||||
单选题27 | 广义表(a,(b,c),d,e)的表头为( )。 | ||||||||||||||||||||
A. a | |||||||||||||||||||||
正确答案:A | |||||||||||||||||||||
单选题28 | 设广义表L=((a,b,c)),则L的长度和深度分别为( )。 | ||||||||||||||||||||
A. 1和1 | |||||||||||||||||||||
正确答案:C 长度 = 表中元素个数 深度 = 表中括号的重数 | |||||||||||||||||||||
单选题29 | 下面说法不正确的是( )。 | ||||||||||||||||||||
A. 广义表的表头总是一个广义表 | |||||||||||||||||||||
正确答案:A (1)取表头GetHead(LS):取出的表头为非空广义表的第一个元素,它可以是一个单原子,也可以是一个子表。 (2)取表尾GetTail(LS):取出的表尾为除去表头之外,由其余元素构成的表。即表尾一定是一个广义表。 | |||||||||||||||||||||
单选题30 | 有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是( )。 | ||||||||||||||||||||
A. 60 | |||||||||||||||||||||
正确答案:B
又因为每个整型数占2个字节:10*3*2=60 还要存储100*90这个行列信息:需要再开辟连续的一组(三个)空间,
所以最终,所需60 + 3*2=66个字节 | |||||||||||||||||||||
单选题31 | 对稀疏矩阵进行压缩存储目的是( )。 | ||||||||||||||||||||
A. 便于矩阵运算 | |||||||||||||||||||||
正确答案:C | |||||||||||||||||||||
单选题32 | 从逻辑结构上看,n维数组的每个元素均属于n个向量。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:A
E.g. 2维数组可以定义为其数据元素为1维数组类型的一维数组类型: | |||||||||||||||||||||
单选题33 | 数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。( ) | ||||||||||||||||||||
| |||||||||||||||||||||
正确答案:B 数组一旦被定义,它的维数和维界就不再改变。因此,除了结构的初始化和销毁之外,数组只有存取元素和修改元素值的操作。 | |||||||||||||||||||||
单选题34 | 稀疏矩阵压缩存储后,会失去随机存取功能。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:B | |||||||||||||||||||||
单选题35 | 一个稀疏矩阵Am*n采用三元组形式表示,若把三元组中有关行下标与列下标的值互换,并把m和n的值互换,则就完成了Am*n的转置运算。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:B 稀疏矩阵用三元组形式表示:将矩阵的所有非零元素的三元组存放在一个顺序表中。矩阵转置的实现过程需完成以下 3 步: (1)将矩阵的行数和列数互换; (2)将三元组表(存储矩阵)中的 i 列和 j 列互换,实现矩阵的转置; (3)以 j 列为序,重新排列三元组表中存储各三元组的先后顺序; Ref:https://blog.csdn.net/weixin_45609535/article/details/127136005 | |||||||||||||||||||||
单选题36 | 二维以上的数组其实是一种特殊的广义表。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:A E.g. 三维数组:[[[a], [b], [c]], [[d], [e], [f]]] 特点:组成三维数组的数据元素是二维数组→组成n维数组的数据元素是n-1维数组(n≥2) | |||||||||||||||||||||
单选题37 | 广义表的取表尾运算,其结果不空的情况下,通常是个表,但有时也可是个单元素值。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:B 取表尾GetTail(LS): 取出的表尾为除去表头之外,由其余元素构成的表。即表尾一定是一个广义表。 | |||||||||||||||||||||
单选题38 | 若一个广义表的表头为空表,则此广义表亦为空表。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:B ((), (a, b, c)):表头是一个空表,但原广义表不是空表 | |||||||||||||||||||||
单选题39 | 广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:B 反例: ((), (a, b, c))是合法的广义表 | |||||||||||||||||||||
单选题40 | 所谓取广义表的表尾就是返回广义表中最后一个元素。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:B 取表尾GetTail(LS): 取出的表尾为除去表头之外,由其余元素构成的表。即表尾一定是一个广义表。 | |||||||||||||||||||||
单选题41 | 广义表的同级元素(直属于同一个表中的各元素)具有线性关系。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:A 举例:D = (A, B, C) = ((), (e), (a, (b, c, d))) | |||||||||||||||||||||
单选题42 | 对长度为无穷大的广义表,由于存储空间的限制,不能在计算机中实现。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:A 因为计算机存储空间是有限的 | |||||||||||||||||||||
单选题43 | 一个广义表可以为其它广义表所共享。( ) | ||||||||||||||||||||
A. 正确 | |||||||||||||||||||||
正确答案:A 举例:D = (A, B, C) = ((), (e), (a, (b, c, d))) | |||||||||||||||||||||
୧ʕ•̬͡•ʕ•̫͡•♡ʕ͙•̫͑͡•ʔͦʕͮ•̫ͤ͡•ʔ͙ʕ•̫͡•ʕ•̫͡•ʔ୧ʕ•̬͡•ʕ•̫͡•♡〰︎ \ HAVE A GOOD DAY / 〰︎ ʕ•̫͡•ʕ•̫͡•ʔ୧ʕ•̬͡•ʕ•̫͡•♡ʕ͙•̫͑͡•ʔͦʕͮ•̫ͤ͡•ʔ͙୧ʕ•̬͡•ʕ•̫͡•♡