蓝桥等考C++组别十三级
第一部分:选择题
1、C++ L13 (15分)
用冒泡排序算法对数列
6, 2, 5, 3, 4, 1
进行从小到大排序,每一趟都把未排序元素中最大的放到未排序位置的最后面,第
二
趟排序后的状态为( )。
A.
2 5 3 4 1 6
B.
2 3 1 4 5 6
C.
2 1 3 4 5 6
D.
2 3 4 1 5 6
正确答案:D
2、C++ L13 (15分)
要将数组a中的元素从小到大输出,以下代码的横线处应填写( )。
int a[5] = {2,
7,
1,
8,
6};
________________;
for(int i = 0; i < 5; i++)
{
cout << a[i] << ' ';
}
A.sort(0, 5)
B.sort(a
+
5, a)
C.sort(a, a
+
5)
D.sort(a
+
1, a
+
5)
正确答案:C
3、C++ L13 (20分)
要将数组a中的元素按照从大到小输出,以下代码的横线处应填写( )。
bool cmp(int a, int b)
{
return
________________;
}
int main()
{
int a[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
sort(a, a + 10, cmp);
for (int i = 0; i < 10; i++)
{
cout << a[i] << ' ';
}
return 0;
}
A. a > b
B. a < b
C. a = b
D. a != b
正确答案:A
第二部分:编程题
4
、C++ L13成绩排序(50分)
题目名称:
成绩排序
题目描述:
分别给出代号为A、B、C、D、E的五名同学的跳远成绩,请按照成绩从高到低,将五名同学的代号输出。
输入:
输入五个不相同的正整数(不超过1
00
),表示五名同学的成绩,相邻两数之间以一个空格隔开。
输出:
按照五名同学的成绩从高到低的顺序输出代号,相邻两个代号之间以一个空格隔开。
输入样例:
89 95 65 76 100
输出样例:
E B A D C
参考代码:
#include <iostream>
using namespace std;
const int N = 5;
int main()
{
char a[N] = {'A', 'B', 'C', 'D', 'E'};
int b[N];
for (int i = 0; i < N; i++)
{
cin >> b[i];
}
for(int i = 1; i < N; i++)
{
for (int j = 0; j < N - i; j++)
{
if (b[j] < b[j + 1])
{
int t = b[j];
b[j] = b[j + 1];
b[j + 1] = t;
char s = a[j];
a[j] = a[j + 1];
a[j + 1] = s;
}
}
}
for (int i = 0; i < N; i++)
{
cout << a[i] << ' ';
}
return 0;
}
测试数据:
1.in
89 95 65 76 100
1.out
E B A D C
2.in
3 4 5 2 1
2.out
C B A D E
3.in
20 62 32 45 76
3.out
E B D C A
4.in
99 93 94 95 96
4.out
A E D C B
5.in
99 100 89 69 97
5.out
B A E C D
蓝桥杯青少组C++组别13级编程练习真题(第6套,共9套)