### **C++ 顺序结构设计综合练习 课后习题** 姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ #### **一、 填空题** 1. 编程解题的“七步法”强调,在动手将思路翻译成代码之前,更重要的是先\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 2. 为了交换变量 `num1` 和 `num2` 的值,我们需要借助_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。如果第一步是 `temp = num1;`,第三步是 `num2 = temp;`,那么中间的第二步应该是\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 3. 在解决“小鱼的游泳时间”问题时,为了简化计算,我们采用“统一单位”的方法,将“时”和“分”都统一成最小单位\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 4. 在解决“小鱼的游泳时间”问题时,在计算完毕小鱼从开始到结束的游泳时间 `diff` 分钟后,还需要将 `diff` 分钟的形式换算回小时和分钟,那么计算小鱼这天一共游的小时数的表达式为\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_;那么计算小鱼这天一共游的分钟数的表达式为\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 5. 如果在代码中漏写了分号或使用了中文标点,提交到OJ系统最可能收到的反馈是\_\_\_\_\_\_\_\_\_\_ (填写简称 CE/WA/AC)。 6. 如果程序的逻辑有漏洞,例如错把 `a > b` 写成了 `a < b`,导致计算结果错误,提交后最可能收到的反馈是\_\_\_\_\_\_\_\_\_\_\_\_\_\_ (填写简称CE/WA/AC)。 7. 当程序运行结果与预期不符时,可以在代码的关键位置加入临时的\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_语句来打印出中间变量的值,这种方法被称为“手动检查法”。 #### **二、 单项选择题** (   ) 1. 阅读以下代码,其最终输出是什么? ```cpp int num1 = 10, num2 = 20; num1 = num2; num2 = num1; cout << num1 << " " << num2; ``` ​ A. 10 20   B. 20 10   C. 10 10   D. 20 20 (   ) 2. 根据编程解题“七步法”,当发现样例测试结果与预期不一致时,我们应该进入哪个环节? A. 重新读题,理解要求 B. 检查输出格式 C. 使用“手动cout检查法”等手段,修复逻辑错误 D. 优化代码,提高运行速度 (   ) 3. 对于“小鱼的游泳时间”问题,如果输入的开始时间是 `a` 时 `b` 分,那么将开始时间统一进制转换成分钟数的正确表达式是? A. `a + b * 60`   B. `a * 60 + b`   C. `a * 60 + b * 60`   D. `(a + b) * 60` (   ) 4. 在“成绩计算”问题中,总成绩 `score = 作业(A)*20% + 小测(B)*30% + 期末(C)*50%`。以下哪段计算代码是正确的? A. `int score = A * 20 + B * 30 + C * 50;` B. `double score = A * 0.2 + B * 0.3 + C * 0.5;` C. `int score = A * 0.2 + B * 0.3 + C * 0.5;` D. `double score = A / 5 + B / 3 + C / 2;` (   ) 5. 在线评测系统(OJ)返回“Accepted (AC)”,这意味着什么? A. 代码可以成功编译。 B. 代码通过了样例测试数据。 C. 代码通过了所有的测试数据,程序是完全正确的。 D. 代码的格式非常规范。 (   ) 6. 某同学在提交代码后得到了“Wrong Answer (WA)”的反馈,有可能的原因是? A. 代码中漏掉了一个分号`;`。 B. 变量名拼写错误。 C. 解题的逻辑思路存在问题,或者输出格式与要求不符。 D. 使用的变量太多,占用了过多内存。 (   ) 7. 假设变量 `total_minutes` 的值为 `125`,执行以下代码后,输出是什么? ```cpp int h = total_minutes / 60; int m = total_minutes % 60; cout << h << " " << m; ``` ​ A. 2 5   B. 2.08 5   C. 2 15   D. 2 25 (   ) 8. “七步法”中“理解输入”这一步,下列说法正确的是什么? A. 必须在代码中把变量赋值为样例输入的值,如 `int a = 12;` B. 必须使用 `cin` 来从键盘获取不确定的输入值。 C. 必须给变量起一个和题目描述中一模一样的名字。 D. 必须一次性把所有需要的变量都在程序开头定义好。 #### **三、 判断题 (对的打“√”,错的打“×”)** (   ) 1. 交换两个变量 `a` 和 `b` 的值,代码 `int temp = a; a = b; b = temp;` 是正确的。 (   ) 2. 在编程时,应该先思考好清晰的逻辑,再动手写代码,这样比直接埋头试错更高效。 (   ) 3. 如果OJ返回 `Compile Error (CE)`,说明是程序的逻辑算法错了。 (   ) 4. 在“小鱼的游泳时间”问题中,可以直接用结束的分钟减开始的分钟,小时减小时,不需要统一单位。 (   ) 5. 一个程序在自己的电脑上用了一个样例测试通过了,那么提交到OJ就一定能获得 `AC`。 (   ) 6. `cout << 6 << " " << 20;` 和 `cout << "6 20";` 对于OJ评测系统来说,输出结果是完全一样的。 (   ) 7. “手动cout检查法”是定位逻辑错误的有效手段。 (   ) 8. 在“成绩计算”问题中,因为成绩有小数,所以存储总分的变量最好声明为 `double` 类型。 (   ) 9. `cin >> a >> b;` 这行代码的作用是,把 `a` 的值赋给 `b`。 (   ) 10. OJ评测系统对输出格式要求极高,多一个或少一个空格都可能导致 `WA`。