蓝桥等考C++组别
十五
级
第一部分:选择题
1、C++ L15 (15分)
二进制数111010等值于十进制数( )。
58
59
60
61
正确答案:A
2、C++ L15 (15分)
十进制数28对应的四进制数是( )。
123
131
130
134
正确答案:C
3、C++ L15 (20分)
一个密码箱上有8个按键,每个按键只有“按下”和“弹起”两种状态。将一些键按下,另一些键弹起,可以
产生
不同的密码组合。
请问,这个密码箱可以有多少种不同的密码组合? ( )
8
128
256
512
正确答案:C
第二部分:编程题
4、C++ L15 二进制
数
中“
0
”的个数(20分)
题目名称:
二进制
数
中“
0
”的个数
题目描述:
输入
一
个
只含0、1的8位字符串,第一个字符可以是0,代表一个二进制数。输出这个二进制数中“
0
”的个数。
输入:
一个
只含0、1的字符串,长度为8。
输出:
一个整数,为这个二进制数“
0
”的个数。
输入样例:
0010
11
10
输出样例:
4
参考程序:
#include <iostream>
using namespace std;
char
s[10];
int ans = 0;
int main()
{
cin >> s;
for(int i = 0; i < 8; i++)
{
if(s[i] == '
0
')
ans++;
}
cout << ans;
return 0;
}
测试数据:
1.in
00101110
1.out
4
2.in
01101100
2.out
4
3.in
01101011
3.out
3
4.in
00100000
4.out
7
5.in
11000101
5.out
4
5、C++ L15 小数转二进制(30分)
题目名称:
小数转二进制
题目描述:
十进制转二进制,整数部分和小数部分用不同方法计算。
整数部分“除
2取余
”,直到商为
0,然后倒序输出所有余数;
小数部分“乘2取整”,直到小数部分为0,然后顺序输出所有整数。
例如,
将0.
37
5转成二进制是0.
01
1,请参考下面的计算过程。
输入一个小于1的有限小数,将其转换成二进制。
输入:
一个小于1的有限小数
,小数点后不超过8位。
题目
数据保证能转换成
位数
有限的二进制小数。
输出:
一串字符
,
代表转换后的二进制小数。
输入样例
1
:
0.
37
5
输出样例
1
:
0.011
输入样例
2
:
0.625
输出样例
2
:
0.101
参考程序:
#include <iostream>
using namespace std;
const int N = 100;
double x;
int ans[N + 1];
int pos = 0;
int main(){
cin >> x;
while(x > 0){ //重复执行,直到小数部分为0
x *= 2; //乘2
ans[pos++] = int(x); //取整
x -= int(x); //整数部分变成0
}
cout << "0.";
for(int i = 0; i < pos; i++)
{
cout << ans[i];
}
return 0;
}
测试数据:
1.in
0.375
1.out
0.011
2.in
0.625
2.out
0.101
3.in
0.125
3.out
0.001
4.in
0.25
4.out
0.01
5.in
0.5
5.out
0.1
蓝桥杯青少组C++组别15级编程练习真题(第4套,共6套)