第四章串 习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;ilen;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;ilen;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

相关文档
最新文档