Skip to main content

实验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