资源描述:
《数据结构第四章串》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章串:习题习 题 一、选择题 1.下列关于串的叙述中,正确的是( )。 A.空串是由一个空格字符组成的串 B.一个串的长度至少是1 C.一个串的字符个数即该串的长度 D.两个串SI和s2若长度相同,则这两个串相等 2.设有两个串S1和S2,求S2在S1中首次出现的位置的运算称为( )。 A.模式匹配 B.联接 C.求子串 D.求串长 3.( )为空串。 A.S=" " B.S2="" C.S=" a" D.S="
2、b " 4.sl="bccadcabcadf",s2=”abc”,则s2在sl中的位置是( )。 A.7 B.8 C.6 D.9 二、填空题 1.串具有____、____和____存储结构。 2.两个串相等的充分必要条件是____。 3.空串长度等于____;空格串长度等于____。 4.在串的链式存储结构中,每个结点域可以存放____字符,也可以存放____字符,通常将每个结点所存储的字符个数称为结点的大小。 若S1=“abcdefg”,S2=”def",
3、求下列5~8串运算的值: 5.Index(s1,“c”)________。 6. SubStr(s1,2,3)=____. 7. Concat(s1,s2)后,s1=_____。 8.Length(s1)=___。 三、简答题 1.简述空串和空格串的区别。 2.串主要有哪几种存储结构?各有什么特点? 3.设s="Iamaworker",t="good",u="teacher"。 求:Length(s), Length(t), SubStr(s,8,6), SubStr(t,
4、2,1), Index(s,”A"), Index(s,t),Replace(s,8,6,u), Concat(SubStr(s,6,2), Concat(t,SubStr(s,7,7)))。第四章串第4章 串 一、选择题(参考答案) l.C 2.A 3.B 4.D 二、填空题(参考答案) 1.顺序,链式,堆分配。 2.两个串的长度相等且对应位置的字符相同。 3.零,空格字符组成的串中所包含的空格个数。 4.一个,多个。 5.4. 6."bc"。 7.ab
5、cdefgdef。 8.8。 三、简答题 1.空串和空格串的区别如下: 空串是零个字符的串,空串的长度为零;空格串是由一个或多个空格字符组成的串,空格串长度等于其包含的空格个数。 2.串主要有那几种存储结构?各有什么特点? 参见4.2 3.已知:s=“(xyz)+*”,t=“(X+z)*y”。试利用联接、求子串和置换等基本运算,将s转换为t。 提示:s1=SubStr(s,3,1); s2=SubStr(s,6,1); s3=SubStr(s,7,1); s4=SubStr
6、(Replace(s,3,1,s2),1,5); t=Concat(Concat(s4, s3),sl) 4.串s=“abcabaa”的next函数值,如下表所示: 四、算法题 1.试编写一个算法,在串的顺序存储结构上实现求串长度的基本运算。 intlength(chars[]) { inti; i=0; while(s[i]!=' ') i++; returni; } 利用下面的函数可以对算法的功能进行测试 main() { chars[50];
7、 printf("\n请输入字符串:(串长不超过50)"); scanf("%s",s); printf("thisstringlengthis:%d",length(s)); } 2.在串的顺序存储结构上实现串的赋值的基本算法。 void Assign(string*s,stringt) //s为串指针类型的参数 { //将串变量t的值赋给串变量s inti; for(i=0;i8、en=t.curlen; } 3.试编写一个算法,在串的顺序存储结构上实现从串s中删去从第pos个字符起长度len的子串。具体算法如下 string Delete(strings,int pos,int len) { //从串s中删去从第pos个字符起长度为len的子串 intk; stringch; ch.curlen=0; if(pos<0
9、
10、pos>s.