2020傲梦第二届等级测评复习资料(C++二级)
### 2020傲梦第二届等级测评复习资料(C++二级)知识点解析 #### 一、循环控制结构 在C++中,循环是解决重复性任务的重要手段。本资料重点介绍了三种基本的循环结构:`while`循环、`for`循环以及`do...while`循环。 ##### 1. `while` 循环 - **语法**: `while (条件表达式) { 循环体; }` - **特点**: 只有当条件为真时才会执行循环体。 - **应用场景**: 当不确定循环体需要执行多少次时使用。 - **示例**: ```cpp int n = 5; while (n > 0) { cout << n << endl; n--; } ``` ##### 2. `for` 循环 - **语法**: `for (初始化; 条件表达式; 增量表达式) { 循环体; }` - **特点**: 可以同时指定循环开始前的操作、循环条件以及每次循环后的操作。 - **应用场景**: 当确切知道循环体需要执行的次数时使用。 - **示例**: ```cpp for (int i = 0; i < 10; i++) { cout << i << endl; } ``` ##### 3. `do...while` 循环 - **语法**: `do { 循环体; } while (条件表达式);` - **特点**: 至少执行一次循环体,然后再判断条件是否满足。 - **应用场景**: 当至少需要执行一次循环体时使用。 - **示例**: ```cpp int n = 0; do { cout << n << endl; n++; } while (n < 5); ``` #### 二、循环嵌套与解题步骤 - **循环嵌套**: 一个循环内部包含另一个循环,通常用于解决多维数组处理等问题。 - **解题步骤**: 1. 分析问题,确定需要几层循环。 2. 写出外层循环,通常用于控制循环次数。 3. 在外层循环内部写入内层循环,处理具体逻辑。 4. 使用条件语句控制循环流程。 - **示例**: ```cpp for (int i = 0; i < 3; i++) { // 外层循环 for (int j = 0; j < 4; j++) { // 内层循环 cout << "i=" << i << ", j=" << j << endl; } } ``` #### 三、枚举法与标志量 - **枚举法**: 针对所有可能的情况逐一检验的方法。 - **标志量** (`bool flag`): 用于标记某个条件是否满足的变量。 - **使用步骤**: 1. 初始化标志量为`true`或`1`。 2. 通过循环遍历所有可能的情况。 3. 如果遇到不符合条件的情况,将标志量设为`false`或`0`并退出循环。 4. 根据标志量的最终状态判断整体条件是否满足。 - **示例**: ```cpp bool flag = true; for (int i = 0; i < 10; i++) { if (条件不成立) { flag = false; break; } } if (flag) { // 所有条件均成立 } else { // 存在不成立的情况 } ``` #### 四、经典实战案例解析 1. **统计字符数量** - **问题**: 统计输入字符串中特定字符的数量。 - **解法**: - 使用`while`循环读取每个字符。 - 若字符符合要求,则计数器递增。 - **代码示例**: ```cpp char ch; int cnt = 0; cin >> ch; while (ch != '&') { if (ch == '*') { cnt++; } cin >> ch; } cout << cnt; ``` 2. **角谷猜想验证** - **问题**: 实现角谷猜想的验证。 - **解法**: - 使用`while`循环持续进行转换,直到达到1。 - 根据当前数是奇数还是偶数选择不同的转换方式。 - **代码示例**: ```cpp int n; cin >> n; while (n != 1) { if (n % 2 != 0) { cout << n << "*3+1="; n = n * 3 + 1; cout << n << endl; } else { cout << n << "/2="; n = n / 2; cout << n << endl; } } cout << "End"; ``` 3. **计算平均分** - **问题**: 计算去掉一个最高分和一个最低分后的平均分。 - **解法**: - 使用`for`循环读取所有评分。 - 通过变量记录最大值、最小值及总和。 - 最后计算平均分并输出。 - **代码示例**: ```cpp int n; cin >> n; double max = -1e9, min = 1e9, sum = 0; for (int i = 1; i <= n; i++) { double sc; cin >> sc; sum += sc; if (sc > max) max = sc; if (sc < min) min = sc; } sum -= (max + min); cout << fixed << setprecision(2) << sum / (n - 2) << endl; ``` 以上是针对2020年傲梦第二届等级测评复习资料(C++二级)中涉及的主要知识点的详细介绍。通过理解这些基础概念和编程技巧,可以帮助学习者更好地掌握C++编程的基础知识,并为实际问题解决奠定坚实的基础。
剩余16页未读,继续阅读
- 粉丝: 37
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助