Files

5.3 KiB
Raw Blame History

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。