1、设有字符串变量String A =“”,B=“MULE”,C=“OLD”,D=“MY” ; 请计算下列表达式
(1) D+C+B
(2) B.substr(3,2) (从下标3开始取)
(3) A.strlength()
解析
(1) 字符串连接:MYOLDMULE
(2) 从第3位开始取2个字符,但是'MULE'第三位及之后只有一位字符,所以答案为:E
参考:
(3) A是空串,空串的长度为:0
2、S=“S1S2…Sn”是一个长为n的字符串,存放在一个数组中,编程序将S改造之后输出。
1.将S的所有第偶数个字符按照其原来的下标从大到小的次序放在S的后半部分;
2.将S的所有第奇数个字符按照其原来的下标从小到大的次序放在S的前半部分;
例如:S=‘ABCDEFGHIJKL’,则改造后的S为‘ACEGIKLJHFDB’。则 S=’algorithm’, 改造后为____________
解析
前半部分为,algorithm奇数的字符,即agrtm;后半部分为Algorithm偶数字符下标从大到小次序,即hiol,故结果是agrtmhiol。
答案: agrtmhiol
3、设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为:
A、求子串 Seeking substring
B、联接 Concatenation
C、匹配 Matching
D、求串长 Seeking length
解析
A.求子串:求子串是给定首字符在原字符串中位置和子串长度,输出子串
B.联接:是把两个字符串连接到一起输出新字符串
C.匹配:是求子串在父串中的位置
D.求串长:求字符串的长度
4、若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,
执行 concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index(S2,‘8’),length(S2)))
注意:substr(S,i,j)是对字符串S的下标为i开始取j个字符,这里的下标是从0开始的(单选)
A、ABC###G0123
B、ABCD###2345
C、ABCD###1234
D、ABC###G2345
解析
substr(S1,length(S2),length(S3))即substr(S1,4,3)),
从下标4开始取s1三个字符,即EFG,
replace(S1,substr(S1,length(S2),length(S3)),S3)即replace(S1,‘EFG',’###‘),
故结果为’ABCD###‘,
substr(S4,index(S2,‘8’),length(S2))即,substr(S4,1,4)(其中index(S2,‘8’)指的是找s2中第一个’8‘的下标),故为’1234‘。
故最后结果为ABCD###1234
答案: C
5、在字符{A, C, G, T}组成的DNA序列中,A和T、C和G是互补对。判断一个DNA序列中是否存在互补回文串(例如,ATCATGAT的补串是TAGTACTA,与原串形成互补回文串)。下面DNA序列中存在互补回文串的是:(多选)
A、CTGATCAG
B、AATTAATT
C、TGCAACGT
D、CATGGTAC
E、GTACGTAC
F、AGCTAGCT
解析
C.TGCAACGT : 互补串为ACGTTGCA,不是原串回文。
D.CATGGTAC : 互补串为GTACCATG,不是原串回文。
6
下面关于串的的叙述中,哪一个是不正确的:(单选)
A、串是字符的有限序列
B、模式匹配是串的一种重要运算
C、串是一种数据对象和操作都特殊的线性表
D、空串是由空格构成的串(空串是不含字符的串,长度为0)
7 下列程序判断字符串s 是否对称,对称则返回1,否则返回0;如 f("abba")返回1,f("abab")返回0;
答案: j i j
1
2
3
4
参考:《模式匹配KMP算法》
5
同题6
6
解析:
next 数组相当于“最大长度值” 整体向右移动一位,然后初始值赋为-1。
前缀:从首字母往后伸展
后缀:从末字母往前伸展
7(2015年计算机联考真题)
解析:
abaabaabacacaabaabcc
abaabc