第11章 数学函数库:math.h 数学函数是对数据进行计算时常用的函数,也是程序设计中最为常用的操作之一。每个函数都有自己所需的头文件,C语言提供数学运算的函数库为math.h。 11.1 abs()——整数绝对值函数 abs()函数

    实用程度:★★★★☆

    实例位置:配套资源\SL\11\01

    abs()函数用于求整数的绝对值。

    语法

    intabs( int x) ;

    abs()函数的语法参数说明如下:

    参数x为整型数。

    abs()函数的返回值:参数x的绝对值。

    示例

    本示例演示从键盘上输入任意一个整数,使用abs()函数求出输入整数的绝对值,并在屏幕中显示出结果。其具体代码如下:

    img465

    运行结果如图11.1所示。

    img466

    图11.1 使用abs()函数求出整数的绝对值 11.2 acos()——反余弦值函数 acos()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\02

    acos()函数用于取给定值的反余弦值。

    语法

    double acos ( double x ) ;

    acos()函数的语法参数说明如下:

    参数x为要取反余弦的双精度数。

    acos()函数的返回值:给定值的反余弦值。

    示例

    本示例演示从键盘上输入任意一个双精度实数,使用acos()函数求出输入数值的反余弦值,并在屏幕中显示出结果。其具体代码如下:

    img467

    运行结果如图11.2所示。

    img468

    图11.2 求出输入数值的反余弦值 11.3 asin()——反正弦值函数 asin()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\03

    asin()函数用于求出给定值的反正弦值。

    语法

    double asin( double x ) ;

    asin()函数的语法参数说明如下:

    参数x为要取反正弦的双精度数。

    asin()函数的返回值:给定值的反正弦值。

    示例

    本示例演示从键盘上输入任意一个双精度实数,使用asin()函数求出输入数值的反正弦值,并在屏幕中显示出结果。其具体代码如下:

    img469

    运行结果如图11.3所示。

    img470

    图11.3 求出输入数值的反正弦值 11.4 atan()——反正切值函数 atan()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\04

    atan()函数用于求出给定值的反正切值。

    语法

    double atan( double x ) ;

    atan()函数的语法参数说明如下:

    参数x为双精度弧度值。

    atan()函数的返回值:给定值的反正切值。

    示例

    本示例演示从键盘上输入任意一个双精度实数,使用atan()函数求出输入数值的反正切值,并在屏幕中显示出结果。其具体代码如下:

    img471

    运行结果如图11.4所示。

    img472

    图11.4 求出输入数值的反正切值 11.5 atan2()——X/Y反正切函数 atan2()函数

    实用程度:★★☆☆☆

    实例位置:配套资源\SL\11\05

    atan2()函数用于求x/y的反正切值。

    语法

    double atan2 ( double x , double y ) ;

    atan2()函数的语法参数说明如下:

    参数x为双精度弧度值。

    参数y为双精度弧度值。

    atan2()函数的返回值:x和y商的反正切值。

    示例

    本示例演示用atan2()函数求出x和y商的反正切值,并在屏幕中显示出计算后的结果。其具体代码如下:

    img473

    运行结果如图11.5所示。

    img474

    图11.5 求出x和y商的反正切值 11.6 ceil()——不小于某数的最小整数函数 ceil()函数

    实用程度:★★☆☆☆

    实例位置:配套资源\SL\11\06

    ceil()函数用于求出不小于某数的最小整数。

    语法

    double ceil ( double x ) ;

    ceil()函数的语法参数说明如下:

    参数x表示要取整的双精度浮点数。

    ceil()函数的返回值:一个不小于给定值的最小整数。

    示例

    本示例演示用ceil()函数实现下面的功能:从键盘中输入一个数,求出不小于该数的最小整数。其具体代码如下:

    img475

    运行结果如图11.6所示。

    img476

    图11.6 求出不小于该数的最小整数 11.7 cos()——余弦值函数 cos()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\07

    cos()函数用于获取给定值的余弦值。

    语法

    double cos ( double x ) ;

    cos()函数的语法参数说明如下:

    参数x为要取余弦值的双精度浮点数。

    cos()函数的返回值:给定值的余弦值。

    示例

    本示例演示从键盘上输入任意一个整数,使用cos()函数求出输入整数的余弦值,并在屏幕中显示出结果。其具体代码如下:

    img477

    运行结果如图11.7所示。

    img478

    图11.7 求出输入整数的余弦值 11.8 cosh()——双曲余弦值函数 cosh()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\08

    cosh()函数用于求出给定值的双曲余弦值。

    语法

    double cosh ( double x ) ;

    cosh()函数的语法参数说明如下:

    参数x为要求出双曲余弦值的双精度浮点数。

    cosh()函数的返回值:给定值的双曲余弦值。

    示例

    本示例演示从键盘上输入任意一个双精度实数,使用cosh()函数求出输入数值的双曲余弦值,并在屏幕中显示出结果。其具体代码如下:

    img479

    运行结果如图11.8所示。

    img480

    图11.8 求出输入数值的双曲余弦值 11.9 exp()——e的次幂函数 exp()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\09

    exp()函数用于求双精度数的指数函数值。

    语法

    double exp( double x ) ;

    exp()函数的语法参数说明如下:

    参数x为要求指数的双精度数。

    exp()函数的返回值:双精度数的指数函数值。

    示例

    本示例演示用exp()函数求m的双精度数的指数函数值。其具体代码如下:

    img481

    img482

    运行结果如图11.9所示。

    img483

    图11.9 求m的双精度数的指数函数值 11.10 fabs()——浮点数绝对值函数 fabs()函数

    实用程度:★★★★☆

    实例位置:配套资源\SL\11\10

    fabs()函数的功能是求浮点数的绝对值。

    语法

    double fabs ( double x ) ;

    fabs()函数的语法参数说明如下:

    参数x为要求绝对值的浮点数。

    fabs()函数的返回值:双精度实数的绝对值。

    示例

    本示例演示从键盘上输入任意一个双精度实数,使用fabs()函数求出输入双精度实数的绝对值,并在屏幕中显示出结果。其具体代码如下:

    img484

    运行结果如图11.10所示。

    img485

    图11.10 求出输入双精度实数的绝对值 11.11 floor()——不大于某数的最大整数函数 floor()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\11

    floor()函数用于求不大于x的最大整数。

    语法

    double floor( double x ) ;

    floor()函数的语法参数说明如下:

    参数x为双精度数。

    floor()函数的返回值:不大于x的最大整数。

    示例

    本示例演示用floor()函数求出不大于输入数值的最大整数,并在屏幕中显示出计算后的结果。其具体代码如下:

    img486

    运行结果如图11.11所示。

    img487

    图11.11 求出不大于输入数值的最大整数 11.12 fmod()——余数函数 fmod()函数

    实用程度:★★☆☆☆

    实例位置:配套资源\SL\11\12

    fmod()函数用于求出x/y的余数。

    语法

    double fmod ( double x , double y ) ;

    fmod()函数的语法参数说明如下:

    参数x为双精度数。

    参数y为双精度数。

    fmod()函数的返回值:x/y的余数。

    示例

    本示例演示用fmod()函数求出x和y商的余数,并在屏幕中显示出计算后的结果。其具体代码如下:

    img488

    运行结果如图11.12所示。

    img489

    图11.12 求出x和y商的余数 11.13 frexp()——计算浮点数尾数和指数函数 frexp()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\13

    frexp()函数用于把一个双精度数分解为尾数的指数。

    语法

    double frexp ( double x , int *eptr ) ;

    frexp()函数的语法参数说明如下:

    参数x为要进行分解的双精度浮点数。

    参数eptr为指针类型的形参。

    frexp()函数将给定的双精度数分解为数字部分和以2为底的指数n,即x=m*2n,n存储在eptr所指向的变量中。

    示例

    本示例演示用frexp()函数实现对浮点数72.0进行分解,使其以72.0=x*2eptr形式输出到屏幕上。其具体代码如下:

    img490

    运行结果如图11.13所示。

    img491

    图11.13 使用frexp()函数实现对浮点数72.0进行分解 11.14 hypot()——计算直角三角形斜边长度函数 hypot()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\14

    hypot()函数用于求直角三角形斜边长度。

    语法

    double hypot( double x, double y );

    hypot()函数的语法参数说明如下:

    参数x为直角三角形直角边。

    参数y为直角三角形直角边。

    hypot()函数的返回值:直角三角形斜边的长度。

    示例

    本示例演示根据给定三角形的两个直角边长,使用hypot()函数求出该直角三角形的斜边长度,并在输出窗体中显示出结果。其具体代码如下:

    img492

    运行结果如图11.14所示。

    img493

    图11.14 求出直角三角形的斜边长度 11.15 labs()——长整型绝对值函数 labs()函数

    实用程度:★★★★☆

    实例位置:配套资源\SL\11\15

    labs()函数用于求长整型参数x的绝对值。

    语法

    long labs ( long x );

    labs()函数的语法参数说明如下:

    参数x为长整型。

    labs()函数的返回值:参数的绝对值。

    示例

    本示例演示从键盘上输入任意一个长整型数值,使用labs()函数求出输入数值的绝对值,并在输出窗体中显示出结果。其具体代码如下:

    img494

    运行结果如图11.15所示。

    img495

    图11.15 求长整型数的绝对值 11.16 ldexp()——计算幂函数 ldexp()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\16

    ldexp()函数用于计算指定的(2^ exp)倍数。

    语法

    double ldexp( double x, int exp );

    ldexp()函数的语法参数说明如下:

    参数x为双精度。

    参数exp为2的整型指数。

    ldexp()函数的返回值:x*(2^ exp)的结果。

    示例

    本示例演示了ldexp()函数的使用,采用该函数计算用户输入数值的(2^ exp)倍数。首先需要定义两个变量,然后获取用户输入的数值,最后计算该数值的(2^ exp)倍数,并输出结果。其具体代码如下:

    img496

    运行结果如图11.16所示。

    img497

    图11.16 使用ldexp()函数计算指定的(2^ exp)倍数 11.17 log()——自然对数函数 log()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\17

    log()函数用于求自然对数。

    语法

    double log( double x );

    log()函数的语法参数说明如下:

    参数x为双精度数。

    log()函数的返回值:参数的自然对数值。

    示例

    本示例演示用log()函数求3和40的自然对数,并在屏幕中显示出计算后的结果。其具体代码如下:

    img498

    运行结果如图11.17所示。

    img499

    图11.17 使用log()函数求3和40的自然对数 11.18 log10()——对数函数 log10()函数

    实用程度:★★☆☆☆

    实例位置:配套资源\SL\11\18

    log10()函数是计算指定数值的以10为底的对数。

    语法

    double log10 ( double x );

    log10()函数的语法参数说明如下:

    参数x为双精度数。

    log10()函数的返回值:以10为底的参数的对数值。

    示例

    本示例演示用log10()函数求以10为底的40的对数,并在屏幕中显示出计算后的结果。其具体代码如下:

    img500

    运行结果如图11.18所示。

    img501

    图11.18 使用log10()函数求以10为底的40的对数 11.19 modf()——取浮点数小数部分函数 modf()函数

    实用程度:★★☆☆☆

    实例位置:配套资源\SL\11\19

    modf()函数用于求双精度数的小数部分。

    语法

    double modf( double x, double *intptr );

    modf()函数的语法参数说明如下:

    参数x为双精度数。

    参数intptr为回传整数部分的变量指针。

    modf()函数的返回值:x的小数部分。

    示例

    本示例演示用modf()函数求出3.1415的小数部分,并在屏幕中显示出结果。其具体代码如下:

    img502

    img503

    运行结果如图11.19所示。

    img504

    图11.19 求出3.1415的小数部分 11.20 pow()——计算x的y次幂函数 pow()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\20

    pow()函数用于求出x的y次幂的值。

    语法

    double pow ( double x, double y );

    pow()函数的语法参数说明如下:

    参数x为双精度数。

    参数y为双精度数。

    pow()函数的返回值:x的y次幂的值。

    示例

    本示例演示用pow()函数计算出a的b次幂,并在屏幕中显示出结果。其具体代码如下:

    img505

    img506

    运行结果如图11.20所示。

    img507

    图11.20 计算出a的b次幂 11.21 pow10()——计算10的x次幂函数 pow10()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\21

    pow10()函数用于计算给定数值10的指定次幂值。

    语法

    double pow10 ( int x ) ;

    pow10()函数的语法参数说明如下:

    参数x为要计算10的指定次幂。

    pow10()函数的返回值:10的指定次幂x的值。

    示例

    本示例演示用pow10()函数计算10的指定次幂值,并在屏幕中显示出结果。其具体代码如下:

    img508

    运行结果如图11.21所示。

    img509

    图11.21 使用pow10()函数计算10的指定次幂值 11.22 sin()——正弦值函数 sin()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\22

    sin()函数用于计算给定值的正弦值。

    语法

    double sin ( double x ) ;

    sin()函数的语法参数说明如下:

    参数x为要求正弦的双精度数。

    sin()函数的返回值:给定值的正弦值。

    示例

    本示例演示从键盘上输入任意一个双精度实数,使用sin()函数求出输入数值的正弦值,并在屏幕中显示出结果。其具体代码如下:

    img510

    运行结果如图11.22所示。

    img511

    图11.22 求出输入数值的正弦值 11.23 sinh()——双曲正弦值函数 sinh()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\23

    sinh()函数用于求出指定值的双曲正弦值。

    语法

    double sinh ( double x ) ;

    sinh()函数的语法参数说明如下:

    参数x为要计算双曲正弦值的双精度数。

    sinh()函数的返回值:给定值的双曲正弦值。

    示例

    本示例演示从键盘上输入任意一个双精度实数,使用sinh()函数求出输入数值的双曲正弦值,并在屏幕中显示出结果。其具体代码如下:

    img512

    运行结果如图11.23所示。

    img513

    图11.23 求出输入数值的双曲正弦值 11.24 sqrt()——平方根函数 sqrt()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\11\24

    sqrt()函数用于计算给定值的平方根。

    语法

    double sqrt ( double x ) ;

    sqrt()函数的语法参数说明如下:

    参数x为要取平方根的双精度数。

    sqrt()函数的返回值:给定值的平方根。

    示例

    本示例演示用sqrt()函数求出指定值的平方根,并在屏幕中显示出计算后的结果。其具体代码如下:

    img514

    运行结果如图11.24所示。

    img515

    图11.24 使用sqrt()函数求出指定值的平方根 11.25 tan()——正切值函数 tan()函数

    实用程度:★★★★☆

    实例位置:配套资源\SL\11\25

    tan()函数用于求出给定值的正切值。

    语法

    double tan( double x ) ;

    tan()函数的语法参数说明如下:

    参数x为要计算正切值的双精度浮点数值。

    tan()函数的返回值:给定值的正切值。

    示例

    本示例演示从键盘上输入任意一个双精度实数,使用tan()函数求出输入数值的正切值,并在屏幕中显示出结果。其具体代码如下:

    img516

    运行结果如图11.25所示。

    img517

    图11.25 求出输入数值的正切值 11.26 tanh()——双曲正切值函数 tanh()函数

    实用程度:★★☆☆☆

    实例位置:配套资源\SL\11\26

    tanh()函数用于求出双曲正切值函数。

    语法

    double tanh ( double x ) ;

    tanh()函数的语法参数说明如下:

    参数x为要计算双曲正切值的双精度浮点数值。

    tanh()函数的返回值:给定值的双曲正切值。

    示例

    本示例演示用tanh()函数计算出给定值的双曲正切值,并在屏幕中显示出计算后的结果。其具体代码如下:

    img518

    运行结果如图11.26所示。

    img519

    图11.26 计算出给定值的双曲正切值