Initial commit: C++ courseware
This commit is contained in:
commit
4a4ee7c287
1789 files changed
+373489
No files matched your search
+105
@@ -0,0 +1,105 @@
|
||||
### C++ switch 多选择语句 课后习题
|
||||
|
||||
姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
#### **一、 填空题**
|
||||
|
||||
1. `if-else if` 的逻辑是“顺序比较”,而 `switch` 的逻辑是“**\_\_\_\_\_\_\_\_\_\_\_\_\_**”,在选项多时效率更高。
|
||||
|
||||
2. `switch` 语句中,每个选项都由关键字 **\_\_\_\_\_\_\_\_\_\_\_\_\_** 开头,后面跟一个常量值和冒号。
|
||||
|
||||
3. 为了防止“case 穿透”,在每个独立的 `case` 代码块结束时,都应该加上 **\_\_\_\_\_\_\_\_\_\_\_\_\_** 语句。
|
||||
|
||||
4. 如果 `switch` 表达式的值与所有 `case` 都不匹配,程序会执行 **\_\_\_\_\_\_\_\_\_\_\_\_\_** 分支下的代码。
|
||||
|
||||
5. 一个 `case` 后面忘记写 `break`,程序会继续向下执行之后的所有代码,这种现象叫做“**\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_**”。
|
||||
|
||||
#### **二、 单项选择题**
|
||||
|
||||
( ) 1. 阅读代码,当输入为 `2` 时,输出结果是什么?
|
||||
```cpp
|
||||
int n;
|
||||
cin >> n;
|
||||
switch(n) {
|
||||
case 1: cout << "Apple"; break;
|
||||
case 2: cout << "Banana"; break;
|
||||
case 3: cout << "Cherry"; break;
|
||||
}
|
||||
```
|
||||
A. Apple B. Banana C. Cherry D. 没有输出
|
||||
|
||||
( ) 2. 阅读代码,当输入为 `2` 时,输出结果是什么? (注意:缺少 `break`)
|
||||
```cpp
|
||||
int n;
|
||||
cin >> n;
|
||||
switch(n) {
|
||||
case 1: cout << "A";
|
||||
case 2: cout << "B";
|
||||
case 3: cout << "C";
|
||||
}
|
||||
```
|
||||
A. B B. BC C. ABC D. C
|
||||
|
||||
( ) 3. 阅读代码,当输入为 `5` 时,输出结果是什么?
|
||||
```cpp
|
||||
int n;
|
||||
cin >> n;
|
||||
switch(n) {
|
||||
case 1: cout << "A"; break;
|
||||
case 2: cout << "B"; break;
|
||||
default: cout << "Other";
|
||||
}
|
||||
```
|
||||
A. A B. B C. Other D. 没有输出
|
||||
|
||||
( ) 4. `switch` 语句主要用来替代哪种结构的 `if` 语句?
|
||||
A. `if (score > 90)`
|
||||
B. `if (a > 0 && b > 0)`
|
||||
C. `if (day == 1) { ... } else if (day == 2) { ... } else if (day == 3) { ... }`
|
||||
D. `if (password != "123")`
|
||||
|
||||
( ) 5. 下列哪种判断**不能**直接用 `switch` 语句实现?
|
||||
A. 判断某天是周几 B. 判断成绩是否及格
|
||||
C. 判断输入的字符是不是 'Y' D. 判断用户的选择是不是 1
|
||||
|
||||
( ) 6. `switch (n)` 中,`n` 的结果**不能**是什么类型?
|
||||
A. `int` B. `char` C. `double` D. `bool`
|
||||
|
||||
( ) 7. 在 `switch` 结构中,`default` 关键字的作用是?
|
||||
A. 提供一个默认的变量值 B. 当所有 `case` 都不匹配时执行
|
||||
C. 必须写在 `switch` 的最开始 D. 用来结束 `switch` 语句
|
||||
|
||||
( ) 8. 为了判断一个字符 `c` 是不是元音字母(a, e, i, o, u),最高效的 `switch` 写法是?
|
||||
A. 为 a, e, i, o, u 分别写五个独立的 `case`,每个都带 `break`
|
||||
B. 使用 `if (c=='a' || c=='e' ...)`
|
||||
C. 将 `case 'a': case 'e': case 'i': case 'o': case 'u':` 堆叠在一起,共享一个代码块
|
||||
D. `switch` 无法实现此功能
|
||||
|
||||
( ) 9. 阅读代码,当输入为 `'B'` 时,输出结果是什么?
|
||||
```cpp
|
||||
char c;
|
||||
cin >> c;
|
||||
switch(c) {
|
||||
case 'A': cout << "Apple";
|
||||
case 'B': cout << "Banana";
|
||||
case 'C': cout << "Cherry"; break;
|
||||
case 'D': cout << "Durian";
|
||||
}
|
||||
```
|
||||
A. Banana B. BananaCherry C. BananaCherryDurian D. Cherry
|
||||
|
||||
( ) 10. `case` 标签后面跟的值必须是?
|
||||
A. 一个变量 B. 一个常量 C. 一个表达式 D. 一个函数
|
||||
|
||||
#### **三、 判断题 (对的打“√”,错的打“×”)**
|
||||
|
||||
( ) 1. `switch` 语句只能用于进行“等于”的判断。
|
||||
( ) 2. 在 `switch` 语句中,`default` 分支是必须存在的,不能省略。
|
||||
( ) 3. `case` 后面跟的可以是 `case x:`,其中 `x` 是一个 `int` 类型的变量。
|
||||
( ) 4. `break` 语句的作用是跳出当前的 `switch` 结构。
|
||||
( ) 5. 如果好几个 `case` 需要执行的操作完全一样,可以利用“case穿透”来简化代码。
|
||||
( ) 6. `if-else if` 语句能实现的功能,`switch` 语句也一定能实现。
|
||||
( ) 7. `switch` 语句中,各个 `case` 标签的顺序不影响最终的逻辑结果(假设都正确使用了 `break`)。
|
||||
( ) 8. 忘记在 `case` 中写 `break` 会导致编译错误(CE)。
|
||||
( ) 9. `switch` 的逻辑是“直接跳转”,而 `if-else if` 是“顺序比较”。
|
||||
( ) 10. 可以在一个 `switch` 结构中,放置另一个 `switch` 结构。
|
||||
Reference in new issue
Block a user