⌨ 知识库 C++基础 这篇笔记暂无摘要。 分类 C++ 难度 基础 阅读 4 分钟 浏览 49 更新 2026-7-15 9:35:39 🌐 所有人可见 登录后记录进度 导出 MD 复制链接 打印 / PDF ## 一、C++程序基础结构 ### 1.1 第一个C++程序:输出"你好世界" ```cpp #include <iostream> // 包含输入输出功能的头文件 using namespace std; // 使用标准命名空间 int main() { // 主函数,程序执行的起点 cout << "你好世界" << endl; // 输出语句 return 0; // 程序正常结束的返回值 } ``` #### 代码解析: + **头文件 **`#include <iostream>` - `<iostream>` 是C++标准输入输出库,包含 `cout`(输出)和 `cin`(输入)等功能。 - `#include` 是预处理指令,用于将头文件内容嵌入到程序中。 + **命名空间 **`using namespace std;` - C++标准库中的函数和对象(如 `cout`)位于 `std` 命名空间中,声明后可直接使用。 + **主函数 **`int main()` - 每个C++程序必须有一个 `main` 函数,它是程序执行的入口。 - `int` 表示主函数返回值为整数,`return 0` 表示程序成功执行完毕。 ### 1.2 输出指令 `cout` #### 基本用法: ```cpp cout << "要输出的内容" << 变量 << endl; ``` + `<<`** 运算符**:称为“流插入运算符”,用于将数据发送到输出流(如控制台)。 + `endl`:表示换行并刷新缓冲区,等价于 `"\n"`(换行符),但更安全。 #### 示例: ```cpp cout << "团结就是力量" << endl; // 输出字符串并换行 int age = 18; cout << "年龄:" << age << "岁" << endl; // 混合输出字符串和变量 ``` #### 注意事项: 1. **符号必须为英文**:双引号、分号、运算符等均需使用英文半角符号。 2. **多行输出**:多个 `cout` 语句可连续使用,按顺序输出: ```cpp cout << "第一行" << endl; cout << "第二行"; // 不换行,接着上一行输出 ``` 3. **转义字符**:若需输出特殊符号(如 `\`),需用 `\\` 表示: ```cpp cout << "路径:C:\\program files" << endl; // 输出反斜杠 ``` ## 二、整数变量与输入 ### 2.1 变量的定义与初始化 #### 定义格式: ```cpp 类型 变量名; // 声明变量(未初始化) 类型 变量名 = 初始值; // 声明并初始化 ``` + **整数类型 **`int`:用于存储整数(如 `10`、`-5`),取值范围因编译器而异(通常为-2147483648~2147483647)。 + **变量命名规则**: ```cpp int a, b, c; // 正确 int my_age = 18; // 正确 int 2num; // 错误(以数字开头) int int; // 错误(关键字) ``` - 只能包含字母、数字、下划线(`_`),且不能以数字开头。 - 不能使用C++关键字(如 `int`、`if`、`for` 等)。 - 区分大小写(`a` 和 `A` 是不同变量)。 **示例**: #### 初始化与赋值: ```cpp int x = 10; // 初始化:定义时赋值 x = 20; // 赋值:修改变量的值 int y = x + 5; // 表达式赋值:y = 20 + 5 = 25 ``` ### 2.2 输入指令 `cin` #### 基本用法: ```cpp cin >> 变量1 >> 变量2; // 从控制台读取输入,按顺序存入变量 ``` #### 示例: ```cpp int a, b; cin >> a >> b; // 输入两个整数,如输入“3 5”,则a=3,b=5 cout << "a + b = " << a + b << endl; // 输出8 ``` #### 注意事项: + **输入格式匹配**:输入的数据类型必须与变量类型一致,否则会导致错误或异常值。 + **连续输入**:多个 `>>` 可连续使用,输入时用空格或换行分隔数据。 ### 2.3 四则运算与表达式 #### 运算符: | 运算符 | 含义 | 示例 | | --- | --- | --- | | `+` | 加法 | `a + b` | | `-` | 减法 | `a - b` | | `*` | 乘法 | `a * b` | | `/` | 除法(整数整除) | `5 / 2 = 2` | | `%` | 取余(模运算) | `5 % 2 = 1` | #### 运算顺序: 遵循数学运算优先级:括号 > 乘除取余 > 加减,同级运算从左到右。 **示例**: ```cpp int a = 3, b = 2, c = 5; cout << (a + b) * c << endl; // 先算3+2=5,再算5*5=25 cout << a + b * c << endl; // 先算2*5=10,再算3+10=13 ``` ## 三、条件判断:if语句 ### 3.1 基本语法 #### 单分支 `if`: ```cpp if (条件表达式) { // 条件成立时执行的代码 } ``` #### 双分支 `if-else`: ```cpp if (条件表达式) { // 条件成立时执行 } else { // 条件不成立时执行 } ``` #### 多分支 `if-else if-else`: ```cpp if (条件1) { ... } else if (条件2) { ... } else { ... } // 所有条件都不成立时执行 ``` ### 3.2 条件表达式 使用关系运算符比较值,结果为 **真(非0)** 或 **假(0)**。 | 运算符 | 含义 | 示例 | | --- | --- | --- | | `<` | 小于 | `a < b` | | `>` | 大于 | `a > b` | | `<=` | 小于等于 | `a <= b` | | `>=` | 大于等于 | `a >= b` | | `==` | 等于 | `a == b` | | `!=` | 不等于 | `a != b` | #### 注意: + **赋值与比较**:`=` 是赋值运算符,`==` 是比较运算符,切勿混淆! ```cpp if (a = 5) { ... } // 错误!此语句将5赋给a,并判断a是否为真(非0) if (a == 5) { ... } // 正确!判断a是否等于5 ``` ### 3.3 示例:奇偶判断 ```cpp int n; cin >> n; if (n % 2 == 0) { cout << n << "是偶数" << endl; } else { cout << n << "是奇数" << endl; } ``` ## 四、循环结构:for循环 ### 4.1 语法与执行流程 #### 标准格式: ```cpp for (初始化表达式; 条件表达式; 更新表达式) { // 循环体(重复执行的代码) } ``` #### 执行顺序: 1. **初始化表达式**:仅执行一次,用于设置循环初始条件(如 `int i = 1`)。 2. **条件表达式**:每次循环前判断,若为真则执行循环体,否则退出循环。 3. **更新表达式**:每次循环体执行完毕后执行,用于修改循环变量(如 `i++`)。 4. **重复步骤2-3**,直至条件表达式为假。 ### 4.2 典型用法 #### 示例1:循环固定次数(输出1~5) ```cpp for (int i = 1; i <= 5; i++) { // i从1开始,到5结束,每次+1 cout << i << " "; // 输出:1 2 3 4 5 } ``` #### 示例2:倒序循环(输出5~1) ```cpp for (int i = 5; i >= 1; i--) { // i从5开始,到1结束,每次-1 cout << i << " "; // 输出:5 4 3 2 1 } ``` #### 示例3:步长非1的循环(输出偶数) ```cpp for (int i = 2; i <= 10; i += 2) { // i从2开始,每次+2(2,4,6,8,10) cout << i << " "; // 输出:2 4 6 8 10 } ``` ### 4.3 注意事项: + **循环变量作用域**:若在 `for` 括号内定义变量(如 `int i=1`),则变量仅在循环内有效。 + **避免死循环**:确保条件表达式最终会变为假,否则循环会无限执行(需手动终止程序)。 ```cpp for (int i = 1; ; i++) { // 无终止条件,死循环! cout << i << " "; } ``` ## 五、综合应用:循环与条件结合 ### 5.1 案例:计算1~100的和 ```cpp int sum = 0; // 初始化总和为0 for (int i = 1; i <= 100; i++) { sum += i; // 等价于 sum = sum + i } cout << "1~100的和为:" << sum << endl; // 输出5050 ``` ### 5.2 案例:判断质数 ```cpp int n; cin >> n; bool is_prime = true; // 假设n是质数 if (n <= 1) { // 1不是质数 is_prime = false; } else { for (int i = 2; i < n; i++) { // 检查2到n-1是否能整除n if (n % i == 0) { is_prime = false; // 若能整除,n不是质数 break; // 提前退出循环 } } } if (is_prime) { cout << n << "是质数" << endl; } else { cout << n << "不是质数" << endl; } ``` ## 六、常见错误与调试 ### 6.1 编译错误(语法错误) + **错误原因**:代码不符合C++语法规则(如缺少分号、括号不匹配、关键字拼写错误)。 + **示例**: ```cpp cout << "hello" // 错误:缺少分号 if (a = 5) { ... } // 错误:误用赋值运算符`=` ``` ### 6.2 逻辑错误(运行结果错误) + **错误原因**:代码语法正确,但逻辑不符合预期(如循环条件错误、运算符优先级错误)。 + **调试方法**: - 在关键位置添加 `cout` 输出变量值,观察是否符合预期。 - 使用IDE的调试功能(如断点、单步执行)跟踪程序流程。 ## 七、练习与答案(部分示例) ### 7.1 练习1:输出乘法表 **要求**:输出1~9的乘法表,格式如下: ```plain 1×1=1 1×2=2 2×2=4 ... ``` **参考代码**: ```cpp for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { cout << j << "×" << i << "=" << i*j << "\t"; } cout << endl; } ``` ### 7.2 练习2:计算平均值 **要求**:输入5个整数,计算并输出它们的平均值。 **参考代码**: ```cpp int sum = 0, num; for (int i = 0; i < 5; i++) { cin >> num; sum += num; } double average = (double)sum / 5; // 强制类型转换为浮点数 cout << "平均值:" << average << endl; ``` ## 八、总结 + **基础语法**:`cout`/`cin` 用于输入输出,`int` 存储整数,`if` 判断条件,`for` 实现循环。 + **核心逻辑**:条件判断通过关系运算符实现,循环通过初始化、条件、更新三部分控制。 + **编程规范**:使用英文符号,合理缩进,变量命名有意义,及时注释关键代码。 通过反复练习和调试,逐步掌握C++的编程逻辑,为后续学习打下坚实基础! 学习交流公开阅读不需要登录登录后可以评论、收藏并同步学习进度。登录暂时还没有评论。
学习交流