### C++ for 循环(一) 课后习题 姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_ #### **一、 填空题** 1. `while` 循环将**循环的三个关键部分**:\_\_\_\_\_\_\_\_\_\_\_\_\_、**循环条件**和**循环变量更新**分散在代码的不同位置,而 `for` 循环则将它们捆绑在一起,实现集中管理。 2. `for` 循环的语法结构为 `for (` \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ `;` \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ `;` \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ `) { ... }`。 3. 在`for`循环的三个部分中,\_\_\_\_\_\_\_\_\_\_\_\_\_部分(**填循环的三个关键部分之一**)只在整个循环开始时执行唯一一次。 4. `for`循环的\_\_\_\_\_\_\_\_\_\_\_\_\_部分在每一次循环体执行**之后**都会执行。 5. `for`循环的三个部分之间必须使用\_\_\_\_\_\_\_\_\_\_\_\_\_进行分隔。 6. `for` 循环非常适合用于处理循环次数\_\_\_\_\_\_\_\_\_\_\_\_\_(填写 **固定** 或 **不固定** )的循环。 7. `for`循环的执行流程可以概括为:循环变量初始化 -> ( \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ -> 执行循环体 -> \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ ) -> ... #### **二、 单项选择题** ( ) 1. `for (int i = 1; i <= 5; i++) { ... }` 这个循环的循环体会被执行几次? A. 4 次 B. 5 次 C. 6 次 D. 无限次 ( ) 2. 在一个 `for` 循环的单次迭代中,最后执行的是哪一部分? A. 循环变量初始化 B. 循环条件判断 C. 循环体 D. 循环变量更新 ( ) 3. 观察下面的代码,它会在屏幕上输出什么? ```cpp for (int i = 1; i <= 3; i++) { cout << i << " "; } ``` ​ A. `1 2 3` B. `1 2 3 4` C. `1 2` D. `2 3 4` ( ) 4. `for (int i = 10; i < 10; i++) { ... }` 这个循环的循环体会被执行几次? A. 0 次 B. 1 次 C. 10 次 D. 无限次 ( ) 5. 下列哪个 `for` 循环会导致无限循环? A. `for (int i = 1; i <= 5; i++)` B. `for (int i = 5; i >= 1; i--)` C. `for (int i = 1; i <= 5; i--)` D. `for (int i = 1; i > 5; i++)` ( ) 6. 在书本 例4-1 的 `Apples Plus` 的案例中,我们使用 `if (i > 1)` 来判断是否要输出 "s",这里的 `i` 代表了什么? A. 苹果的总数 B. 循环的总次数 C. 当前是第几次循环 D. 一个固定的数字 ( ) 7. `for` 循环相比于 `while` 循环,对于处理次数确定的循环,其主要优点是什么? A. 运行速度更快 B. 将循环控制的三个核心要素集中管理,代码更清晰 C. 可以处理 `while` 循环无法完成的任务 D. 占用的内存更少 ( ) 8. 下列哪个 `for` 循环的写法是**错误**的? A. `for (int i = 1; i <= 10; i++)` B. `for (int i = 1; i <= 10; i--)` C. `for (int i = 1, i <= 10, i++)` D. `for (double i = 1; i <= 2; i++)` ( ) 9. 要实现一个从 10 倒数打印到 1 的循环,`for` 循环应该怎么写? A. `for (int i = 10; i >= 1; i--)` B. `for (int i = 10; i <= 1; i++)` C. `for (int i = 1; i <= 10; i++)` D. `for (int i = 10; i > 1; i++)` ( ) 10. `for` 循环的执行顺序是 ( 选项中使用`()` 的部分代表会重复得到执行,直到判断条件为`false`停止 )? A. 初始化 -> 更新循环变量 -> 判断 -> 执行循环体 B. 初始化 -> (判断 -> 更新循环变量 -> 执行循环体) C. 初始化 -> (判断 -> 执行循环体 -> 更新循环变量) D. (判断 -> 执行循环体 -> 更新循环变量 -> 初始化) #### **三、 判断题 (对的打“√”,错的打“×”)** ( ) 1. `for` 循环的循环变量初始化部分,在每一次循环开始时都会执行一次。 ( ) 2. `for` 循环的循环条件判断,在每一次循环体执行**之前**进行。 ( ) 3. `for (int i = 1; i <= 5; i++)` 这个循环结束后,变量 `i` 的值会变成 6。 ( ) 4. `for` 循环的循环体至少会被执行一次。 ( ) 5. `for` 循环的循环变量 `i` 只能用于计数,不能在循环体内部参与**运算**或**判断**。 ( ) 6. 在 `for` 循环内部可以嵌套 `if` 语句,来处理循环中出现的特殊情况。 ( ) 7. 把 `while` 循环的初始化、条件判断和更新语句分别放入 `for` 循环的对应位置,两者在逻辑上是等价的。 ( ) 8. 在 `for` 循环中,如果循环变量更新写成了 `i = i + 2`,那么循环变量 `i` 每次会跳过一个数。 ( ) 9. `for (int i = 1; i >= 0; i++)` 这种写法会导致无限循环。 ( ) 10. 讲义中的 `Apples Plus` 案例,体现了“循环中可以嵌套分支判断”的思想。