蓝桥等考C++组别十六级
第一部分:选择题
1、
C++ L16 (
15
分)
已定义结构体类型Student,使用结构体数组stu来保存若干
名
学生的学号和姓名:
struct Student{
int sn; //学生学号
char name[20];//学生姓名
} stu[100];
下列选项中可以正确
访问
到
第1
名
学生的姓名首字母的是( )。
A
.
stu
[0]_name[0]
B.
stu
[0][0].name
C.
stu
[0]->name[0]
D.
stu
[0].name[0]
正确答案:
D
2
、C++ L16 (
15
分)
关于计算机文件系统,以下说法正确的是( )。
A
.
根目录下只能创建目录(文件夹),而不能创建文件
B.
“.
.
”可以用来表示上一级目录
C
.
在
Windows
系统里,一个目录下
可以
同时存放
a
.txt
和
A
.txt
两个文件
D.
文件名中可以包含英文符号“
/
”
正确答案:
B
3
、C++ L16 (20分)
要想
下面的代码依次输出数组a的元素,下划线处应该填写( )。
int a[5] = {1, 2, 3, 4, 5};
int *p = a;
for (; p < a + 5; p++)
{
cout << ___________ << ' ';
}
A
.
p
B.
*
p
C.
a
[p]
D.
&
p
正确答案:
B
第二部分:编程题
4、
C++ L16
足球比赛(
2
0分)
题目名称:
足球比赛
题目描述:
学校举办了一场足球比赛
,有n个班级参加。输入
每个
班级
的进球总数和失球总数,并计算
出
净胜球数(净胜球数
=
进球总数
-
失球总数)。
最后按输入的顺序输出
每个班级的
净胜球数
。
输入:
第1行有1个整数n(
2
≤n≤100),表示参赛的
班级
数量。
接下来有n行数据,每行包含
2
个正整数,分别表示每个班的
进球总数和失球总数
,两个数中间用一个空格分隔。
题目保证输入和输出数据都在整型范围之内。
输出:
共n行;
每行
1
个整数,表示一个班
级
的
净胜球数。
输入样例:
3
6 12
10 3
3 4
输出样例:
-6
7
-1
参考程序:
#include<iostream>
using namespace std;
const int N = 100;
struct Score{
int a;
int b;
int c;
} score[N + 1];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> score[i].a >> score[i].b;
score[i].c = score[i].a - score[i].b;
}
for (int i = 0; i < n; i++)
{
cout << score[i].c << endl;
}
return 0;
}
测试数据:
1.in
3
6 12
10 3
3 4
1.out
-6
7
-1
2.in
4
33 26
39 23
42 32
26 59
2.out
7
16
10
-33
余下略
5、
C++ L16
足球比赛排
行榜
(
3
0分)
题目名称:
足球比赛排行榜
题目描述:
学校举办了一场足球比赛,以班为单位参赛。
给出
每
个班的班号
和积分。
请按照
积分
从高到低的顺序
进行排序输出
;如果
积分
相同,则班号小的排在前面。
输入:
第1行有1个整数n(1≤n≤100),表示参赛
班级
的数量。
接下来有n行,每行包含2个正整数,分别表示参赛班号和
积分
,两数中间用一个空格分隔。
题目保证输入和输出数据都在整型范围之间,且班号不重复。
输出:
共n行,表示排序的结果,每行有2个整数,分别为参赛班号
和
积分
,两数中间用一个空格分隔。
输入样例:
3
901 0
902 6
903 3
输出样例:
902 6
903 3
901 0
参考程序:
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100;
struct Score{
int sn;
int point;
} score[N + 1];
bool cmp(Score a, Score b)
{
if(a.point != b.point)
return a.point > b.point;
return a.sn < b.sn;
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> score[i].sn >> score[i].point;
}
sort(score, score + n, cmp);
for (int i = 0; i < n; i++)
{
cout << score[i].sn << " " << score[i].point << endl;
}
return 0;
}
测试数据:
略
蓝桥杯青少组C++组别16级编程练习真题(第5套,共6套)