橡沐出国留学旗下指定官方网站
唯寻杯

AP计算机A考试有哪些要考内容 考点和解法都帮你理好了

01-07
唯寻杯

本文将为大家介绍AP计算机A考试历年必内容,整理包括Array、Flow Control等重点的考法与格式。今年AP计算机A考试前最后一个winter vacation就快到了,赶快吃透这份复习纲要,朝5分冲刺吧。

AP计算机A考试有哪些必考内容 考点和解法都帮你理好了内容图片_1

AP计算机A考试形式

AP计算机科学A包括两块:

第一部分:多选题(长达90分钟的40道多选题) 占比50%

第二部分:解答题(长达90分钟的4道解答题) 占比50%

考试内容覆盖广泛,基本每章节都会考到,考试形式灵活多变,尤其在选择题中表现突出。这就要求大家在平时学习中掌握重点,全面学习,不能偏废某些章节。

AP计算机A是偏重于实践性的编程,注重考查代码在多态,继承等在算法上的具体实现,以及数据结构与算法,如链式结构,栈,堆等,因此需要专门学习一门计算机语言(java)。

AP计算机A考试核心考点整理

1Array 数组

1.1Array的声明和创建

//创建一个长度为10的intArray

int scores[]=new int[10];

                          

//创建一个长度为len的Student Array

int len=20;

Student stus[]=new Student[len];

 

1.2Array的长度

Array的长度表示Array中存放元素的数量,由Array的length成员表示,如上例中的两个数组分别可以用scores.length和stus.length表示

 

1.3访问Array中的元素,使用Array的索引完成,索引从0开始,到length-1为止

如:scores[0],scores[1],…,scores[9]

 

1.4Array的遍历

可通过for循环、for-each循环、while循环来完成

 

例1:统计一个数组里所有元素的和(使用for循环)

 

       int scores[]=new int[10];

       //数组中元素的赋值步骤省略

int sum=0;

for(int i=0;i<scores.length;i++){

  sum+=scores[i];

}

 

例2:计算数组所有元素的平均值(使用for-each循环)

      

       doubleweights[]=new double[20];

//数组中元素的赋值步骤省略

double totalWeight=0.0;

for(double weight : weights){

  totalWeight+=weight;

}

double averageWeight=totalWeight/weights.length;


 

几种循环格式可以互换,通常对于循环次数确定的情况使用for或for-each较简单,循环次数不确定的情况while会比较简单。

02Array List


2.1ArrayList的声明和创建

//创建一个String类型的ArrayList,该ArrayList中只能存放String对象,存放的元素个数不限

ArrayListlist=new ArrayList();

 

//创建一个Student类型的ArrayList,Student为用户自定义的类型

ArrayListstuList=new ArrayList();

 

在创建ArrayList对象时,写在一对“<”“>”中的数据类型在Java中称之为泛型,表示该ArrayList允许存放的数据类型。


2.2ArrayList与Array的区别

Array跟ArrayList都可以存放一组元素,不同之处在于:1、Array在创建时必须指明其长度,而ArrayList不用,其长度可以动态增加;2、Array的长度通过length成员表示,ArrayList的长度通过其size()方法获得;3、Array可以存放primitivedata(原始数据类型)或referencedata(引用数据类型,也称之为对象类型),ArrayList只能存放referencedata,原始数据类型必须通过其WrapperClass包装成referencedata放进ArrayList中,如int通过Integer包装,double通过Double包装;4、ArrayList是一个类,类中有大量已经写好的方法可以帮助我们简化对ArrayList的操作,而Array是Java内建的一种类型,只有length成员可以使用,对Array的操作需要程序员自己编码。

 

2.3ArrayList类中必须掌握的方法

2.4ArrayList的遍历

同样可通过for循环、for-each循环、while循环来完成

 

例1:统计一个String类型的ArrayList中带有“Apple”字段的String的数量,假设ArrayList通过方法参数传入,统计结果通过方法返回值返回(使用for循环)

publicint countApple(ArrayListlist){

       int count=0;

       for(inti=0;i<list.size();i++){

              Stringmessage=list.get(i);

              if(message.indexOf(“Apple”)!=-1){

                     count++;

              }

       }

       return count;

}


特别注意:当对ArrayList中的元素进行add或remove操作时,只能使用for循环或while循环,不能使用for-each循环,否则会造成运行期错误;并且在做remove操作时,要控制好循环变量,比如上例中remove之后进行了i--,否则会遗漏元素。

03String


3.1String对象的创建

Strings=new String(“hello”);

String s=”hello”;

两种创建方式都可以,两种方式本质上会有一些区别,但是AP中不要求,有兴趣的同学自己去了解(第一种方式一定会创建一个新的字符串对象,第二种方式系统会先在一个字符串缓冲区的空间去寻找有没有“hello”内容的字符串,若有,则复用这个串,没有,才会创建新对象)

 

3.2String类中必须掌握的方法

3.3String典型应用举例

例1:统计一个字符串中字符“A”出现的次数,假设String通过方法参数传入,统计结果通过方法返回值返回

publicint countA(String data){

              intcount=0;

for(int i=0;i<data.length()-1;i++){

                     Stringpos=data.subString(i,i+1);

                     if(pos.equals(“A”)){

                            count++;

                     }

              }

              returncount;

}

04FlowControl(if、for、while、booleanexpression)

这一部分的内容属于Java基本语法,是必须掌握的内容。前面的几个知识点已经涵盖了这一部分的内容。这里,总结一下各种格式


4.1if的用法

判断学员的成绩是否大于等于90,成立则执行if块中的内容

if(stu.getScore()>=90){

       //dosomething

}

判断学员成绩属于A、B、C、D哪一档

String level=””;

if(stu.getScore()>=90){

       level=”A”;

}else if(stu.getScore()>=75){

       level=”B”;

}else if(stu.getScore()>=60){

       level=”C”;

}else{

       level=”D”;

}

在if…else if…else分支结构中,只有一个语句块的内容会被执行,如果是多个if语句块并列,则每个if语句都会被检测,若满足条件,则都会执行。如:

 

String level=””;

if(stu.getScore()>=90){

       level=”A”;

}

if(stu.getScore()>=75){

       level=”B”;

}

if(stu.getScore()>=60){

       level=”C”;

}

If(stu.getScore()>0){

       level=”D”;

}

 

若学员成绩是80,则level会先被赋值“B”,然后下一个if块也成立,level被赋值“C”,最后,level被赋值“D”

 

4.2for的用法

 

计算1到100的自然数累加之和

int sum=0;

for(int i=1;i<=100;i++){

       sum+=I;

}

for循环的执行次数,如int i=1;i<=100;i++,循环次数=终值-初值+1=100次;如果是int i=1;i<100;i++,则循环次数=终值-初值=99次。

 

计算Fibonacci(斐波拉契数列)前30个元素的值

int fibo[]=new int[30];

for(int i=0;i<30;i++){

       if(i==0||i==1){

              fibo[i]=1;

       }else{

              fibo[i]=fibo[i-1]+fibo[i-2];

       }

}

 

统计一个方法反复执行多次中返回true值的比例。假设有一个已经写好的方法,格式如下:

public boolean simulate(){

       …

}

该方法有可能返回true或false,假设该方法执行了1000次,现在需要统计返回值为true的比例

 

       intcount=0;

       for(inti=0;i<1000;i++){

              if(simulate()){

                     count++;

              }

       }

       doubleproportion= (double)count/1000;

 

使用for对Array、ArrayList、String进行遍历,是考查的重点,前面已有案例,这里不再赘述。

 

4.3while的用法

while跟for实现的功能一样,很多时候二者可以替换使用,但在循环次数不定的条件下,while会更简单

4.4boolean expression

所有的booleanexpression最终产生一个true或false的结果,通常用于程序流程控制。常见的运算符包括:

关系运算符:>,<,==,>=,<=,!=

逻辑运算符:&,|,!,&&,||

AP计算机A考试有哪些必考内容 考点和解法都帮你理好了内容图片_2

05WritingaclassWritingaclass

此类题目可以比较全面地考查学员对Java语言的掌握程度以及对题目的理解和分析能力,因此一直是出现频率很高的一类题型。下面我们来看看这类题目的解题技巧。

这类题目的解题要点,首先是把题读懂,如果第一遍读下来还不是特别清楚,也不用着急,先把类的基本框架搭出来。比如说类声明(classdeclaration),方法列表(methodslist),构造器列表(constructorlist),属性(attributes)等。其次,仔细阅读题目中给出的样例代码执行结果及注释(这一部分可以反复多读几遍,读懂为止),通过分析方法返回值和注释理解方法的运行逻辑及类中可能隐藏的属性,完成方法的编码。最后,代入题目中给出的数据进行测试,确保程序可运行无遗漏。

另外,在设计一个类的时候,通常一个类会被设计成public类型,属性设计成private类型(封装),方法和构造器设计成public类型(AP只要求到这个程度)。

06产生随机整数及WrapperClass

6.1产生随机整数

       利用Math类下的random()方法可以获得一个从0.0到1.0之间的随机浮点数,随机数大于等于0.0,小于1.0。再通过简单运算即可得到任一区间的随机整数。

      如:产生一个1~10之间的随机整数

              int index=(int)(Math.random()*10+1);

              产生一个0~5之间的随机整数

intposition=(int)(Math.random()*6);

              产生一个31~49之间的随机整数

int num=(int)(Math.random()*19+31);

      6.2WrapperClass(包装类)

      由于ArrayList里面只能加入Object,所以当需要把int和double类型数据加入到ArrayList时,需要先包装成Object放入。int对应的WrapperClass是Integer,double对应的WrapperClass是Double。

      例:创建一个包含整型数据的ArrayList,并在此list中插入数据和取出数据。

      ArrayListAP计算机A考试有哪些必考内容 考点和解法都帮你理好了内容图片_3

AP计算机A考试有哪些必考内容 考点和解法都帮你理好了内容图片_4

不管是英国前10还是美国前20的学校,都非常认可AP成绩。但AP考试采取五分制,排名靠前的学校要求4-5分才能换学分,也只有接近满分的成绩才能真的帮到申请。

所以AP考生一定要以5分为最高目标呀。

更多AP学习攻略点击

CB官宣:2021年AP考试将全面恢复正常 所有知识点都会考(线上线下都一样)    

完整版AP化学考试实验考点总结 看完保4冲5没问题    


相关标签:
留学资料免费领取
开启buff留学之路
  • 英美留学规划时间轴
  • 牛剑面试sample
  • 牛津数学系面试真题解析
  • 剑桥雅思官方真题集
  • 33所大学申请指南
  • 牛津大学留学指南
  • 美国大学10年录取形势变化统计报告
  • 剑桥大学留学指南
  • QS300英国院校指南合集
  • 更多留学资料

橡沐导师团队

潘田翰(创始人)

剑桥大学化学工程硕士

Ruby Rui

剑桥大学经济系学士&双硕士学位

Candise Cai

牛津大学化学硕士

Irene Liu

约翰霍普金斯大学国际关系/国际经济硕士

Sherry Lu

剑桥大学教育语言学硕士

Stephy Tian

帝国理工化学硕士

Freda Yang

英国伦敦大学学院硕士

Qianli Xia

剑桥大学数学系荣誉学士&硕士

Olivia Hu

纽卡斯尔大学语言学专业硕士

Shanshan Yu

英国伦敦政治经济学院金融学硕士

Max Liu

帝国理工学院生物病毒学硕士

Sue Pang

牛津大学经济与管理学士学位&LSE硕士

Jaryn Huang

牛津大学社会人类学专业哲学硕士

Peter Liu

牛津大学工程科学系荣誉硕士

Alice Jiang

剑桥大学心理系荣誉学士

Frances Zhu

牛津大学化学系荣誉学士&硕士

Fang Yuan

美国普渡大学生物工程荣誉学士

Eleni Zheng

美国东北大学化学工程荣誉硕士

Celia Luo

威奇塔州立大学工商管理硕士

Lulu Cai

华威大学数学系荣誉学士

Dora Liang

华威大学硕士

Roy Lai

英国帝国理工学院交通工程学硕士

Tiffany Lin

伦敦大学学院经济学硕士
橡沐业务优势
  • 专业做牛剑/G5申请、牛剑笔面试培训,案例多数据全,经验丰富,筑梦牛剑/G5。
  • 众多牛剑+藤校等TOP院校背景导师,为您打造专属留学方案。英美留学绿色通道,个性规划,便捷申请。
  • 顾问师/规划师/课程导师/助教四位一体线上+线下服务闭环,让家长和学员放心。学习有方法,成长看得见。
  • ALevel/IB/AP/IGCSE国际课程辅导,牛剑/G5/藤校留学申请,竞赛背提培训,标化语言考试一体化服务。
荣誉源于实力
荣获腾讯《年度影响力在线教育品牌》
荣获新华社《口碑影响力课外辅导机构》
National Economics challenge 2020 Official Test Center
2018年度家长信赖在线教育品牌
留学教育行业"全国知名度"品牌机构
Oxford International AQA Approved Teaching School
雅思考试合作伙伴项目明日之星
荣获新浪《年度品牌影响力国际教育机构》
荣获腾讯《年度影响力在线教育品牌》
荣获新华社《口碑影响力课外辅导机构》
National Economics challenge 2020 Official Test Center
2018年度家长信赖在线教育品牌
相关文章推荐
  • 电话咨询
    全国统一咨询热线
    400-825-6055
    成功提交后我们将尽快与您联系,请注意来电哦!
  • 微信咨询

    微信咨询

  • 费用查询
    课程报价查询系统
    成功提交后我们将尽快与您联系,请注意来电哦!
  • 试听预约
    请选择您想试听的课程
    成功提交后我们将尽快与您联系,请注意来电哦!
立即领取