6-1 通用对数函数(宏)
分数 5
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
C语言库函数只提供以 e 和 10 为底数的对数函数。我们自行设计一个以任意正实数 a 为底数、任意正实数 x 为真数的通用对数函数 logax。
函数原型
double LogA(double a, double x);
说明:参数 a 是底数,a>0 且 a=1,x 是真数(幂),x>0,函数值是对数(指数) logax。
请在空白处填写适当内容,用带参数的宏替换命令来实现相同的功能。
裁判程序
#include <stdio.h> #include <math.h> __________ int main() { double a, x, y; scanf("%lg%lg", &a, &x); y = LogA(a, x); printf("%g\n", y); return 0; }
注:裁判程序有很多,不止一个。
输入样例
0.49 0.16807
输出样例
2.5
#define LogA(a,b)(log(b)/log(a))
6-2 平方函数(宏)
分数 5
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
已知平方函数的原型如下:
函数原型
double Sqr(double x);
说明:参数 x 是任意实数,函数值为 x 的平方 x2。
请在空白处填写适当内容,用带参数的宏替换命令来实现相同的功能。
裁判程序
#include <stdio.h> __________ int main() { double a, b; scanf("%lg", &a); b = Sqr(a); printf("%g\n", b); return 0; }
注:裁判程序有很多,不止一个。
输入样例
-0.7
输出样例
0.49
要求:不要使用 C 标准库函数如 pow 等。
#define Sqr(x)((x)*(x))
6-3 立方函数(宏)
分数 5
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
已知立方函数的原型如下:
函数原型
double Cube(double x);
说明:参数 x 是任意实数,函数值为 x 的立方 x3。
请在空白处填写适当内容,用带参数的宏替换命令来实现相同的功能。
裁判程序
#include <stdio.h> __________ int main() { double a, b; scanf("%lg", &a); b = Cube(a); printf("%g\n", b); return 0; }
注:裁判程序有很多,不止一个。
输入样例
-0.3
输出样例
-0.027
要求:不要使用 C 标准库函数如 pow 等。
#define Cube(x)((x)*(x)*(x))
6-4 余切函数(宏)
分数 5
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
C语言库函数只提供正切函数 tanx,没有提供余切函数 cotx。我们用带参数的宏替换命令来实现它。
cotx=1/tanx
已知余切函数的原型如下:
double Cot(double x);
说明:参数 x 是任意角度的弧度,函数值为 x 的余切 cotx。
请在空白处填写适当内容,用带参数的宏替换命令来实现相同的功能。
裁判程序
#include <stdio.h> #include <math.h> __________ int main() { double a, b; scanf("%lg", &a); b = Cot(a); printf("%g\n", b); return 0; }
输入样例
0.7853981633974483
输出样例
1
注:裁判程序有很多,不止一个。
#define Cot(x)(1/tan(x))
6-5 绝对值函数(宏)*
分数 5
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
C 函数库中提供整数绝对值 abs 函数和实数绝对值 fabs 函数,函数声明如下:
函数原型
int abs(int x); double fabs(double x);
说明:函数值为参数 x 的绝对值 ∣x∣。
请在空白处填写适当内容,用带参数的宏替换命令来实现相同的功能,将上面两个函数合并为一个,并命名为 Abs。
裁判程序1
#include <stdio.h> __________ int main() { int a, b; double x, y; scanf("%d %lg", &a, &x); b = Abs(a); y = Abs(x); printf("%d %g\n", b, y); return 0; }
输入样例1
-5 -2.5
输出样例1
5 2.5
输入样例2
7 3.8
输出样例2
7 3.8
输入样例3
0 0
输出样例3
0 0
输入样例4
-0 -0
输出样例4
0 0
注:裁判程序有很多,不止一个。
特别提示:注意实数为 -0.0 和 0.0 的情况。
#define Abs(x)((x)>0?(x):(x)<0?-(x):0)
6-6 面积计算器(函数重载)
分数 10
全屏浏览题目
切换布局
作者 何振峰
单位 福州大学
实现一个面积计算器,它能够计算矩形或长方体的面积。
函数接口定义:
int area(int x, int y); int area(int x, int y, int z);
第一个函数计算长方形的面积,其中x和y是长和宽。第二个函数计算长方体的表面积,x,y和z是长,宽和高。
裁判测试程序样例:
#include<iostream> #include<string> using namespace std; int area(int,int); int area(int,int,int); int main() { int i, repeat, c, x, y, z; cin>>repeat; for(i=0;i<repeat;i++){ cin>>c; if(c==2){ cin>>x>>y; cout<<area(x,y)<<endl; } if(c==3){ cin>>x>>y>>z; cout<<area(x,y,z)<<endl; } } return 0; } /* 请在这里填写答案 */
输入样例:
1. 2 2. 2 1 2 3. 3 2 3 4
输出样例:
1. 2 2. 52
1. int area(int x, int y) 2. { 3. return x*y; 4. } 5. int area(int x, int y, int z) 6. { 7. return 2*(x*y+x*z+y*z); 8. }