当前位置: 主页 > JAVA语言

java math.random()返回值范围-AP计算机考试上机练习的思路及思路

发布时间:2023-06-10 11:09   浏览次数:次   作者:佚名

java math.random()返回值范围_math.random 和random_java math.random()用法

文/杜明磊

同学们好,马上要面临AP计算机考试了,在这里,我们需要重新理清一下自己的思路,做好最后的准备工作。平时的上机练习是我们学习领会学习内容的必要手段,相信大家都已经掌握。但是考试的时候我们还是要落实到试卷上,因此一些考试要点的重新梳理还是非常有必要的。那么下面我们就分为两部分来梳理一下思路:

math.random 和random_java math.random()用法_java math.random()返回值范围

第一部分:必须要掌握的知识点

1.要记住的命名规则:java语言中命名规则大小写是认为不同的,虽然这部分不会直接考察但不排除会间接考察,还是要强调养成好习惯。

2.三种常见数据类型:int 整型:二进制数据,第一位代表正负,0代表负数,1代表正数,其余数位代表整数的绝对值;Double 浮点型:认为是可以带小数的数字即可;Boolean 逻辑类型,只有两种数值 真(true) 或 假(false)。

3.要记得,整型强制转化为浮点型相当于在末尾加了小数点,而浮点型强制转化为整型只是把小数点后面的小数去掉,而不是四舍五入。

4.十进制数字到二进制数字的计算方法,要记得我们的除法:

math.random 和random_java math.random()返回值范围_java math.random()用法

十六进制和二进制的转换方法,“4位分组后组合”:

math.random 和random_java math.random()返回值范围_java math.random()用法

5. 要记住的常见运算加减乘三个都是我们平时所理解的计算方法,除法中注意,整型相除,得到的数字没有小数点,出现小数直接舍去只要整数部分,不存在四舍五入;取余运算是一个% 。“==”表示测试两端的量是否相等而“=”则表示把数值赋给等号左端的变量比如a=5。

math.random 和random_java math.random()用法_java math.random()返回值范围

6. 逻辑运算符里面的 “短路效应”: A&&B 如果A为假的,则B不会被测试到而直接判定整个式子为假;A||B如果A为真的则B不会被测试到而直接判定整个式子为真。

7. 对于变量的递增递减运算:i++先用后加; ++i先加后用;i--是先用后减去;--i是先减后用。

8. 记住各种运算符号的优先级别:

math.random 和random_java math.random()用法_java math.random()返回值范围

9. 输入输出:

math.random 和random_java math.random()用法_java math.random()返回值范围

输入只需要记住伪代码即可:Int a=IO.readInt();

而对于输出语句来说:

System.Out.print(“Hot”);表示打印到屏幕后不换行;

System.Out.println(“dog”);表示打印到屏幕后换行。

三个转义字符:\n 表示换行\”表示双引号\\ 表示斜杠

10. 条件语句if…else…嵌套问题需要配对。不加大括号的状态下,java中的if只会找距离最近的else配对。

java math.random()返回值范围_math.random 和random_java math.random()用法

11. for(int i=0;条件;i++)循环,因为有标志性的计数器,因此可以访问或修改数组或数组列表中指定的对象或数据,但for-each 循环只能逐一读取数组或数组列表中的数据,而不能修改。While循环注意要设置 终止条件,而且每进行一步操作都接近终止条件,最终停止循环,否则将会造成死循环。 另外用两个for循环嵌套可以来进行二维数组的操作是需要掌握的。

12. 把对象和类进行形象化理解:“类”好像我们写在纸面上的一些特征比如我们写“四条腿的动物”,就如同我们写出来的文件一样,注意类名和文件名一定要一致(包括大小写)不同的类写在不同的文件中,如果需要多个类,就需要多个文件,最后主文件调用这些类文件;

对象就像拥有不同参数的属于这个类的实体,比如属于“四条腿的动物”的可以是“猫”那么猫就是一个具体的对象,在计算机中表现为在内存中“出生”的数据块,比如“账户”是类,那么内存中产生了有不同账户数据的 “账户1”、“账户2”、“账户3”等。

类文件中四个主要的“元素”:私有变量、构造函数(constructor),访问器(accessor)和修改器(mutators)。

私有变量:只能是本类中自己的方法访问的数据。

构造函数:用于在内存中构造一个实例。

访问器:只读取本类对象中的变量。

修改器:修改本类对象中的数据。

13.对象的参考(reference):如同把一个对象赋给一个变量,比如B=某对象;相当于B中存放着一个“指向标”,指向存放对象的内存区域,而不是存放证对象数据区域本身。在传递的过程中,也是传递的“指向标”,而不会产生新的对象,要想产生新的对象,必须重新调用构造函数:

math.random 和random_java math.random()用法_java math.random()返回值范围

math.random 和random_java math.random()用法_java math.random()返回值范围

相对的,普通数据类型之间的传递则是对数据的拷贝,内存中会多出一个数据块:

java math.random()用法_java math.random()返回值范围_math.random 和random

math.random 和random_java math.random()返回值范围_java math.random()用法

14. 类中的静态变量:作用于每一个由此种类产生的全部对象。就像在同一个池塘里面所有的青蛙,池水的温度对于每一只青蛙都是相同的。那么这个温度就相当于青蛙这个类中的静态变量。

15. 方法的重载:类中可以有同样名称的函数(就是method),但是返回类型、参数数量和类型,需要有所区别。在调用的时候,程序根据不同的返回类型、参数数量和类型自动调用对应的函数。

16. this 关键字:程序中涉及到两个同类对象比较的时候,本对象的参数a 和 他对象的参数a比较的时候,为了准确定位this.a 表示本对象的 另外对象的a 比如是OTHER.a 表示的是另外一个对象的a。

17. 形式参数和实际参数:我们在写函数(也就是方法method)的时候,在函数内部定义的叫做形式参数,真正参加运算的就这些参数,系统会把参数的数值传递给这些参数然后运算。方法结束后,这些参数也会消失了,因此想要把计算的结果保留住,需要把结果再传递给函数外部的变量。实际参数,就是我们调用某个方法的时卸载函数括中的数据,如product(3,5) 这里的3,5 表示实际的参数,他们不直接参与运算,只充当一个信息传递员。看下面的例子:

java math.random()返回值范围_java math.random()用法_math.random 和random

18. 继承和多态:类是可以繁衍的,衍生出来不同的子类。子类不但继承父类的所有方法、变量还可以增加自己特有的数据类型和方法,因此它会比父类更大,这样子类就可以直接调用父类的函数和变量更加方便。多态是说,原来在父类中的函数,在子类中根据不同的情况,各自有不同的处理方式(有不同的实现代码)的现象。

19. 抽象类和接口:抽象类,可以看做是有抽象方法(抽象方法理解为只是定义了函数名称和形式但没有具体代码的函数)而不能够被实例化的类,也就是说,不能用抽象类产生实际的对象。接口可以理解为只含有抽象函数的“类”,任何变量都没有,所有的函数(方法method)都没有写出代码来,凡是继承这个接口的都有了这些函数,都需要在未来把这些函数“落实”。

20.向下兼容:抽象类和接口定义的变量,都可以指向一个由其后代衍生出来的实例对象。还可以是父类定义的变量(指向标)都可以指向由子类产生的具体对象。

21. 重载和多态:重载是在一个类中同时写出相同名称、但有不同返回值、不同参数数量和类型的函数(方法method),在调用的时候,根据这些数据的不同自动调用写好的某个函数;多态是指,在不同的子类中对父类中同样一个函数做出的不同的处理方案,实现多种不同的状态。

22. 标准类:在考试的时候会给出一个小册子叫做 Quick Reference 里面涉及到一些常用的标准类,一定要把这个册子中的标准类搞清楚、用熟练。

Object类:注意含有的toString和equals函数,可以根据实际需要重写。

java math.random()用法_java math.random()返回值范围_math.random 和random

String类:在已经定义了一个string对象的情况下,如果再定义一个string对象,而内容又完全形同的情况下系统不会开辟新的空间,只会让新建立的对象reference指向已有的对象。要想产生两个在内存中的对象,需要再调用一次new函数 比如:

String a = "abc";

String s = newString("abc");

以上两句结束后,内存中有两个对象。

String a = "abc";

String s = "abc";

以上两句结束后,内存中只存在一个对象,只是两个“指针”指向同一个对象。

Wrapper类:Integer 理解为含有一个int数值还包括一些类操作函数的类,Double 理解为含有一个double数值还包括一些操作函数的类。

Math类中的所有函数都是静态的,因此调用的时候,直接用类名加点来调用如:Math.abs(3.2);

随机数方法 random numbers: Math.random();产生的数据范围是0.0 ≤ r

int n = (int) (Math.random()* k) +p; 这样产生随机数的范围被调整到了: p, p+1,..., p+(k-1)

java math.random()返回值范围_math.random 和random_java math.random()用法

java math.random()返回值范围_java math.random()用法_math.random 和random

23. 数组和数组列表最重要的区别是数组是固定长度的,有固定个数的数据,数组列表是可以动态变化长短的数据的个数是不固定的。同时需要掌握数组列表中的常用方法,这些都在QuickReference 中存在;另外注意用两个for循环就可以遍历二维数组的每个变量。

24. 递归方法:可以认为是自己调用自己的方法,但是一定要有一个趋向于结束的运算操作,否则会造成无限循环。再一次调用自己的时候,还没完成的操作部分会被暂时挂起java math.random()返回值范围,等待最后一个调用彻底执行后,反过头来逐一完成挂起的操作,先执行距离目前最近的被挂起的操作,再执行比较“久远”的被挂起的操作。

25. 搜索和排序:着重复习选择排序、插入排序、归并排序;顺序搜索、二分搜索(这是需要数据提前有序排列的搜索)。

第二部分:答题时应该特别注意的事项

除了需要掌握知识点,就是对手头现有习题的练习了,在练习过程中需要注意下面几个点:

1. 迅速准确的阅读题目。计算机考试阅读量比较大,尤其是第二卷。需要我们迅速地阅读题目要求,明了题目的要求,进而做出正确解答,在考前的一段时间,可以反复快速训练手头已有的题目,主观题目都会在官网上找到。

2. 注意使用quick reference手册。虽然说考试的时候会发放,但是考前对这个小册子烂熟于心,才能在考试的时候游刃有余。

3. 完全没有思路的题目迅速略过,全部做完,第二遍再来。AP计算机科学A的考试题目数量多,时间紧,核算到每个选择题目大概只有2分钟左右的时间java math.random()返回值范围,大题每个只有15分钟的时间。一定要避免在同一个题目上犹豫的时间过长,发现没有思路的,立即标出、跳过。等待全部过一遍,回过头来在看。根据时间安排,个别题目最后也可以凭感觉用排除法来选择。

4. 对于一些自己处理困难的题目,比如排序的,搜索的,遍历二维数组的,单门准备错题本,反复琢磨直到弄通弄懂。

相信努力就一定会有收获,期待大家的好消息!

【教师姓名】:杜明磊

【教师机构】:原北京昌平新东方外国语学校

【教师介绍】:数学教育方向教育硕士、数学与应用数学理学学士。美国大学委员会认证AP教师,教授AP微积分AB、AP微积分BC、AP计算机科学A。多年国际学校双语教师工作经验。个人观点:教学关键是要根据学生的接受能力而不断地调整,达到效果最大化。一些对于我们很熟悉的内容,对于初学者来说可能会觉得很难,作为教师应该把这些困难的东西“翻译”成容易接受的形式传递给我们的学生。