2
数学函数
GESP 二级 · 知识点 8

🧮 数学函数

abs 求绝对值、sqrt 开平方、max/min 比大小、rand 掷骰子!这些现成的「数学小工具」藏在 <cmath> 里,拿来就能用。

考纲知识点:绝对值函数:abs()
平方根函数:sqrt()
最大值函数:max()
最小值函数:min()
随机数函数:rand()/srand()及相关
📖
考纲 · 知识点详述
摘自《CCF编程能力等级认证 C++&Python 认证标准》C++ 二级
  1. (9)掌握常用的数学函数:绝对值函数、平方根函数、最大值函数、最小值函数、随机数函数理解相应的算法原理。
📚
先学一学
花 5 分钟读完下面 5 课,再去闯关就不慌啦
1
📏 绝对值 abs 与平方根 sqrt

C++ 自带数学函数(用前先 #include <cmath>)。先认识两个最常用的:

🌟 小发现:abs(i) 当条件
while (abs(i))while (i != 0) 效果一样——i 非 0 时 abs(i) 也非 0(真),i 为 0 时 abs(i) 也是 0(假)。(真题判断:正确)
💡 口诀:abs 不问方向,sqrt 开平方;abs(i)≠0 等价于 i≠0。
⚠️ 浮点比较:别用 == 直接比
判断两个实数 a、b 是否「相等」,要看差够不够小:abs(a - b) <= 1e-6(差不超过一百万分之一就算相等)。直接用 a == b 会因浮点误差出错(真题:选 abs(a-b)<=1e-6)。
💡 口诀:浮点别用 ==,用 abs(a-b)<=1e-6。
2
🔼 最大值 max 与最小值 min
🌟 小发现
如果 max(a,b)min(a,b) 相等,说明这两个数一样大(a = b)。(真题判断:正确)
💡 口诀:max 挑大、min 挑小;max=min 说明两数相等。
🆚 易混对比:max/min 与 abs
· max/min 是「两个数比大小」,挑出更大/更小那个。
· abs 是「一个数去符号」,看离 0 多远。
别把 max(-7, 3)(=3)和 abs(-7)(=7)搞混。
💡 口诀:max/min 比两数,abs 管一个数。
3
🧰 取整家族与幂函数

除了 abs/sqrt,还有一组常用的「取整」和「幂」函数(都在 <cmath> 里):

🆚 易混对比:floor / ceil / round 三兄弟
对 3.7:floor 往小取=3,ceil 往大取=4,round 四舍五入=4。正数好懂,负数要小心:floor(-2.3) 往更小取是 -3(不是 -2)。
💡 口诀:floor 向下、ceil 向上、round 四舍五入;pow 是乘方。
4
📐 三角函数:sin / cos / tan

数学函数里还有一族三角函数(都在 <cmath> 里),做图形和动画特别有用:

📝 跟着算一算
sin(0) = 0
cos(0) = 1
sin(π/2) ≈ 1 (π≈3.14159)
弧度 = 角度 × π / 180。想算 30° 的正弦要先转成 30×π/180。
💡 口诀:sin/cos/tan 用弧度;角度先乘 π/180 再算。
🌟 行业实际:游戏与动画离不开它
超级玛丽跳跃的抛物线、植物大战僵尸里豌豆的飞行角度、屏幕上的旋转和波浪效果,背后都是 sin/cos/tan 在算坐标。你玩的每一款游戏,都在悄悄调用三角函数!
💡 口诀:动画旋转靠三角,游戏世界它的舞台。
5
🎲 随机数 rand/srand 与完全平方数
⚠️ 范围公式
rand() % n + m 得到的是 m ~ (m + n - 1) 的整数(n 是「个数」,m 是「起点」)。如 rand() % 10 + 1 → 1~10,rand() % 6 + 1 → 1~6(真题:选 rand()%10+1)。
💡 口诀:rand()%n+m → 范围 [m, m+n-1];想换花样先 srand 播种子。
□ 完全平方数:sqrt 取整平方回原值
一个数开平方后恰好是整数的,叫完全平方数。判断法:int(sqrt(n)) 取整后平方,看是否等于 n。如 sqrt(16)=4、4×4=16 → 是(真题判断:正确);int(sqrt(15))=3、3×3=9≠15 → 不是(真题判断:错误)。
💡 口诀:完全平方数 = sqrt 取整后平方回原值(16 是、15 不是)。
🎯
闯关小锦囊 · 考点提醒
🎮
学完了?来闯关!
下面 14 个小挑战,点一点就能玩

Demo 原型 · 每个知识点独立页面 · 暂不含真实编译与进度存储。