Files

5.7 KiB
Raw Permalink Blame History

C++ if 的多分支与条件嵌套 课后习题

姓名: ___________________

一、 填空题

  1. if-else 结构主要解决“二选一”的问题,而 if-else if-else 结构则解决了“_________”的问题。

  2. if-else if-else 结构也被称为 ____________ 结构,它的核心特点是“择一执行”,即整个结构中最多只有 ____________ 个代码块会被执行。

  3. 在 if-else if-else 结构中,else 关键字的作用是作为“____________”选项,当所有 if 和 else if 的条件都**____________** (填写“满足”或“不满足”)时,它的代码块才会被执行。

  4. 将一个 if 语句完整地放入另一个 if 或 else 语句的执行代码块中,这种结构被称为 ________________。

  5. 在编写 if-else if-else 结构时,为了保证逻辑的正确性,通常应该将范围最**___________、最___________**的条件放在最前面。

二、 单项选择题

( ) 1. 根据课程和讲义中酒店保安的例子,如果来了一位“普通VIP”,保安的决策流程是怎样的? A. 直接跳到“普通VIP”规则,并带他去二层 B. 先判断他是不是顶级VIP,如果不是,再判断他是不是普通VIP C. 同时判断他是不是 顶级VIP 和 普通VIP D. 检查完所有规则后,才决定带他去二层

( ) 2. 观察以下代码片段,当 int score = 85; 时,程序的输出是什么? cpp if (score >= 90) { cout << "优秀" << endl; } else if (score >= 60) { cout << "及格" << endl; } else { cout << "不及格" << endl; } ​ A. 优秀 B. 良好 C. 及格 D. 不及格

( ) 3. 关于 if-else if-else 结构的执行,以下说法正确的是? A. 只要有条件满足,所有代码块都会被执行 B. 至少有一个代码块会被执行 C. 如果有 else,保证有且仅有一个代码块被执行 D. 可能会有多个 else if 的代码块被同时执行

( ) 4. 对于定义了变量 int x = 5, y = 10; 运行以下代码,输出结果是什么? cpp if (x > 3) { cout << "A"; if (y < 5) { cout << "B"; } else { cout << "C"; } } else { cout << "D"; } ​ A. AC B. AB C. D D. A

( ) 5. 对于代码 if (a > 10) { ... } else if (a > 5) { ... },如果变量 a 的值是 12,哪个代码块会被执行? A. if (a > 10) 对应的代码块 B. else if (a > 5) 对应的代码块 C. 两个代码块都会被执行 D. 两个代码块都不会被执行

( ) 6. 在三数排序的案例中,相对于“纯粹的多分支判断”,“嵌套分支”解法的主要优点是? A. 代码行数更少 B. 逻辑更清晰,将复杂问题分步解决 C. 运行效率更高 D. 使用的关键字更少

( ) 7. 从字面和逻辑上理解,else if (表达式) 的含义最准确的是? A. 并且,如果 表达式 成立 B. 或者,如果 表达式 成立 C. 在前面的所有条件都不成立的前提下,如果 表达式 成立 D. 无论如何,检查 表达式 是否成立

( ) 8. 关于 if-else if-else 结构中最后的 else 部分,下列哪个说法是错误的? A. 它是可选的,可以不写 B. 它用于处理所有 if 和 else if 条件都不满足的情况 C. 它必须带一个条件判断,例如 else (表达式) D. 加上它可以让程序处理之前的所有条件都不满足的情况

( ) 9. 当我们比较三个数字的时候,当程序执行到 if (a >= b && a >= c) 的内部代码块时,如下的判断哪个是正确的? A. a 是三个数中最小的 B. a 是三个数中最大的 C. a, b, c 三个数完全相等 D. b 和 c 的大小关系已经确定

( ) 10. 给定代码 int num = 8;,以下哪个 if 结构会输出 "C"? A. if(num<5){cout<<"A";} else if(num<8){cout<<"B";} else{cout<<"C";} B. if(num>10){cout<<"A";} else if(num>8){cout<<"B";} else{cout<<"C";} C. if(num>9){cout<<"A";} else if(num==8){cout<<"B";} else{cout<<"C";} D. if(num<0){cout<<"A";} else if(num>10){cout<<"B";} else{cout<<"C";}

三、 判断题 (对的打“√”,错的打“×”)

( ) 1. 在一个 if-else if-else 结构中,如果第一个 if 的条件为真,程序会会继续检查后面的 else if 条件。

( ) 2. if-else if-else 结构中,else if 可以有很多个,但 if 和 else 最多只能有1个。

( ) 3. 一个 if 结构必须包含 else 部分,否则代码会编译失败。

( ) 4. 在 C++ 中,if 语句的执行块内可以再包含另一个完整的 if-else 结构。

( ) 5. 对于 if (x > 10) { ... } else if (x > 5) { ... } 这样的结构,条件 x > 10 和 x > 5 的顺序可以随意交换,不会影响程序的逻辑结果。

( ) 6. 三数排序案例中,解法一(纯粹使用多分支判断)的优点是逻辑简单,但缺点是存在重复判断。

( ) 7. 对于代码 int num = 10; if (num > 5) { cout << "A"; } if (num > 8) { cout << "B"; },屏幕上会输出 "AB"。

( ) 8. else if 中的 else 关键字,其隐含了:在此之前的所有 if 和 else if 的条件判断结果均为 false。

( ) 9. 用嵌套分支解决三数排序问题,体现了“我们人类的分步解决”的思想,理解起来会更容易。

( ) 10. if 语句只能嵌套在另一个 if 语句的代码块中,不能嵌套在 else 的代码块中。