第四章串 习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章串习题
一、选择题
1.串是一种特殊的线性表,其特殊性体现在()
A.可以顺序存储 B.数据元素是一个字符 C. 可以链式存储 D.数据元素可以是多个字符
2. 空串与空格字符组成的串的区别在于()。
A.没有区别
B.两串的长度不相等
C.两串的长度相等
D.两串包含的字符不相同
3.有串S1=”ABCDEFG”, S2=”PQRST”, 假设函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从数组序号为i(下标从0开始)的字符开始的j个字符组成的子串, len(s)返回串s 的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果串是( )
A.BCDEF
B.BCDEFG
C.BCPQRST
D.CDEFGFG
4.若串s=”sfotware”,其子串的个数是( )
A.8
B.37
C.36
D.9
5. 一个子串在包含它的主串中的位置是指()。
A.子串的最后那个字符在主串中的位置
B.子串的最后那个字符在主串中首次出现的位置
C.子串的第一个字符在主串中的位置
D.子串的第一个字符在主串中首次出现的位置
6. 下面的说法中,只有()是正确的。
A.字符串的长度是指串中包含的字母的个数
B.字符串的长度是指串中包含的不同字符的个数
C.若T包含在S中,则T一定是S的一个子串
D.一个字符串不能说是其自身的一个子串
7. 两个字符串相等的条件是()。
A.两串的长度相等
B.两串包含的字符相同
C.两串的长度相等,并且两串包含的字符相同
D.两串的长度相等,并且对应位置上的字符相同
8. 若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=“Beijing&Nanjing”,SUBSTR(S,4,5)=()。
A. “ijing”
B. “jing&”
C. “ingNa”
D. “ing&N”
9. 若INDEX(S,T)表示求T在S中的位置的操作,则对于S=“Beijing&Nanjing”,T=“jing”,INDEX(S,T)=()。
A.2
B.3
C.4
D.5
10. 若REPLACE(S,S1,S2)表示用字符串S2替换字符串S中的子串S1的操作,则对于S=“Beijing&Nanjing”,S1=“Beijing”,S2=“Shanghai”,REPLACE(S,S1,S2)=()。A. “Nanjing&Shanghai” B. “Nanjing&Nanjing”
C. “ShanghaiNanjing”
D. “Shanghai&Nanjing”
11. 在长度为n的字符串S的第i个位置插入另外一个字符串,i的合法值应该是()。
A.i>0
B. i≤n
C.1≤i≤n
D.1≤i≤n+1
1
12. 字符串采用结点大小为1的链表作为其存储结构,是指()。
A.链表的长度为1
B.链表中只存放1个字符
C.链表的每个链结点的数据域中不仅只存放了一个字符
D.链表的每个链结点的数据域中只存放了一个字符
二、填空题
1、若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作;REPLACE(S,S1,S2)表示用字符串S2替换字符串S中的子串S1的操作;若INDEX(S,T)表示求T在S中的位置的操作;
已知字符串:a=“an apple”,b=“other hero”,c=“her”,求:
(1)concat(substr(a,1,2),b) 结果为:_____________________
(2)replace(a,substr(a,5,1),c) 结果为:_____________________
(3)index(a,c)和index(b,c) 结果为:_____________________
2、串的两种基本的存储方式是、
3.空串是,其长度等于.
4.已知两个串:s1=”fgφcdbφcabcadr”,s2=”abc”,试求两个串的长度:length(s1)= , length(s2)= ;判断串s2是否是串s1的子串,是或否?;串s2在s1中的位置?
5.串连接(将串t连接到串s的后面)
Seqstring *ConcatString( seqstring *s , seqstring *t )
{ int i;
for(i=0;i
s->ch[ i+s->len ]=t->ch[ i ];
s->len= ;
return s;
}
6.串拷贝(将串s复制到t中)
Seqstring *CopyString(seqstring *t , seqstring *s)
{ int i;
for(i=0;i
t->ch[i]= ;
t->len=s->len;
return t;
}
7.求子串
seqstring *SubString(seqstring s , int pos , int len)
{ seqstring t;
int i;
for(i=0;i t.ch[i]= ; t.len=len; return t;} 2