首页课程小红花墙

考级冲刺 · 小纸条

选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。

第 1 章30第 2 章30第 3 章30第 4 章30第 5 章30第 6 章30第 7 章30第 8 章30第 9 章30第 10 章30第 11 章30第 12 章30第 13 章5
只印题目
第 1 页 · 正面(题目)
1逻辑运算短路

假的条件 && i++,i 会加吗?

2赋值与相等

if(x=0) 和 if(x==0) 有什么不同?

3分支穿透

忘写跳出会发生什么?

4else 跟谁

为什么建议 if 后面总是加大括号?

5跳出与跳过

想"跳过偶数",该用哪个?

6跳出只跳一层

内层跳出后,外层会继续吗?

7数组越界读什么

为什么越界比报错更麻烦?

8数组没初始化

求和前忘记把 sum 设为 0 会怎样?

9读程序练习一

动手画变量表算一算。

10读程序练习二

列表格逐轮记录 n 和 s。

第 1 页 · 背面(答案)

参考答案(家长):前者把 x 赋成 0 且条件为假,后者才是判断 x 是否为 0。

参考答案(家长):不会,因为短路了,后半部分根本没执行。

参考答案(家长):能避免配对歧义,也方便以后加语句。

参考答案(家长):会把后面几支的语句也执行一遍,输出多余内容。

参考答案(家长):会。这一点常被考,也常写错。

参考答案(家长):跳过本轮的那个(continue)。

参考答案(家长):结果加在一个随机值上,答案离谱。

参考答案(家长):报错能立刻发现,越界会静悄悄给你错答案。

参考答案(家长):s = 1+2+3+4 = 10。

参考答案(家长):只加了 1、3、5,s = 9。

第 2 页 · 正面(题目)
11读程序练习三

算清内层各跑了几次。

12追踪递归

画出求 3 的阶乘的调用过程。

13什么是完善程序

拿到这类题,第一步该做什么?

14先认出算法

看到 mid=(l+r)/2,你会想到什么?

15空常出现在哪

记住这五个位置。

16用上下文推

为什么"孤立地看这一行"填不出来?

17填完要验算

为什么用小数据验算最有效?

18完善程序练习

初始值该设成什么最稳妥?

19选择题怎么准备

把学过的常识点整理成一页纸。

20常考常识清单

把这几条背下来。

第 2 页 · 背面(答案)

参考答案(家长):3×(2×(1)),最里层返回 1,逐层乘回去得 6。

参考答案(家长):1+2+3 = 6。

参考答案(家长):二分查找或二分答案。

参考答案(家长):先通读,判断它在实现什么算法,再逐个推空。

参考答案(家长):空的含义由上下文决定,脱离上下文无从判断。

参考答案(家长):知道空爱出现在哪,就能有的放矢。

参考答案(家长):设成数组第一个元素,比设成 0 更稳(有负数时 0 会出错)。

参考答案(家长):小数据能快速跑完,又足以暴露边界错误。

参考答案(家长):这些几乎每次都会以某种形式出现。

参考答案(家长):整理的过程本身就是复习。

第 3 页 · 正面(题目)
21复杂度速记

三层嵌套循环是什么复杂度?

22由范围猜算法

n 最大 100 和 n 最大 100000,能用的算法一样吗?

23上机题读题

读题时把这三样圈出来。

24样例是宝

样例过了就一定对吗?

25自己造数据

给"求最大值"造四组测试数据。

26边界最爱错

写完程序,先拿 n=1 试一遍。

27溢出要当心

什么情况下要警惕溢出?

28时间超了怎么办

超时的第一反应该是什么?

29答案错了怎么查

为什么要"小"数据?

30部分分也是分

不会做的题,该交白卷吗?

第 3 页 · 背面(答案)

参考答案(家长):不一样。前者可以两三层循环,后者最多一层或带 log。

参考答案(家长):O(n³)。

参考答案(家长):不一定。样例通常很简单,还要自己想边界情况。

参考答案(家长):养成圈重点的习惯,能少走很多弯路。

参考答案(家长):养成这个习惯能挡掉很多错误。

参考答案(家长):只有一个数、全部相同、最大在开头、最大在末尾。

参考答案(家长):重新看数据范围,判断该用什么复杂度的算法。

参考答案(家长):数据接近或超过 21 亿,或者多个大数相乘时。

参考答案(家长):不该。写个暴力解法往往能拿三到五成分。

参考答案(家长):小数据才能手动算完,大数据看不出哪一步错。

op599 课程