Files

3.1 KiB
Raw Permalink Blame History

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. 题目:商场折扣计算器 (注意:这是一个开放性编程题,以下为标准参考答案,学生的实现逻辑正确即可)

    #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;
    }