林老师 · 客观题题库 · CSP-J 卷
CSP-J 卷
高频 · 字符数组/string/ASCII 运算/字符型 · 共 36 题 · 由简到难 · 建议 54 分钟
真题 复刻
试卷编号OBJ-701232
题目总数36 题 · 72 分
试卷类型客观题
考生须知:
① 本卷为客观题单卷,合计 36 题 · 72 分 ,全部为客观题;
② 试卷右上角设有 「提交答卷」 与 「重置考试」 按钮,提交后系统自动判分并显示答题正确情况,请确认全部作答后再行提交;
③ 试卷不显示答案,提交后方可查看每题作答与正确答案的对照;
④ 答卷进度会保留在本地缓存中,刷新或再次打开仍可继续作答;
⑤ 本卷仅供学生练习使用;请勿用于其他用途;题面有问题请联系:i64coder@163.com。
壹
客 观 题
36 QUESTIONS · 2 POINTS EACH
第 1 题
单选
☆
⧉
未作答
在 C/C++ 中,(char)('a'+13) 与下面的哪一个值相等?( )
(2 分)
CSP-J 2024 · 单选 第8题 | 知识点 字符型、字符型、字符型
第 2 题
判断
☆
⧉
未作答
(2 分)
GESP 一级 2023-03 · 判断 第5题 | 知识点 字符型、常量与变量
第 3 题
单选
☆
⧉
未作答
(2 分)
A double
B float
C char
D int
GESP 一级 2023-06 · 单选 第3题 | 知识点 字符型、常量与变量
第 4 题
单选
☆
⧉
未作答
定义变量 char c,下面对 c 赋值的语句,不符合语法的是( )。
(2 分)
A c = (char)66;
B c = (char)(66);
C c = char(66);
D c = char 66;
GESP 一级 2023-12 · 单选 第12题 | 知识点 强制类型转换、字符型
第 5 题
单选
☆
⧉
未作答
如果 a 和 b 都是 char 类型的变量,下列哪个语句不符合 C++ 语法?
(2 分)
A
b = a + 1;
B
b = a + '1';
C
b = 'a'++;
D
b = a++;
GESP 二级 2023-03 · 单选 第7题 | 知识点 字符型、自增自减
第 6 题
单选
☆
⧉
未作答
如果 a 为 char 类型的变量,且 a 的值为 '2',则下列哪条语句执行后,a 的值不会变为 '3'?
(2 分)
A
a = a + 1;
B
a + 1;
C
a = 1 + a;
D
++a;
GESP 二级 2023-03 · 单选 第9题 | 知识点 字符型、算术运算、自增自减
第 7 题
单选
☆
⧉
未作答
如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a 是小写字母”?
(2 分)
A
a <= a <= z
B
a - 'a' <= 'z' - 'a'
C
'a' <= a <= 'z'
D
a >= 'a' && a <= 'z'
GESP 二级 2023-03 · 单选 第12题 | 知识点 关系运算、逻辑运算、字符型
第 8 题
判断
☆
⧉
未作答
如果 a 是 int 类型的变量,而且值为 1,则表达式 'a' 的值为 '1'。
(2 分)
GESP 二级 2023-03 · 判断 第5题 | 知识点 字符型、ASCII码
第 9 题
判断
☆
⧉
未作答
如果 a 为 char 类型的变量,且取值为小写字母,则执行语句 a = a - 'a' + 'A'; 后,a 的值会变为与原值对应的大写字母。
(2 分)
GESP 二级 2023-03 · 判断 第9题 | 知识点 字符型、字符ASCII运算、算术运算
第 10 题
单选
☆
⧉
未作答
如果字符串定义为 char str[] = "Hello";,则字符数组 str 的长度为( )。
(2 分)
GESP 三级 2023-06 · 单选 第5题 | 知识点 字符数组、字符型
第 11 题
判断
☆
⧉
未作答
字符常量 '\0' 常用来表示字符串结束,它和字符常量 '0' 是不同的。
(2 分)
GESP 三级 2023-06 · 判断 第5题 | 知识点 字符数组、字符型
第 12 题
判断
☆
⧉
未作答
在 C++语言中,可以使用字符(如 '0')作为数组下标。
(2 分)
GESP 三级 2023-06 · 判断 第6题 | 知识点 一维数组、字符型
第 13 题
单选
☆
⧉
未作答
如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a 是大写字母”?( )
(2 分)
A a - 'A' <= 26
B 'A' <= a <= 'Z'
C 'A' <= 'a' <= 'Z'
D ('A' <= a) && (a <= 'Z')
GESP 三级 2023-09 · 单选 第12题 | 知识点 字符ASCII运算、关系运算、逻辑运算
第 14 题
判断
☆
⧉
未作答
字符常量 '3' 的值和 int 类型常量 3 的值是相同的,只是占用的字节数不同。
(2 分)
GESP 三级 2023-09 · 判断 第3题 | 知识点 字符型、ASCII码
第 15 题
单选
☆
⧉
未作答
下面 C++ 数组的定义中,会丢失数据的是( )。
(2 分)
A char dict_key[] = {'p','t','o'};
B int dict_value[] = {33,22,11};
C char dict_name[]={'chen','wang','zhou'};
D float dict_value[]={3,2,1};
GESP 三级 2023-12 · 单选 第1题 | 知识点 字符数组、一维数组
第 16 题
单选
☆
⧉
未作答
下面 C++ 代码执行后不能输出 "GESP" 的是( )。
(2 分)
A
01 string str("GESP" ); cout<<str<<endl;
B
01 string str="GESP" ; cout<<str<<endl;
C
01 string str("GESP" ); cout<<str[1]<<str[2]<<str[3]<<str[4]<<endl;
D
01 string str{"GESP" }; cout<<str<<endl;
GESP 三级 2023-12 · 单选 第3题 | 知识点 string类、程序阅读与输出推断
第 17 题
单选
☆
⧉
未作答
执行下面 C++ 代码后,输出是( )。
01 string str=("chen" );
02 int x=str.length();
03 int temp=0;
04 for (int i=0;i<=x;i++)
05 {
06 temp++;
07 }
08 cout<<temp<<endl;
(2 分)
GESP 三级 2023-12 · 单选 第5题 | 知识点 string类、for循环、程序阅读与输出推断
第 18 题
单选
☆
⧉
未作答
执行下面 C++ 代码后输出的是( )。
01 string str=("chen" );
02 int x=str.length();
03 cout<<x<<endl;
(2 分)
GESP 三级 2023-12 · 单选 第6题 | 知识点 string类、程序阅读与输出推断
第 19 题
单选
☆
⧉
未作答
下面 C++ 代码用于统计每种字符出现的次数,当输出为 3 时,横线上不能填入的代码是( )。
01 string str="GESP is a good programming test!" ;
02 int x=0;
03 for (int i=0;i<str.length();i++)
04 {
05 if (____________)
06 {
07 x++;
08 }
09 }
10 cout<<x<<endl;
(2 分)
A str[i]=='o'
B str[i]=='a'+14
C str[i]==115
D str[i]==111
GESP 三级 2023-12 · 单选 第9题 | 知识点 字符ASCII运算、string类、程序补全
第 20 题
单选
☆
⧉
未作答
C++ 代码用于抽取字符串中的电话号码。约定:电话号码全部是数字,数字之间没有其他符号如连字符或空格等。代码中变量 strSrc 仅仅是示例,可以包含更多字符。下面有关代码说法,正确的说法是( )。
01 string strSrc="红十字: 01084025890火警电话: 119急救电话: 120紧急求助: 110" ;
02 string tel="" ;
03 for (int i=0;i<=strSrc.length();i++)
04 {
05 if (strSrc[i]>='0' &&strSrc[i]<='9' )
06 {
07 tel=tel+strSrc[i];
08 }
09 else if (tel!="" )
10 {
11 cout<<tel<<endl;
12 tel="" ;
13 }
14 }
(2 分)
A 代码将换行输出各个含有数字的电话号码。
B 代码将不换行输出各个含有数字的电话号码,号码中间没有分隔。
C 代码将不换行输出各个含有数字的电话号码,号码中间有分隔。
D 不能够输出数字电话号码。
GESP 三级 2023-12 · 单选 第13题 | 知识点 string类、字符ASCII运算、程序阅读与输出推断
第 21 题
判断
☆
⧉
未作答
执行下面 C++ 代码后将输出 "China"。
01 string a="china" ;
02 a.replace(0,1,"C" );
03 cout<<a<<endl;
(2 分)
GESP 三级 2023-12 · 判断 第4题 | 知识点 string类、程序阅读与输出推断
第 22 题
单选
☆
⧉
未作答
已知字符 '0' 的 ASCII 编码的十进制表示为 48 48 48 ,则执行下面 C++ 代码后,输出是( )。
01 int main()
02 {
03 string s="316" ;
04 int n=s.length();
05 int x=0;
06 for (int i = 0; i < n; i++)
07 x += s[i];
08 cout << x << endl;
09 cout << endl;
10 return 0;
11 }
(2 分)
A 10 10 10
B 58 58 58
C 154 154 154
D 316 316 316
GESP 三级 2024-03 · 单选 第5题 | 知识点 字符ASCII运算、ASCII码、程序阅读与输出推断
第 23 题
单选
☆
⧉
未作答
在下列代码的横线处填写( ),可以使得输出是 GESP IS INTERESTING。
01 int main()
02 {
03 string str="gEsP is Interesting" ;
04 int x = str.length();
05 for (int i = 0; i < x; i++)
06 if ((str[i]>='a' ) && (str[i]<='z' ))
07 ____________;
08 cout << str << endl;
09 cout << endl;
10 return 0;
11 }
(2 分)
A str[i]+='a'-'A'
B str[i]+=20
C str[i]+='A'-'a'
D 无法实现
GESP 三级 2024-03 · 单选 第8题 | 知识点 字符ASCII运算、程序补全
第 24 题
单选
☆
⧉
未作答
假设英文句子由若干词构成。下面 C++ 代码统计输出的词数是( )。
01 int main()
02 {
03 string str="gEsP is Interesting !" ;
04 int x = str.length();
05 int nwords = 0;
06
07 for (int i = 0; i < x; i++)
08 if (str[i]==' ' ){
09 nwords++;
10 while (str[++i]==' ' ) ;
11 }
12 cout << nwords << endl;
13
14 cout << endl;
15 return 0;
16 }
(2 分)
GESP 三级 2024-03 · 单选 第9题 | 知识点 string类、for循环、程序阅读与输出推断
第 25 题
单选
☆
⧉
未作答
C++ 的字符变量的码值是整数,下面字面量形式的字符码值最大的是( )。
(2 分)
GESP 三级 2024-03 · 单选 第10题 | 知识点 进制转换、字符型
第 26 题
判断
☆
⧉
未作答
执行下面 C++ 代码后将输出 2 2 2 。
01 int main()
02 {
03 string str="gEsP is Interesting" ;
04 int x = str.find("s" );
05 cout << x << endl;
06 cout << endl;
07 return 0;
08 }
(2 分)
GESP 三级 2024-03 · 判断 第6题 | 知识点 string类、程序阅读与输出推断
第 27 题
判断
☆
⧉
未作答
在 C++ 语言中,字符数组被定义时,它的大小可以调整。
(2 分)
GESP 三级 2024-03 · 判断 第7题 | 知识点 字符数组、一维数组
第 28 题
单选
☆
⧉
未作答
如果字符串定义为 char str[] = "GESP";,则字符数组 str 的长度为( )。
(2 分)
GESP 三级 2024-06 · 单选 第9题 | 知识点 字符数组、字符型
第 29 题
单选
☆
⧉
未作答
已知字符 '0' 的 ASCII 编码的十进制表示为 48 48 48 ,则执行下面 C++ 代码后,输出是( )。
01 #include <iostream>
02 using namespace std;
03 int main() {
04 string s = "0629" ;
05 int n = s.length();
06 int x = 0;
07 for (int i = 0; i < n; i++)
08 x += s[i];
09 cout << x << endl;
10 return 0;
11 }
(2 分)
A 17 17 17
B 158 158 158
C 209 209 209
D 316 316 316
GESP 三级 2024-06 · 单选 第12题 | 知识点 字符ASCII运算、ASCII码、程序阅读与输出推断
第 30 题
单选
☆
⧉
未作答
下面可以正确输出 They're planning a party for their friend's birthday. 的 C++ 语句是?( )
(2 分)
A cout << 'They\'re planning a party for their friend'\s birthday." << endl;
B cout << "They\'re planning a party for their friend's birthday.'<< endl;
C cout << 'They're planning a party for their friend's birthday.'<< endl;
D cout << "They\'re planning a party for their friend\'s birthday." << endl;
GESP 三级 2024-06 · 单选 第14题 | 知识点 字符型、cin与cout
第 31 题
单选
☆
⧉
未作答
如果执行下面 C++ 代码后,输出的结果是"gesp ccf org cn",则横线上应填入哪个代码?( )
01 #include <iostream>
02 using namespace std;
03 int main() {
04 string str = "gesp.ccf.org.cn" ;
05 string delimiter = "." ;
06 string result="" ;
07
08 string token;
09 size_t found = str.find(delimiter);
10 while (found != string::npos) {
11 token = str.substr(0, found);
12 result += token;
13 result += " " ;
14 ____________ // 在此处填入代码
15 found = str.find(delimiter);
16 }
17
18 result += str;
19 result += " " ;
20
21 //最后一部分
22
23 cout << result << endl;
24 return 0;
25 }
(2 分)
A str = str.substr(found + delimiter.length(), str.length() - 1);
B str = str.substr(found, str.length());
C str = str.substr(found, str.length() -1);
D 以上都不对
GESP 三级 2024-06 · 单选 第15题 | 知识点 string类、程序补全
第 32 题
判断
☆
⧉
未作答
字符常量 '\0' 常用来表示字符串结束,和字符常量 '0' 相同。
(2 分)
GESP 三级 2024-06 · 判断 第4题 | 知识点 字符数组、字符型
第 33 题
单选
☆
⧉
未作答
下列程序输出的是( )。
01 string str = "Hello,CHAD" ;
02 cout << str.find("A" ) << '\n' ;
(2 分)
GESP 三级 2024-09 · 单选 第15题 | 知识点 string类、程序阅读与输出推断
第 34 题
判断
☆
⧉
未作答
下列程序输出的是 A。
01 char x=65;
02 x++;
03 cout<<x++<<endl;
(2 分)
GESP 三级 2024-09 · 判断 第5题 | 知识点 自增自减、字符型、程序阅读与输出推断
第 35 题
判断
☆
⧉
未作答
下列程序输出的是 3 3 3 。
01 string str="CHADai" ;
02 size_t pos = str.find('D' );
03 cout<<pos<<endl;
(2 分)
GESP 三级 2024-09 · 判断 第6题 | 知识点 string类、程序阅读与输出推断
第 36 题
单选
☆
⧉
未作答
在如下的 C++ 代码中实现了对字符串中出现的 26 26 26 个字母的个数统计,横线处应填入是( )。
01 string str="HELLO CHEN A DAI" ;
02 int strlen=str.length();
03 char alpha[26]={65};
04 int cnt[26]={0};
05 for (int i=1;i<26;i++)
06 {
07 ____________;
08 }
09 for (int i=0;i<26;i++)
10 {
11 cout<<alpha[i]<<" " ;
12 }
13 cout<<endl;
14 for (int i=0;i<26;i++)
15 {
16 for (int j=0;j<strlen;j++)
17 {
18 if (alpha[i]==str[j])
19 {
20 cnt[i]++;
21 }
22 }
23 }
24 for (int i=0;i<26;i++)
25 {
26 cout<<cnt[i]<<" " ;
27 }
(2 分)
A alpha[i]=alpha[i-1]+1;
B alpha[i]=alpha[i]+1;
C alpha[i+1]=alpha[i]+1;
D alpha[i-1]=alpha[i]+1;
GESP 四级 2023-12 · 单选 第9题 | 知识点 程序补全、字符ASCII运算、string类