10 个默写模板覆盖二级编程题全部高频型 —— 数位 / 图形 / 枚举 / 模拟。二级考的不是算法,是几种固定写法 + 不丢基础分。目标不是"看懂",而是合上清单写出可编译骨架。每个模板可一键盖住自测。
用法:每个模板 ①先盖住骨架自己默写 → ②点开对照检查 → ③做对应自测题 → ④回看易错点。所有骨架均为 C++14。配套执行页:GESP2 级备考计划。
getchar() / 空格换行残留。== 是比较,= 是赋值,别写错。else if 串起来,要么逻辑互斥,别重复计数。<= 还是 <?行列数到底从 1 还是从 0 开始,先想清楚再写。break 只跳出当前一层循环;continue 跳过本次进入下一次。x % 10 取个位,x / 10 去个位,两句要配对。x == 0 是特例(循环一次都不进),按题意单独处理。abs(x) 再拆位。7 / 2 == 3,要小数得用 double。x = 0 时进制转换要特判输出 0。'a'-'A' == 32:大小写互转就是加减 32(或用 toupper/tolower)。'7' 不等于数字 7,要 - '0'。'A'=65 / 'a'=97 / '0'=48 三个基准即可。int / int 结果还是 int,先 (double) 再除才有小数。(int)x 是截断不是四舍五入。int(> 21 亿)时用 long long。sqrt/pow 返回 double,比较前转回整数并校验,别直接信浮点。max/min 一次只比两个,比三个写 max(a, max(b, c))。pow 算整数幂可能有误差,小幂次宁可写循环连乘。实心:每格都打。空心:只在第一行 / 末行 / 第一列 / 末列打。
三角形 / 菱形:先打 空格(和行号有关)再打 *(个数和行号有关),找出 空格数 和 星数 关于 i 的公式。
j 从 i+1 开始避免重复数对)。| 步骤 | 关键变量① | 关键变量② | 输出 |
|---|---|---|---|
| 进入循环前 | … | … | |
| 第 1 次 | … | … | |
| 第 2 次 | … | … | |
| … | |||
| 结束 | 最终输出 |
break/continue 跳到哪、整数除法 / 取余的结果、i++ 在前还是在后。'0'~'9' 对应 ASCII 48~57。int 约 ±21 亿(21_4748_3647);超出用 long long;char 1 字节存一个字符。! > && > ||;不确定就加括号。| 阶段 | 默写模板 | 限时自测 |
|---|---|---|
| 冲刺 1(6/22) | 1 输入输出 · 4 数位 · 6 字符 / ASCII | P1179 → B4497 |
| 冲刺 2(6/23) | 3 循环嵌套 · 9 图形输出 · 8 数学函数 | B4498 → P5725 |
| 冲刺 3(6/24) | 2 分支 · 5 整除取余 · 7 类型转换 | 一套二级真题(选择判断 + 2 编程) |
| 冲刺 4(6/25) | 10 数组枚举 + 全部盖住各默 1 遍 | P1980、P5731、P2241、P5727 四题模拟 |
GESP2 · 二级编程模板默写清单 · C++14 · 离线可用