实验10-4 递归实现指数函数(15 分)

实验10-4 递归实现指数函数(15 分)

本题要求实现一个计算$x^n(n\geq1)$的函数。

函数接口定义:

1
double calc_pow( double x, int n );

函数calc_pow应返回xn次幂的值。建议用递归实现。题目保证结果在双精度范围内。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

double calc_pow( double x, int n );

int main()
{
double x;
int n;

scanf("%lf %d", &x, &n);
printf("%.0f\n", calc_pow(x, n));

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1
2 3

输出样例:

1
8

实验10-3 递归求阶乘和(15 分)

实验10-3 递归求阶乘和(15 分)

本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 $1!+2!+3!+\cdots+n! $的值。

函数接口定义:

1
2
double fact( int n );
double factsum( int n );

函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>

double fact( int n );
double factsum( int n );

int main()
{
int n;

scanf("%d",&n);
printf("fact(%d) = %.0f\n", n, fact(n));
printf("sum = %.0f\n", factsum(n));

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例1:

1
10

输出样例1:

1
2
fact(10) = 3628800
sum = 4037913

输入样例2:

1
0

输出样例2:

1
2
fact(0) = 1
sum = 0

实验10-2 判断满足条件的三位数(15 分)

实验10-2 判断满足条件的三位数(15 分)

本题要求实现一个函数,统计给定区间内的三位数中有两位数字相同的完全平方数(如144、676)的个数。

函数接口定义:

1
int search( int n );

其中传入的参数int n是一个三位数的正整数(最高位数字非0)。函数search返回[101, n]区间内所有满足条件的数的个数。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <math.h>

int search( int n );

int main()
{
int number;

scanf("%d",&number);
printf("count=%d\n",search(number));

return 0;
}


/* 你的代码将被嵌在这里 */

输入样例:

1
500

输出样例:

1
count=6

实验10-1 圆形体体积计算器(20 分)

实验10-1 圆形体体积计算器(20 分)

本题要求实现一个常用圆形体体积的计算器。计算公式如下:

  • 球体体积 $V= \frac{4}{3} \pi r^3$,其中r是球体半径。
  • 圆柱体体积$ V=πr^2h$,其中r是底圆半径,h是高。
  • 圆锥体体积$ V=\frac{1}{3} \pi r^2h$,其中r是底圆半径,h是高。

输入格式:

在每次计算之前,要求输出如下界面:

1
2
3
4
5
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:

然后从标准输入读进一个整数指令。

输出格式:

如果读入的指令是1或2或3,则执行相应的体积计算;如果是其他整数,则程序结束运行。

  • 当输入为1时,在计算球体体积之前,打印Please enter the radius:,然后读入球体半径,完成计算;
  • 当输入为2时,在计算圆柱体体积之前,打印Please enter the radius and the height:,然后读入底圆半径和高,完成计算;
  • 当输入为3时,在计算圆锥体体积之前,打印Please enter the radius and the height:,然后读入底圆半径和高,完成计算。

计算结果在一行内输出,保留小数点后两位。

输入样例:

1
2
3
4
5
1
2
3
2.4 3
0

输出样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:
Please enter the radius:
33.51
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:
Please enter the radius and the height:
18.10
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:

实验9-10 平面向量加法(15 分)

实验9-10 平面向量加法(15 分)

本题要求编写程序,计算两个二维平面向量的和向量。

输入格式:

输入在一行中按照“$x_1\quad y_1 \quad x_2\quad y_2$”的格式给出两个二维平面向量$v_1=(x_1, y_1)$和$v_2=(x_2, y_2)$的分量。

输出格式:

在一行中按照$(x, y)$的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0)。

输入样例:

1
3.5 -2.7 -13.9 8.7

输出样例:

1
(-10.4, 6.0)

实验9-9 有理数比较(10 分)

实验9-9 有理数比较(10 分)

本题要求编写程序,比较两个有理数的大小。

输入格式:

输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。

输出格式:

在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系。其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”。

输入样例1:

1
1/2 3/4

输出样例1:

1
1/2 < 3/4

输入样例2:

1
6/8 3/4

输出样例2:

1
6/8 = 3/4

实验9-8 通讯录排序(20 分)

实验9-8 通讯录排序(20 分)

输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。

输入格式:

输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+-组成的字符串。

输出格式:

按照年龄从大到小输出朋友的信息,格式同输出。

输入样例:

1
2
3
4
3
zhang 19850403 13912345678
wang 19821020 +86-0571-88018448
qian 19840619 13609876543

输出样例:

1
2
3
wang 19821020 +86-0571-88018448
qian 19840619 13609876543
zhang 19850403 13912345678

实验9-7 找出总分最高的学生(15 分)

实验9-7 找出总分最高的学生(15 分)

给定$N$个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。

输入格式:

输入在一行中给出正整数$N(\le10)$。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。

输出格式:

在一行中输出总分最高学生的姓名、学号和总分,间隔一个空格。题目保证这样的学生是唯一的。

输入样例:

1
2
3
4
5
6
5
00001 huanglan 78 83 75
00002 wanghai 76 80 77
00003 shenqiang 87 83 76
10001 zhangfeng 92 88 78
21987 zhangmeng 80 82 75

输出样例:

1
zhangfeng 10001 258

实验9-6 按等级统计学生成绩(20 分)

实验9-6 按等级统计学生成绩(20 分)

本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。

函数接口定义:

1
int set_grade( struct student *p, int n );

其中p是指向学生信息的结构体数组的指针,该结构体的定义为:

1
2
3
4
5
6
struct student{
int num;
char name[20];
int score;
char grade;
};

n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级grade。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade还需要返回不及格的人数。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#define MAXN 10

struct student{
int num;
char name[20];
int score;
char grade;
};

int set_grade( struct student *p, int n );

int main()
{ struct student stu[MAXN], *ptr;
int n, i, count;

ptr = stu;
scanf("%d\n", &n);
for(i = 0; i < n; i++){
scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);
}
count = set_grade(ptr, n);
printf("The count for failed (<60): %d\n", count);
printf("The grades:\n");
for(i = 0; i < n; i++)
printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade);
return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1
2
3
4
5
6
7
8
9
10
11
10
31001 annie 85
31002 bonny 75
31003 carol 70
31004 dan 84
31005 susan 90
31006 paul 69
31007 pam 60
31008 apple 50
31009 nancy 100
31010 bob 78

输出样例:

1
2
3
4
5
6
7
8
9
10
11
12
The count for failed (<60): 1
The grades:
31001 annie A
31002 bonny B
31003 carol B
31004 dan B
31005 susan A
31006 paul C
31007 pam C
31008 apple D
31009 nancy A
31010 bob B

实验9-5 查找书籍(20 分)

实验9-5 查找书籍(20 分)

给定$n$本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。

输入格式:

输入第一行给出正整数$n(\lt 10)$,随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。

输出格式:

在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。

输入样例:

1
2
3
4
5
6
7
3
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25.0

输出样例:

1
2
25.00, Programming in Delphi
18.50, Programming in VB
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×