专项练习-1数据结构-02字符串

1.
下面关于「串」的叙述中,哪一个是不正确的?(      )
A
串是字符的有限序列
B
空串是由空格构成的串
C
模式匹配是串的一种重要运算
D
串既可以采用顺序存储,也可以采用链式存储
正确答案:B
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
2.
观察下列代码,分析结果()

String s1 = "coder";     
String s2 = "coder";     
String s3 = "coder" + s2;     
String s4 = "coder" + "coder";     
String s5 = s1 + s2;            
System.out.println(s3 == s4); 
System.out.println(s3 == s5);    
System.out.println(s4 == "codercoder");
A
falsefalsetrueB
falsetruetrueC
falsefalsefalseD
truefalsetrue;

正确答案:A
官方解析:
s1,s2都是保存在字符串常量池中的对象;s3是新创建的对象,在堆中;s4,s5指向的也是字符串常量池中的对象;

所以有s3!=s4,s3!=s5,s4=="codercoder"。即为false;false;true。

知识点:Java、字符串
3.
设串 s1="ABCDEFG", s2="PQRST" ,函数 con(x,y) 返回 x 和 y 串的连接串, subs(s, i, j) 返回串 s 的从序号 i 开始的 j 个字符组成的子串, len(s) 返回串 s 的长度,则 con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2)) 的结果串是(本题“序号”概念从1开始)

A
BCDEF
B
BCDEFG
C
BCPQRST
D
BCDEFEF
正确答案:D
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
4.
不能将字符串 "Good!" 存放到数组 s 中的代码是(   )
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!";
正确答案:C
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串、软件工程
5.
StringBuffer类与String类相比的区别?

A
String是一个线程不安全的可修改的字符序列

B
String是一个线程不安全的不可修改的字符序列

C
StringBuffer是一个不线程安全的可修改的字符序列

D
StringBuffer是一个线程安全的可修改的字符序列
正确答案:D
官方解析:
String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间;StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。

知识点:字符串
6.
字符串 "qiniu" 根据顺序不同有多少种排列组合的方式?
A
96
B
72
C
60
D
24
正确答案:C
参考答案:答案是C        可以分成2个种情况,第一种,把两个i绑着一起,那么就是A(4,4)=24         第二种,两个i不在一起,三个字符先全排列为A(3,3)再插空,C(4,2)所以为:A(3,3 )* C(4,2)=36        所以为60
知识点:字符串
7.
String s1 =new String("nowcoder") ;字符串s1存储在内存的哪个区域()

AB
内存缓冲区

C
字符串缓冲池

D
栈
正确答案:A
官方解析:
Java中,String类型的数据存放有两种情况;

如果是String s=“nowcoder”,则是放在字符串常量池中。
如果是String ss=new String("nowcoder"),则是放在堆中。
所以正确答案为A。
知识点:字符串
8.
下面代码实现两个字符串的比较,若想要实现strcmp函数的功能,则补全下面下划线部分内容代码完成字符串比较功能()

int strCompare(char *s, char *t) {
    char *p = s, *q = t;
    while (*p == *q) {
        if (*p == '\0')
            return 0;
        p++;
        q++;
    }
    return _____;
}
A
*s - *t

B
s - t
C
*p - *q
D
p - q
正确答案:C
官方解析:
由题意可知,该函数为字符串比较函数,比较字符串s和t的大小。
而strcmp函数的功能是,若字符串s对应位上的ASCII字符值大于、等于、小于字符串t对应位上的ASCII字符值,则分别返回正整数、0、负整数。
从while里面的返回结果可知,返回0的时候是两个字符串相等的时候,因此while循环外面的返回值则是比较两个字符串不相等的时候,即比较字符串对应位字符的ASCII值。
选项A:是两个字符串的第一个字符,若字符串s和t的第一个字符相等,而后续字符没有判断,错误。
选项B和选项D:没有比较字符串对应位字符的ASCII值,错误。
选项C:指针p和q分别为字符串s和t的工作指针,当执行完while循环之后,指针p和q分别指向了字符串s和t对应不相等字符位,对指向该字符位的指针取值后作差即可比较大小,正确。
所以正确答案为C。
知识点:字符串
9.
小明比较喜欢吃水果,于是他用一个记事本记录了所有的水果名称,想吃水果的时候直接在水果记事本中找到对应的水果名称即可。有一天小明发现水果的名称可以通过内容组合成各种不同的新的字符串,现在请聪明的你帮助小明计算出下面函数输出的新字符串内容()
#include<stdio.h>
 
#include<stdlib.h>
 
#define N 1024
 
char* fruits(char s[][N],int len) {
 
        char *result = (char*)malloc(sizeof(char)*(len+1));
 
        for (int i= 0; i < len; i++) {
 
               result[i] = s[i][0];
 
        }
 
        result[len] = '\0';
 
        return result;
 
}
 
  
 
int main() {
 
        char s[][N] = {"mango" ,"apple","orange","banana","pineapple" };
 
        printf("%s\n",fruits(s,sizeof(s)/sizeof(s[0])));
 
        return 0;
 
}
A
mango

B
maobp

C
apple
D
mpaaa

正确答案:B
你的答案:A
官方解析:
从代码中可以看出,函数fruits的功能是合并每个字符串的首字符,并输出其内容;

根据给出的二维字符串数组可知,拼接各个字符串的首字符得到的结果为maobp,ACD都错误,因此答案选择B。

知识点:字符串
10.
字符串 "ababaaababaa" 的 next 数组为()
A
012345678999
B
012121111212
C
011234223456
D
012301232234
正确答案:C
官方解析:根据 KMP 算法中 next 数组的计算方法,即可得出答案。
知识点:字符串
11.
试分析下面代码运行后,内存空间的状态()

String s1="hello";
s1=s1+" world";
A
只有"hello"

B
只有"hello world"

C
有 hello 和 "world"

D"hello""hello world"

正确答案:D
官方解析:
本题考查字符串的不可变性。String的对象一旦被创建,则不能修改,是不可变的;所谓的修改其实是创建了新的对象,所指向的内存空间不变;因此本段代码在内存空间中生成了"hello""hello world"。

知识点:字符串
12.打印下列两项内容,分别要使用()转换说明。

在这里插入图片描述

A
%22s、%11lu
B
%22s、%.11lu
C
%-22s、%11lu
D
%-22s、%.11lu
正确答案:C
官方解析:
%后加(数字)修饰符:表示打印的最小字段宽度,如%5s。%后加(.数字)修饰符:对%s转换来说,表示待打印字符的最大数量,如%.5s;对%lu转换来说,表示待打印数字的可保留最大位数,如%.5lu。故C选项正确。

知识点:字符串
13.
假设现在有一个字符串,其内容为"I am \0good",那么使用strlen统计该字符串长度得到的结果为()

A
10
B
11
C
5
D
6
正确答案:C
官方解析:
字符串统计函数strlen以\0作为结束符,即当字符串遇到\0的时候会自动停止后续字符串的统计,因此strlen统计上述字符串的时候,只会统计I am (注意字符m之后有一个空格也是在统计范围内的),同时,strlen统计的是实际长度,因此统计的结果是5。答案选择C

知识点:字符串
14.
若串 S="software",则其子串的数目是()
A
8
B
37
C
36
D
9
正确答案:B
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
15.
Linux 中,在给定文件中查找与设定条件相符字符串的命令为?
A
find
B
gzip
C
grep
D
sort
正确答案:C
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串、Linux
16.
观察下面程序,程序运行输出的结果是()
char str1[10]={'n','o','w'},str2[]="coder",str3[]="abcde";
strcat(str1,str3);
strcpy(str1+strlen(str2),str2);
printf("%d\n",strlen(str1)); 


A
12

B
11

C
10

D
9
正确答案:C
官方解析:
本题考查的是函数strcat与strcpy()的用法;
strcat(str1,str2)


将两个char类型连接,即将str2链接到str1后


strcpy(str+k,str2)


将str2覆盖到k开始的字符串


所以,执行strcat(str1,str3);,str1为 "nowabcde",然后又变为“nowabcoder“,故长度为10。

知识点:字符串
17.
串是一种特殊的线性表,其特殊性体现在()

A
可以顺序存储
B
元素只能是一个字符
C
可以连续存储
D
元素可以是多个字符
正确答案:B
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
18.
对字符串 "mabnmnm" 的二进制进行哈夫曼编码有多少位()
A
12
B
13
C
14
D
15
正确答案:B
官方解析:
字符串 "mabnmnm"每个字符的频率分别为:m 3/7,a 1/7,b 1/7,n 2/7。
建哈夫曼树
19.
设栈的初始状态为空,当字符序列 "a3_" 作为栈的输入时,输出长度为 3 的且可以用作 C 语言标识符的字符串序列有()个。

A
4
B
6
C
3
D
5
正确答案:C
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串、栈、C语言
20.
下列程序的功能是将 s 中的字符串按长度由小到大排列,请为横线处选择合适的程序()
#include <stdio.h>
#include <string.h>
 
void f(char *p[], int n) {
    char *t;
    int i, j;
    for (i = 0; i < n - 1; i++)
        for (j = i + 1; j < n; j++)
            if (strlen(*(p + i)) > strlen(*(p + j))) {
                t = *(p + i);
                *(p + i) = *(p + j);
                *(p + j) = t;
            }
}
 
int main() {
    char *s[] = {"abc", "abcdef", "abbd"};
    f(s, 3);
    for (int i = 0; i < 3; i++)
        printf("%s\n", ____);
    return 0;
}

A
s+i
B
s[i]
C
*s[i]
D
&s[i]
正确答案:B
参考答案:选B。首先原题目是错误的。 题干 if(strlen(*(p+i))>strlen(*(p+i)))后一个应该是(p+j) 考察的是指针数组的遍历. A选项的数组名为指针,无法遍历数组元素。 CD是指针,元素的地址。  
知识点:字符串、排序、C语言
21.
若一个完整程序中的一部分如下图所示,则正确的打印结果是()
1
printf("This book is only $%2.2f for sale.",3.246e2);
A
This book is only $3.25 for sale.
B
This book is only $32.46 for sale.
C
This book is only $324.6 for sale.
D
This book is only $324.60 for sale.
正确答案:D
官方解析:
%后为待打印的内容,%f表示待打印的是一个浮点数。
%后加(数字)修饰符表示待打印的最小字段宽度,如%2f。
结合本题,待打印的数字超过限制的最小字段宽度且%.2f表示待打印的浮点数需保留2位有效数字。
所以正确答案为D。
知识点:字符串
22.
下面()是 "abcd321ABCD" 的子串。

A
"abcd "
B
"321ab"
C
"abc ABC"
D
"21AB"
正确答案:D
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
23.
已知模式串的 next 数组,使用 KMP 算法进行串匹配,以下空格应填入的语句是( )。
int Index_KMP(SString S, SString T, int pos) {
 
    // 利用模式串 T 的 next 函数求 T 在主串 S 中第 pos 个字符之后的位置的
    // KMP 算法。其中, T 非空, 1 ≤ pos ≤ StrLength(S) 。
 
    int next[255];
 
    int i = pos;
 
    int j = 1;
 
    get_next(T, next);
 
    while (i <= S[0] && j <= T[0]) {
 
        if (j == 0 || S[i] == T[j]) { // 继续比较后继字符
 
            ++i; ++j;
 
        } else 
            ______; // 模式串向右移动
 
    }
 
    if (j > T[0]) return i-T[0]; // 匹配成功
 
    else return 0;
 
} // Index_KMP

A
j = next[j]
B
i = next[j]
C
j = i + 1
D
i = j + 1
正确答案:A
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
24.
假设字符串char s[20] = "abc123"char* p = s。那么表达式(*p+3)的结果为()

A
1

B
d

C
a+3

D
上述结果均不正确

正确答案:B
官方解析:
由题意可知,指针p指向字符串数组s,其实意味着指针p的地址为字符串数组s的首地址,因此*p的值为字符串数组s的第一个字符的值,即a,字符a+3则为ASCII值相加,因此相加的结果为d,答案选择B

知识点:字符串
25.
判断下面代码的输出情况()

String s1=new String("nowcoder");
String s2=new String("nowcoder");
System.out.println(s1==s2);
System.out.println(s1=="nowcoder");
A
false false

B
true true

C
false true

D
true false
正确答案:A
官方解析:
1. 采用new关键字创建对象时,每次new出来的都是一个新的对象,也即是说引用s1和s2指向的是两个不同的对象,因此语句System.out.println(s1 == s2)输出:false2. new创建对象时,首先在字符串池中创建一个字符串对象,然后再在堆中创建一个"aaa"字符串对象,然后将堆中这个"aaa"字符串对象的地址返回引用,这样,s1,s2指向了堆中创建的这个"nowcoder"字符串对象,所以第二个输出语句也是输出false

知识点:字符串
26.
设串长为 n,模式串长为 m,则 KMP 算法所需的附加空间____。
A
O(m)
B
O(n)
C
O(m*n)
D
O(nlog2m)
正确答案:A
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
27.
假设字符串char a[] = "abc123"char b[] = "xyz",那么使用字符串连接函数strcat(a, b)连接字符串a和b之后得到的结果是()


A
abc123xyz

B
abc123

C
xyz

D
内存溢出

正确答案:D
官方解析:
从题意可知,字符串a和b的空间大小是实际字符串大小加1,因此当字符串a去连接字符b的时候,由于字符串a的空间不足导致字符串b连接到字符串a后面的时候出现内存溢出的错误。因此答案选择D。

知识点:字符串
28.C/C++ 中,若有定义 char a [10], *p=a; ,那么下列赋值语句正确的是( )A
a [] ="abcdefg";
B
a="abedefg";
C
*p="abcdefg";
D
p="abcdefg ";
正确答案:D
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:C++、数组、字符串、C语言
29.
以下程序段的输出结果是
#include<stdio.h>
void main() { 
    char s[] = "\\123456\123456\t";
    printf("%d\n", strlen(s));
}
A
12
B
13
C
16
D
以上都不对
正确答案:A
官方解析:正确答案:A
strlen() 函数用于获取字符串的长度(即字符串中字符的个数,不包括\0)。\\、\123、\t是转义字符。所以长度是 12。
\\ 表示单个字符\
\123 表示八进制的ASCII码值为123对应的字符
\t 表示制表符
知识点:C++、字符串、C语言
30.
已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a、b、c、d、e这5个字符组成,a出现了354次,b出现了483次,c出现了227次,d出现了96次,e出现了232次,对这5个字符使用哈夫曼(Huffman)算法进行编码,则以下哪些说法正确()
A
使用哈夫曼算法编码后,用编码值来存储这段文本将花费最少的存储空间
B
使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值是唯一确定的
C
使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值可以有多套,但每个字符编码的位(bit)数是确定的
D
b这个字符的哈夫曼编码值位数应该最短,d这个字符的哈夫曼编码值位数应该最长
正确答案:ACD
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:2014、字符串、树、C++工程师
1.
空串与由空格组成的串没有区别。(      )
AB
否
正确答案:B
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
2.
在下列关于「字符串」的陈述中,不正确的描述是()

A
字符串是一种特殊的线性表
B
字符串可以连续存储,也可以链式存储
C
字符串的长度必须大于零
D
「空串」与「空白串」不是同一个含义
正确答案:C
参考答案:选C。该题考察的是数据结构中串的基本概念。 字符串:是有零个或多个字符组成的有序序列,是计算机处理的最基本的非数值数据。               S='a1a2a3...an'  (n ≥0) 字符串的值中每个字符ai(0 ≤i ≤n)可以是字母、数字或其他字符组成的序列,组成线性表的每个元素就是一个单字符,所以是一种特殊的线性表,A正确。 串是特殊的线性表,故其存储结构与线性表的存储结构类似,只不过组成串的结点是单个字符而已。连续存储包括静态定长存储和动态堆分配存储;串值也可用单链表存储,简称为链串。所以实际应用中为了提高空间利用率,可使每个结点存放多个字符(这是顺序串和链串的综合 (折衷) ),称为块链结构。 空串有自己的串长度和内容,即:“长度为0,内容为空”。C错误。 空串是长度为0,内容为空;空白串是包含一个或多个空白字符‘ ’(空格键)的字符串。所以不是同一含义。D正确。
知识点:字符串
3.
假设二维字符数组s为char s[][10] = {"mango" ,"apple","orange","banana","pineapple" },那么sizeof(s)的结果为()

A
31
B
36
C
50
D
60
正确答案:C
官方解析:
由题意可知,二维字符数组s中列大小定义为10,即每个单词字符串分配的空间大小为10;
而二维字符数组s中行大小未定义,因此s中字符串个数为实际数组中字符串个数;
由于二维字符数组s中字符串的个数初始化为5,因此sizeof(s)的大小为5*10=50,所以ABD错误,答案选择C。
知识点:字符串
4.
判断下列说法是否正确:设有两个串 S1S2,求 S2S1 中首次出现位置的运算称为求子串。( )
A
正确
B
错误
正确答案:B
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
5.
请问在 64 位平台机器下 sizeof(string_a)sizeof(string_b) 大小分别是()
1
2
char *string_a = (char *)malloc(100*sizeof(char));
char string_b[100];
A
8 100
B
100 8
C
100 100
D
8 8
正确答案:A
参考答案:string_a是一个char型的指针,在64位系统中sizeof(char*=8 string_b是一个char型的数组,在64位系统中sizeof(char=1,共100值因此为100
知识点:C++、字符串、C语言
6.
假设函数void fun(char* s)的功能是在字符串中所有数字字符前面加一个$字符,如输入:abc1ca2,则输出abc$1ca$2,补全下面代码完成功能()
void fun(char *s) {
    int i;
    for (i = 0; s[i] != '\0'; i++) {
         if (______)
             printf("$");
         printf("%c", s[i]);
    }
}
A
s[i]>=0 && s[i]<=9
B
s[i]>='0' && s[i]<='9'
C
*s>=0 && *s<=9
D
*s>='0' && *s<='9'
正确答案:B
官方解析:
由题意可知,该函数的功能是在数字字符前面加一个$特殊字符,从给出的函数代码可以知道是需要我们给一个判断数字字符的条件。

即判断当前字符是否为数字字符,根据ASCII可知,0-9的值为48-57,因此答案AC不正确;
可以将其用引号引起来表示字符,但是每次判断的是当前字符,所以答案D不正确,D判断的是第一个字符。因此答案选择B
知识点:字符串
7.
有如下一段代码,下列选项中,选项()是该段代码的正确输出。
#include<stdio.h>
#include<string.h>
#define PRAISE "NowCoder is benefit to everyone concerned."
 
int main(){
    printf("The phrase of PRAISE has %zd letters ",strlen(PRAISE));
    printf("and occupies %zd memory cells.",sizeof(PRAISE));
    return 0;
}
A
The phrase of PRAISE has 42 letters and occupies 42 memory cells.
B
The phrase of PRAISE has 42 letters and occupies 43 memory cells.
C
The phrase of PRAISE has 43 letters and occupies 42 memory cells.
D
The phrase of PRAISE has 43 letters and occupies 43 memory cells.
正确答案:B
官方解析:
使用strlen可得到字符串中包括空格和标点符号在内的字符数。
使用sizeof运算符,得到的数会更大,因为它会把字符串末尾不可见的空字符也计算在内。
因此,对于PRAISE来说,使用strlen返回的数值为42,使用sizeof运算符返回的数值为43B选项为正确答案。
知识点:字符串
8.
若在C语言预处理器中定义字符串常量 PRAISE 为 ”NowCoder”,则 sizeof(PRAISE)strlen(PRAISE) 语句执行的结果是()

A
98
B
99
C
88
D
89
正确答案:A
官方解析:
sizeof运算符以字节为单位给出对象的大小。strlen函数给出字符串中的字符长度。
用strlen得出的是PRAISE的字符数(包括空格和标点符号),用sizeof把PRAISE末尾不可见的空字符也计算在内。
所以正确答案为A。
知识点:字符串
9.
字符串常量”A”和字符常量’A’分别由()个字符组成。
A
11
B
12
C
21
D
22
正确答案:C
官方解析:
字符串常量”A”和字符常量’A’不同。
字符常量’A’存储为int类型(不是char类型),只使用int1个字节存储’#’的编码。
字符串”A”使用2个字节来存储:一个字节存储”A”的编码,一个字节存储的'\0'编码。
所以正确答案为C。

知识点:字符串
10.
String s1 = "nowcoder";字符串s1存储在内存的哪个区域()

A
字符串常量区

BCD
临时区
正确答案:A
官方解析:
Java中,用new创建的对象在堆区;函数中的临时变量在栈区。但是,由于字符串使用过于频繁,在内存方法区中有一个字符串常量池,用来快速创建和访问字符串。

知识点:字符串
11.C/C++ 中,有字符数组 a[80] 和 b[80],则正确的输出语句是()
A
puts(a); puts(b);
B
printf("%s,%s", a[], b[]);
C
putchar(a, b);
D
puts(a, b);
正确答案:A
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:C++、字符串、软件工程、C语言
12.C 语言中有如下语句:char mark = ‘#’; 则’#’和”#”分别占()内存。
A
1字节、1字节
B
1字节、2字节
C
2字节、1字节
D
2字节、2字节
正确答案:B
官方解析:
字符常量存储为int类型(不是char类型),故’#’通常占用24字节。但实际上,只使用int1个字节存储’#’的编码。
字符串”#”使用2个字节来存储:一个字节存储’#’的编码,一个字节存储的'\0'编码。
所以正确答案为B。
知识点:字符串、C语言
13.
串中任意个字符组成的子序列称为该串的子串。
A
正确
B
错误
正确答案:B
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
14.
判断下述语句的对错:MFCCString 是类型安全的类。
AB
错
正确答案:A
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:C++、字符串
15.
互联网的快速发展虽然便利了我们的日常生活,但是它也带来了诸多问题,比如:像账号密码这样的敏感信息泄露问题,因此对在互联网上进行传输的数据进行加解密是很有必要的。下面函数的功能对字符串明文进行加密处理,那么加密后的密文结果是()
#include<stdio.h>
 
#include<string.h>
 
#define N 1024
 
char* encrypt(char* str) {
 
        int i, len = strlen(str);
 
        for (i = 0; i < len; i++) {
 
               str[i] = (str[i] + i) % 128;
 
        }
 
        return str;
 
}
int main() {
 
        char s[N] = "I am good";
 
        printf("%s\n", encrypt(s));
 
        return 0;
 
}
A
I!cp$luv1
B
I am good

C
doog ma I
D
1vul$pc!I

正确答案:A
你的答案:D
官方解析:
从题意可知看出,该函数的功能是给字符串I am good进行加密处理。
根据加密函数可知,该函数是对字符串中的每一个字符ASCII值和当前字符的索引值进行相加,然后对128进行取模后得到的ASCII表中对应的字符,因此答案B和答案C明显都不正确。
根据第一个字符的下标为0可知,第一个字符加密后的密文和明文应该是一样的,因此答案D也不正确。
所以正确答案为A。

知识点:字符串
16.
在上下文及头文件均正常的情况下,若有以下定义和语句:
char s1[] = "12345", *s2 = "1234";
 printf("%d\n", strlen(strcpy(s1, s2)));
则输出结果是
A
4
B
5
C
9
D
10
正确答案:A
参考答案:strcpy(s1,s2)这个函数是把s2字符串拷贝到s1这个字符串,同时也把s2的 '\0' 拷过去,所以覆盖了s1的所有字符(在空间足够的情况下,当然遇到s1的空间不足以存放s2,另考虑),所以strcpy执行完后是“1234strlen("1234")  就是4了
知识点:C++、字符串、C语言
17.
现在有一个单词本,记录不同的单词,记录的单词与单词之间采用空格隔开。现在需要统计单词本中单词的个数,具体代码如下,请补充下划线部分内容来完成单词统计()
int countWords(char* words) {
 
    int count = 0;
 
    char* p = words;
 
    while (______) {
 
        if (*p == ' ') 
 
            count++;
 
    }
 
    return count + 1;
 
}
A
p != '\0'

B
*p != '\0'
C
p++ != '\0'
D
*p++ != '\0'
正确答案:D
你的答案:A
官方解析:
由题意可知while循环中的空格应该为字符边界处理和字符自增处理。

while函数体中判断了字符串是否为空格,当存在空格的时候会自增单词的个数。
初始p指向words数组的第一个元素。划线内容应该满足指针p移动,同时还需要满足字符不能为'\0'。
所以正确答案为D。
知识点:字符串
18.C 语言中有如下声明:char color =B; 请问’B’和color分别占()内存。

A
1字节、1字节
B
1字节、2字节
C
2字节、1字节
D
2字节、2字节
正确答案:A
官方解析:
字符变量占用一个字节,所以color占1字节。
字符常量存储为int类型(不是char类型),也就是说‘B’通常占用24字节,但实际上只使用int1字节存储‘B’的编码。
所以正确答案为A。
知识点:字符串
19.
某程序的主函数如下图所示,该程序的打印结果是()
1
2
3
4
5
6
7
8
9
10
11
int main(void){
    char name[] = "Tom";
    char *ptr;
 
    ptr = name + strlen(name);
 
    while(--ptr >= name)
        puts(ptr);
 
    return 0;
}
A
m om Tom
B
//空行 m om Tom
C
//空行 Tom om m
D
Tom om m
正确答案:A
官方解析:
第1个知识点:对数组来说,数组名是数组首元素的地址。因此,用name可以表示字符串”Tom”首元素’T’的地址。
第2个知识点:strlen()函数给出字符串中的字符长度。因此strlen(name)的返回值为3。
第3个知识点:自减运算--i先减1再使用,自减运算符i--先使用再减1。结合以上知识点,找准指针所指位置即可得到正确答案。
所以正确答案为A
知识点:字符串
20.
已知串 S= "babab ",Next 数值序列为
A
01112
B
01233
C
01123
D
01223
正确答案:C
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
21.
字符串"www.qq.com"所有非空子串(两个子串如果内容相同则只算一个)个数是()
A
1024
B
1018
C
55
D
50
正确答案:D
参考答案:D 总的子串个数为 10+9+8+7+。。+1 = 55 其中w(两次), ww, q, ., 有重复 55 - 5 = 50
知识点:字符串
22.
字符串 "YONYOU",有几种不同的全排列方式?
A
180
B
720
C
120
D
540
正确答案:A
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串、前端工程师、2019
23.
分析下面代码,哪个输出情况是正确的?()

public static void main(String[] args) {
    String s1="6";
    Double t1=6.3;
    System.out.println(s1+t1);
}
A
"66.3"

B
12

C
报错
正确答案:A
官方解析:
本题考查字符串与数字的相加;在运算时,会自动将Number型变量转化为字符串,并添加到结果之后。

知识点:字符串
24.
打印一个字段宽度为6的左对齐字符串中的前3个字符,应使用()转换说明。
A
%3.6s
B
%6.3s
C
%-6.3s
D
%-3.6s
正确答案:C
官方解析:
%s:打印字符串时使用的转换说明。
%后加(数字)修饰符:表示打印的最小字段宽度,如%6s。
%后加(.数字)修饰符:对%s转换来说,表示待打印字符的最大数量,如%.3s。
%后加(-)修饰符:表示待打印项左对齐,即从字段的左侧开始打印该项,如%-6s。
综上,使用%-6.3s转换说明,可成功打印出一个字段宽度为6的左对齐字符串中的前3个字符。
所以正确答案为C。
知识点:字符串
25.0 - 910 个数字组成一个首尾相连的字符串,每个数字可以重复出现多次,并且字符串中任意 2 个数字都相邻出现过。此字符串最小长度是()
A
47
B
48
C
49
D
50
正确答案:D
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串、Java工程师、C++工程师、2019
26.
用二进制来编码字符串“xyzwxyxx”,需要能够根据编码解码回原来的字符串,则我们最少需要多长的二进制字符串
A
12
B
14
C
15
D
18
E
24
正确答案:B
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
27.
有如下语句序列:
char str[10];
cin>>str;
当从键盘输入 "I love this game" 时,str 中的字符串是

A
"I love this game"
B
"I love thi"
C
"I love"
D
"I"
正确答案:D
参考答案:D cin遇到空格 结束输入,所以只读取I
知识点:C++、字符串、C语言
28.
C/C++ 语言中,在一个存放字符串的数组 char  p_str[],要把字符串中第 4 个字符的值改为 'a',正确的做法是?
A
p_str[3]='a'
B
*(p_str+3)='a'
C
p_str[4]='a'
D
*(p_str+4)='a'
正确答案:AB
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串
29.
下面说法正确的有( )
A
字符串是一种对象
B
字符串是一种基本数据类型
C
字符串是一种数据类型
D
字符串是一种引用数据类型
正确答案:ACD
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串、Java工程师、C++工程师、2016
30.
哪个是不正确的字符常量?
A
”\n”
B1C
”a”
D
”\101”
正确答案:ABCD
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/44563.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在3ds max中创建可用于真人场景的巨型机器人:第 1部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 在左侧视口中&#xff0c;按键盘上的 Alt-B 键。它 打开视口配置窗口。 打开“锁定缩放/平移”和“匹配位图”选项。单击“文件”并转到参考 …

实验二十四、滞回比较器电压传输特性的测量

一、题目 滞回比较器电压传输特性的测量。 二、仿真电路 电路如图1所示。 为便于观察电压传输特性的变化&#xff0c;输入信号采用信号发生器产生的幅值为 10 V 10\,\textrm V 10V、频率为 20 Hz 20\,\textrm{Hz} 20Hz 的三角波电压。采用虚拟的运算放大电路&#xff0c;其…

从娱乐产品到效率工具,ARknovv首款AR眼镜回归“AR本质”

如果说2022年是AR的元年&#xff0c;2023年则有望成为消费级AR眼镜的新拐点。 今年AR眼镜行业发展明显加快&#xff0c;且不断有大厂入局&#xff1a;今年2月小米发布无线AR眼镜探索版&#xff1b;3月荣耀也推出了一款全新的观影眼镜&#xff1b;而苹果在6月发布的MR头显Visio…

[面试官,你坐好],今天我给你吹下卡顿监控

这是一篇面试总结稿&#xff0c;根据之前的面试过程以一种模拟面试的风格进行阐述。 面试官: 自我介绍下 诶&#xff1f;这面试官头发还比较多&#xff0c;应该不牛逼&#xff0c;心里踏实了不少。我: 面试官你好&#xff0c;我叫**&#xff0c;5年工作经验。曾经跟OPPO产品PK&…

甄云质量管理解决方案——插上数字“羽翼”,实现PPAP落地

导语 质量管理是供应链管理中非常重要的一环&#xff0c;通过制定和开展质量相关的活动&#xff0c;确保产品符合质量标准和一致性要求。质量管理水平的高低直接影响供应链的整体效率和最终效益&#xff0c;关乎企业形象和品牌声誉&#xff0c;已然是企业的生命线。 作为采购…

ES6:Object.assign方法详解

ES6&#xff1a;Object.assign方法详解 1、前言2、语法3、基本用法3.1 目标对象和源对象无重名属性3.2 目标对象和源对象有重名属性3.3 有多个源对象3.4 其他情况3.4.1 只有一个参数时&#xff0c;Object.assign会直接返回该参数3.4.2 如果该参数不是对象&#xff0c;则会先转成…

el-table 表头设置渐变色

<el-table :data"tableData" stripe><el-table-column prop"name" label"测试" align"left"></el-table-column><el-table-column prop"code" label"测试1" align"left"></…

科技云报道:边缘云赛道开启,谁能成为首个“出线”厂商?

科技云报道原创。 每一轮底层技术变革&#xff0c;都会带来全新的商业机遇。随着万物智联时代到来&#xff0c;大量数据产生的源头由传统的中心化向分散数据源变革&#xff0c;越来越多云边协同场景的出现&#xff0c;使得边缘云成为计算领域数据处理的新范式之一。 自2020年…

OR-Tools工具安装(Python-Vs code)-自用

安装&#xff08;已安装python以及Vs code&#xff09; pip安装 python -m pip install --user ortools安装完成示意如下&#xff1a; 验证安装 python -c "import ortools; print(ortools.__version__)"输出结果为版本号

网络:TCP/IP协议

1. OSI七层参考模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 2. TCP/IP模型 应用层 传输层 网络层 数据链路层 物理层 3. 各链路层对应的名称 应用层对应的是协议数据单元 传输层对应的是数据段 网络层对应的是数据包 链路层对应的是数据帧 物理层对应的是比特…

Mysql 简介

Mysql 简介 学习目的 MySQL作为目前最流行的关系型数据库管理系统之一&#xff0c;因其开源免费的特性&#xff0c;成为小型Web应用的重点关注对象。几乎所有的动态Web应用基本都在使用MySQL作为数据管理系统。学习MySQL的目的也是为了更好地理解数据库相关的SQL注入漏洞&…

uniapp实战

上面是tab栏&#xff0c;下面是swiper&#xff0c;&#xff0c;tab和swiper和 红色滑块 动态变化&#xff0c;&#xff0c; 遇到的问题&#xff1a; 往下滚动 tab栏 吸顶&#xff1a; position:sticky; z-index:99; top:0;swiper切换触发 change 事件&#xff0c; :current …

【Unity2D】相机移动以及设置相机边界

添加相机 添加相机时&#xff0c;首先需要在unity中添加 Cinemachine 包 第一次使用这个包时&#xff0c;需要在Package Manager中搜索并安装 安装Camera Mechine包后&#xff0c;添加2D Camera 设置跟随对象为Ruby &#xff08;从Hierarchy中将Ruby拖动到Follow中&#xff0…

UE5 关于MRQ渲染器参数

最佳参数&#xff1a; Spatial Sample Count&#xff1a;使用奇数样本时临时抗锯齿会收敛 Temporal Sample Count&#xff1a;超过2之后&#xff0c;采样过大会造成TAA效果不佳 TSR&#xff1a;UE5最好的抗锯齿方案

AcWing241. 楼兰图腾(树状数组)

输入样例&#xff1a; 5 1 5 3 2 4输出样例&#xff1a; 3 4解析&#xff1a; 以某个点 i 为最低点的 V 的数量&#xff0c;为 i 左侧和右侧比 a[ i ] 大的数量 a&#xff0c;b 的乘积。 但是&#xff0c;直接求这两个数的复杂度为O(n)&#xff0c;则整个复杂度为O( n^2 )&am…

js基础-练习三

九九乘法表&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthsc, initial-scale1.0"><title>九九乘法表</title><style&g…

可解释的 AI:在transformer中可视化注意力

Visualizing Attention in Transformers | Generative AI (medium.com) 一、说明 在本文中&#xff0c;我们将探讨可视化变压器架构核心区别特征的最流行的工具之一&#xff1a;注意力机制。继续阅读以了解有关BertViz的更多信息&#xff0c;以及如何将此注意力可视化工具整合到…

论文笔记--Distilling the Knowledge in a Neural Network

论文笔记--Distilling the Knowledge in a Neural Network 1. 文章简介2. 文章概括3 文章重点技术3.1 Soft Target3.2 蒸馏Distillation 4. 文章亮点5. 原文传送门 1. 文章简介 标题&#xff1a;Distilling the Knowledge in a Neural Network作者&#xff1a;Hinton, Geoffre…

iOS 单元测试之常用框架 OCMock 详解

目录 前言&#xff1a; 一、单元测试 1.1 单元测试的必要性 1.2 单元测试的目的 - 约束条件是否通过形式参数来传送。 1.3 单元测试依赖的两个主要框架 二、OCMock 的集成与使用 2.1 OCMock 的集成方式 2.2 OCMock 的使用方法 2.3 mock 使用限制 前言&#xff1a; OC…

IDEA+SpringBoot + Mybatis + Shiro+Bootstrap+Mysql资产设备管理系统

IDEASpringBoot Mybatis ShiroBootstrapMysql资产设备管理系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.用户新增3.用户设置4.岗位管理5. 审批节点6. 人员查询7. 组织设置8. 人员调整9.角色设置10.角色模块映射11.模块设置12.应用模块13.光纤交换机14.服务器15.网…