Files
project1/第04课-C++自带函数与数学处理/教案-学生版.md

5.7 KiB
Raw Blame History

第1课C++自带函数

教学目标

  • 学会查阅和使用C++标准库自带函数
  • 掌握 <cmath><algorithm><cctype> 三个常用头文件
  • 能用自带函数解决计算问题,体会"站在巨人的肩膀上"

核心考点:正确选择并使用标准库函数

考什么

根据题目任务选择正确的________同时写对________、参数和返回值。

必须理解

调用函数要过三关它属于哪个________传入什么________返回什么________。

核心写法

#include <________>      // sqrt、pow
#include <________>      // max、min、swap

double ans = ________(x);
int ma = ________(a, b);

常见错误

  • pow 的返回结果能否一律当作精确整数________________

判断是否掌握

  • 我能根据任务说出函数名和头文件。
  • 我能解释函数参数与返回值的含义。
  • 我能独立写出正确的调用语句。

函数速查表

一、数学计算函数(头文件:______

函数 参数 返回值 示例 说明
sqrt(x) x — __________ __________ — x 的平方根 sqrt(16)___ 开根号
abs(x) x — __________ __________ — x 的绝对值 abs(-5)___ 去掉负号
pow(a, b) a — ______b — ______ __________ — a 的 b 次方 pow(2, 3)___ aᵇ

二、最值与交换函数(头文件:______

函数 参数 返回值 示例 说明
max(a, b) 两个 __________ 的值 __________ — 较大值 max(3, 7)___ 两数取大
min(a, b) 两个 __________ 的值 __________ — 较小值 min(3, 7)___ 两数取小
swap(a, b) 两个 __________ 的变量 ________无返回值 swap(x, y) → __________ 交换两变量的值

三、字符判断函数(头文件:______

函数 参数 返回值 示例 说明
isalpha(c) c — __________ ____ — 是字母返回 true isalpha('A')____ 判断是否为字母
isdigit(c) c — __________ ____ — 是数字返回 true isdigit('5')____ 判断是否为数字
islower(c) c — __________ ____ — 是小写字母返回 true islower('a')____ 判断是否为小写
isupper(c) c — __________ ____ — 是大写字母返回 true isupper('A')____ 判断是否为大写

四、字符转换函数(头文件:______

函数 参数 返回值 示例 说明
tolower(c) c — __________ ____ — 对应的小写字母 ASCII 码 tolower('A')___ 大写转小写
toupper(c) c — __________ ____ — 对应的大写字母 ASCII 码 toupper('a')___ 小写转大写

课堂编程题

课堂1三点中最近的一对【适中】

题目描述: 输入平面上三个点的坐标,求三对点之间的最短距离,结果保留两位小数。要求使用 sqrtpowmin

输入格式: 输入六个实数,依次表示三个点的横坐标和纵坐标。

输出格式: 输出最短距离,保留两位小数。

数据范围: 每个坐标的绝对值不超过 1000。

输入样例:

0 0 3 4 0 2

输出样例:

2.00

解题思路: 用勾股定理分别求出三段距离,再用 min 取最小值。

易错提醒: sqrt 返回浮点数;格式化输出需要包含 <iomanip>


课堂2整理三个数【适中】

题目描述: 输入三个整数,第一行输出最大值和最小值;再使用 swap 将三个变量调整为升序,第二行输出调整结果。

输入格式: 输入三个整数。

输出格式: 第一行输出最大值和最小值;第二行输出升序结果。

数据范围: -10^9≤a,b,c≤10^9

输入样例:

8 2 5

输出样例:

8 2
2 5 8

解题思路: 用嵌套的 maxmin 求最值;再进行三次相邻比较,需要时调用 swap

易错提醒: swap 的参数必须是两个变量,不能传入 a+b 这样的表达式。


课堂3去掉最高分和最低分【适中】

题目描述: 输入若干个评委分数,去掉一个最高分和一个最低分,输出剩余分数之和。不得使用排序。

输入格式: 第一行输入评委人数;第二行输入所有评委给出的分数。

输出格式: 输出剩余分数之和。

数据范围: 3≤n≤100,分数为 0100

输入样例:

5
9 7 10 8 6

输出样例:

24

解题思路: 遍历时同时计算总分、最高分和最低分,最后用总分减去两个极值。

易错提醒: 最高分和最低分要用第一个合法分数初始化;即使最高分重复,也只去掉一个。


课堂4字符身份证【适中】

题目描述: 输入一个可见字符。若为字母,输出 LETTER 和相反大小写的字符;若为数字,输出 DIGIT;否则输出 OTHER

输入格式: 一个可见字符。

输出格式: 按题目要求输出。

数据范围: 标准 ASCII 可见字符。

输入样例:

G

输出样例:

LETTER g

解题思路:isalphaisdigit 分类,用 islowerisupper 判断大小写,再调用 touppertolower 转换。

易错提醒: tolowertoupper 返回的是字符编码,输出字符时应转换为 char


课后作业

请完成本课对应的课后作业,见编程题文件。