蓝桥等考C++组别八级
第一部分:选择题
1、
C++ L
8
(
15
分)
以下关于break的说法正确的是
( )。
A
.
只有循环结构里面才可以使用
break
语句。
B.
程序运行到
break
语句的时候会暂停,直到用户按下任意键才会继续执行。
C.
嵌套循环的内层循环里面遇到
break
的时候,整个嵌套循环结构会立即停止,然后继续执行后面的代码。
D.
在有嵌套结构的情况下,
break
只会中断包含
break所在层的代码执行流程。
正确答案:D
2
、C++ L
8
(
15
分)
执行以下程序
后,
输出
结果
是( )
。
int k = 0;
for (int i = 1; i <= 10; i++)
{
if (6 % i != 0)
{
continue;
}
else
{
k++;
}
}
cout << k;
A
. 2
B. 3
C. 4
D. 9
正确答案:
C
3
、C++ L
8
(20分)
执行以下程序
后,
输出
结果
是( )
。
int n = 0, k = 0;
while(true)
{
for (int i = 1; i <= 3; i++)
{
k++;
}
++n;
if (n >= 3)
break;
}
cout << k;
A
.
3
B. 6
C.
9
D.
12
正确答案:
C
第二部分:编程题
4、C++ L
8
不是3的倍数的数(
2
0分)(
新增
)
题目名称:
不是3的倍数的数
题目描述:
如果整数
a
能被整数
b
整除,那么
a
就是
b
的倍数。
例如:
6
能被
3
整除,所以
6
是
3
的倍数。
给定两个正整数
m
、
n
,
统计
从
m
到n
之间不是3的倍数的数总共
有多少。
例如:
m
=
1
,n
=
15
,
在1
~15
之间,
3
的倍数有
3
,
6
,9,1
2
,1
5
,共有5个;剩下不是3的倍数的数总共
有
1
0
个,所以输出
10
。
输入:
一行,包含两个正整数
m
、n(
0
<
m
<= n < 1000
)。相邻两个数用一个空格隔开。
输出:
一个整数,
表示
从
m
到n
之间
(包括
m
和n)
不是3的倍数的数
的个数
。
输入样例:
1 15
输出样例:
10
参考程序:
#include<iostream>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
int cnt = 0;
for (int i = m; i <= n; i++)
{
if (i % 3 == 0)
continue;
cnt++;
}
cout << cnt;
return 0;
}
测试数据:
1.in
1 15
1.out
10
2.in
1 57
2.out
38
3.in
6 210
3.out
136
4.in
213 213
4.out
0
5.in
1 999
5.out
666
5
、C++ L
8
完全数(
3
0分)
题目名称:
完全数
题目描述:
完全数是一些特殊的自然数。它所有的真因子(即除了它本身以外的约数)的和恰好等于它本身。例如:6就是一个完全数,它有约数1、2、3、6,除去它本身6外,其余3个约数相加,1+2+3=6。
输入两个正整数m和n,要求出
m
到n之间所有的完全数。
输入:
输入
1
行,包含两个正整数m和n(
0 <
m
<
n < 10
,
000
)
。
m
、
n
之间有一个空格。
输出:
输出有
1
行,包含若干个数,依次表示
m
到n之间(含m和n)所有的完全数,两个数之间用一个空格隔开。
题目保证m和n之间一定存在完全数。
输入样例:
1 7
输出样例:
6
参考程序:
#include<iostream>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
for (int i = m; i <= n; i++)
{
int sum = 0;
for (int j = 1; j < i; j++)
{
if (i % j == 0)
{
sum += j;
}
}
if (i == sum)
cout << i << " ";
}
return 0;
}
测试数据:
1.in
1 7
1.out
6
2.in
1 100
2.out
6 28
3.in
8 200
3.out
28
4.in
100 1000
4.out
496
5.in
1 9999
5.out
6 28 496 8128
蓝桥杯青少组C++组别8级编程练习真题(第5套,共8套)