蓝桥等考C++组别八级
第一部分:选择题
1、
C++ L
8
(
15
分)
以下选项中不会一直输出“*”的是
( )。
A
.
for (int i = 0; i < 0; i++)
{
cout << '*';
}
B.
while (-1)
{
cout << '*';
}
C.
for (int i = 0; ;i++)
{
cout << '*';
}
D.
do
{
cout << '*';
} while (true);
正确答案:
A
2
、C++ L
8
(
15
分)
执行以下
代码
,
输出
结果
是( )
。
int k = 0;
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
k+=2;
}
else
{
k--;
}
if (i % 7 == 0)
{
break;
}
}
cout << k;
A
. 0
B. 1
C. 2
D. 3
正确答案:
C
3
、C++ L
8
(20分)
执行以下
代码
,
输出
结果
是( )
。
int k = 1, s = 1;
for (int i = 1; i <= 10; i++)
{
if (i % 5 == 0)
{
continue;
}
if (s == k)
{
s = 0;
k++;
}
s++;
}
cout << k;
A
.
3
B. 4
C.
5
D.
6
正确答案:
B
第二部分:编程题
4、C++ L
8
不
及格的
学生
人数
(
2
0分)(
新增
)
题目名称:
不及格的学生人数
题目描述:
某场考试有
n
个学生参加,请统计本场考试不及格(分数低于
6
0
)学生的人数。
输入:
共
2
行,第
1行是一个正整数n,表示参加考试的学生人数。0
<
n
<= 100
。
第
2行有n个正整数,表示学生的成绩(0~
100
)。
相邻两个数用一个空格隔开。
输出:
一个整数,表示本场考试
不及格的学生人数
。
输入样例:
5
8
5 78 60 59 54
输出样例:
2
参考程序:
#include<iostream>
using namespace std;
int main()
{
int n, x, cnt = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> x;
if (x < 60)
cnt++;
}
cout << cnt;
return 0;
}
测试数据:
1.in
5
85 78 60 59 54
1.out
2
2.in
8
84 77 59 79 17 32 5 27
2.out
5
3.in
12
41 61 12 2 92 69 37 90 44 67 36 94
3.out
6
4.in
51
36 59 31 86 71 31 81 39 47 29 26 77 81 90 81 24 28 94 75 60 30 29 61 52 67 65 71 70 57 75 81 64 49 50 24 28 26 19 9 0 47 49 42 12 76 10 36 74 35 81 53
4.out
30
5.in
100
85 74 76 92 85 85 99 97 49 90 96 44 51 76 24 31 76 100 17 67 87 22 31 28 72 2 28 8 83 2 12 6 15 39 75 90 61 71 84 35 67 55 58 68 33 90 15 77 57 57 34 61 17 34 68 26 43 33 98 99 60 84 4 91 67 7 22 82 42 33 44 48 66 72 86 55 72 88 51 24 63 19 24 14 2 68 34 5 23 42 67 48 3 86 86 74 10 38 72 90
5.out
52
5
、C++ L
8
冰雹猜想2(
3
0分)
题目名称:
冰雹猜想2
题目描述:
提示信息:
冰雹猜想是指:一个正整数
x
,如果是奇数就乘以
3
再加
1
,如果是偶数就
除以2
,这样经过若干
步计算
,最终会得到
1
。
例如:x
= 5
第1步
5 * 3 + 1 = 16
第2步
16 / 2 = 8
第3步
8 / 2 = 4
第
4
步
4 / 2 = 2
第
5
步
2 / 2 = 1
经过5步计算,最终得到1。
给定
2
个正整数m,n,求出m到n之间每一个整数各要经过多少步计算才会得到1。
输入:
输入
2
个正整数m,n(m
< n < 100
)
;m、n之间有一个空格。
输出:
输出一行,包含若干个正整数,表示
m
到n之间(含m、n)的每一个整数各通过多少步计算最终得到1。
例如:输入样例是3
5
,3到5之间的3个数是 3,4,5;
输出样例中7表示
3
要经过7步计算最终得到1;4要经过2步计算最终得到1;
5
要经过5步计算最终得到1;最终输出为
7 2 5
。
输入样例:
3 5
输出样例:
7 2 5
参考程序:
#include<iostream>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
for (int i = m; i <= n; i++)
{
int x = i;
int step = 0;
while (x > 1)
{
if (x % 2 == 0)
x /= 2;
else
x = x * 3 + 1;
step++;
}
cout << step << " ";
}
return 0;
}
测试数据:
1.in
3 5
1.out
7 2 5
2.in
1 7
2.out
0 1 7 2 5 8 16
3.in
2 8
3.out
1 7 2 5 8 16 3
4.in
11 17
4.out
14 9 9 17 17 4 12
5.in
1 20
5.out
0 1 7 2 5 8 16 3 19 6 14 9 9 17 17 4 12 20 20 7
蓝桥杯青少组C++组别8级编程练习真题(第6套,共8套)