数据结构:串-笔记

1、串长度是指串中所有字符的个数
比如字符串“aba”长度为3

2、下面关于串的叙述中,哪一个是不正确的?( )
正确答案: B
串是字符的有限序列
空串是由空格构成的串
模式匹配是串的一种重要运算
串既可以采用顺序存储,也可以采用链式存储

3、数据的逻辑结构分为线性结构和非线性结构。
常用的线性结构有:线性表,栈,队列,双队列,数组,串。
常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。

4、"abcdefg"中长度2的子串的个数是()
正确答案: D 你的答案: D (正确)
8
7
5
6
解析;是子串不是任意字符串,必须是连续的两个,n个字符长度的字符串有n-1个长度为2的子串

5、设模式串的长度为m,目标串的长度为n,当n≈m且处理只匹配一次的模式时,朴素的匹配(即子串定位函数)算法所花的时间代价可能会更为节省()
正确答案: A


解析:朴素的匹配只匹配一次,不用计算next数组,所以速度更快

6、串是一种数据对象和操作都特殊的线性表()
正确答案: A 你的答案: A (正确)

7、设串 s1=’ABCDEFG’ , s2=’PQRST’ ,函数 con(x,y) 返回 x 和 y 串的连接串, subs(s, i, j) 返回串 s 的从序号 i 开始的 j 个字符组成的子串, len(s) 返回串 s 的长度,则 con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2)) 的结果串是?(本题序号从1开始。)

正确答案: D 你的答案: B (错误)
BCDEF
BCDEFG
BCPQRST
BCDEFEF
解析:len(s2)=5 //字符长度不包括“\0”
subs(s1, 2, len(s2)) //表示的是从第二个字符开始截取len(s2)个字符 ,即为BCDEF
subs(s1, len(s2), 2) //同理可得到EF
通过 con连接起来所以结果是BCDEFEF

8、在下列关于“字符串”的陈述中,不正确的描述是()

正确答案: C 你的答案: B (错误)
字符串是一种特殊的线性表
字符串可以连续存储,也可以链式存储
字符串的长度必须大于零
‘’空串”与“空白串”不是同一个含义

解析;字符串的值中每个字符ai(0 ≤i ≤n)可以是字母、数字或其他字符组成的序列,组成线性表的每个元素就是一个单字符,所以是一种特殊的线性表,A正确。
串是特殊的线性表,故其存储结构与线性表的存储结构类似,只不过组成串的结点是单个字符而已。连续存储包括静态定长存储和动态堆分配存储;串值也可用单链表存储,简称为链串。所以实际应用中为了提高空间利用率,可使每个结点存放多个字符(这是顺序串和链串的综合 (折衷) ),称为块链结构。
空串有自己的串长度和内容,即:“长度为0,内容为空”。C错误。
空串是长度为0,内容为空;空白串是包含一个或多个空白字符‘ ’(空格键)的字符串。所以不是同一含义。D正确。

9、假设有两个串 A 和 B ,求 B 在 A 中首次出现的位置的操作,我们称为( )。

正确答案: B 你的答案: B (正确)
连接
模式匹配
求子串
求串长

10、判断下列说法是否正确:设有两个串S1和S2,求S2在SI中首次出现位置的运算称为求子串。( )

正确答案: B 你的答案: B (正确)
正确
错误
解析:应该叫做模式匹配。

11、某字符串满足:concat(head(s),head(tail(tail(s))))=“ac”,(head,tail的定义同广义表),则S=()
正确答案: C 你的答案: 空 (错误)
aabc
acba
accc
acac
解析:对于广义表的head和tail的理解了,head是第一个元素,tail是除了第一个元素的余下的。如果只有一个那么尾部是空

12、设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为()
正确答案: D 你的答案: 空 (错误)
2n-1

(n²/2)+(n/2)
(n²/2)+(n/2)-1
(n²/2)-(n/2)-1
其他情况
解析:当n为1时带进去,n为1时,只有0个子串,所谓答案为D.

13、( 1 ):字符常量 : 一个字符常量代表 ASCII 字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。例如 ’A’ ‘b’ 等都是合法的字符常量。

注意: 1 、 C 语言区分大小写:单引号中的大小写字母代表不同的字符常量,例如 ’A’ 与 ’a’ 是不同的字符常量; 2 、单引号中的空格符也是一个字符常量 3 、字符常量只能包括一个字符,所以 ’ab’ 是非法的; 4 、字符常量只能用单引号括起来,不能用双引号。比如 ”a” 不是一个字符常量而是一个字符串。

(2) :转义字符常量 :转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的 ASCII 字符,这些字符常量也必须括在一对单引号内。

字符

作用

\n

换行

\t

横向跳格

\v

竖向跳格

\f

换页

\r

回车

\b

退格( Backspace )

\

反斜杠( \ )

\’

单引号

\”

双引号

\ddd

3 位八进制数

\xhh

两位十六进制数

\0

空值 (ASCII 码值为 0)

注意:
1: 转义字符常量只代表一个字符,例如 ’\n’ 、 ’\101’;
2: 反斜线后的八进制数可以不用 0 开头;

3: 反斜线后的十六进制数只可由小写字母 x 开头,不能以大写字母 X 或 0X 开头。

14、有字符数组 a[80] 和 b[80],则正确的输出语句是(   )。

正确答案: A 你的答案: 空 (错误)
puts(a); puts(b);
printf("%s,%s", a[], b[]);
putchar(a, b);
puts(a, b);

15、由4个“1”和4个“0”组成的8位二进制补码,能表示的最小整数是()
正确答案: C
-125
-32
-121
-3

解析:负数:知道原码,反码在源码的基础上,符号位,第一个数不变,其余书取反;补码 在源码的基础上,符号位不变,其余位数取反加1,。

17、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()

正确答案: C 你的答案: 空 (错误)
数据的操作方法
数据的存取方法
数据元素之间的关系
数据元素的类型

18、已知串S=′aaab′,其Next数组值为()
正确答案: A 你的答案: 空 (错误)
0123
1123
1231
1211

19、在给定文件中查找与设定条件相符字符串的命令为?

正确答案: C 你的答案: 空 (错误)
find
gzip
grep
sort

解析:grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 find只能匹配单个字符,

20、哈弗曼编码是一种无损二进制熵编码算法,其加权路径长度最小,字符串“alibaba”的二进制哈弗曼编码有___位(bit)
正确答案: C 你的答案: 空 (错误)
11
12
13
14
解析:霍夫曼编码即可。

21、字符串www.qq.com所有非空子串(两个子串如果内容相同则只算一个)个数是()
正确答案: D 你的答案: 空 (错误)
1024
1018
55
50
解析:10个字符串,包含的子串为:10+9+8+7+6+5…1;其中,3个w,2个q,两个点号,两个ww,只能算一个,需要去除重复的5个,所以55-5为50个。

22、以下程序段的输出结果是
1
2
char s[]="\123456\123456\t";
printf("%d\n",strlen(s));

正确答案: A 你的答案: 空 (错误)
12
13
16
以上都不对

23、下面关于字符串的描述正确的是:【多选】( )
正确答案: B C 你的答案: 空 (错误)
通过String s1=new String(“abc”)和String s2=“abc”,则s1==s2为true。
“abc”+“def"则会创建三个字符串对象,第三个是"abcdef”。也就是说,在Java中对字符串的一切操作,都会产生一个新的字符串对象。
StringBuffer是线程安全的,它比String快。
StringBuilder是线程安全的,它比String快

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椒椒。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值