蓝桥等考C++组别
十三
级
第一部分:选择题
1、
C++ L
13
(
15
分)
用冒泡排序算法对数列
2, 1, 6, 3, 4, 5
进行从大到小排序,每一趟排序都把未排序元素中最小的数放到未排序位置的最后面,第三趟排序后的状态为( )。
A
.
4 5 6 3 2 1
B.
6 4 5 3 2 1
C.
6 3 4 5 2 1
D.
6 5 4 3 2 1
正确答案:
B
2
、C++ L
13
(
15
分)(修改)
使用排序库函数sort对数组i
nt a[10]
的前6个元素进行从大到小的排序
,
以下用法正确的是( )。
A
.
sor
t(a[0], a[5])
;
B.
sor
t(a, a + 5)
;
C.
sor
t(a, a + 6)
;
D.
sor
t(a[0], a[6])
;
正确答案:C
3
、C++ L
13
(20分)
输入一组(不超过1
00
个)在
-50~150
之间的整数,对这组数进行排序。
以下是桶排序算法的代码,在(
1)
、
(2)
下划线处应填写的代码是( )。
int n, x, b[201] = {};
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> x;
b[x + 50]++;
}
(
1)___________________
{
(
2)___________________
{
cout << i - 50 << ' ';
}
}
A
.
(1):
for (int i = 0; i < n; i++)
(2):
for (int j = 1; j <= i; j++)
B.
(1):
for (int i = 0; i <= 200; i++)
(2):
for (int j = 1; j <= b[i]; j++)
C.
(1):
for (int i = 0; i <= n; i++)
(2):
for (int j = 1; b[j] <= i; j++)
D.
(1):
for (int i = 0; i < 100; i++)
(2):
for (int j = 0; j <= b[i]; j++)
正确答案:B
第二部分:编程题
4、
C++ L13
跳绳
(
5
0分)
题目名称:
跳绳
题目描述:
小蓝的班进行比赛跳绳。已知班里共有学生n名,给定学生的跳绳成绩(1分钟跳绳的个数),请将这n名学生的跳绳成绩从高到低排序后输出。
输入:
共2行;
第1行是一个
正整数
n(
1
<
= n <= 1
00)
;
第2行有
n
个正整数
(小于1
000
)
,相邻两数之间用空格隔开。
输出:
输出
1
行正整数,为n位学生的跳绳成绩从高到低排序后的序列,两数之间以一个英文逗号分隔。
注意:不得输出多余的逗号。
输入样例:
5
112 72 212 99 157
输出样例:
212,157,112,99,72
参考程序:
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100;
int a[N + 1];
bool cmp(int x, int y)
{
return x >= y;
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
sort(a, a + n, cmp);
cout << a[0];
for (int i = 1; i < n; i++)
{
cout << ',' << a[i];
}
return 0;
}
测试数据:
1.in
5
112 72 212 99 157
1.out
212,157,112,99,72
2.in
1
204
2.out
204
3.in
9
345 634 762 662 856 36 410 946 516
3.out
946,856,762,662,634,516,410,345,36
余下略
蓝桥杯青少组C++组别13级编程练习真题(第7套,共9套)