蓝桥等考C++组别
十四
级
第一部分:选择题
1、C++ L
14
(15分)
以下选项中,结果为true的是
(
)。
A. 'A' > 'b'
B. 'a' + 1 == 'B'
C
. '7' > 7
D
. '0' == 0
正确答案:C
2、C++ L
14
(15分)
执行下面的程序,输入“G
ood luck
”,输出的结果是( )。
char s[20];
cin >> s;
cout<<(sizeof(s));
A. 4
B. 5
C. 10
D. 20
正确答案:D
3、C++ L
14
(20分)
执行下面程序,输出的结果是( )。
char s[20] = "Bye! Zhangsan!";
for(int i = 0; s[i]; i++)
{
if(s[i] >= 'N' && s[i] <= 'Z')
s[i] = s[i] - 'A' + 'a';
}
cout << s;
bye! zhangsan!
BYe! ZhaNgSaN!
Bye! zhangsan!
BYE! ZHANGSAN!
正确答案:C
第二部分:编程题
4、C++ L
14
字符串倒序输出
(20分)
题目名称:
字符串倒序输出
题目描述:
输入一个
字符串,将其倒序后输出。
输入:
一个
字符串,只包含英文字母,
长度不超过
20。
输出:
一个字符串,表示将输入字符串倒序后的结果。
输入样例:
Hello
输出样例:
olleH
参考程序:
#include <iostream>
#include <cstring>
using namespace std;
char s[21];
int ans = 0;
int main()
{
cin >> s;
for(int i = strlen(s) - 1; i >= 0; i--)
{
cout << s[i];
}
return 0;
}
测试数据:
1.in
Hello
1.out
olleH
2.in
OE
2.out
EO
3.in
xlNTQtFCbCzNliOjNH
3.out
HNjOilNzCbCFtQTNlx
4.in
zdIgiFSEgYKFIXKxqVp
4.out
pVqxKXIFKYgESFigIdz
5.in
dgYGMkUbT
5.out
TbUkMGYgd
5、C++ L
14
13
位
I
SBN
号码的
校验
码
(30分)
题目名称:
13
位I
SBN
号码的校验码
题目描述:
每一本
正式出版
的
书的封底都有一串号码,如
ISBN 978-7-121-41489-3
,它叫做"国际标准书号"(International Standard Book Number,缩写为ISBN),用来唯一代表一本书。
从2007年1月1日起,国际标准书号升级为13位,这13位数字可以分为5个区(为提高可读性,用连字符“-”将5个区隔开),从左往右,5个区的含义依次如下:
(1)EAN号码段,一共包含3位数字。
(2)国家、语言或区位代码,长度为1
-5
位,7表示中国大陆。
(3)出版社代码,长度为2-7位,用以识别书籍的出版社。
(4)出版序号,由出版者自行编配,以识别书目或版本。
(5)校验码,一位数字,用以核对书号是否正确。
其中,书号校验码的计算步骤如下:
1、前12个数字交替地乘以权数1和3;
2、所有积相加;
3、总和除以10,得出余数;
4、如果余数为0,则校验码为0。否则用10减去余数,所得的数字就是校验码。
例如:书号为
978-7-121-41489-3
,校验码
3
的计算步骤为:
1、9*1、7*3、8*1、7*3、1*1、2*3、1*1、4*3、1*1、4*3、8*1、9*3
2、
9*1+7*3+8*1+7*3+1*1+2*3+1*1+4*3+1*1+4*3+8*1+9*3
=
127
3
、
127%
10
=
7
4
、10
-
7
=
3
请编写程序判断输入的ISBN号码中校验码是否正确,如果正确,输出yes。否则输出no。
输入:
一行,是一个不含空格字符的字符序列,表示一本书的ISBN号码(题目数据保证输入符合ISBN号码的格式要求)。
输出:
一个字符串,如果输入ISBN号码中校验码正确,输出yes;否则输出no。
输入样例
1
:
978-7-121-41489-3
输出样例
1
:
yes
输入样例
2
:
978-7-10-012321-2
输出样例
2
:
no
参考程序:
#include <iostream>
#include <cstring>
using namespace std;
char s[20];
int a1 = 0, a2 = 0;
int main()
{
cin >> s;
int w = 3, total = 0, cn = 0, checksum = 0;
for(int i = 0; i < strlen(s) - 1; i++)
{
if (s[i] >= '0' && s[i] <= '9')
{
w = 4 - w;
total += (s[i] - '0') * w;
}
}
checksum = s[strlen(s) - 1] - '0';
total %= 10;
cn = total == 0 ? 0 : (10 - total);
if(cn == checksum)
cout << "yes";
else
cout << "no";
return 0;
}
测试数据:
1.in
978-7-121-41489-3
1.out
yes
2.in
978-7-10-012321-2
2.out
no
3.in
978-7-121-42626-1
3.out
yes
4.in
978-7-10-132121-0
4.out
yes
5.in
978-555-21-0221-5
5.out
no
6.in
978-12-4331-2943-0
6.out
no
7.in
978-12-341-7384-1
7.out
no
8.in
978-67-123456-9-2
8.out
no
9.in
978-1234-12-321-5
9.out
yes
10.in
978-1-10-012321-9
10.out
yes
蓝桥杯青少组C++组别14级编程练习真题(第7套,共9套)