C/C++笔试必须熟悉掌握的头文件系列(二)——math.h/cmath

来源:互联网 发布:linux服务器系统占有率 编辑:程序博客网 时间:2024/06/05 19:12

1. 说明

  “math.h”是C语言中数学函数库,包含我们常用的一些数学计算上会使用到的函数。C++中有对应相同作用的头文件“cmath”,当然C++中两个头文件都可以使用,C++向C兼容。

2. 笔试必掌握的内容

  关于数学函数的内容有很多,需要注意使用的地方就是,输入参数绝大多数要求的是double双浮点类型。所以切记使用的条件:

double dRel;int a =10;dRel = sqrt(a);         //错误,sqrt输入参数要求是double类型dRel = sqrt((double)a); //正确
  • 1
  • 2
  • 3
  • 4

  面试中常会使用的主要有以下几个:
  double log (double);      以e为底的对数
  double log10 (double);    以10为底的对数
  double pow(double x,double y);计算x的y次幂
  double exp (double);     求取自然数e的幂
  double sqrt (double);     开平方
  int   abs(int i);       求整型的绝对值
  double fabs (double);     求实型的绝对值

3. 包含的函数接口

1、 三角函数
  double sin(double);正弦
  double cos(double);余弦
  double tan(double);正切
2 、反三角函数
  double asin (double); 结果介于[-PI/2,PI/2]
  double acos (double); 结果介于[0,PI]
  double atan (double); 反正切(主值),结果介于[-PI/2,PI/2]
  double atan2 (double,double); 反正切(整圆值),结果介于[-PI,PI]
3 、双曲三角函数
  double sinh (double);
  double cosh (double);
  double tanh (double);
4 、指数与对数
  double frexp(double value,int *exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2^exp。其中f取值在0.5~1.0范围或者0。
  double ldexp(double x,int exp);这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2^exp
  double modf(double value,double *iptr);拆分value值,返回它的小数部分,iptr指向整数部分。
  double log (double); 以e为底的对数
  double log10 (double);以10为底的对数
  double pow(double x,double y);计算x的y次幂
  float powf(float x,float y); 功能与pow一致,只是输入与输出皆为单精度浮点数
  double exp (double);求取自然数e的幂
  double sqrt (double);开平方
5 、取整
  double ceil (double); 取上整,返回不比x小的最小整数
  double floor (double); 取下整,返回不比x大的最大整数,即高斯函数[x]
6 、绝对值
  int abs(int i); 求整型的绝对值
  double fabs (double);求实型的绝对值
  double cabs(struct complex znum);求复数的绝对值
7 、标准化浮点数
  double frexp (double f,int p); 标准化浮点数,f = x 2^p,已知f求x,p (x介于[0.5,1])
  double ldexp (double x,int p); 与frexp相反,已知x,p求f
8 、取整与取余
  double modf (double,double*); 将参数的整数部分通过指针回传,返回小数部分
  double fmod (double,double); 返回两参数相除的余数
9 、其他
  double hypot(double x,double y);已知直角三角形两个直角边长度,求斜边长度
  double ldexp(double x,int exponent);计算x*(2的exponent次幂)
  double poly(double x,int degree,double coeffs []);计算多项式
  int matherr(struct exception *e);数学错误计算处理程序 


个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!

转载:CSDN 无鞋童鞋。http://blog.csdn.net/fx677588/article/details/52962798

阅读全文
0 0
原创粉丝点击