Files

94 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### **C++ (分支结构综合) 模拟练习题 - 参考答案**
#### **一、 填空题**
1. `default`
2. `大括号` (或 `{}`)
3. `string` (或 `float`, `double` 等其他非整型)
4. `(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)`
5. `!=`
6. `分支` (或 `条件`, `else if`/`else`)
7. `x <= 10`
#### **二、 单项选择题**
1. **C** (cin 用于输入)
2. **B** (if-else if-else 用于多区间判断)
3. **D** (switch 不支持浮点数)
4. **C** (break 用于防止 case 穿透)
5. **A** (85 大于等于60且小于90,为真)
6. **D** (前置条件下的再判断,是典型的嵌套逻辑)
7. **C** (50不满足前两个条件,执行 else)
8. **B** (total\_Count 是合法的变量名)
9. **B** (整数除法 `20/3` 得 6,取余 `20%3` 得 2)
10. **B** (奇数除以2余数为1)
#### **三、 判断题**
1. **×** (if-else 结构是互斥的)
2. **×** (`=` 是赋值,`==` 是比较)
3. **√** (逻辑或 || 的短路特性)
4. **×** (break 不是必须的,但是省略会产生穿透效果)
5. **√** (if 可以独立存在)
6. **×** (语法错误,应写为 `x > 10 && x < 20`)
7. **√** (这是多分支 "else" 问题的配对规则)
8. **√** (`!false` 是 `true`,`true || false` 结果为 `true`)
9. **√** (可以将多个 case 标签写在一起,共用一个执行块)
10. **√** (该结构具有排他性,最多只有一个分支被执行)
#### **四、 代码阅读与分析题**
1. **F** (字符'C'的ASCII码67, 67+3=70, 70对应的ASCII字符是'F')
2. **冰冻** (-5不满足前三个条件,执行最后的 else)
3. **良好 中等** (匹配 `case 'B'`,输出"良好 ",因无break,穿透到`case 'C'`,输出"中等 ",遇到break结束)
4. **欢迎普通用户** (`logged_in`为真,执行外层if;`is_admin`为假,执行内层else)
#### **五、 程序填空题**
1. **题目:成绩等级转换**
1. `score >= 80`
2. `score >= 70`
3. `score >= 60`
4. `else`
2. **题目:星期转换器**
1. `switch(day)`
2. `break`
3. `case 3`
4. `default`
3. **题目:商场折扣计算器**
*(注意:这是一个开放性编程题,以下为标准参考答案,学生的实现逻辑正确即可)*
```cpp
#include <iostream>
using namespace std;
int main() {
double amount;
bool is_vip;
cout << "请输入消费金额和是否为VIP(1是/0否): ";
cin >> amount >> is_vip;
double final_payment = amount; // 默认应付金额为原始金额
// 8. 外层首先判断是否为VIP会员
if (is_vip == true) { // 或者直接 if (is_vip)
// 是VIP会员,进入嵌套判断来决定折扣力度
// 9. 嵌套判断:消费金额是否大于500
if (amount > 500) {
// 享受8折
final_payment = amount * 0.8;
} else {
// 10. 享受9折
final_payment = amount * 0.9;
}
}
// 如果不是VIP,final_payment保持原值,无需else
cout << final_payment << endl;
return 0;
}
```