Java面向对象程序设计模拟试题3及答案.docx

上传人:b****8 文档编号:30417124 上传时间:2023-08-14 格式:DOCX 页数:16 大小:26.48KB
下载 相关 举报
Java面向对象程序设计模拟试题3及答案.docx_第1页
第1页 / 共16页
Java面向对象程序设计模拟试题3及答案.docx_第2页
第2页 / 共16页
Java面向对象程序设计模拟试题3及答案.docx_第3页
第3页 / 共16页
Java面向对象程序设计模拟试题3及答案.docx_第4页
第4页 / 共16页
Java面向对象程序设计模拟试题3及答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Java面向对象程序设计模拟试题3及答案.docx

《Java面向对象程序设计模拟试题3及答案.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计模拟试题3及答案.docx(16页珍藏版)》请在冰豆网上搜索。

Java面向对象程序设计模拟试题3及答案.docx

Java面向对象程序设计模拟试题3及答案

Java面向对象程序设计

模拟试题3

一、单项选择题(本大题共15小题,每小题1分,共15分)

1.JRE是指

A.Java开发工具B.Java虚拟机

C.Java运行环境D.Java编程接口

2.开发Java程序必须安装的软件是

A.JVMB.JDK

C.JRED.API

3.在Java中,short型变量所占的字节数是

A.1B.2

C.4D.8

4.下面代码段执行后,i、j的值分别为

inti=1,j=10;

do{

if(i++>--j)

continue;

}while(i<5);

System.out.println("i="+i+"j="+j);

A.i=6j=5B.i=5j=5

C.i=6j=4D.i=5j=6

5.给定下面代码段,程序运行结果是

publicclassMyClass{

privatestaticinta=100;

publicstaticvoidmodify(inta){

a=a+5;

}

publicstaticvoidmain(String[]args){

modify(a);

System.out.println(a);

}

}

A.100B.105

C.101D.95

6.执行下列程序段后foo的值为

Stringfoo="blue";

boolean[]bar=newboolean[1];

if(bar[0]){

foo="green";

}

System.out.println(foo);

A.""B.nullC.blueD.green

7.关于实例变量、静态变量、实例方法和静态方法,下面叙述不正确的是

A.实例方法可以访问实例变量和静态变量

B.静态方法不能访问实例变量

C.实例变量和静态变量都可以通过类名访问

D.静态方法只能访问静态变量

8.执行下列语句后输出的结果是

Strings="COMPUTER";

System.out.println(s.substring(3,6));

A.COMB.MPUC.PUTD.TER

9.下面程序运行结果为

classAnimal{

publicAnimal(){

System.out.println("Animal");

}

}

//Bird类是Animal的子类

publicclassBirdextendsAnimal{

publicBird(){

System.out.println("Bird");

}

publicstaticvoidmain(String[]args){

Birdb=newBird();

}

}

A.AnimalB.Bird

C.AnimalD.Bird

BirdAnimal

10.下面代码在运行时会产生什么异常

Strings="ABC";

System.out.print(s.charAt(3));

A.ArrayIndexOutOfBoundsException

B.IndexOutOfBoundsException

C.StringIndexOutOfBoundsException

D.NullPointerException

11.下列程序的输出结果为

importjava.io.IOException;

publicclassTest{

publicstaticvoidmethodA(){

thrownewIOException();

}

publicstaticvoidmain(String[]args){

try{

methodA();

}catch(IOExceptione){

System.out.println("CaughtException");

}

}

}

A.代码有编译错误B.输出“CaughtException”

C.输出“CaughtIOException”D.程序正常执行,没有任何输出

12.有下列一段代码,执行后输出结果为。

()

TreeSetmySet=newTreeSet<>();

mySet.add("one");

mySet.add("two");

mySet.add("three");

mySet.add("four");

mySet.add("one");

Iteratorit=mySet.iterator();

while(it.hasNext()){

System.out.println(it.next()+"");

}

A.onetwothreefourB.fourthreetwoone

C.fouronethreetwoD.onetwothreefourone

13.有下列一段代码,执行后输出结果为。

()

importjava.util.*;

publicclassSortOf{

publicstaticvoidmain(String[]args){

ArrayLista=newArrayList<>();

a.add

(1);

a.add(5);

a.add(3);

Collections.sort(a);

a.add

(2);

Collections.reverse(a);

System.out.println(a);

}

}

A.[1,2,3,5]B.[2,1,3,5]

C.[2,5,3,1]D.[1,3,5,2]

14.有如下类的定义,Inner类称为()。

publicclassOuter{

classInner{

publicvoidgo(){

System.out.print("hi");

}

}

}

A.匿名内部类B.局部内部类

C.成员内部类D.静态内部类

15.Runnable接口中定义的唯一方法是

A.run()B.start()

C.begin()D.sleep()

二、多项选择题(本大题共5小题,每小题2分,共10分)

16.下面选项哪些是合法的Java标识符

A.longStringWithMeaninglessName

B.$int

C.bytes

D.finalist

E.abstract

17.下面选项哪些表达式的值为12

A.33/2

B.3<2

C.3*4

D.3<<2

E.3*2^2

18.有下面的类定义,与aMethod()重载的方法有

publicclassMyClass{

publicfloataMethod(floata,floatb){

return0;

}

}

A.publicintaMethod(inta,intb){}

B.publicfloataMethod(floatx,floaty){}

C.publicfloataMethod(floata,floatb,intc){}

D.publicfloataMethod(inta,intb,intc){}

E.publicvoidaMethod(floata,floatb){}

19.下面叙述哪些是正确的

A.使用super可以在子类中调用父类被覆盖的方法

B.Object类是所有类的根类

C.抽象类中不可以定义非抽象方法

D.一个类可以实现多个接口

E.一个类可以继承多个类

20.已知4个类之间的关系如图1所示,Shape表示形状、Circle类表示圆、Rectangle表示矩形、Cylinder表示圆柱,图中箭头表示类的继承关系。

有下面Java代码:

Rectanglert=newRectangle();

Cylindercl=newCylinder();

Shapesh=rt;

图1Shape类的层次结构图

下列赋值语句中合法的有:

A.cl=sh;

B.sh=rt;

C.rt=cl;

D.cl=rt;

E.sh=cl;

三、填空题(本大题共10小题,每小题1分,共10分)

21.Java语言的字符型数据在内存中占的字节数是。

22.下面的if-else结构用条件运算符可写为___________________。

if(age>=16)ticketPrice=20;

elseticketPrice=10;

23.若允许成员可以被这个类本身、同一个包中的类以及该类的子类访问,应使用修饰符__________________。

24.要测试一个实例是否是某种类型的实例,使用运算符___________________。

25.如果变量被赋值后不允许修改,定义变量时应使用关键字_____________。

26.若要声明一个接口,使用的关键字是____________________。

27.若将一个字符串转换为boolean型值,应该使用什么方法___________。

28.如果需要将所定义的类保存在com.xxxy包中,应该使用的语句是_______________。

29.要指定一个方法是父类方法的覆盖,应使用________________注解。

30.要启动线程,应该调用线程对象的方法是___________________。

四、简答题(本大题共3小题,每小题5分,共15分)

31.什么是构造方法?

它有什么特点?

和普通方法之间的区别是什么?

什么时候类将有一个默认构造方法?

32.试说明super关键字和this关键字的含义及主要用途。

33.试说明Java异常处理的基本方法,thow和throws关键字有何不同?

五、程序分析题(本大题共4题,每小题5分,共20分)

34.写出下列程序的运行结果。

publicclassArrayDemo{

publicstaticvoidmain(String[]args){

int[]array={1,2,3,4,5};

printArray(array);

modify(array);

printArray(array);

}

staticvoidmodify(int[]a){

for(inti=0;i

a[i]=a[i]*i;

}

staticvoidprintArray(int[]a){

for(inti=0;i

System.out.print(a[i]+"\t");

System.out.println();

}

}

35.有下列程序:

publicclassCommandLineDemo{

publicstaticvoidmain(String[]args){

System.out.println("共有"+args.length+"个参数");

for(inti=0;i

System.out.println(i+":

"+args[i]);

}

}

}

若使用下列命令执行程序,程序输出结果如何?

javaCommandLineDemo/D1024

36.写出下列程序的运行结果。

abstractclassAA{

abstractvoidcallme();

voidmetoo(){

System.out.println("AA'smetoo().");

}

}

classBBextendsAA{

voidcallme(){

System.out.println("BB'scallme().");

}

voidmetoo(){

System.out.println("BB'smetoo().");

}

}

publicclassAbstractTest{

publicstaticvoidmain(String[]args){

AAaa=newBB();

aa.callme();

aa.metoo();

}

}

37.给出并分析下列程序的运行结果。

publicclassTest{

publicstaticStringoutput="";

publicstaticvoidfoo(inti){

try{

if(i==1){

thrownewException();

}

output+="1";

}catch(Exceptione){

output+="2";

return;

}finally{

output+="3";

}

output+="4";

}

publicstaticvoidmain(String[]args){

foo(0);

foo

(1);

System.out.println("output="+output);

}

}

六、编程题(本大题共3小题,第38,39题各8分,第40题14分,共30分)

38.编写程序,计算下面级数之和:

39.编写一个方法,合并给定的两个数组,方法的声明格式如下:

publicstaticint[]arrayMerge(int[]a,int[]b)

例如,一个数组是{16,13,15,18},另一个数组是{29,36,100},返回的数组应该是{16,13,15,18,29,36,100}。

40.按照下面要求定义类和创建对象。

(1)定义一个名为Person的类,其中含有一个String类型的成员变量name和一个int类型的成员变量age,为该类定义一个名为speak的方法,在其中输出其name和age的值。

(2)为Person类定义一个带参数构造方法,通过给出姓名和年龄创建Person对象。

定义默认构造方法,在该方法中调用有参数构造方法,将人的姓名设置为“张三”,年龄设置为20。

(3)定义一个名为Employee类表示员工,它继承Person类,要求定义一个变量salary表示员工工资。

定义computeSalary(doublehours,intrate)方法计算员工工资,这里hours表示员工工作时间,rate表示每小时工资。

定义默认构造方法和带name、age和salary参数的构造方法。

 

Java面向对象程序设计

模拟试题3参考答案

一、单项选择题(本大题共15小题,每小题1分,共15分)

1.C2.B3.B4.D5.A

6.C7.C8.C9.C10.C

11.A12.C13.C14C15.A

二、多项选择题(本大题共5小题,每小题2分,共10分)

16.A,B,C,D

17.C,D

18.A,C,D

19.A,B,D

20.B,E

三、填空题(本大题共.10小题,每小题1分,共10分)

21.2个字节

22.ticketPrice=(age>=16?

20:

10)

23.protected

24.instanceof

25final

26.interface

27.Boolean.parseBoolean()

28.packagecom.xxxy;

29.@Override

30.start或者start()

四、简答题(本大题共3小题,每小题5分,共15分)

31.参考答案:

构造方法是类的一种特殊的成员方法,其方法名与类名相同。

特点是:

(1)没有返回值

(2)用new运算符调用(3)一个类可定义多个构造方法。

它与其他成员方法的不同:

(1)作用不同

(2)调用方式不同。

32.参考答案:

super可以用在子类中引用父类成员变量、成员方法及构造方法。

用下列方式引用成员变量:

super.成员变量名;引用父类成员方法:

super.成员方法名();引用父类构造方法:

super(参数表)。

this表示当前对象,用它可引用当前对象的成员变量、成员方法和构造方法。

this.成员变量名、this.方法名、this(参数表)。

33.参考答案:

Java异常处理基本方法是用try{}catch{}finally{}。

try块中是要执行的代码,catch块中捕获和处理异常,finally是最后执行的代码。

throw关键字用于明确抛出一个异常对象,它是一个语句。

throws关键字用于声明方法抛出异常,使得异常可被调用方法处理。

五、程序分析题(本大题共4题,每小题5分,共20分)

34.答案:

少一行扣1分

12345

0261220

35.答案:

少一行扣1分

共有2个参数

0:

/D

1:

1024

36.答案:

BB’scallme()有一行给3分,若多一行扣1分。

BB’smetoo()

37.答案:

output=13423缺少output=扣1分,结果中包含两个3给2分

六、编程题(本大题共3小题,第38,39题各8分,第40题14分,共30分)

38.本小题8分,参考答案如下:

publicclassSeriesSum{

publicstaticvoidmain(String[]args){

intn=1;

doublesum=0;

while(n<99){//2分

sum=sum+(double)n/(n+2);//4分

n=n+2;

}

System.out.println("sum="+sum);//2分

}

}

39.本小题8分,参考答案如下:

publicstaticint[]arrayMerge(int[]a,int[]b){//2分

intsize=a.length+b.length;

int[]result=newint[size];

for(inti=0;i

result[i]=a[i];

}

for(inti=a.length;i

result[i]=b[i-a.length];

}

returnresult;//2分

}

40本小题14分,参考答案如下:

publicclassPerson{

Stringname;

intage;

publicvoidspeak(){

System.out.println("姓名:

"+name);

System.out.println("年龄:

"+age);

}

}

publicclassEmployeeextendsPerson{

publicdoublesalary;//表示员工工资

//无参构造方法

publicEmployee(){

}

//带一个参数构造方法

publicEmployee(doublesalary){

this.salary=salary;

}

publicdoublecomputeSalary(inthours,doublerate){

//这里计算员工的工资

doublesalary=hours*rate;

returnthis.salary+salary;

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1