2025年6月
选择题
第13题
C++代码 string s = “GESP考试”;,s占据的字节数是()
A. 10B. 8
C. 8或10
D. 取决于计算机采用什么编码
第14题
C++语句 string s=”Gesp Test”:执行s.rfind(“e”)以后,输出的是()
A. 1B. 2
C. 6
D. 3
第15题
字符串”Gesp考试”,字符数是()
A. 10B. 8
C. 6
D. 字符数多少取决于编码
判断题
第1题
C++中 string的==运算符比较的是字符串的内存地址,而非内容
第2题
string的substr(1,3)返回从下标1开始的3个字符的子串。
第4题
string(“hello”) == “hello”的比较结果为true。
第7题
string的substr(2,10)在字符串长度不足时会抛出异常。
2025年3月
选择题
第13题
下面程序最后能够得到HelloC++的是()
int main() {
string str = "HelloWorld";
//此处填入代码
cout << str;
return 0;
}
A. str.replace(0, 5, “C++”);B. str.replace(5, 5, “C++”);
C. str.replace(1, 5, “C++”);
D. str.replace(4, 5, “C++”);
第14题
想要得到字符串 world,下面程序横线处应该填入的是()
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "HelloC++";
//此处填入代码
return 0;
}
A. str.insert(4, “World”); cout << str.substr(4, 4);B. cout << str.substr(5, 5);
C. str.insert(“World”); cout << str.substr(5,5);
D. str.insert(5, “World”); cout << str.substr(5, 5);
编程题
第2题
词频统计
在文本处理中,统计单词出现的频率是一个常见的任务。现在,给定几个单词,你需要找出其中出现次数最多的单词。在本题中,忽略单词中字母的大小写(即Apple、apple、APPLE、aPPle等均视为同一个单词)。请你编写一个程序,输入n个单词,输出其中出现次数最多的单词。
输入格式:
第一行,一个整数n,表示单词的个数:
接下来n行,每行包含一个单词,单词由大小写英文字母组成。
输入保证,出现次数最多的单词只会有一个。
输出格式:
输出一行,包含出现次数最多的单词(输出单词为小写形式)。
2024年12月
选择题
第7题
下列代码输出的是
string s="1234@@chenadai";
string str="12345";
s.replace(1,5, str);
cout<<s<<endl;
A. 12345B. 2345@
C. 112345chenadai
D. 12345chenadai
第9题
下列程序输出的是()
string ch="hello";
if(ch[5]==NULL)
{
cout<<"right"<<endl;
}
else if (ch[5]=='\\0')
{
cout<<"wrong"<<endl;
}
else
{
cout<<"hello"<<endl;
}
A. rightB. wrong
C. hello
D. 不能正确执行
第10题
下列程序中,假设一个字符占用的内存空间是1,下列程序中,ch占用的内存空间是()
char ch[] = "hello world";
size_t ret=strlen(ch);
cout<<ret<<endl;
A. 11B. 10
C. 13
D. 12
第11题
下列程序最后输出的是()
int a=65;
cout<<tolower(a)<<endl;
A. 65B. A
C. a
D. 97
判断题
第6题
下列可执行程序段中,最后pos的值是4
string str="chenADai";
int pos = str.find('D');
--pos;
第7题
该段程序将不能正确执行
string ch="chen";
cout<<ch[4]<<endl;
第8题
将输出 97
char a='A';
a=a+32;
cout<<(int)a<<endl;
编程题
第2题
打印数字
小杨为数字0,1,2和3设计了一款表示形式,每个数字占用了5×5的网格。小杨想请你将给定的数字转换为对应的表示形式。
输入格式:
第一行包含一个正整数n。
输出格式:
输出对应的表示形式。
2024年9月
选择题
第15题
下列程序输出的是()
string str = "Hello,陈A歹";
cout << str.find("A") << '\\n';
A. 9B. 8
C. 7
D. 6
判断题
第6题
下列程序输出的是3。()
string str="陈ADai";
size_t pos = str.find('D');
cout<<pos<<endl;
编程题
第2题
回文拼接
一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如,aabaa 和ccddcc都是回文串,但abcd 不是。小杨有n个仅包含小写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度至少为2的回文串前后拼接而成。
输入格式:
第一行包含一个正整数n,代表字符串数量。
之后n行每行一个仅包含小写字母的字符串。
输出格式:
对于每个字符串输出一行,如果该字符串由两个长度至少为2的回文串前后拼接而成则输出Yes,否则输出 No。
2024年6月
选择题
第9题
如果字符串定义为char str[] = “GESP”;,则字符数组str的长度为()。
A. 0B. 4
C. 5
D. 6
第12题
已知字符’0’的ASCII编码的十进制表示为48,则执行下面C++代码后,输出是()。
string s = "0629";
int n = s.length();
int x = 0;
for(int i=0; i < n; i++)
x += s[i];
cout << x << endl;
A. 17B. 158
C. 209
D. 316
第14题
下面可以正确输出 They're planning a party for their friend's birthday.的C++语句是? ()
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;
第15题
如果执行下面C++代码后,输出的结果是“gesp ccf org cn”,则横线上应填入哪个代码?()
string str = "gesp.ccf.org.cn";
string delimiter = ".";
string result="";
string token;
size_t found = str.find(delimiter);
while (found != string::npos) {
token = str.substr(0, found);
result += token;
result += " ";
// 在此处填入代码
found = str.find(delimiter);
}
//最后一部分
result += str;
result += " ";
cout << result << endl;
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. 以上都不对
判断题
第4题
字符常量 '\\0'常用来表示字符串结束,和字符常量'0'相同。
编程题
第1题
移位
小杨学习了加密技术移位,所有大写字母都向后按照一个固定数目进行偏移。偏移过程会将字母表视作首尾相接的环,例如,当偏移量是3的时候,大写字母A会替换成D,大写字母Z会替换成C。
输入格式:
第一行包含一个正整数n。
输出格式:
输出在偏移量为n的情况下,大写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ移位替换后的结果。
2024年3月
选择题
第5题
已知字符'0'的ASCII编码的十进制表示为48,则执行下面C++代码后,输出是()
int main()
{
string s = "316";
int n = s.length();
int x = 0;
for(int i=0; i < n; i++)
x += s[i];
cout << x << endl;
return 0;
}
A. 10B. 58
C. 154
D. 316
第8题
在下列代码的横线处填写(),可以使得输出是 GESP IS INTERESTING.
int main()
{
string str="gEsP is Interesting";
int x = str.length();
for(int i=0; i < x; i++)
if ((str[i]>='a') && (str[i]<='z'))
// 在此行填写代码
cout << str << endl;
return 0;
}
A. str[i] += 'a' - 'A'B. str[i] += 20
C. str[i] += 'A' - 'a'
D. 无法实现
第9题
假设英文句子由若干词构成。下面C++代码统计输出的词数是( )。
int main()
{
string str="gEsP is Interesting !";
int x = str.length();
int nwords = 0;
for(int i=0; i < x; i++)
if (str[i]==' ') {
nwords++;
while(str[++i]==' ');
}
cout << nwords << endl;
return 0;
}
A. 1B. 2
C. 3
D. 4
第12题
定义字符数组 char str[20] = {'G', 'E', 'S', 'P'};,则str的字符串长度为()。
A. 4B. 5
C. 19
D. 20
判断题
第6题
执行下面C++代码后将输出2。()
int main()
{
string str="gEsP is Interesting";
int x = str.find("s");
cout << x << endl;
return 0;
}
编程题
第1题
字母求和
对于每一个小写英文字母,该小写字母代表了一个正整数,即该字母在字母表顺序中的位置。对于每一个大写英文字母,该大写字母代表了一个负整数,即该字母的ASCII码的相反数。对于给定的字符串,请你计算出它对应的加密前的整数是多少。
输入格式:
第一行一个正整数n,表示字符串中字母的个数。
第二行一个由大写字母和小写字母的字符串T,代表加密后得到的字符串。
输出格式:
输出一行一个整数,代表加密前的整数。
2023年12月
选择题
第3题
下面C++代码执行后不能输出"GESP"的是()
A. string str("GESP"); cout<<str<<endl;B. string str="GESP"; cout<<str<<endl;
C. string str("GESP"); cout<<str[1]<<str[2]<<str[3]<<str[4]<<endl;
D. string str{"GESP"}; cout<<str<<endl;
第5题
执行下面C++代码后,输出是( )。
string str=("chen");
int x=str.length();
int temp = 0;
for(int i=0;i<=x;i++)
{
temp++;
}
cout<<temp<<endl;
A. 4B. 2
C. 5
D. 3
第6题
执行下面C++代码后输出的是( )。
string str=("chen");
int x=str.length();
cout<<x<<endl;
A. 4B. 3
C. 2
D. 5
第7题
执行下面C++代码后输出的是( )。
string str=("chen");
cout<<str[5]<<endl;
A. 输出未知的数B. 输出'n'
C. 输出 '0'
D. 输出空格
第8题
下面C++代码执行后的输出是( )。
char ch[10]={'1'};
cout<<ch[2]<<endl;
A. 0B. 1
C. 输出空格
D. 什么也不输出
第9题
下面C++代码用于统计每种字符出现的次数,当输出为3时,横线上不能填入的代码是()。
string str="GESP is a good programming test ";
int x=0;
for(int i=0;i<str.length();i++)
{
if( ________ )
{
x++;
}
}
cout<<x<<endl;
A. str[i]=='o'B. str[i]=='a'+14
C. str[i]==115
D. str[i]==111
第13题
C++代码用于抽取字符串中的电话号码。约定:电话号码全部是数字,数字之间没有其他符号如连字符或空格等。代码中变量strSrc仅仅是示例,可以包含更多字符。下面有关代码说法,正确的说法是( )。
string strSrc="红十子:01084025890火警电话:119急救电话:120紧急求助:110";
string tel="";
for(int i=0;i<=strSrc.length();i++)
{
if(strSrc[i]>='0'&&strSrc[i]<='9')
{
tel=tel+strSrc[i];
}
else if(tel!="")
{
cout<<tel<<endl;
tel="";
}
}
A. 代码将换行输出各个含有数字的电话号码。B. 代码将不换行输出各个含有数字的电话号码,号码中间没有分隔。
C. 代码将不换行输出各个含有数字的电话号码,号码中间有分隔。
D. 不能够输出数字电话号码。
判断题
第2题
C++程序执行后,输入chen a dai 输出应该为:chen。( )
string str;
cin>>str;
cout<<str;
第4题
执行下面C++代码后将输出"China"。()
string a="china";
a.replace(0,1, "C");
cout<<a<<endl;
编程题
第2题
单位转换
小杨这周的数学作业是做单位转换。小杨的作业只涉及将更大的单位转换为更小的单位。现在,请你帮忙完成单位转换的程序。
输入格式:
输入的第一行为一个整数N,表示题目数量。接下来N行,每行一个字符串,表示转换单位的题目,格式为`x 单位1=?单位2`。
输出格式:
输出N行,依次输出所有题目的答案,输出时,只需要将输入中的?代入答案,其余部分一字不差地输出即可。
2023年9月
选择题
第3题
已知大写字符'A'的ASCII编码的十六进制表示为0x41,则字符'L'的ASCII编码的十六进制表示为()
A. 4AB. 4B
C. 4C
D. 52
编程题
第2题
进制判断
现在有N个数,请你分别判断他们是否可能是二进制、八进制、十进制、十六进制。例如,15A6F 就只可能是十六进制,而1011 则是四种进制皆有可能。
输入格式:
输入的第一行为一个十进制表示的整数N。接下来N行,每行一个字符串,表示需要判断的数。保证所有字符串均由数字和大写字母组成,且不以0开头。
输出格式:
输出N行,每行4个数,用空格隔开,分别表示给定的字符串是否可能表示一个二进制数、八进制数、十进制数、十六进制数。使用1表示可能,使用0表示不可能。
2023年6月
选择题
第5题
如果字符串定义为char str[] = "Hello";,则字符数组str的长度为( )。
A. 0B. 5
C. 6
D. 7
判断题
第5题
字符常量'\\0'常用来表示字符串结束,它和字符常量'0'是不同的。
编程题
第2题
密码合规检测
网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求:
1、只能由a-z, A-Z, 0-9及!@#$四个特殊字符构成。
2、密码最短长度:6个字符,密码最大长度:12个字符。
3、大写字母、小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。
输入格式:
输入一行不含空格的字符串。该字符串被英文逗号分隔为多段,作为多组被检测密码。
输出格式:
输出若干行,每行输出一组合规的密码。输出顺序以输入先后为序。