10.25牛客刷题

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

猜你喜欢

转载自blog.csdn.net/fearless212/article/details/83387246