蓝桥等考C++组别
十七
级
第一部分:选择题
1、
C++ L17 (
15
分)
关于类的析构函数,以下说法正确的是( )。
A
.
任意一个成员函数名前面加上
“~”就构成了一个析构函数
B.
析构函数返回类型为
int
C. 一个类中可以有多个
析构函数
D.
析构函数在每次删除
所创建的
对象时自动执行
正确答案:
D
2
、C++ L17 (
15
分)
执行以下代码,输入“
we are the world
”,输出的是( )。
string s1;
while (cin >> s1)
{
for (int i = 0; i < s1.size(); i++)
{
s1[0] = toupper(s1[0]);
}
cout << s1 << ' ';
}
A
.
We
B.
WE ARE THE WORLD
C
. We Are The World
D. WE
正确答案:
C
3
、C++ L17 (20分)
执行以下代码,输出结果是( )。
string s = "we build the world";
s.replace(3, 6, "create");
cout << s;
A
. we created the world
B. we createthe world
C. we create the world
D. wecreate the world
正确答案:B
第二部分:编程题
4、
C++ L17
最后一个单词的长度(
2
0分)
题目名称:
最后一个单词的长度
题目描述:
给出一个包含若干个单词的字符串,
请
编写程序计算出最后一个单词的长度。
例如:
输入
的
字符串为
:
bike
mask
friend chick menu
其中,最后一个单词menu的长度为4,故输出
4
。
输入:
仅1行,包含若干个单词,单词之间
以
一个空格隔开,总长度不超过
500
。
题目数据保证单词全部由英文字母组成。
输出:
一个整数,表示输入字符串中最后一个单词的长度。
输入样例:
bike
mask
friend chick menu
输出样例:
4
参考程序:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
int len = 0;
while(cin >> s)
{
len = s.size();
}
cout << len;
return 0;
}
测试数据:
1.in
bike mask friend chick menu
1.out
4
2.in
FuezifzTpEQThiIYhrcH GEYwaElwM Fikjao ZiWQhExmoeTXTgcNL LPqnhSvybF
2.out
10
余下略
5、
C++ L17
加法计算(
3
0分)
题目名称:
加法计算
题目描述:
小蓝拿到一本练习册,上面有很多加法计算题,每道题都是这样的形式:
a:2,b:3,a+b=
其中a代表2,b代表3,题目要求计算a+b的和。
小蓝决定编写程序来解决这些计算题。
输入:
输入
1个
字符串(字符串的格式请参考题目描述,并且不含空格),总长度不超过1
00
。
题目数据保证算式中的整数都不大于1
000000
。
字符串中的符号都是英文符号
输出:
一个整数,表示a+b的
值
。
输入样例
1
:
a:2,b:3,a+b=
输出样例
1
:
5
参考程序:
#include<iostream>
#include<string>
using namespace std;
int str2i(string s);
int main()
{
string s, s1, s2;
getline(cin, s);
int pos1 = s.find(":");
int pos2 = s.find(",");
s1 = s.substr(pos1, pos2 - pos1);
pos1 = s.find(":", pos2);
pos2 = s.find(",", pos1);
s2 = s.substr(pos1, pos2 - pos1);
cout << str2i(s2) + str2i(s1)<< endl;
return 0;
}
int str2i(string s)
{
int res = 0;
for (int i = 0; i <= s.size(); i++)
{
if (s[i] >= '0' && s[i] <= '9')
{
res = res * 10 + s[i] - '0';
}
}
return res;
}
测试数据:
1.in
a:2,b:3,a+b=
1.out
5
2.in
a:5,b:4,a+b=
2.out
9
3.in
a:125,b:549,a+b=
3.out
674
4.in
a:39122,b:78263,a+b=
4.out
117385
5.in
a:632234,b:982456,a+b=
5.out
1614690
蓝桥杯青少组C++组别17级编程练习真题(第6套,共6套)