Initial commit: C++ courseware

This commit is contained in:
xiaolinquan committed 2026-11-05 22:51:02 +08:00
commit 4a4ee7c287
1789 files changed
+373489

No files matched your search

@@ -0,0 +1,94 @@
### **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;
}
```