LESSON_2级_05_数学函数(课件)

2025-07-10
| 31页
| 53人阅读
| 0人下载
普通

内容正文:

CCF-GESP C++二级 CCF-GESP C++二级 编程能力等级认证 1 数学函数 数学函数 第五课 2 常用的数学函数 01 01 绝对值函数 abs() 平方根函数 sqrt() max函数 min函数 随机数函数rand(),srand() 3 数学函数 头文件中<cmath> 或 <math.h>声明了很多函数来执行数学运算 数学函数 作用 abs() 计算一个数的绝对值 pow() 计算幂 sqrt() 计算数字的平方根 知识讲解 在编写C++程序时,我们有些时候会使用一些数学函数来帮我们进行一些数学运算。数学函数也是C++种函数的一种,一般都在头文件<cmath>或者<math.h>中。(cmath是C++风格的头文件,math.h是C风格的头文件,两个头文件写哪个都可以)。这里我们讲解三个<cmath>头文件中提供的数学函数。 1、abs函数,它的作用是计算一个数的绝对值 2、pow函数,它的作用是计算幂 3、sqrt函数,它的作用是计算数字的平方根 4 判断题 (2023年6月)在使用C++语言编写程序时,不能使用sqrt、abs等数学函数,包含<cmath>或<math.h>头文件后就能够使用了。 正确 错误 真题解析 解析:本题考查C++语言中的头文件,包含<cmath>或<math.h>头文件后,可以使用sqrt、abs等数学函数,所以本题正确。 5 绝对值 绝对值:指一个数在数轴上所对应点到原点的距离 0 -1 1 2 3 -3 -2 -4 4 5 -5 1 1 原点 -1 1 1 1 绝对值 绝对值 -4 4 绝对值 4 4 绝对值 知识讲解 这里我们先来讲解求绝对值的函数,首先需要知道什么是绝对值。 绝对值是指一个数,在数轴上所对应的点到原点的距离。如下是一个数轴,0为原点,其余每个店都代表一个整数。例如:-1到原点的距离是1,所以-1的绝对值就是1,1到原点的距离也是1,所以1的绝对值也是1。再举个例子,-4到原点的距离是4,所以-4的绝对值就是4,4到原点的距离也是4。 6 求绝对值函数 abs(-2); abs(2); abs(-3.14); abs(3.14); 2 2 3.14 作用: 计算一个数(整数、小数)的绝对值。 语法格式: abs(x) 说明:abs函数的返回值类型与传入的参数类型相同 3.14 知识讲解 <cmath>头文件中提供的abs函数就是求绝对值的函数,它的作用就是计算一个数的绝对值,这个数可以是整数或者是小数。 例如:abs(-2)的结果为2,abs(2)的结果也是2。-2和2的绝对值都是2。 abs(-3.14)的结果是3.14,abs(3.14)的结果是3.14。-3.14和3.14的绝对值都是3.14。 7 选择题 如下哪个函数是计算一个数的绝对值( )。 sqrt abs min pow B 课堂练习 解析:选项A,sqrt函数是开平方函数,选项B,abs是求一个数的绝对值,选项C,min函数是计算两个数中的较小值,选项D,pow函数是计算x的y次幂。因此本题正确的选项为B。 8 选择题 假设 j=4,下面哪个选项是 abs(4j-5) 的结果( ) 11 -1 1 0 A 课堂练习 解析:j为4时,4j的结果为16,16-5的结果为11,11的绝对值就是11,所以本题的正确选项为A。 9 幂函数 作用: 计算x(底数)的y(指数)次幂。 语法格式: pow(x,y) 说明:pow()函数返回值为double类型 23 底数 指数 pow(2,3); 8 pow(4,2); 16 pow(3,3); 27 2×2×2 8 知识讲解 幂函数: pow函数就是幂函数,幂函数的作用就是计算x的y次幂,其中x是底数,y是指数。例如:求2的3次幂(也就是2×2×2,结果为8),其中2是底数,3是指数。 使用pow计算2的3次幂,需要在第一个参数的位置传入底数2,第二个参数的位置传入指数3,计算得到的结果为8。 还可以使用pow计算4的2次幂,4为底数,2为指数,也就是pow(4,2),计算的结果为16。 另外还可以使用pow计算3的3次幂,也就是pow(3,3)计算的结果为27。 10 选择题 与数学表达式 xn ÷ (2x - 1) 对应的C++语言表达式是( )。 xn / (2 * x - 1) x ** n / (2 * x - 1) pow(x, n) / (2 * x - 1) pow(n, x) / (2 * x - 1) C 课堂练习 解析:本题的数学表达式为xn/(2x-1)是求x的n次幂,除2x-1的结果。选项A:xn写法是错误的,选项B:C++中没有**运算符,选项C,pow(x,n)计算的是x的n次幂,选项D,pow(n,x)计算的是n的x次幂。所以本题的选项应该是C。 11 求平方根函数 作用: 计算一个数(整数,小数)的平方根。 语法格式: sqrt(x) 说明:sqrt()函数返回值为double类型 sqrt(4); 2 sqrt(9); 3 sqrt(81); 9 22 4 32 9 4的平方根 9的平方根 知识讲解 求平方根函数: sqrt函数是求平方根函数,它的作用就是计算一个数的平方根,可以是整数,可以是小数,先来看看什么是平方根。 例如:2的平方,结果是4。那么2就是4的平方根,3的平方,结果是9。那么3就是9的平方根。 使用sqrt计算一个数的平方根: 例如:计算4的平方根,sqrt(4)结果为2;计算9的平方根,sqrt(9)结果为3;计算81的平方根,sqrt(9)的结果是9。 12 (2023年6月)表达式sqrt(9.0)的计算结果为3,且结果类型为int。 判断题 正确 错误 真题解析 解析:本题考察常用数学函数中的sqrt函数,该函数的返回值类型为double,所以本题错误。 13 选择题 (2023年12月)以下C++代码用于输出1-100(含)的整数平方数(完全平方数),如16是4的平方,横线处应填写( ) C int(sqrt(i)) * int(sqrt(i)) = i int(sqrt(i)) == sqrt(i) int(sqrt(i)) * int(sqrt(i)) == i int(sqrt(i)) = sqrt(i) for(int i=1; i<100+1; i++)         if(__________________________)//此处填写代码             cout<<i<<" "; 真题解析 解析:本题考察常用数学函数中的sqrt函数,判断一个数是否是平方数,可以先计算它的平方根,之后将计算的结果相乘,验证这个结果是否等于该数字,如果等于则证明该数是平方数,如果不等于则证明不是。因为sqrt计算平方根的结果是小数,所以需要使用强制转换成整数。因此本题正确答案为C。 14 其他常用的函数 02 02 15 随机数函数 作用:返回一个 0~RAND_MAX 之间的整数。 (RAND_MAX 最小是 32767 ) 语法格式:rand() 说明:所在头文件<cstdlib> cout<< rand(); 3 3 3 多次运行结果相同 知识讲解 随机数函数就是rand()函数,rand函数不需要任何参数,它会返回一个从0到RAND_MAX的任意整数(RAND_MAX 最小是 32767)注意生成的随机数字是一个整数,而且生成每个整数的概率是相同的。这个函数使用的头文件是cstdlib,所以在使用该函数时需要先导入<cstdlib>。 例如:使用rand函数生成一个随机整数,使用cout输出该整数,是一个整数3。当多次运行该代码,我们会发现,多次运行生成的随机数字是相同的。这是由于rand函数内部的算法生成的并不是真的随机数。 16 srand()函数设置随机种子 srand(time(0)); cout<< rand(); 3 0 4 srand() 作用:设置随机种子,根据不同参数可以产生不同的种子,令rand()每次生成的随机整数不同。 参数:一般传入time(0),返回值为1970年1月1日至今所经历的时间。 使用 rand() 函数之前 多次运行结果不同 知识讲解 若想要每次生成不同的随机数,需要调用此函数产生随机数前,必须先利用 srand()设置好随机数种子。种子不同,rand函数每次生成的随机数也就不同。 srand()函数就是用于设置随机种子,它的参数必须是一个整数。根据不同的输入参数可以产生不同的种子,这样rand()所产生的随机数值每次就会不一样。因此通常会将time(0)作为srand()函数的参数,time(0) 的返回值为1970年1月1日至今所经历的时间,这样根据调用的时间不同,生成的随机数也就不同了。需要注意的是:srand()函数必须使用 rand() 函数之前,并且在整个程序中只需被调用一次。在rand函数之前使用srand()函数,多次运行之后会发现生成的随机整数是不同的。 17 生成指定范围内的随机整数 语法格式: a + rand() % (b-a+1) 起始值 终止值 //生成0~4之间的整数 0 + rand()% (4-0+1); //生成1~5之间的整数 1 + rand()% (5-1+1); //生成5~10之间的整数 5 + rand()% (10-5+1); 3 5 5 + rand()% 6; 简写 8 生成指定范围(a~b)内的一个随机整数 简写 简写 rand()% 5; 1 + rand()% 5; 知识讲解 在实际应用中,通常需要要将随机数的范围限制,例如:我们需要生成一个a~b范围内的随机整数。想要利用rand生成指定范围内的随机整数,语法格式为:a + rand() % (b-a+1)其中,a是范围的起始值,b是范围的终止值。 例如:现在生成0~4之间的整数,rand()% 5;可以生成一个整数3。 生成1~5之间的整数,1+rand()%5,可以生成一个整数5。 生成5~10之间的整数,5 + rand()% (10-5+1);可以简写成5 + rand()% 6;这样可以随机生成一个整数8. 18 判断题 (2023年12月)在C++代码中,执行 srand(0) 后连续两次执行 rand() 的结果相等。 正确 错误 真题解析 解析:rand()函数是随机生成一个整数,一个程序中,执行两次rand()生成的数字不一定相同。srand(0)中设置的随机种子无法控制一个程序中两个rand()函数生成的数字相同。所以题目说法错误。 19 选择题 如下选项中,哪个能随机生成4~25之间的一个整数( )。 4 + rand( ) % 25 4 + rand( ) % (25-4) 4 + rand( ) % 22 rand( ) % (25-4+1) C 课堂练习 解析:若想是生成a~b之间的随机一个整数,公式为:a+rand()%(b-a+1)。生成4~25之间的随机整数,4+rand()%(25-4+1),可以简写为4+rand()%22。因此本题正确的选项为C。 20 选择题 在使用rand()函数时需要导入以下哪个头文件( )。 <cmath> <math.h> <algorithm> <cstdlib> D 课堂练习 解析:在使用rand函数时,需要导入的是cstdlib头文件。所以本题正确的选项为D。 21 补全横线处的代码,令程序能够生成10个1~1000之间的整数,要求每次随机生成的数字不同( )。 选择题 #include <iostream> #include <cstdlib> using namespace std; int main(){     __________//此处填写代码     for(int i=1; i<=10; i++){         int a=1+rand()%1000;         cout<<a<<" ";     }     return 0; } srand(time(0)); srand(1); srand(0); srand(); A 课堂练习 解析:若想要每次生成的随机数不同,则需要使用srand函数设置随机种子,在参数中可以传入time(0)返回当前时间。所以本题正确的选项为A。 22 判断勾股数 【问题描述】 勾股数是很有趣的数学概念。如果有三个正整数a、b、c,满足a2+b2=c2,而且1≤a≤b≤c,我们就将a、b、c构成的一组数称为勾股数。你能通过编程,判断输入的三个数是否为勾股数么? 【输入描述】 输入一行,包含三个正整数a,b,c,每个数字之间使用一个空格分隔。 (1≤a≤b≤c≤100) 【输出描述】 是勾股数则输出"YES",不是则输出"NO"。 【输入样例1】 3 4 5 【输出样例1】 YES 【输入样例2】 6 10 23 【输出样例2】 NO 课堂练习 23 思路分析 输入三个正整数(1≤a≤b≤c≤100)。 int a,b,c; cin>>a>>b>>c; 判断a、b、c能否构成一组勾股数。 if(pow(a,2)+pow(b,2)==pow(c,2))         cout<<"YES"; else         cout<<"NO"; 勾股数成立条件:a2+b2=c2 课堂练习 【完整代码】 #include <iostream> #include <cmath> using namespace std; int main(){     int a,b,c;     cin>>a>>b>>c;     if(pow(a,2)+pow(b,2)==pow(c,2))         cout<<"YES";     else         cout<<"NO";     return 0; } 提供pow函数 课堂练习 完整代码 25 作用: 计算两个数(整数、小数、字符)中较大的数。 语法格式: max(x, y) 说明:1) x和y必须是同一类型的数据。 2) max函数的返回值类型与传入的参数类型相同。 3) 所在头文件<algorithm> max函数 max(5,10); max(3.14,5.8); max('A','C'); 10 5.8 'C' 比较ASCII码值 知识讲解 系统函数max。它的作用是计算两个数中的较大数,语法格式为:max(x,y)。系统函数max可以用于整数、小数或者是字符。但是在使用max函数的过程中需要注意,传入的两个参数必须是同一个数据类型。另外max函数所在的头文件并不是<camth>而是<algorithm>头文件 例如:找出两个整数中的较大数,max(5,10)的结果为10。找出两个小数中的较大数:max(3.14, 5.8),结果为5.8。 找出两个字符中较大的字符,max('A','C'),此时比较的是字符的ASCII码值,因此输出结果为'C'。 26 5 3.14 'A' 作用: 计算两个数(整数、小数、字符)中较小的数。 语法格式: min(x, y) 说明:1)x和y必须是同一类型的数据。 2) min函数的返回值类型与传入的参数类型相同。 3)所在头文件<algorithm> min(5,10); min(3.14,5.8); min('A','C'); min函数 知识讲解 系统函数min。它的作用是计算两个数中的较小数,语法格式为:min(x,y)。该函数可以用于整数、小数或者是字符。 例如:找出两个整数中的较大数,max(5,10)的结果为10。找出两个小数中的较大数:max(3.14, 5.8),结果为5.8。 找出两个字符中较大的字符,max('A','C'),此时比较的是字符的ASCII码值,因此输出结果为'C'。 27 判断题 现有一行代码:cout<<max(10, 20.5); 这行代码输出的结果是20.5。 正确 错误 课堂练习 解析:max函数中传入的两个参数必须是同一个类型,题目中max函数中传入的10是int类型,20.5为double类型,程序会报错,因此本题的说法是错误的。 28 判断题 现要求使用min函数找出a、b、c三个变量中的较小值,可以通过cout<<min(min(a,b),c);这行代码来实现。 正确 错误 课堂练习 解析:min函数的返回值是两个数的较小值,可以将该值作为min函数的一个参数,与另外一个参数做比较。因此min(min(a,b),c)可以找出三个变量中的较小值。因此这种说法是正确的。 29 选择题 在使用min函数时需要导入以下哪个头文件( )。 <cmath> <math.h> <algorithm> <iostream> C 课堂练习 解析:在使用min函数时需要导入的头文件是algorithm头文件,这是一个包含了很多算法的头文件,因此正确的选项为C。 30 感谢你的学习 31 $$

资源预览图

LESSON_2级_05_数学函数(课件)
1
LESSON_2级_05_数学函数(课件)
2
LESSON_2级_05_数学函数(课件)
3
LESSON_2级_05_数学函数(课件)
4
LESSON_2级_05_数学函数(课件)
5
LESSON_2级_05_数学函数(课件)
6
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。