蓝桥等考C++组别
十五
级
第一部分:选择题
1、
C++ L15 (
15
分)
将二进制数
00110100
转成1
0
进制,结果是( )。
A
. 50
B. 52
C. 54
D. 62
正确答案:B
2
、C++ L15 (
15
分)
将(
4B
)
16
转换成二进制,结果是()。
A
.
(
01001101
)
2
B.
(
01011011
)
2
C.
(
01001011
)
2
D.
(
01010011
)
2
正确答案:
C
3
、C++ L15 (20分)
将(
813
)
1
0
+
(1
0
1
100101
)
2
的和转换成
8
进制,结果是( )。
A
.
(
2222
)
8
B.
(
2202
)
8
C.
(
2224
)
8
D.
(
2022
)
8
正确答案:
A
第二部分:编程题
4、
C++ L15
三进制转换为十进制(
2
0分)
题目名称:
三
进制
转换为十进制
题目描述:
输入一个三进制非负整数,将其转换成十进制数。
三进制的数码有:
0,1,2
输入:
一个三进制非负整数(位数不超过10位)
,中间不包含空格。
输出:
共
1
行,为一个非负整数,表示将输入的三
进制数
转换成十进制数的结果。
输入样例:
121
输出样例:
16
参考程序:
#include<iostream>
#include<cstring>
using namespace std;
const int N = 10;
char n3[N + 1];
int main()
{
int n = 0;
cin >> n3;
for (int i = 0; n3[i] != 0; i++)
{
n = n * 3 + n3[i] - '0';
}
cout << n;
return 0;
}
测试数据:
1.in
121
1.out
16
2.in
1021202012
2.out
25331
3.in
12201
3.out
154
4.in
1120022
4.out
1142
5.in
10001
5.out
82
5、
C++ L15
三进制数里数字“1”的数量(
3
0分)
题目名称:
三进制数里数字“1”的数量
题目描述:
输入一个十进制正整数,将其转换成三进制数,然后
统计这个三进制数中数字“1”出现的次数。
输入:
1
行,为一个十进制正整数(不超过
1
00000
)。
输出:
共
2
行;
第1行是一个数字字符串,表示将输入转换成三进制数的结果,字符串中间不含空格;
第2行是一个整数,表示将输入转换成三进制数后统计里面数字“1”出现的次数。
输入样例:
11
输出样例:
102
1
参考程序:
#include<iostream>
#include<cstring>
using namespace std;
const int N = 100;
char n3[N + 1];
int main()
{
int n, pos = 0, cnt = 0;
cin >> n;
for (int i = n; i > 0; i /= 3)
{
int r = i % 3;
n3[pos] = r + '0';
pos++;
}
for (int i = pos - 1; i >= 0; i--)
{
cout << n3[i];
if (n3[i] == '1')
cnt++;
}
cout << endl << cnt;
return 0;
}
测试数据:
1.in
11
1.out
102
1
2.in
12503
2.out
122011002
3
3.in
70912
3.out
10121021101
6
4.in
83673
4.out
11020210000
3
5.in
41180
5.out
2002111012
4
蓝桥杯青少组C++组别15级编程练习真题(第2套,共6套)