这份Markdown讲义已经为您整理完毕。它结合了您提供的“拟人化逻辑(房间与客人)”、“数学类比”以及“C++核心语法”,非常适合作为四五年级学生的入门教材。
🚀 C++ 编程进阶讲义:变量、运算与数据的奥秘
课程核心: 在计算机的世界里,一切皆为数字。
一、 编程的“仪式感”
1. 万能工具箱
在C++入门阶段,我们可以使用一个“万能头文件”,它包含了几乎所有常用的工具:
#include <bits/stdc++.h>
2. C++ 解决问题的五步法
我们可以把编写程序想象成“招待客人”的过程:
1. 准备房间: 定义变量(准备空位)。
2. 迎接客人: 输入数据(cin)。
3. 处理客人: 计算与逻辑处理。
4. 送走客人: 输出结果(cout)。
5. 结束休息: return 0;。
3. 代码标准框架
#include <iostream> // 引入输入输出流库
using namespace std; // 使用标准命名空间
int main() {
// 1. 准备房间
// 2. 迎接客人
// 3. 处理客人
// 4. 送走客人
return 0; // 5. 结束
}
二、 变量与常量:数据的“家”
1. 常量 vs 变量
- 常量(住在自己家): 程序运行期间,值不可以改变(如字面值
3.14,100)。 - 变量(住在酒店): 程序运行期间,值可以随时更换。
2. 命名规则(标识符)
给变量起名要遵守三条铁律:
1. 由字母、数字、下划线组成。
2. 数字不能开头。
3. 不能使用系统关键字(如 int, return 等)。
3. 变量的生存原则
先开房间,再住人!
- 初始化: 定义变量时最好手动赋值为
0,否则房间里可能留有上一个客人的“垃圾”(随机值),这很危险!- 例:
int a = 0;(好习惯)
- 例:
- 赋值: 使用
=符号。注意:a = 90;的意思是把 90 放到 a 里面。
4. 输入与输出
- 输入 (
cin):cin >> a >> b;(箭头指向变量,代表数据流入房间) - 输出 (
cout):cout << a << endl;(箭头指向 cout,代表送向屏幕;endl表示换行)
三、 运算符:计算机的“武器库”
1. 算术运算符
- 基础:
+,-,*,/ - 取模 (
%): 求余数。- 例:
10 % 3 = 1。 - 注意: 只能用于整数。如果第一个数是负数,余数也是负数。
- 例:
- 除法 (
/):- 两个整数相除,结果只保留整数部分(向下取整)。
- 例如:
5 / 2 = 2。
2. 自增与自减(++ / --)
++a(人人为我): 先把自己加 1,再让别人使用我。a++(我为人人): 先让别人用旧的值,等这行代码结束了,再把自己加 1。
3. 复合赋值
a += 1; 等价于 a = a + 1;(在原来的基础上加 1)。同理有 -=, *=, /=, %=。
四、 数据类型:房间的大小
| 类型 | 名称 | 占用字节 | 常用范围/特点 |
|---|---|---|---|
| int | 整型 | 4 字节 | 约 $\pm 21$ 亿(足够处理多数校内数学题) |
| long long | 长整型 | 8 字节 | 范围极大,处理天文数字、防止“爆int” |
| float | 单精度浮点数 | 4 字节 | 小数 |
| double | 双精度浮点数 | 8 字节 | 最常用的小数类型,更精确 |
| char | 字符型 | 1 字节 | 存储单个字符,如 'A', '#' |
| bool | 布尔型 | 1 字节 | 只有 0 (false) 和 1 (true) |
1. 小数的精确控制
如果需要保留两位小数,需要使用工具箱 <iomanip>:
cout << fixed << setprecision(2) << x;
2. 字符的秘密:ASCII码
每一个字符背后都藏着一个数字:
* 'A' 为 65,'a' 为 97(大小写相差 32)。
* '0' 为 48。
* 技巧: '9' - '0' 的结果就是数字 9。
五、 类型转换:数据的“变身术”
1. 自动转换(隐式)
当小房间的数据遇到大房间时,会自动升级:
* char → int → long long → double
* 例如:3 + 1.5,计算机会先把 3 变成 3.0 再计算,结果是 4.5。
2. 强制转换(显示)
手动强迫数据变身,格式:(类型)变量。
* 例如:int a = 5, b = 2;
* double c = (double)a / b; // 结果是 2.5
* int d = (int)a / b; // 结果是 2
六、 闯关练习(看看输出是什么?)
例子 1:复杂的强转运算
int b = 7; double a = 2.5, c = 4.7;
// 表达式:a + (int)(b / 3 * (int)(a + c) / 2.0) % 4
例子 2:除法陷阱
float v0 = (40 / 3);
// 提示:40和3都是int,40/3的结果是多少?
例子 3:小数转整数
float pi = 3.14;
int s, r = 4;
s = r * r * pi; // s会丢失小数部分吗?
例子 4:取余与四舍五入
float a = 15.75;
double b = 323.01;
cout << (int)(b + 0.5) % 10; // 这是一种常用的“四舍五入取个位”技巧
💡 老师寄语: 编程里的每一个符号都有它的脾气,多敲代码多尝试,你会发现计算机是你最听话的玩伴!
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com