C++启蒙课程:第2章  开始学习C++

我们将正式进入C++编程世界,搭建我们的第一个程序“魔法骨架”,并学会使用“记忆存储盒”!

🏛️

魔法骨架与输出

学习程序的“主控开关” `main()` 和信息流动的管道 `cout`。

📥

变量与基本输入

掌握程序的“记忆存储盒” `int` 和从键盘获取信息的 `cin`。

🧑‍🔧

神奇的“分工”:函数

学习如何创建“任务分队” `function` 来让代码更整洁。

课时一:魔法骨架与输出

(覆盖知识点 2.1.1 - 2.1.7)

2.1.1 “主控开关” main()

C++程序从 `main()` 函数开始执行。它就像一个“START”按钮。点击按钮,看看程序是如何运行和结束的。

int main() { // 函数体开始 // ... C++ 指令 ... return 0; // 结束指令 } // 函数体结束

2.1.3 魔法工具箱 (#include)

`#include ` 就像导入一个“魔法工具箱”,里面装着 `cout` 和 `cin` 工具。把鼠标悬停在工具箱上看看!

🧰
包含: cout, cin, endl ...

iostream 工具箱

// 预处理器指令 #include // 导入“输入/输出”工具箱 int main() { // ... }

2.1.5 “std 品牌盒子”

`cout` 工具放在一个叫 `std` 的品牌盒子里。使用 `using namespace std;` 就像打开盒子,可以直接用工具。

std::cout << "Hello";
#include using namespace std; // 打开 std 盒子 int main() { cout << "Hello"; // 直接使用 cout return 0; }

2.1.6 “信息流动管” cout

`cout` 是输出流对象。`<<` 运算符像一个管道,把右边的信息(字符串)推送到 `cout`,显示在屏幕上。

«
// "Hello C++" 是一个字符串 // << 是插入运算符 cout << "Hello C++";

endl vs. \n (换行)

`endl` 和 `\n` 都能换行。`endl` 还会“刷新”输出(立即显示)。

cout << "第一行" << endl; // 换行并刷新 cout << "第二行\n"; // \n 只是一个换行符 cout << "第三行";

2.1.7 注释 (给读者看)

注释是给程序员看的,编译器会完全忽略它们。点击“编译”,看看注释是如何被“跳过”的。

// 这是一个单行注释 int main() { /* 这是一个 多行注释 */ cout << "Hello"; // 编译器会忽略这个 return 0; }

课时二:变量与基本输入

(覆盖知识点 2.2.1 - 2.3.3)

变量的生命周期:“记忆存储盒”

变量就像一个贴了标签的盒子。我们按顺序“声明”(创建盒子),“赋值”(放东西),“输入”(用键盘放东西),和“输出”(看盒子里是啥)。

💡 互动体验:

内存 (Memory)
? (未声明)

📜 代码支撑:

#include <iostream> using namespace std; int main() { // 1. 声明 (创建盒子) int carrots; // 2. 赋值 (放 25 进去) carrots = 25; // 3. cin 输入 (用键盘放东西) cout << "请输入萝卜数量: "; cin >> carrots; // >> 抽取运算符 // 4. cout 输出 (看盒子里是啥) // << 智能地打印出变量的值 cout << "你有 " << carrots << " 个萝卜。" << endl; return 0; }

2.3.3 类与对象

类 (Class) 就像一个“蓝图”,它定义了如何造东西。对象 (Object) 才是根据蓝图造出来的“真东西”。`cin` 和 `cout` 都是对象。

📜
Class (蓝图)
iostream
💻
Object (真东西)
cout
// iostream 是一个“类”的规范 (蓝图) // ... // cout 是 iostream 类的一个“对象” (真东西) // cin 也是 iostream 类的一个“对象”

课时三:神奇的“分工”:C++函数

(覆盖知识点 2.4.1 - 2.4.5)

“打印机器人” (void 函数)

`void` 函数是一个“打印机器人”。你给它一个任务(数字),它执行操作(打印),但它**不会返回任何东西**给你。

机器人控制台:
// 2.4.3 函数原型 (使用说明书) void simon(int n); // void 表示“没有返回值” void simon(int n) // 函数定义 { cout << "Simon says " << n << endl; }

“计算机器人” (return 函数)

`int` (有返回值) 函数是一个“计算机器人”。你给它一个数字,它计算后**返回 (return) 一个结果**给你存起来。

返回的结果:
// 2.4.3 函数原型 (使用说明书) int cube(int x); // int 表示“返回一个整数” int cube(int x) // 函数定义 { return x * x * x; // 使用 return 返回值 }

2.4.3 “使用说明书” (原型)

在C++中,你必须在“使用”一个函数之前,先给编译器一份“使用说明书”(函数原型),告诉编译器这个函数长什么样。

// double ctof(double); // <-- 切换上面的开关来添加/删除这行原型 int main() { // 编译器在这里检查它是否“认识” ctof double f = ctof(20.0); return 0; } // 函数定义在后面 double ctof(double c) { return 1.8 * c + 32.0; }

编程实践与作业 (2.7)

是时候检验你作为 C++ 魔法师的实力了!

练习 1:显示姓名和地址 (2.7 练习 1)

任务:

编写一个C++程序,它显示您的姓名和地址(可以虚构)。

点击查看参考答案
#include <iostream> using namespace std; int main() { // 2.1.6 使用 cout 输出 cout << "我的姓名是:小明" << endl; // 2.1.6 使用 endl 换行 cout << "我的地址是:魔法学院C++系\n"; // 2.1.6 使用 \n 换行 return 0; // 2.1.1 结束 main 函数 }
练习 2:Long 距离转换 (2.7 练习 2 简化)

任务:

编写一个C++程序,要求用户输入一个整数 `long_distance`(单位:long),然后将它转换为码(1 long 等于 220 码)。

点击查看参考答案
#include <iostream> using namespace std; int main() { // 2.2.1 声明变量 long long_distance; const int YARDS_PER_LONG = 220; cout << "请输入以 long 为单位的距离: "; cin >> long_distance; // 2.3.1 使用 cin 抽取输入 // 算术运算 long yards = long_distance * YARDS_PER_LONG; // 2.3.2 拼接输出 cout << long_distance << " long 等于 " << yards << " 码。" << endl; return 0; }
练习 3:温度转换函数 (2.7 练习 5)

任务:

编写一个程序,其中的 `main()` 调用一个用户定义的函数 ctof()。该函数以摄氏温度值为参数,并返回相应的华氏温度值。

公式: 华氏温度 = 1.8 × 摄氏温度 + 32.0

点击查看参考答案
#include <iostream> using namespace std; // 2.4.3 函数原型 (使用说明书) double ctof(double c_temp); int main() { double celsius; cout << "请输入摄氏温度值: "; cin >> celsius; // 2.4.1 调用有返回值的函数 double fahrenheit = ctof(celsius); cout << celsius << " 摄氏度等于 " << fahrenheit << " 华氏温度。" << endl; return 0; } // 2.4.4 函数定义 double ctof(double c_temp) { // 华氏温度 = 1.8 × 摄氏温度 + 32.0 return 1.8 * c_temp + 32.0; }

本章知识点总结与复习

核心概念 解释/功能 关键用法/示例
main()C++程序的执行起点,必不可少的函数模块。int main() { ... return 0; }
预处理器编译前处理指令,如 #include #include <header>
using 指令使程序可直接使用 std 名称空间中的元素。using namespace std;
cout / cin预定义对象,用于输出流(<<)和输入流(>>)。cout << data; / cin >> data;
变量声明定义变量的名称和类型,分配内存。int age;
函数C++程序的模块,用于执行特定任务。void func(int x);
函数原型声明函数的返回类型、参数数量和类型。double func(double);