2021年AP CSA北美考试整体难度

今年的FRQ考题难度适中,每道题目中都没有复杂的逻辑判断与循环应用。较为困难的题目为第一题,需要快速联想到使用indexOf的方法并且理解题目含义。第二题中的类型只需要理解方法的逻辑,并且按照类型设计的要求分析出实例变量即可。在第三题与第四题都是将Standard Algorithm进行简单修改就可以运用到题目中。

往年题目对比

CSA从2019年后对考纲进行了修改,以及对FRQ的考题类型进行了固定化。今年考题的出题套路与题目考察的范围和2019年一致。第一、第三、第四题都大量使用了Standard Algorithm的部分。所以要对每一个单元的Standard Algorithm下大量功夫复习,了解每一种算法的目的以及逻辑内容。

2021年AP CSA北美试题逐题讲解

FRQ-1:WordMatch Class

考察范围:Unit 2 String 方法使用、方法调用,Unit 3 if 语句书写以及逻辑判断,Unit 4 循环使用

本题题干类似于2015年FRQ-2 题,但是题目本身无直接联系。题目难度适中,第一问的逻辑部分需要通过例子理解。尤其是注意题目中提到允许猜测的词(guess)所出现的位置可以相互重叠。

A)方法要求查找出现的一段substring的次数,因此要联想到使用indexOf() 方法,并且要用一个int记录一共出现的次数。由于并不确定执行次数,要优先考虑使用while循环配合执行。每次执行都需要更新结束条件中的变量,但是并不能够修改实例变量,所以可以利用一个新声明的变量来储存实例变量的值,然后进行修改。

逻辑:

B) 方法要求给出两个String中分数高的猜测结果。因此需要使用a问中所写的方法。使用if语句进行判断,给出高分的String即可。

逻辑:

FRQ-2: CombinedTable Class

考察范围:Unit 2 方法调用,Unit 3 if 语句书写以及逻辑判断,Unit 5 类的设计。

本题逻辑较为基础,难度较低。理清楚每一个方法的逻辑以及实例变量的内容即可。

实例变量:题目中的example给出构造器需要两个参数,分别代表了第一个SingleTable与第二个SingleTable。因此至少需要两个实例变量储存这两个值,并要注意类型与访问修饰符。需要注意的是,不可以直接将总座位个数以及view quality作为实例变量,否则对SingleTable进行修改时不会影响到CombinedTable的实例变量的值。

代码:

canSeat方法:方法需要一个int的参数表示一共要坐几个人。而方法会返回这个CombinedTable是否可以坐下这么多人,因此返回值类型位boolean,需要的参数为int类型。所以计算两个SingleTable的总座位并且判断参数是否小于或等于总座位减少两个即可。

逻辑:


getDesirability方法:方法需要返回两个SingleTable关于view quality的值。因此方法需要返回一个double类型的值。根据例子,方法不需要任何的参数。而方法逻辑中,如果两个SingleTable的height一致,返回值是两个的平均值。如果高度不相等,就是平均值减去10。

逻辑:

FRQ-3: ClubMembers Class

考察范围:Unit 2 方法调用,Unit 3 if 语句书写以及逻辑判断,Unit 4 循环使用,Unit 6 Array的遍历,Unit 7 ArrayList方法使用、Standard Algorithm

题目考查对于ArrayList方法使用以及标准算法的运用。同时也包含了has-a 关系理解,利用MemberInfo类型的方法完成题目要求。整体难度为中等,往年中2018 FRQ-2,2016 FRQ-2c等题目也考察到了类似的概念。

A)方法需要在ArrayList中添加array中的所有元素。因此使用Standard Algorithm中的array遍历并且对于每一个元素都要创建一个MemberInfo类型再添加到ArrayList中。

逻辑:


B)方法删除memberList中所有参数年份以及之前的元素,并且将这些元素储存在一个ArrayList中再返回。因此要先创建一个ArrayList,并且将所有满足标准的元素都在原ArrayList删除并且添加在新创建的ArrayList中。因为要删除元素,所以要使用倒序遍历不会跳过元素。(如果选择正序遍历,需要在删除元素后对index进行合适的更新)。

逻辑:

FRQ-4: ArrayResizer Class

考察范围:Unit 3 if 语句书写以及逻辑判断,Unit 4 循环使用,Unit 8 二维数组的遍历、Standard Algorithm。

题目为基础算法考察,难度较为简单。第一问为遍历二维数组其中的一个行查看是否满足所有的性质,第二问为将满足性质的所有行储存为一个二维数组中。

A)方法需要返回第r行中是否所有值都是非零值。因此使用正常的循环遍历,如果出现反例就return false即可。

逻辑:


B)方法需要拿到所有非零行的值,并储存到一个二维数组中。所以要得到结果的行数与总列数。因此行数的获取来自于numNonZeroRows,列数为原二维数组的列数。方法必须使用numNonZeroRows 以及isNonZeroRow方法。

逻辑:

文章作者

TD福利

TD整理了CB目前在官网最新更新的2021年北美卷的AP FRQ真题免费分享给大家,目前共有AP美国政府与政治、AP物理C电磁、AP物理C力学、AP微积分AB、AP微积分BC、AP德语语言与文化、AP人文地理等7个科目。

有需要的同学可以扫下方二维码,添加TD客服马甲,给马甲发送暗号「2021frq」即可领取~其他科目真题将随官网更新陆续放入分享链接中,敬请关注~

[series id=’363′ title=’AP真题下载’ limit=’5′]