串是一种特殊的线性表,其特殊性体现在( )。
目标
辨析串的基本术语(空串、空格串、子串、主串、串长)、串的 ADT 与基本操作(赋值、复制、比较、求长、连接、求子串、定位),以及三种存储表示(定长顺序、堆分配、块链)的取舍。字符编码(ASCII / UTF-8 / GBK)对串长与操作的影响属于正文知识点,放在思考题中延伸,不单独出选择题。
前置知识
建议先阅读 3.1 串的定义、存储与编码正文,掌握空串与空格串的区别、串长与子串的计算、三种存储方案的取舍。
环境、输入与预期输出
- 环境:任意现代浏览器;建议准备纸笔或一份错题记录。
- 输入:本 lab 的 15 道选择题(按定义与术语、ADT 与基本操作、三种存储三个方向组织)。
- 预期输出:一份独立作答记录,以及每道错题的错误原因和正确推理。
作答方法
- 阅读题面后点击一个选项,先写下选择依据;
- 点击“提交答案”,再核对对错、正确答案和题解;
- 做错的题点击“重新作答”后再次推导,直到能说明其余选项为什么不成立;
- 完成全部题目后再展开组件生成的答案总览,避免只记答案字母。
答题进度已答 0/15正确 0
难度★考点串、基本概念
下面关于串的的叙述中,哪一个是不正确的?( )
难度★考点串、基本概念
串的长度是指( )。
难度★考点串、基本概念
空串与空格字符构成的串的差别在于( )。
难度★考点串、基本概念
两个字符串相等的条件是( )。
难度★★考点串、基本操作、求子串、连接
设串
难度★★考点串、子串、考研真题
若串
难度★★考点串、子串
有
难度★★考点串、基本操作、求子串
函数
难度★考点串、基本概念
串是( )。
难度★★考点串、基本概念、软考真题
以下关于字符串的叙述中,正确的是( )。
难度★★考点串、存储结构
若串中字符经常发生变化,则采用( )存储方式最合适。
难度★★考点串、存储结构、考研真题
串的两种基本的存储方式是( )。
难度★★考点串、存储结构、链式存储
字符串采用结点大小为 1 的链表作为其存储结构,是指( )。
难度★★考点串、存储结构、存储密度
一个链串的结点类型定义如下:#define NodeSize 6;typedef struct node { char data[NodeSize]; struct node *next; } LinkStrNode; 如果每个字符占 1 个字节、指针占 2 个字节,该链串的存储密度为( )。
答案总览(建议完成全部题目后查看)
- 第 1 题:B
- 第 2 题:B
- 第 3 题:C
- 第 4 题:B
- 第 5 题:D
- 第 6 题:D
- 第 7 题:C
- 第 8 题:D
- 第 9 题:C
- 第 10 题:D
- 第 11 题:C
- 第 12 题:C
- 第 13 题:A
- 第 14 题:D
- 第 15 题:D
完成清单
思考题
- 空串与空格串的长度分别是多少?“判断串是否为空”应该用哪个?
- 为什么“串长不等于字节数”?取子串、截断时要注意什么?
- 定长顺序、堆分配、块链三种存储各适合什么场景?为什么?
复盘
- 我最容易把哪个术语或复杂度结论记混?
- 我能否不看正文说出最小操作子集和三种存储的取舍?
- 编码问题(半个字符、乱码)在真实程序中会造成什么后果?