JAVA习题3参考答案 联系客服

发布时间 : 星期五 文章JAVA习题3参考答案更新完毕开始阅读3b31505d0066f5335b81215e

习题三参考答案

一、判断题

1.错 2.对 3.对 4.对 5.对 6.错 7.错 8.错 【解释】

第6和8题:这两题考查枚举类型的定义。在Java中,创建枚举类型的主要目的是为了定义一些枚举常量。枚举类型不能定义方法,也不能通过new创建实例对象。

二、选择题

1.A 2.D 3.C 6.C 7.D 8.C 9.B 10.C 11.B 12.C 13.B 14.A 15.A 16.D 17.BD 18.B 19.A 20.B 21.D 22.B 23.C 24.B 25.A 26.B 27.B 【解析】

? 第6题;本题考查字符串String方法的应用。字符串String是一种内容不可

变对象的类,一旦创建后,不能改变它的值。本题第4行表达式语句执行的结果是DE,但字符串变量str本身的值没变,还是ABCDE;同理,第5行表达式语句执行的结果是ABCDEXYZ,但字符串变量str本身的值还是ABCDE。本题选C。

? 第7题:本题考查二维数组的创建。二维数组可以看成是一维数组的数组,

可以直接为每一维分配空间,也可以从最高维开始,分别为每一维分配空间,创建以数组为元素的数组,即二维数组的每一行可以具有不同的列数。因此,选项B是合法的,而选项D由于最高维没定义,不合法。

? 第9题:本题考查数组和字符串作为参数传递给方法调用。数组也是引用类

型,作为参数传递给方法调用时,在方法中可修改数组中的元素值。而字符串String是特殊的引用类型,不能改变它本身的值。因此,本题选B。 ? 第14题:本题考查字符串String对象的内存存储机制和“==”运算。第3~

6行的s1.s2和s3的引用地址都是字符串池中”123456”的内存地址;第7行,由于“+”运算中有一个操作数是变量a0,无法在编译中直接完成“+”运算,所以s4的引用地址不在字符串池中;第8行,用new新创建了一个字符串对象,s5的引用地址也不在字符串池中;第9行,s5调用了调用intern方法,该方法的作用是如果池已经包含一个等于此String对象的字符串,则返回池中的字符串,否则,将此String对象添加到池中,并返回此String对象的引用,所以s6的引用地址也是字符串池中”123456”的内存地址。对引用对象做“= =”运算时,若引用对象的地址相同,则返回true,否则返回false。因此,本题选A。

? 第15题:本题考查StringBuffer类的方法length和capacity。StringBuffer类

的方法length是返回StringBuffer对象中字符串的长度,而方法capacity是返

回StringBuffer对象可存放字符串的容量大小。声明语句\=new StringBuffer(20);”的内容为空字符串,容量大小为20。因此,本题选A。 ? 第18题:本题考查对象数组的创建。语句\=new String[10];”执行

后,创建了一个字符串数组对象s,数组长度为10,但数组中的所有内容都是null。选项A的s[10]超出数组的范围了,选项D数组的长度应该是s.1ength。所以本题选B。

? 第20题:本题考查“==”运算和字符串equals方法。选项A中“==”运算

的左右两边的操作数都是字符串常量,返回true;选项B,equals方法比较的是不同的对象,返回false;选项C和D,equals方法比较的都是字符串对象,字符串对象中的内容相同,都返回true。因此,本题选B。

三、程序阅读题

1.(1)arraySum方法的功能是返回整型数组中所有元素的和。 (2)运行结果是100。

2.春季,夏季,秋季,冬季, 3.java iavaC

Yava

四、编程题

1.现在有两个双精度浮点型的数组如下: double xs [] = {1, 9, 3, 5, 6};

double ys[]={10,11,4,7,13};

又有一个长方形的数组Rectangle rects[ ]=new Rectangle[25]; 要求:用Rectangle的构造方法给rects数组的每个元素赋值,长和宽分别为xs和ys的元素;然后按照面积由小到大给rects排序。请编写它的程序。

【解】

public class Rectangle { double x, y;

public Rectangle(double x, double y) { this.x = x; this.y = y; }

public double getArea() { return x * y; }

public String toString() {

return \ }

public static Rectangle[] areaSort(Rectangle[] args){ //排序算法 for (int i=0;i

for (int j=i+1;j

if ( args[min].getArea()>args[j].getArea()) min=j; }

if (min!=i){

Rectangle temp=args[i]; args[i]=args[min];

args[min]=temp; } }

return args; }

public static void main(String args[]) { double xs[] = { 1, 9, 3, 5, 6 }; double ys[] = { 10, 11, 4, 7, 13 }; Rectangle rects[] = new Rectangle[25]; }

}

for (int i = 0; i < 5; i++) //构造对象数组 for (int j = 0; j < 5; j++)

rects[5 * i + j] = new Rectangle(xs[i], ys[j]); for ( Rectangle obj: rects) //输出面积 {

System.out.print( obj.getArea()+\}

Rectangle.areaSort(rects); System.out.print(\

for ( Rectangle obj: rects) //输出面积 {

System.out.print( obj.getArea()+\}