书面作业: 第四章 字符串

判断

1-10
如果strcmp(s1,s2)返回的结果为0,表示字符串s1和s2不相同。 F

1-4
假设模式串是abababaab,则KMP模式匹配算法中的next[j] = 0 1 1 2 3 4 5 6 2。 T

1-3
(nueDS_C++)如果一个串中的所有字符均在另一串中出现,则说前者是后者的子串。 F

1-1
char *s=“C Language”;表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。 T

1-2
字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串。 T

1-4
(neuDS_C++)空串与空格串是相同的。 F

1-5
指针变量可以存放指针(地址)、数值和字符。 F

1-8
重载运算符可以保持原运算符的优先级和结合性不变。 T

1-12
字符串常量在内存中的存放位置由系统自动安排。 T

1-13
调用strcmp函数比较字符串大小时,通常较长的字符串会较大。 F

1-14
字符串常量就是用一对双引号括起来的字符序列,它有一个结束标志'\0'。 T

1-15
对于两个字符串变量s1和s2,使用if(s1>s2)来比较大小是可以的。 F

1-16
判断字符串a和b是否相等的表达式为if (a==b)。 F

选择

2-14
令s=“abcabaa”,则它的特征向量next函数值和优化特征向量nextval函数值为(下标从0开始):( C )。

A.next={0,1,1,1,2,3,2},nextval={0,1,1,0,1,2,1}
B.next={-1,0,0,-1,0,2,1},nextval={-1,0,0,0,1,2,1}
C.next={-1,0,0,0,1,2,1},nextval={-1,0,0,-1,0,2,1}
D.next={-1,0,0,0,1,2,1},nextval={-1,0,0,0,1,2,1}

2-21
设主串 T = abaabaabcabaabc,模式串 S = abaabc,采用 KMP 算法进行模式匹配,到匹配成功时为止,在匹配过程中进行的单个字符间的比较次数是: ( B )

A.9
B.10
C.12
D.15

2-6
串“ababaabab”的nextval为( A )。

A.010104101
B.010102101
C.010100011
D.010101011

2-6
将两个字符串连接起来组成一个字符串时,选用函数( C )。

A.strlen( )
B.strcpy( )
C.strcat( )
D.strcmp( )

2-15
(neuDS)设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C )。

A.求子串
B.联接
C.模式匹配
D.求串长

2-16
(neuDS)串也是一种线性表,只不过( A )。

A.数据元素均为字符
B.数据元素是子串
C.数据元素数据类型不受限制
D.表长受到限制

2-17
KMP算法下,长为n的字符串匹配长度为m的字串的时间复杂度为 ( B )

A.O(N)
B.O(M+N)
C.O(M+Log N)
D.O(N+Log M)

2-18
下面关于串的叙述中,哪一个是不正确的 ( B )

A.串是字符的有限序列
B.空串是由空格构成的串
C.模式匹配是串的一种重要运算
D.串既可以采用顺序存储,也可以采用链式存储

2-19
若串S=“software”,其子串的数目是 ( B )

A.8
B.37
C.36
D.9

2-20
串的长度是指 ( B )

A.串中所含不同字母的个数
B.串中所含字符的个数
C.串中所含不同字符的个数
D.串中所含非空格字符的个数

2-7
下述对C语言字符数组的描述中错误的是( C )。

A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较

2-8
(neuDS)设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( C )。

A.O(m)
B.O(n)
C.O(n + m)
D.O(n×m)

2-10
下面关于字符串的程序,其输出结果是 ( B )

#include <stdio.h>

void fun(char s[], char t) {
	int i = 0;
	while (s[i]) {
		if (s[i] == t)
			s[i] = t - 'a' + 'A';
		i++;
	}
}
int main() {
	char str[100] = "abcdefg", c = 'd';
	fun(str, c);
	printf("%s\n", str);
	return 0;
}

A.abcdefg
B.abcDefg
C.ABCdEFG
D.ABCDEFG

2-11
(neuDS_C++)设有两个串p和q,求q在p中首次出现的位置的运算称作( B )。

A.连接
B.模式匹配
C.求子串
D.求串长

2-12
(neuDS_C++)串是一种特殊的线性表,其特殊性体现在( B )。

A.可以顺序存储
B.数据元素是一个字符
C.可以链接存储
D.数据元素可以是多个字符

2-13
(neuDS_C++)设串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))的结果串是( D )。

A.BCDEF
B.BCDEFG
C.BCPQRST
D.BCDEFEF

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值