实验5 数组及其应用
本实验共 7 个子实验题目。每题含:题目、输入格式、输出格式、样例、6 组测试数据(输入/输出)以及 C 语言参考代码。
实验内容1 成绩统计
一、题目
输入 n 名学生的成绩(整数),输出平均分(保留两位小数)、最高分、最低分, 以及高于平均分的人数。
二、输入格式
第一行一个整数 n(1 ≤ n ≤ 100);第二行 n 个整数,表示成绩,用空格分隔。
三、输出格式
输出四行: 第一行为平均分(保留 2 位小数); 第二行为最高分; 第三行为最低分; 第四行为高于平均分的人数。
四、样例
输入:
5
80 90 70 60 100
输出:
80.00
100
60
2
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
5
80 90 70 60 100
- 输出:
80.00
100
60
2
第 2 组
- 输入:
3
50 50 50
- 输出:
50.00
50
50
0
第 3 组
- 输入:
6
88 92 75 60 99 81
- 输出:
82.50
99
60
3
第 4 组
- 输入:
1
100
- 输出:
100.00
100
100
0
第 5 组
- 输入:
4
0 0 0 0
- 输出:
0.00
0
0
0
第 6 组
- 输入:
10
95 85 75 65 55 45 35 25 15 5
- 输出:
50.00
95
5
5
实验内容2 整数升序排序
一、题目
输入 n 个整数,将其按升序排列后输出(相邻两数用空格分隔)。
二、输入格式
第一行一个整数 n(1 ≤ n ≤ 100);第二行 n 个整数,用空格分隔。
三、输出格式
输出一行:升序排列后的 n 个整数,用空格分隔。
四、样例
输入:
5
5 3 8 1 2
输出:
1 2 3 5 8
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
5
5 3 8 1 2
- 输出:
1 2 3 5 8
第 2 组
- 输入:
3
9 9 1
- 输出:
1 9 9
第 3 组
- 输入:
6
-3 0 4 -1 2 7
- 输出:
-3 -1 0 2 4 7
第 4 组
- 输入:
1
42
- 输出:
42
第 5 组
- 输入:
10
10 9 8 7 6 5 4 3 2 1
- 输出:
1 2 3 4 5 6 7 8 9 10
第 6 组
- 输入:
4
2 2 1 3
- 输出:
1 2 2 3
实验内容3 有序数组二分查找
一、题目
输入一个升序排列的整数数组和一个目标值 x,用二分查找返回 x 在数组中的位置 (0 基下标);若不在数组中则输出 -1。
二、输入格式
第一行一个整数 n(1 ≤ n ≤ 100); 第二行 n 个升序整数,用空格分隔; 第三行一个整数 x,为查找目标。
三、输出格式
输出一行一个整数:x 的下标(从 0 开始),未找到则输出 -1。
四、样例
输入:
5
1 3 5 7 9
5
输出:
2
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
5
1 3 5 7 9
5
- 输出:
2
第 2 组
- 输入:
6
2 4 6 8 10 12
6
- 输出:
2
第 3 组
- 输入:
5
1 2 3 4 5
99
- 输出:
-1
第 4 组
- 输入:
1
7
7
- 输出:
0
第 5 组
- 输入:
7
10 20 30 40 50 60 70
40
- 输出:
3
第 6 组
- 输入:
4
-5 -2 0 3
-2
- 输出:
1
实验内容4 字符统计
一、题目
输入一行字符(可能包含空格),统计其中字母、数字、空格以及其他字符的个数并输出。
二、输入格式
输入一行字符串(长度不超过 200),以换行结束。
三、输出格式
输出一行四个整数,依次为:字母个数、数字个数、空格个数、其他字符个数,用空格分隔。
四、样例
输入:
Hello World 123!
输出:
10 3 2 2
五、提示
读入含空格的一行请用 fgets(s, sizeof(s), stdin)。
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
Hello World 123!
- 输出:
10 3 2 2
第 2 组
- 输入:
abc
- 输出:
3 0 0 1
第 3 组
- 输入:
a1 b2 c3
- 输出:
3 3 2 1
第 4 组
- 输入:
@#$
- 输出:
0 0 2 4
第 5 组
- 输入:
Abc123 XyZ
- 输出:
6 3 1 1
第 6 组
- 输入:
- 输出:
0 0 0 1
实验内容5 矩阵转置
一、题目
输入一个 m 行 n 列的矩阵,输出它的转置矩阵(行列互换)。
二、输入格式
第一行两个整数 m、n(均 ≤ 20),用空格分隔; 接下来 m 行,每行 n 个整数,用空格分隔,表示矩阵。
三、输出格式
输出 n 行,每行 m 个整数(转置后),整数之间用空格分隔。
四、样例
输入:
2 3
1 2 3
4 5 6
输出:
1 4
2 5
3 6
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
2 3
1 2 3
4 5 6
- 输出:
1 4
2 5
3 6
第 2 组
- 输入:
3 3
1 2 3
4 5 6
7 8 9
- 输出:
1 4 7
2 5 8
3 6 9
第 3 组
- 输入:
1 4
1 2 3 4
- 输出:
1
2
3
4
第 4 组
- 输入:
3 1
10
20
30
- 输出:
10 20 30
第 5 组
- 输入:
2 2
0 1
1 0
- 输出:
0 1
1 0
第 6 组
- 输入:
4 2
1 2
3 4
5 6
7 8
- 输出:
1 3 5 7
2 4 6 8
实验内容6 杨辉三角
一、题目
输入正整数 n,输出杨辉三角的前 n 行。第 i 行有 i 个数,首尾为 1,其余为上一行相邻两数之和; 每行数字用空格分隔。
二、输入格式
输入一行一个正整数 n(1 ≤ n ≤ 20)。
三、输出格式
输出 n 行:第 i 行输出 i 个整数,用空格分隔,表示杨辉三角第 i 行。
四、样例
输入:
5
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
5
- 输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
第 2 组
- 输入:
1
- 输出:
1
第 3 组
- 输入:
7
- 输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
第 4 组
- 输入:
3
- 输出:
1
1 1
1 2 1
第 5 组
- 输入:
10
- 输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
第 6 组
- 输入:
8
- 输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
实验内容7 班级成绩分析
一、题目
输入 5 名学生各 3 门课程(语文、数学、英语)的成绩, 输出每名学生的学习总分与平均分(平均分保留 1 位小数,按学生顺序), 最后输出三门课程各自的平均分(保留 1 位小数)。
二、输入格式
输入 5 行,每行三个整数,分别表示一名学生的语文、数学、英语成绩,用空格分隔。
三、输出格式
输出 5 行:每行一个学生的“总分 平均分”(平均分保留 1 位小数); 最后一行输出三个实数:语文、数学、英语三门课的平均分(均保留 1 位小数),用空格分隔。
四、样例
输入:
80 90 70
60 75 85
90 95 88
70 65 60
85 80 90
输出:
240 80.0
220 73.3
273 91.0
195 65.0
255 85.0
77.0 81.0 78.6
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
80 90 70
60 75 85
90 95 88
70 65 60
85 80 90
- 输出:
240 80.0
220 73.3
273 91.0
195 65.0
255 85.0
77.0 81.0 78.6
第 2 组
- 输入:
100 100 100
90 90 90
80 80 80
70 70 70
60 60 60
- 输出:
300 100.0
270 90.0
240 80.0
210 70.0
180 60.0
80.0 80.0 80.0
第 3 组
- 输入:
50 60 70
55 65 75
60 70 80
65 75 85
70 80 90
- 输出:
180 60.0
195 65.0
210 70.0
225 75.0
240 80.0
60.0 70.0 80.0
第 4 组
- 输入:
88 92 75
60 99 81
77 63 55
41 59 88
95 85 75
- 输出:
255 85.0
240 80.0
195 65.0
188 62.7
255 85.0
72.2 79.6 74.8
第 5 组
- 输入:
0 0 0
100 100 100
50 50 50
75 75 75
25 25 25
- 输出:
0 0.0
300 100.0
150 50.0
225 75.0
75 25.0
50.0 50.0 50.0
第 6 组
- 输入:
91 82 73
84 85 86
77 88 99
66 55 44
33 22 11
- 输出:
246 82.0
255 85.0
264 88.0
165 55.0
66 22.0
70.2 66.4 62.6