C++的cmath库中有丰富的数学函数,通过这些函数可以进行相应的数学计算。
1 cmath库的导入
通过import指令导入cmath库,代码如图1所示。
图1 导入cmath库的代码
2 abs()函数
abs()函数用来获取指定数的绝对值,代码如图2所示。
图2 abs()函数的代码
从图2中可以看到,abs()函数可以对int、float和double等类型进行操作。
相关链接1 非负数的绝对值是它的本身,负数的绝对值是它的相反数。
3 sqrt()函数
sqrt()函数用来取指定数的平方根,返回值是非负数,代码如图3所示。
图3 sqrt()函数的代码
图3的第7-8行代码中可以看出,sqrt()函数可以对int、float和double类型进行操作;如果指定数是负数,第9行所示,此时输出的是“nan”,是“not a number”的简写,表示非数值的特殊值。
4 max()、min()函数
max()和min()函数用来获取两个数中的最大值和最小值,代码如图4所示。
图4 max()和min()函数的代码
从图4中可以看到,max()和min()函数可以对int、float和double类型进行操作。
注意1 max()和min()函数只能比较两个数,而不能比较两个以上的数字;
注意2 max()和min()函数比较的两个数的类型必须相同。
5 rand()函数
rand()函数的作用是产生0-32767之间的随机数,代码如图5所示。
图5 rand()函数的代码
图5中所示的代码通过for循环产生10个随机整数,结果如图6所示。
图6 10个随机整数
但是,每次重新运行图5所示的程序后,产生的都是图6所示的这10个随机数。要想每次运行程序产生不同的10个随机数,就需要通过srand()函数设置不同的“种子”,代码如图7所示。
相关链接2 不同的“种子”产生不同的随机数。
图7 srand()函数的代码
其中,第8行代码中,srand()函数的参数time(NULL)的作用是获取程序运行时的时间,因为每次运行程序的时间不同,因此“种子”也不同,产生的随机数也不同。
注意3 time()函数在ctime头文件中定义,运行图7所示的代码需要导入ctime。
6 真题解析
202409 判断题
答案:×
解析:rand()函数的作用是产生随机数,数值大小是随机的。
202403 判断题
答案:×
解析:sqrt()函数的作用是求指定数的平方根,abs()函数的作用是求指定数的绝对值,满足题目所说条件的数处理0之外,还有1。
202312 判断题
答案:×
解析:srand()函数的作用是设置种子,根据题意是设置种子后,调用rand()产生两个随机数,那么这两个随机数不相同,如果执行srand(0)后,执行rand()产生随机数a;之后再执行srand(0),再执行rand()产生随机数b,此时a和b相同。