AP CSA FRQ 作答策略
FRQ 的目标是写出符合题目约束的 Java 代码。相比 MCQ,FRQ 更容易因为方法签名、边界条件或题目限制遗漏而失分。
作答流程
- 圈出必须使用的类、字段和方法。
- 抄准方法签名,不随意改参数或返回类型。
- 写核心逻辑前,先确定循环范围。
- 写完后用题目样例手动跑一遍。
- 检查是否处理空列表、首尾元素和特殊输入。
方法签名优先
很多 FRQ 失分不是算法不会,而是第一行就写错:
java
public int countMatches(String target)写之前要确认:
- 访问修饰符是否需要
public。 - 返回值是
void、int、boolean还是对象类型。 - 参数名和类型是否与题目一致。
- 是否应该使用已有字段,而不是新建无关变量。
循环边界检查
数组和列表题最常见的问题是边界。
java
for (int i = 0; i < values.length; i++) {
// 访问 values[i]
}如果代码里访问 i + 1,循环上界就需要调整:
java
for (int i = 0; i < values.length - 1; i++) {
// 访问 values[i] 和 values[i + 1]
}最后检查清单
- 方法签名是否完全符合题目。
- 是否返回了正确类型的值。
- 循环是否覆盖所有需要的元素。
- 是否越界访问数组或列表。
- 是否误改了题目不允许修改的数据。
- 是否使用了题目已经提供的方法。
FRQ 训练时建议每次都按这个清单检查,直到它变成固定习惯。