JAVA习题3参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题三参考答案

一、判断题

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对象可存放字符串的容量大小。声明语句"StringBuffer bufl=new StringBuffer(20);”的内容为空字符串,容量大小为20。因此,本题选A。

✧第18题:本题考查对象数组的创建。语句"String[]s=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 "(" + x + "," + y + ")";

}

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

int min=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("\n");

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

{

System.out.print( obj.getArea()+"," );

}

}

}

相关文档
最新文档