蓝桥等考C++组别
十七
级
第一部分:选择题
1、
C++ L17 (
15
分)
关于C++的类,以下说法正确的是( )。
A
.
默认情况下,所有的成员在类的外部都是可以访问的
B.
一个类
最多只能定义一个构造函数
C.
析构函数会在删除所创建的对象时自动执行
D.
只能在类定义的内部定义类的成员函数
正确答案:C
2
、C++ L17 (
15
分)
执行以下代码之后,以下说法不正确的是( )。
string s1 = "abc";
string s2("123");
string s3 = s1;
s1 += s2;
bool b4 = s1 == s3;
string s5 = s3 + s2;
bool b6 = s5 >= s1;
A
.
b
4
的值是false
B.
s
1
的值是“1
23
abc”
C.
s
5
的值是
“abc
123
”
D.
b
6
的值是
true
正确答案:B
3
、C++ L17 (20分)(修改内容)
执行以下代码,输出结果是( )。
string s = "Hello,C++!";
string f = ",!";
int p1 = s.find_first_of(f, 6);
cout << p1;
A
. 5
B. 6
C. 9
D. 10
正确答案:
C
第二部分:编程题
4、
C++ L17
后缀是“er”的单词数量(
2
0分)
题目名称:后缀是“er”的单词数量
题目描述:
给定若干个英文单词,单词之间使用一个空格隔开,把其中后缀为“er”的单词的数量统计出来。
例如:输入为
referer kick in store owner
其中,referer
和
owner这2个单词
的后缀是
“er”,所以输出为2。
输入:
仅1行,包含若干个英文单词(全部是小写字母,单词长度大于2,小于1
1
),单词之间使用一个空格隔开,长度不超过
250
。
输出:
一个整数,为后缀是“er”的单词的数量。
输入样例:
referer kick in store owner
输出样例:
2
参考程序:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
int cnt = 0;
while(cin >> s)
{
int len = s.size();
if (s[len - 2] == 'e' && s[len - 1] == 'r')
cnt++;
}
cout << cnt;
return 0;
}
测试数据:
1.in
referer kick in store owner
1.out
2
2.in
panhfjw hmp faster cruqz mqr washer teenager riwj
2.out
3
余下见附件目录下
testcase
.txt
5、
C++ L17
单词替换(
3
0分)
题目名称:
单词替换
题目描述:
输入一个字符串,该字符串由若干个单词组成,所有单词区分大小写。现需要将其中的某个单词全部替换成另一个单词,并输出替换之后的字符串。
输入:
输入包括3行,
第1行是包含多个单词的字符串(字符串长度<=
10
00),单词之间用一个空格隔开;
第2行是要被替换的单词(长度<=
30
,在第1行的字符串中可能有多处出现这个单词);
第3行是替换后的单词(长度<=
30
)。
输入的三行字符串的开头和结尾都没有空格,单词只包含英文字母。
输出:
一行字符串,表示按题目要求替换后的字符串。
如果没有找到要被替换的单词,按原样输出。
输入样例:
I
love Python
Python
CPP
输出样例:
I love
CPP
参考程序:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s, w1, w2;
getline(cin, s);
cin >> w1 >> w2;
s = " " + s + " ";
w1 = " " + w1 + " ";
w2 = " " + w2 + " ";
int pos = 0;
while(1)
{
pos = s.find(w1);
if(pos == string::npos)
{
break;
}
s.replace(pos, w1.size(), w2);
}
cout << s.substr(1);
return 0;
}
测试数据:
1.in
I love Python
Python
CPP
1.out
I love CPP
2.in
fb hejgekie cikb kabikbefia eiadadka hbakjfchjf ffiacgjca aaeifhefc
ffiacgjca
smddvifm
2.out
fb hejgekie cikb kabikbefia eiadadka hbakjfchjf smddvifm aaeifhefc
余下略
蓝桥杯青少组C++组别17级编程练习真题(第2套,共6套)