1下面关于串的叙述中,哪一个是不正确的?( ) 正确答案: B 你的答案: B (正确) A串是字符的有限序列 B空串是由空格构成的串 C模式匹配是串的一种重要运算 D串既可以采用顺序存储,也可以采用链式存储 2 KMP算法的特点是在模式匹配时指示主串的指针不会变小() 正确答案: A 你的答案: A (正确) A对 B错 解析:KMP算法最大的特点就是指示主串的指针不需要回溯,因此指针不可能变小 3 下面 是"abcd321ABCD"的子串。 正确答案: D 你的答案: D (正确) A abcd B 321ab C “abc ABC” D “21AB” 4 不能所字符串“Good!”存放到数组 s 中的代码是( )。 正确答案: C 你的答案: C (正确) A char s[8] = {‘G’,‘o’,‘o’,‘d’,’!’, ‘\0’}; B char s[8]; strcpy(s, “Good!”); C char s[8]; s = “Good!”; D char s[8] = “Good!”; 解析:s是个数组名,是常量,不可以被赋值,正确的写法应该是 char *s;s=“good!”; 定义一个字符指针,然后让这个指针指向常量字符串"good!"; char s[8]=“good!”; //"good!"有6个字符,需要注意s的空间够不够,不够的话会越界. 5 字符串通常采用的两种存储方式是? 正确答案: C 你的答案: C (正确) A散列存储和索引存储 B索引存储和链式存储 C顺序存储和链式存储 D散列存储和顺序存储 解析:顺序存储和链式存储时两种最基本的存储结构,字符串通常采用顺序存储,但是字符串较长而没有那么大的连续空间时,可以把一个字符串分成多个小串,串与串之间采用链式存储 6 下面函数的功能是 int fun(char *x) { char *y = x; while (*y++); return (y - x - 1); } 正确答案: A 你的答案: A (正确) A求字符串的长度 B比较两个字符串的大小 C将字符串x复制到字符串y D将字符串x连接到字符串y后面 解析:分析fun函数, char *y = x;//定义y指针指向x指针指向的字符串,此时x与y指针地址相同while ( *y++);//当 *y!=’\0’时,指针指向字符串的下一位,直到 *y==’\0’,由于此时还会执行++操作符,所以此时y指针指向字符串末尾结束符的下一位,即此时指针y已经移动了字符串长度+1位,所以y-x-1即为字符串的长度 7 设字符串S=‘ABCDEFG’,T=‘PQRST’,则运算CONCAT(SUBSTR(S,2,LENGTH(T)),SUBSTR(S,LENGTH(T),2) ))后的结果为() 正确答案: D 你的答案: D (正确) A ‘BCQR’ B ‘BCDEF’ C ‘BCDEFG’ D ‘BCDEFEF’ SUBSTR(S,2,LENGTH(T) ),orale中字符下标从1开始,此处为从字符串S的第2个开始,截取长度为LENGTH(T)即5的字符串 结果为:BCDEF SUBSTR(S,LENGTH(T),2),从字符串S的第LENGTH(T)即第5个开始,截取长度为2的字符串 结果为:EF CONCAT结果为:BCDEFEF 8Given a string with n characters, suppose all the characters are different from each other, how many different substrings do we have? 正确答案: C 你的答案: D (错误) An+1 Bn^2 Cn(n+1)/2+1 D2^n-1 En! 求子串,首先必须是连续的n+(n-1)+(n-2)…+1 = n(n+1)/2 与这题一样 “设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为()” 该题考虑真子串,结果要减一为:(n(n+1)/2)-1 9如下代码输出结果是什么?
#include<stdio.h> char *myString() { char buffer[6] = {0}; char *s = "Hello World!"; for (int i = 0; i < sizeof(buffer) - 1; i++) { buffer[i] = *(s + i); } return buffer; } int main(int argc, char **argv) { printf("%s\n", myString()); return 0; }正确答案: D 你的答案: 空 (错误) A Hello H Bello World! C Well D 以上全部不正确 10在下列表述中,()是错误的 正确答案: A B D 你的答案: A B D (正确) A含有一个或多个空格字符的串称为空串 B对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树 C选择排序算法是不稳定的 D平衡二叉树的左右子树的结点数之差的绝对值不超过1
