蓝桥等考C++组别八级
第一部分:选择题
1、
C++ L
8
(
15
分)
整数1
2
,
8
的最小公倍数是
( )。
A
.
4
B. 16
C.
24
D. 48
正确答案:C
2
、C++ L
8
(
15
分)
执行以下程序
,
输出
结果中
"*"
的数量是
( )
。
int n = 3, m = 4;
for (int i = 1; i <= n; i++)
{
for (int j = 0; j < m; ++j)
{
cout << "*";
}
}
A
. 4
B. 5
C.
12
D.
16
正确答案:
C
3
、C++ L
8
(20分)(删去一个空行,暂不改后台)
执行以下程序
后的
输出
结果
是( )
。
int n = 12, m = 5, k = 0;
for (int i = 1; i <= n; i++)
{
if (i % m == 0)
{
continue;
}
k += 1;
}
cout << k;
A
. 1
B. 5
C. 10
D. 12
正确答案:C
第二部分:编程题
4、C++ L
8
4的倍数
(
2
0分)
题目名称:
4的倍数
题目描述:
如果整数
a
能被整数
b
整除,那么
a
就是
b
的倍数。
例如:
8
能被
4
整除,所以
8
是
4
的倍数。
给定两个正整数
m
、
n
,
统计
从
m
到n
之间
4
的倍数
有多少。
例如:
m
=
1
,n
=
13
,
在1
~13
之间,4的倍数有4,8,1
2
,总共有3个,所以输出3。
输入:
一行,包含两个正整数
m
、n(
0
<
m
<= n < 1000
)。相邻两个数用一个空格隔开。
输出:
一个整数,
表示
从
m
到n(包括
m
和n)
之间
4
的倍数
有多少。
输入样例:
1 13
输出样例:
3
参考程序:
#include<iostream>
using namespace std;
int main()
{
int m, n, cnt = 0;
cin >> m >> n;
for (int i = m; i <= n; i++)
{
if (i % 4 == 0)
cnt++;
}
cout << cnt;
return 0;
}
测试数据:
1.in
1 13
1.out
3
2.in
1 16
2.out
4
3.in
2 20
3.out
5
4.in
9 39
4.out
7
5.in
100 306
5.out
52
5
、镜像数列(
3
0分)
题目名称:
镜像数列
题目描述:
给定两个正整数m,n,要求输出从m到n这个数列以及这个数列的镜像数列。设原数列有L个数,镜像数列的i项是原数列第
L + 1
–
i
项的倒序数。
例如:m
= 8
,n
= 11
,输出的这个数列为
8 9 10 11
,总共有4个数;它的镜像数列就是1
1 01 9 8
;其中
10
的倒序数是
01
(需保留数字前面的0)。
输入:
输入
1
行,包含
2
个正整数
m
,
n(
0
<
m < n < 100
)。
输出:
输出有
1
行,先依次输出从m到n之间(包含m和n)的整数数列,然后按题目描述输
出这个数列的镜像数列,数列的两项数据之间用一个空格分隔。
注意:输入输出格式要和样例严格保持一致,不要输出任何与答案无关的内容,如“请输入:”之类的提示信息,或者在数据前面输出多余的空格或空行。
输入样例:
8 11
输出样例:
8 9 10 11 11 01 9 8
参考程序:
#include<iostream>
using namespace std;
int main()
{
int m, n, x;
cin >> m >> n;
for (int i = m; i <= n; i++)
{
cout << i << " ";
}
for (int i = n; i >= m; i--)
{
x = i;
while (x != 0)
{
cout << (x % 10);
x /= 10;
}
cout << " ";
}
return 0;
}
测试数据:
1.in
8 11
1.out
8 9 10 11 11 01 9 8
2.in
1 10
2.out
1 2 3 4 5 6 7 8 9 10 01 9 8 7 6 5 4 3 2 1
3.in
18 29
3.out
18 19 20 21 22 23 24 25 26 27 28 29 92 82 72 62 52 42 32 22 12 02 91 81
余下略
蓝桥杯青少组C++组别8级编程练习真题(第2套,共8套)