1.
答案:A
这里考查转义字符,注意 \\ 表示字符 \
\123表示字符 {
\t 表示制表符
这些都是一个字符。
2.
答案C
先不看有没有重复的,共5个字母,有5×4×3×2×1 = 120种组合.
然后有两个重复的i,所以应该除以2,120 / 2 = 60,所以答案C
3.
![](https://i-blog.csdnimg.cn/blog_migrate/68c953f05ae9e08d49990b2001154b72.png)
答案:n ( n + 1 ) / 2 + 1
这么想就很简单:
长度为 1 的字符串 n 个
长度为 2 的 n-1 个
长度为 3 的 n-2 个
...
长度为 n 的 1 个
然后 n+(n-1)+(n-2)+...+1 =n(n+1)/2
长度为 1 的字符串 n 个
长度为 2 的 n-1 个
长度为 3 的 n-2 个
...
长度为 n 的 1 个
然后 n+(n-1)+(n-2)+...+1 =n(n+1)/2
另外再加上一个空字符串,所以是n ( n + 1 ) / 2 + 1
4.
![](https://i-blog.csdnimg.cn/blog_migrate/5eee888216de571e11e74fb0d049fce7.png)
字符串的两种最基本的存储方式是顺序存储方式和链接存储方式,字符串或串(String)是由零个或多个字符组成的有限序列,它是编程语言中表示文本的数据类型。通常以串的整体作为操作对象。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
5.
![](https://i-blog.csdnimg.cn/blog_migrate/453c3767f1d8d77623e8f795062502bf.png)
答案:C
概念解释:广义表L=(A,B,C),表头是A,表尾是(B,C),这是定义。
tail()表示取字符串的尾部,head()表示取字符串的头,concat()表示字符串拼接。
取两次尾部一次头部,然后合并,答案是C。
6.
![](https://i-blog.csdnimg.cn/blog_migrate/30cf476b1aa02ae40d9d3e236ffb98bc.png)
???
7.
答案:n*n/2+n/2-1
n个字符取连续子串,只考虑子串的开头和结尾两个点的选择,相当于从n+1个分割点中选两个进行分割,一共是(n+1)n/2,再减掉字符串本身,答案是n*n/2+n/2-1。
8.
答案:5次,6次
1.将每个字符现在的位置与其排序后的位置连一条单向边,最小两两交换次数为:字符总数-连接后形成的环数(包括自环),gbfcdae中b为自环,而a->g->e->d->c->f->a为另一个环,所以最小交换次数=7-2=5次;
2.最坏情况下是所有字符形成一个环,如gabcdef需要至少6次交换才能变为abcdefg。