实验6 函数与模块化程序设计
本实验共 4 个子实验题目。每题含:题目、输入格式、输出格式、样例、6 组测试数据(输入/输出)以及 C 语言参考代码。
实验内容1 最大公约数与素数判定
一、题目
编写函数 gcd(a,b) 求最大公约数、isPrime(a) 判断素数,在 main 中调用。 输入两个整数 a、b,输出它们的最大公约数,以及 a 是否为素数(1 表示是,0 表示否)。
二、输入格式
输入一行两个整数 a、b(均为正整数)。
三、输出格式
输出两行:第一行为 gcd(a,b);第二行为 1 或 0(1 表示 a 是素数)。
四、样例
输入:
12 18
输出:
6
0
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
12 18
- 输出:
6
0
第 2 组
- 输入:
15 25
- 输出:
5
0
第 3 组
- 输入:
7 13
- 输出:
1
1
第 4 组
- 输入:
100 10
- 输出:
10
0
第 5 组
- 输入:
1 1
- 输出:
1
0
第 6 组
- 输入:
60 48
- 输出:
12
0
实验内容2 数组作参数的统计
一、题目
编写函数,以数组作为参数的方式计算一组整数成绩的平均分(保留 2 位小数)与最高分, 并在 main 中调用输出。
二、输入格式
第一行一个整数 n(1 ≤ n ≤ 100);第二行 n 个整数,用空格分隔。
三、输出格式
输出两行:第一行为平均分(保留 2 位小数),第二行为最高分。
四、样例
输入:
5
80 90 70 60 100
输出:
80.00
100
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
5
80 90 70 60 100
- 输出:
80.00
100
第 2 组
- 输入:
4
50 60 70 80
- 输出:
65.00
80
第 3 组
- 输入:
1
88
- 输出:
88.00
88
第 4 组
- 输入:
6
-3 0 4 -1 2 7
- 输出:
1.50
7
第 5 组
- 输入:
3
95 85 75
- 输出:
85.00
95
第 6 组
- 输入:
10
10 20 30 40 50 60 70 80 90 100
- 输出:
55.00
100
实验内容3 递归求阶乘与斐波那契
一、题目
用递归函数分别求 n 的阶乘和第 n 项斐波那契数(fib(1)=1, fib(2)=1, fib(n)=fib(n-1)+fib(n-2))。 输入 n(1 ≤ n ≤ 20),输出 n! 与 fib(n)。
二、输入格式
输入一行一个正整数 n(1 ≤ n ≤ 20)。
三、输出格式
输出两行:第一行为 n 的阶乘,第二行为第 n 项斐波那契数。
四、样例
输入:
5
输出:
120
5
五、提示
递归深度不要过大,n 控制在 20 以内避免超时。
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
5
- 输出:
120
5
第 2 组
- 输入:
10
- 输出:
3628800
55
第 3 组
- 输入:
1
- 输出:
1
1
第 4 组
- 输入:
12
- 输出:
479001600
144
第 5 组
- 输入:
20
- 输出:
2432902008176640000
6765
第 6 组
- 输入:
7
- 输出:
5040
13
实验内容4 猜数提示
一、题目
对应“猜数字游戏”的模块化改造:输入秘密数 s 与一次猜测 g, 若 g 等于 s 输出 Correct;若 g 大于 s 输出 Too big;若 g 小于 s 输出 Too small。
二、输入格式
输入一行两个整数 s、g,用空格分隔。
三、输出格式
输出一行:Correct、Too big 或 Too small。
四、样例
输入:
50 50
输出:
Correct
六、测试数据(6 组,输入 / 输出)
第 1 组
- 输入:
50 50
- 输出:
Correct
第 2 组
- 输入:
50 70
- 输出:
Too big
第 3 组
- 输入:
50 30
- 输出:
Too small
第 4 组
- 输入:
8 3
- 输出:
Too small
第 5 组
- 输入:
8 12
- 输出:
Too big
第 6 组
- 输入:
100 100
- 输出:
Correct