往年中选择AP Computer Science A的学生都是学习能力强,对新知识接受度高的学生。虽然AP CSA的整体难度不算特别难,但是考生常常却觉得拿5分没那么容易,那是因为选择AP CSA的考生能力都相当不错。
当竞争对手很强,AP计算机考试难度就不足以拉开差距,这时考验我们的就是对细节的把控了,避开所有易错点,争取拿到接近满分,那么5分就不在话下了。
想一想
那么老师这里总结了关于AP计算机考试的几个易错点,大家一起来思考一下吧!思考过后再向下查看详细解答哦!关于AP计算机看看你答对了多少吧!
01AP计算机易错点
01方法参数传递机制
1.方法参数传递机制:int[ ] arr 和 int a 作为方法的参数,有什么不一样呢?
02Upcasting向上转型
2.Upcasting向上转型:Pet p = new Cat(), 当发生了向上转型之后,p能够调用哪些方法呢,执行效果应该如何查看呢?
03随机函数
3.随机函数:如何利用随机数函数取到一个区间[low,high-1] 上的所有整数(包含端点)?
04Binary search 算法
4.Binary search 算法:利用binary search 在数组中查找任意数字k,那么最少需要查找多少次肯定能找到。
05字符串的比较
5.字符串的比较:compareTo(), == 和equals分别比较的是什么?
看一看关于AP计算机上面的问题,你都做对了么?
这几个问题在AP计算机中出现的比较高频,并且容易出错,在这里我们给大家详细解答一下。
02AP计算机易错点详细解答
📚1.第一题涉及了方法参数的传递机制。
在Java中,所有的数据分为基本数据类型和引用数据类型,这两种数据类型在作为方法的参数有所不同。
对于基本数据类型,参数传递机制时值传递(value passing),这意味着参数和主函数中的变量是相互独立的,所以即便在方法中,参数的值被修改了,也不会影响主函数中的 变量的值;
对于引用数据类型来说,参数的传递机制是地址传递(address passing),这意味着参数和主函数中的对应的变量指向同一个地址,本质上是同一个内存空间。当参数在函数中被改变,那么相应的主函数中的变量也会改变。
int []arr是引用数据类型,int a中的a是基本数据类型。但是也存在arr作为参数传到函数中,也有可能会被赋予新的地址,那么此时参数arr和主函数中的数组就是相互独立的。
📚2.当发生向上转型的时候,需要区别编译类和运行类,赋值号左边的Pet类(父类)是编译类,赋值号右边的是Cat类(子类)。
在向上转型前提下,是否能够通过编译看编译类是否具有该方法,具体的执行效果需要先看执行类是否包含该方法,
如果包含,那么执行子类中该方法的效果。
如果没有,那么就去父类中找该方法,执行父类中该方法的效果。
📚3.随机函数Math.ramdon()是用来返回一个在0和1之间的小数,含0不含1。
对于任意一个区间[low, high-1]之间的整数,我们只需要利用公式(int)(high - low) * Math.random() + low 就可求出,不要忘记强制转换成(int)类型的数。
📚4.Binary Search通常在选择题中被考察。
对于在长度为n的数组中查找任意一个数字k,对于最少查找次数m满足 2m-1 < n <= 2m 即可。
📚5.字符串的比较在AP CSA中是肯定会出现的内容,只要区别这三种比较字符串的方式即可。
a)str1.compareTo(str)用于比较字符串大小,返回的是两个字符串的差值;
b)str1 == str2 比较的是两个字符串的地址,比较结果取决于字符串的初始化方式
c)str1.equals(str2)比较的是两个字符串的内容,如果两个字符串的值一样,那么结果为true,否则为false。
总结
AP CSA考试不会很难,因为考试内容就那么几个方向,你只要掌握清楚那几个方向,多练一些题,培养好你的逻辑思维的,避开所有的易错点,把控好考试的细节,那么这个考试基本上是没有问题的。