36 lines
1.9 KiB
Markdown
36 lines
1.9 KiB
Markdown
### **C++ 顺序结构综合练习 课后习题 - 答案**
|
|
|
|
#### **一、 填空题**
|
|
|
|
1. 思考解题逻辑
|
|
2. 第三个变量,`num1 = num2;`
|
|
3. 分钟
|
|
4. `diff / 60` , `diff % 60`
|
|
5. CE (Compile Error)
|
|
6. WA (Wrong Answer)
|
|
7. `cout`
|
|
|
|
#### **二、 单项选择题**
|
|
|
|
1. **D**. 这是错误的交换方法。`num1 = num2;` 后,`num1` 的值变为20。`num2 = num1;` 后,`num2` 的值也保持为20。
|
|
2. **C**. 样例不通过说明程序逻辑有问题,需要调试修正。
|
|
3. **B**. `小时数 * 60 + 分钟数` 是正确的换算逻辑。
|
|
4. **B**. 百分比要换算成小数,且结果可能为小数,应用 `double` 类型存储。
|
|
5. **C**. AC代表通过了所有测试,是最终的正确结果。
|
|
6. **C**. WA代表程序能运行但结果不对,这是逻辑或格式上的错误。CE才是语法错误。
|
|
7. **A**. `125 / 60` 整数除法得 `2`。`125 % 60` 取余数得 `5`。
|
|
8. **B**. 程序的价值在于处理不确定的、任意的合法输入,所以必须用 `cin`。
|
|
|
|
#### **三、 判断题**
|
|
|
|
1. √ (这是标准的三变量交换法。)
|
|
2. √ (讲义的核心思想之一,清晰的逻辑远比盲目试错重要。)
|
|
3. × (CE是编译错误,即语法错误。WA或TLE等才是逻辑算法错误。)
|
|
4. × (这种方法无法处理分钟不够减需要向小时借位的情况,统一单位是更简单可靠的方法。)
|
|
5. × (OJ系统会有更多、更复杂的测试数据,样例通过只是第一步。)
|
|
6. √ (对于评测系统来说,它只关心最终打印到屏幕上的字符序列是否完全匹配。)
|
|
7. √ (这是讲义中重点推荐的调试逻辑错误的方法。)
|
|
8. √ (因为 `* 0.2` 这类运算可能产生小数,用 `int` 会丢失精度。)
|
|
9. × (这行代码的作用是从键盘读取两个值,分别存入变量 `a` 和 `b`。)
|
|
10. √ (OJ是“死脑筋”的,格式必须完全一致。)
|