唯寻国际教育旗下指定官方网站
课程咨询热线 400-825-6055
4牛津剑桥青睐的学子到底长什么样子

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

AP资料
AP各科复习公式
AP各科复习手册
2021FRQ汇编手册
2021AP破题手册
AP心理学指南
AP微积分指南
点击领取
01-07
4牛津剑桥青睐的学子到底长什么样子

本文将为大家介绍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没问题    


13牛剑升学白皮书
关于AP课程的困惑,您来问我为您解答!
Yuanyuan Liang唯寻AP课程产品经理
五年教学经验,英语专业八级,全国教师资格证书,教学风格:思路清晰严谨,有亲和力,擅长启发学员思考,课上和学员交流、互动多
微信咨询

快扫码
关注老师微信

在线咨询
2022留学资料免费领取
开启buff留学之路
  • 英美留学规划时间轴
  • 牛剑面试sample
  • 牛津数学系面试真题解析
  • 剑桥雅思官方真题集
  • 33所大学申请指南
  • 2022牛津大学留学指南
  • 美国大学10年录取形势变化统计报告
  • 2022剑桥大学留学指南
  • QS300英国院校指南合集
  • 更多留学资料
立即领取
唯寻导师团队

潘田翰(创始人)

剑桥大学化学工程硕士

Candise Cai

牛津大学化学硕士

Chris Chen

帝国理工学院物理学士

Ruby Rui

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

Elaine Xu

牛津大学数学与统计专业学士

Olivia Hu

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

Irene Liu

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

Mini Liu

东南密苏里州立大学双硕士

Shanshan Yu

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

Stephy Tian

帝国理工化学硕士

Max Liu

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

Sally Wang

牛津大学三一学院工程科学学士&硕士

Sherry Lu

剑桥大学教育语言学硕士

Sue Pang

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

Jaryn Huang

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

Peter Liu

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

Frances Zhu

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

Qianli Xia

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

Fang Yuan

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

Bo Su

范德堡大学英语教育硕士

David Yang

剑桥大学化学工程专业荣誉学士&硕士

Ziyan Lu

普渡大学土木工程学士

Tiffany Lin

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

在线抢试听名额

学习有方法,成长看得见

筑梦牛剑/G5/常春藤

立即领取
相关文章推荐
唯寻导师推荐
换一换

Ziyan Lu

普渡大学土木工程学士

普渡大学土木工程本科

· 曾两次参加国际剑桥大赛,获得2018年大赛冠军

· 鲁老师除了物理和数学知识过硬外,对计算机也非常有研究,熟练掌握Python、C/C++等多种计算机语言

· 鲁老师心思细腻,擅长总结,能很快的捕捉学生的知识漏洞,解决学生学习问题

立即领取