数据结构——串
(2013-04-21 21:40:18)| 分类: C数据结构 |
1.空串是由空白字符组成的串(
2.
3.串的堆分配存储表示是用一组地址连续的存储单元存储串值的字符序列,但它们的存储空间是在程序执行过程中动态分配得到的。(TRUE
4.串中StrInsert(&S,pos,T)基本操作是最小的操作子集(FALSE)
5.串是由有限个字符构成的连续序列,串长度为串中字符的个数,子串是主串中字符构成的有限序列。(FALSE)
(错:子串是主串中连续的字符构成的有限序列)
(题源:胡元义,C版数据结构课程辅导与习题解析,p80,4.2.1(判断题)_1)
6.如果一个串中的所有字符均在另一串中出现,那么则说明前者是后者的子串。(FALSE)
(
(题源:陈明,C版实用数据结构基础,p109,(判断题)_2)
7.串类型的最小操作子集不能利用其他串操作来实现,反之,其他串操作均可在最小操作子集上实现。(TRUE)
(题源:根据教材p72自编)
单项选择题:
8.下列那些为空串(
A)S=“
C)S=“φ”
答案:B
9.S1=“ABCD”,S2=“CD”则S2在S3中的位置是(
A)1
C)3
答案:C
10.假设S=“abcaabcaaabca”,T=“bca”,Index
A)2
答案:B
11.在串中,对于SubString(&Sub,S,pos,len)基本操作,pos和len的约束条件是(
A)0且1<=len<=StrLength(S)-pos+1
B)0且0<=len<=StrLength(S)-pos-1
C)1<</SPAN>=pos<</SPAN>=StrLength(S)
D)1<</SPAN>=pos<</SPAN>=StrLength(S)
答案:C
12.
(题源:李春葆,C版题解,p102,4.2.1(单选)_2)
A.可以顺序存储
C.可以链接存储
答:B
13.
(题源:陈明,C版实用数据结构基础,p109,习题(单选)_1)
A.少于一个字母的序列
C.不少于一个字符的序列
答:D
14.
(题源:陈明,C版实用数据结构基础,p109,习题(单选)_3)
A.串中不同字母的个数
C.串中所含的字符的个数
答:C
15.
(题源:李春葆,C版题解,p102,4.2.1(单选)_4)
A.BCDEF
答:D
16.
(题源:胡元义,C版数据结构课程辅导与习题解析,p90,4.3.1习题(4.3))
A.链式
答:C
填空题:
17.串是每个结点仅由一个字符组成的(
答:线性表
18.在串中,SubString
答:“”
19.假设S=“abcaabcaaabca”,T=“bca”,V=“x”,Replace
答:“axaxaax”
20.在串中,对于StrCompare(S,T)基本操作,若S<</SPAN>T,返回值(
答:<</SPAN>0
21.在串顺序存储结构中,实现串操作的原操作为(
答:字符序列的复制
22.
(题源:根据教材p71页自编)
答:串的数据对象约束为字符集
23.两个串相等的充分必要条件是
(题源:根据教材p70页自编)
答:两个串的串长相等
24.空串是指____________________,空格串是指_______________________。
(题源::宁正元C版题解p40(4.1(填空)_5
答:不含任何字符的串
简答题:
25.已知串s=‘(xyz)*’,t=‘(x+z)*y’,试利用串的基本运算将s串转化为t串,t串转化为s串。
(题源:宁正元,C版题解,p40,4.2_3)
答:concat
concat(replace(substring(sub,t,1,5),‘+’,‘y’),replace(substring(sub,t,6,2),‘*y’,‘*’))
26.串是字符组成的,长度为1的串和字符是否概念相同?为什么?
(题源:朱战立,C版题解,p86,4.2.1(典型题解)_2)
答:由于字符的长度固定为1,长度概念可以隐含,所以存储时只需存储该字符即可;而长度为1的串其长度概念不能隐含,必须显示地表示出来,所以存储时要同时存储该字符和值为1的长度值。
算法设计题:
27.设串s和串t采用顺序存储结构,编写函数实现串s和串t的比较操作,要求比较结果包括大于、小于和等于三种情况。
解:int
{
}
else
}
}
}
else
else
}
28.输入一个由若干单词组成的文本行,每个单词之间用若干个空格隔开,统计此文本中单词的个数。
解:int
{
}
}
29.编写算法,求串s所含不同字符的总数和每种字符的个数。
(题源:严蔚敏,C版习题集,p29,4.18)
解:typedef
char
int
}mytype;
void
//当循环停止时,再看是什么原因造成的停止。
if(T[j].ch)
//循环停止时T[j].ch不等于NULL,说明是由于T[j].ch=c所致
//若是
//故将其个数加1.
}//for
for(j=0;T[j].ch;j++)
}//StrAnalyze

加载中…