slug
apcsafrq
type
Post
status
Published
category
8-AP CSA
date
Mar 18, 2026
summary
tags
Lectures
password
icon
按 College Board 现行 AP CSA 说明,FRQ 一共 4 题:Q1 Methods and Control Structures,Q2 Class Design,Q3 Data Analysis with ArrayList,Q4 2D Array。FRQ 部分 90 分钟、共 45% 分值;题目要求都用 Java 作答,而且官方明确说:如果本来可以直接调用题目给出的可用方法,却写了大量可被替代的代码,通常拿不到满分。(AP 学生)
另外,官方 CED 还特别说明:Q1 常见是“两个 method”或“一个 constructor + 一个 method”;其中一部分往往会涉及 String 方法。Q2 必须会写类头、实例变量、构造器和方法;Q3 专门考 ArrayList;Q4 专门考二维数组。(AP Central)
下面我给你一份最实用的 AP CSA FRQ 常用代码模块,基本可以当考前背诵模板。

1. Q1 常用:计数 / 求和 / 条件判断模板

适用:
  • 统计满足条件的个数
  • 累加符合条件的值
  • 遍历固定次数

2. Q1 常用:区间遍历模板

注意:
  • 看清楚是 <= end 还是 < end
  • AP FRQ 很爱考边界

3. Q1 常用:while 模板

适用:
  • 条件不确定、重复直到满足
  • 模拟过程题

4. Q1 常用:最大值 / 最小值更新模板

扩展到循环里:

5. Q1 常用:调用题目已给方法的模板

官方很看重“会不会直接调用已有方法”,不要自己绕远路重写。(AP Central)
考试里常见:
  • obj.getSomething()
  • obj.updateSomething(...)
  • someMethod(...)

6. Q1 常用:String 处理模板

因为 Q1 常常会碰到 String 方法。(AP Central)

(a) 遍历字符串字符

(b) 拼接字符串

(c) 截取子串


7. Q2 常用:Class Design 标准模板

Q2 基本要会的四件套:
  • private 实例变量
  • 构造器
  • accessor / getter
  • 题目要求的方法

8. Q2 常用:构造器里初始化实例变量

如果题目给默认值逻辑:

9. Q2 常用:按题意更新对象状态

Q2 很常考:
  • 修改实例变量
  • 满足条件才修改
  • 返回更新后的结果

10. Q3 常用:ArrayList 遍历模板

(a) 只读遍历


11. Q3 常用:统计满足条件元素个数


12. Q3 常用:替换 / 更新元素


13. Q3 常用:删除元素的安全模板

这是 FRQ 高频坑点。

正确写法:倒着删

为什么倒着删:
  • 正着删会导致后面元素左移,容易漏掉元素

14. Q3 常用:插入元素模板

循环插入时要特别小心下标变化。

15. Q3 常用:寻找第一个满足条件的位置

FRQ 里非常常见:
  • 找第一个
  • 找最后一个
  • 找不到返回 1

16. Q4 常用:二维数组遍历模板


17. Q4 常用:求某一行总和


18. Q4 常用:求某一列总和

前提通常是题目保证这一列存在。

19. Q4 常用:统计二维数组中满足条件的元素个数


20. Q4 常用:按位置修改二维数组


21. FRQ 万能写法框架

看到题先套这个:
把题目翻译成这五步:
  1. 要返回什么?
  1. 需要遍历谁?
  1. 条件是什么?
  1. 每次满足条件做什么?
  1. 最后返回什么?

22. 最容易丢分的点

===

String 比较用 equals

不要写:

ArrayList

数组

字符串


23. 最建议你死记硬背的 8 个模板

如果只背最核心的,背这 8 个就够了:

24. 考场策略

官方 FRQ 就是围绕 4 类题型出题,所以你复习时最有效的方法,不是背零散语法,而是按题型背“代码模块”。(AP 学生)
建议你这样练:
  • Q1:练 if + for + while + String
  • Q2:练“类四件套”
  • Q3:练 ArrayList 遍历、删除、插入
  • Q4:练二维数组双重循环
 
GeoGebra介绍IGCSE Math 视频(BBC出品)
Loading...