5.3 KiB
C++ 顺序结构设计综合练习 课后习题
姓名: ___________________
一、 填空题
- 编程解题的“七步法”强调,在动手将思路翻译成代码之前,更重要的是先____________________。
- 为了交换变量
num1和num2的值,我们需要借助____________________。如果第一步是temp = num1;,第三步是num2 = temp;,那么中间的第二步应该是____________________。 - 在解决“小鱼的游泳时间”问题时,为了简化计算,我们采用“统一单位”的方法,将“时”和“分”都统一成最小单位_______________。
- 在解决“小鱼的游泳时间”问题时,在计算完毕小鱼从开始到结束的游泳时间
diff分钟后,还需要将diff分钟的形式换算回小时和分钟,那么计算小鱼这天一共游的小时数的表达式为_______________________;那么计算小鱼这天一共游的分钟数的表达式为_______________________。 - 如果在代码中漏写了分号或使用了中文标点,提交到OJ系统最可能收到的反馈是__________ (填写简称 CE/WA/AC)。
- 如果程序的逻辑有漏洞,例如错把
a > b写成了a < b,导致计算结果错误,提交后最可能收到的反馈是______________ (填写简称CE/WA/AC)。 - 当程序运行结果与预期不符时,可以在代码的关键位置加入临时的__________________语句来打印出中间变量的值,这种方法被称为“手动检查法”。
二、 单项选择题
( ) 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。