4.3 KiB
C++ switch 多选择语句 课后习题
姓名: ________________
一、 填空题
-
if-else if的逻辑是“顺序比较”,而switch的逻辑是“_____________”,在选项多时效率更高。 -
switch语句中,每个选项都由关键字 _____________ 开头,后面跟一个常量值和冒号。 -
为了防止“case 穿透”,在每个独立的
case代码块结束时,都应该加上 _____________ 语句。 -
如果
switch表达式的值与所有case都不匹配,程序会执行 _____________ 分支下的代码。 -
一个
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 结构。