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

news2024/11/26 23:29:09
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
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:字符串

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在vscode中运行Hbuilder创建的项目

想必习惯使用vscode的人突然使用HBuilder很不习惯吧&#xff0c;但是HBuilder创建的项目本身没有调试功能。当你有一个app项目但又不想使用HBuilder编写&#xff0c;需要浏览器调试的时候&#xff0c;你这时就需要一个插件了&#xff1a;uni run 插件 基于HBuilderX的采用unia…

【数据标注】yolo系列中 labelme 标记的 json 文件转 txt 文件保存

在深度学习领域中&#xff0c;数据的标注方式和对应的数据格式确实五花八门。下面是一些常见的标注方式和对应的数据格式&#xff1a; 目标检测标注方式&#xff1a;对于图像目标检测任务&#xff0c;常见的标注方式包括Bounding Box、Mask、Keypoint等。其中&#xff0c; Boun…

Postman怎么做接口测试-以简单的登录接口为例

我们就以登录某测试系统为例子&#xff0c;实现在Postman上做接口测试 一、首先打开系统首页首页&#xff0c;做一个登录操作&#xff08;目的是获取接口url及参数&#xff09;&#xff1a;一般在公司做接口测试的时候页面还没有出来&#xff0c;我们需要根据接口文档进行接口…

java学习(二):反射

系列文章目录 https://editor.csdn.net/md/?articleId131757340 文章目录 系列文章目录参考【1】注解1. 什么是注解2. 内置注解3. 元注解4.自定义注解 【2】反射--基本概念一、反射的基本概念1. 为什么要用反射&#xff1f;2. 什么是反射&#xff1f;3. 用和不用反射的区别&a…

spring复习:(49)@Configuration配置类上的注解是在哪里被解析的?

主类示例源代码如下&#xff1a; 配置类源码如下&#xff1a; 进入context.register方法&#xff1a; 进入this.reader.register方法&#xff1a; 进入registerBean方法&#xff1a; 进入doRegisterBean方法&#xff1a; 进入AnnotatedGenericBeanDefinition构造方法&am…

计算机科学cs/电子信息ei面试准备——python复习|理解题|简答题

目录 1 请简要概述python技术的主要应用场景? 2 python的基本数据类型是那几种? 3 python数组和列表有什么区别? 4 Python中的函数是什么&#xff1f; 5 请写出删除列表中的元素有几种方式? 6 描述python函数中递归的理解? 7 请介绍join()和split()的区别? 8 介绍…

C++ - 初识vector类 迭代器失效

之前对C当中的string类做了了解和模拟实现&#xff1a; C-string类的模拟实现_chihiro1122的博客-CSDN博客 C string类-2_chihiro1122的博客-CSDN博客 C string类 迭代器 范围for_string类型迭代器_chihiro1122的博客-CSDN博客 vector类使用模版来实现了&#xff0c;我们可…

如何在APP开发中实现无缝用户体验?

我们在日常生活中经常会看到这样一种情况&#xff1a;当我们打开 APP时&#xff0c;有时会出现卡顿、死机的情况&#xff0c;这就是所谓的“死机”现象。在开发 APP时&#xff0c;我们需要考虑用户体验&#xff0c;在用户操作 APP时能够感受到顺畅的使用体验&#xff0c;让用户…

设计模式—1、23种设计模式详解

目录 一、设计模式概述 二、设计模式的分类&#xff08;总共有 25 种设计模式&#xff09; 1、创建型模式&#xff08;5种&#xff09; 2、结构型模式&#xff08;8种&#xff09; 3、行为型模式&#xff08;12种&#xff09; 三、设计模式的优点和缺点 1、设计模式的优点…

Android OpenGL 教程——Native 工程初始化

NativeActivity NDK 的适用场景官方给出三点&#xff1a; 平台间的 App 移植复用现有库对软件性能要求较高的场合比如游戏等 有两种方式可以实现 native activity。 native_activity.handroid_native_app_glue 由于第二种方法启用另一个线程处理回调和输入事件&#xff0c…

用 Generative AI 构建企业专属的用户助手机器人

原文来源&#xff1a; https://tidb.net/blog/a9cdb8ec 关于作者&#xff1a;李粒&#xff0c;PingCAP PM TL;DR 本文介绍了如何用 Generative AI 构建一个使用企业专属知识库的用户助手机器人。除了使用业界常用的基于知识库的回答方法外&#xff0c;还尝试使用模型在 fe…

QML使用滚轮/触控板实现水平滚动/垂直滚动/缩放功能

目录 引言核心代码完整代码 引言 因为项目需要需要进行组件移动、缩放的开发&#xff0c;具体要求如下&#xff1a; 鼠标滚轮&#xff0c;实现垂直移动Ctrl鼠标滚轮&#xff0c;实现缩放Alt鼠标滚轮&#xff0c;实现水平移动触控板移动&#xff0c;实现垂直、水平移动触控板双…

C#事件学习笔记

一.事件概述&#xff1a; 事件的作用是降低模块间的耦合度&#xff0c;本质是观察者模式的应用&#xff0c;通过增加监听器&#xff0c;使事件响应函数的调用分散在各个对象自身内部&#xff0c;当增加和减少一个事件响应函数时&#xff0c;只需要增加或删除相应对象内的代码&…

MyBatis-Plus 的基础增删改查

目录 1. 简介 2. 准备工作 3. MyBatis-Plus 实现增删改查 1. MyBatis-Plus 简介 MyBatis-Plus&#xff08;简称 MP&#xff09;是 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生. 2. 准备工作 2.1 准备数据表 D…

ArgoCD结合Gitlab交付项目到kubernetes集群

ArgoCD结合Gitlab交付项目到kubernetes集群 作者:行癫(盗版必究) 一:环境准备 1.kubernetes集群环境 2.HA_Argocd环境 3.Gitlab集群环境 二:项目配置 1.配置Gitlab 创建仓库,并写入yaml文件,利用yaml构建application;此案例结合了NFS实现持久化存储

【ARM Coresight 系列文章 10.2 - ARM Coresight STM Trace packets】

文章目录 Trace protocolpacket的种类Error packetsVERSION Packets同步 packet 上篇文章&#xff1a;ARM Coresight 系列文章 10.1 - ARM Coresight STM 介绍及使用 Trace protocol STM 产生的trace的是遵守 MIPI System Trace Protocol version 2 (STPv2) 规范的&#xff0c…

Windows环境下Elasticsearch相关软件安装

Windows环境下Elasticsearch相关软件安装 本文将介绍在 windows 环境下安装 Elasticsearch 相关的软件。 1、安装Elasticsearch 1.1 安装jdk ElasticSearch是基于lucence开发的&#xff0c;也就是运行需要java jdk支持&#xff0c;所以要先安装JAVA环境。 由于ElasticSear…

【C++】深入剖析list

本期我们来深入list的实现原理&#xff1a; 目录 一、STL中的list 二、list的模拟实现 2.1 搭建list的框架 2.2 list迭代器的实现 2.2.1 普通迭代器的实现 2.2.2 const类型迭代器的实现 2.2.3 迭代器中->运算符重载实现 2.3 其他功能函数的实现 2.3.1 insert 2.…

爬虫小白-如何辨别是否有cookie反爬案例

目录 一、Cookie介绍二、cookie生成来源区分查找三、如何判断是否有cookie反爬四、来自服务器生成的cookie反爬解决方法五、来自js生成的cookie反爬解决方法 一、Cookie介绍 先推荐该篇文章简单了解Cookie、Session、Token、JWT1、cookie的类型&#xff1a;会话cookie和持久co…

【LeetCode热题100】打卡第42天:滑动窗口最大值搜索二维矩阵II

文章目录 【LeetCode热题100】打卡第42天&#xff1a;滑动窗口最大值&搜索二维矩阵II⛅前言 滑动窗口最大值&#x1f512;题目&#x1f511;题解 搜索二维矩阵II&#x1f512;题目&#x1f511;题解 【LeetCode热题100】打卡第42天&#xff1a;滑动窗口最大值&搜索二维…