Files

79 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### **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. 当程序运行结果与预期不符时,可以在代码的关键位置加入临时的\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_语句来打印出中间变量的值,这种方法被称为“手动检查法”。
#### **二、 单项选择题**
( &nbsp; ) 1. 阅读以下代码,其最终输出是什么?
```cpp
int num1 = 10, num2 = 20;
num1 = num2;
num2 = num1;
cout << num1 << " " << num2;
```
​ A. 10 20 &emsp; B. 20 10 &emsp; C. 10 10 &emsp; D. 20 20
( &nbsp; ) 2. 根据编程解题“七步法”,当发现样例测试结果与预期不一致时,我们应该进入哪个环节?
A. 重新读题,理解要求
B. 检查输出格式
C. 使用“手动cout检查法”等手段,修复逻辑错误
D. 优化代码,提高运行速度
( &nbsp; ) 3. 对于“小鱼的游泳时间”问题,如果输入的开始时间是 `a` 时 `b` 分,那么将开始时间统一进制转换成分钟数的正确表达式是?
A. `a + b * 60` &emsp; B. `a * 60 + b` &emsp; C. `a * 60 + b * 60` &emsp; D. `(a + b) * 60`
( &nbsp; ) 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;`
( &nbsp; ) 5. 在线评测系统(OJ)返回“Accepted (AC)”,这意味着什么?
A. 代码可以成功编译。
B. 代码通过了样例测试数据。
C. 代码通过了所有的测试数据,程序是完全正确的。
D. 代码的格式非常规范。
( &nbsp; ) 6. 某同学在提交代码后得到了“Wrong Answer (WA)”的反馈,有可能的原因是?
A. 代码中漏掉了一个分号`;`。
B. 变量名拼写错误。
C. 解题的逻辑思路存在问题,或者输出格式与要求不符。
D. 使用的变量太多,占用了过多内存。
( &nbsp; ) 7. 假设变量 `total_minutes` 的值为 `125`,执行以下代码后,输出是什么?
```cpp
int h = total_minutes / 60;
int m = total_minutes % 60;
cout << h << " " << m;
```
​ A. 2 5 &emsp; B. 2.08 5 &emsp; C. 2 15 &emsp; D. 2 25
( &nbsp; ) 8. “七步法”中“理解输入”这一步,下列说法正确的是什么?
A. 必须在代码中把变量赋值为样例输入的值,如 `int a = 12;`
B. 必须使用 `cin` 来从键盘获取不确定的输入值。
C. 必须给变量起一个和题目描述中一模一样的名字。
D. 必须一次性把所有需要的变量都在程序开头定义好。
#### **三、 判断题 (对的打“√”,错的打“×”)**
( &nbsp; ) 1. 交换两个变量 `a` 和 `b` 的值,代码 `int temp = a; a = b; b = temp;` 是正确的。
( &nbsp; ) 2. 在编程时,应该先思考好清晰的逻辑,再动手写代码,这样比直接埋头试错更高效。
( &nbsp; ) 3. 如果OJ返回 `Compile Error (CE)`,说明是程序的逻辑算法错了。
( &nbsp; ) 4. 在“小鱼的游泳时间”问题中,可以直接用结束的分钟减开始的分钟,小时减小时,不需要统一单位。
( &nbsp; ) 5. 一个程序在自己的电脑上用了一个样例测试通过了,那么提交到OJ就一定能获得 `AC`。
( &nbsp; ) 6. `cout << 6 << " " << 20;` 和 `cout << "6 20";` 对于OJ评测系统来说,输出结果是完全一样的。
( &nbsp; ) 7. “手动cout检查法”是定位逻辑错误的有效手段。
( &nbsp; ) 8. 在“成绩计算”问题中,因为成绩有小数,所以存储总分的变量最好声明为 `double` 类型。
( &nbsp; ) 9. `cin >> a >> b;` 这行代码的作用是,把 `a` 的值赋给 `b`。
( &nbsp; ) 10. OJ评测系统对输出格式要求极高,多一个或少一个空格都可能导致 `WA`。