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

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

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

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

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

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

Java面向对象程序设计

模拟试题2

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

1.JVM是指

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

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

2.Java字节码文件的扩展名是

A.cB.exe

C.javaD.class

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

A.1B.2

C.4D.8

4.给定下面代码段,输出j的值是多少

inti=1,j=0;

switch(i){

case1:

j+=6;

case2:

j+=1;

default:

j+=2;

}

System.out.println(j);

A.2B.6

C.7D.9

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

publicclassTest{

staticvoidleftshift(inti,intj){

i<<=j;

}

publicstaticvoidmain(String[]args){

inti=4,j=2;

leftshift(i,j);

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

}

}

A.i=1B.i=2

C.i=3D.i=4

6.执行下列程序段后a和b的值为

classAB{

inta,b;

publicvoidinit(intx){

a=x;

intb=5;

}

publicvoiddisplay(){

System.out.println("a="+a+"b="+b);

}

}

publicclassABTest{

publicstaticvoidmain(String[]args){

ABab=newAB();

ab.init(6);

ab.display();

}

}

A.a=5b=5B.a=0b=0

C.a=6b=5D.a=6b=0

7.下列程序段的运行结果为

int[][]x={{1,2},{3,4,5},{6,7,8,9}};

int[][]y=x;

System.out.println(y[2][1]);

A.3B.4C.6D.7

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

Strings="COMPUTER";

System.out.println(s.indexOf(‘M’));

A.0B.1C.2D.3

9.下面程序运行结果为

classAA{

AA(inta){

System.out.print(a);

}

}

classBBextendsAA{

BB(Strings){

super(88);

System.out.print(s);

}

}

publicclassConstructorDemo{

publicstaticvoidmain(String[]args){

BBb=newBB("hello");

}

}

A.该程序有编译错误B.88hello

C.hello88D.hello

10.下面程序运行结果为

classSuper{

publicinti=0;

publicSuper(Stringtext){

i=1;

}

}

publicclassSubextendsSuper{

publicSub(Stringtext){

super(“”);

i=2;

}

publicstaticvoidmain(String[]args){

Subsub=newSub("Hello");

System.out.println(sub.i);

}

}

A.该程序有编译错误B.编译成功输出0

C.编译成功输出1D.编译成功输出2

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

intm=100;

System.out.println(m/0);

A.ClassNotFoundExceptionB.MathException

C.ArithmeticExceptionD.NullPointerException

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

()

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]

13.如果要求其中不能包含重复的元素,使用哪种结构存储最合适?

()

A.CollectionB.List

C.SetD.Map

14一个类要具备什么条件才可以序列化?

()

A.继承ObjectStream类B.具有带参数构造方法

C.实现Serializable接口D.定义了writeObject()方法

15.Thread类的哪个方法用来使线程睡眠一段时间

A.run()B.start()

C.begin()D.sleep()

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

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

A.MyGame

B._isRight

C.2JavaProgram

D.Java-Virtual-Machine

E._$12ab

17.下面选项哪些是合法的对float变量的声明和赋值

A.floatfoo=-1;

B.floatfoo=1.0;

C.floatfoo=2.02f;

D.floatfoo=3.03d;

E.floatfoo=0x0123;

18.哪两个语句声明的数组能存放10个整型数

A.int[]foo;

B.intfoo[10];

C.Object[]foo;

D.intfoo[];

E.Objectfoo[10];

19.下面哪两个方法不能被子类覆盖?

A.finalvoidmethodA(){}

B.voidfinalmethodA(){}

C.staticvoidmethodA(){}

D.staticfinalvoidmethodA(){}

E.finalabstractvoidmethodA(){}

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

有下面Java代码:

Rectanglert=newRectangle();

Cylindercl=newCylinder();

Shapesh=rt;

图1Shape类的层次结构图

关于上述Java代码中sh和rt的以下叙述中,正确的有

A.sh和rt分别引用同一类型的不同的对象;

B.sh和rt分别引用同一个对象;

C.sh和rt分别引用不同类型的不同对象;

D.sh和rt分别引用同一个对象的不同拷贝;

E.sh和rt所引用的内存空间是相同的。

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

21.main()方法的返回值类型是。

22.在命令提示符环境下,要运行HelloWorld字节码文件,使用的命令是。

23.执行下列语句后输出的结果是___________。

Strings="\"Hello,World!

\"";

System.out.println(s.length());

24若在子类构造方法中调用父类的无参数构造方法,使用的语句是_____________。

25.如果不允许方法被子类覆盖,定义方法时应使用关键字_____________。

26.要声明一个接口,应该使用关键字________________。

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

28.设a是父类A的一个实例,b是A的子类B的一个实例,语句a=b;是自动转换还是强制转换_______________。

29.定义同步的方法应该使用关键字___________________。

30.Runnable接口中定义的唯一方法是___________________。

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

31.简述Java语言有哪几种基本数据类型和引用数据类型。

32.试说明实例变量和类(静态)变量的主要区别,实例方法和类(静态)方法的区别。

33.试说明抽象类和接口的相同之处和不同之处。

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

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

publicclassAnimal{

publicintage;

publicAnimal(inta){

age=a;

}

publicAnimal(){

age=1;

}

}

publicclassTest{

publicstaticvoidincrement(intvalues,Animalanimal){

values++;

animal.age++;

}

publicstaticvoidmain(String[]args){

AnimalmyDog=newAnimal();

intvalues=10;

for(inti=0;i<10;i++)

increment(values,myDog);

System.out.println(values);

System.out.println(myDog.age);

}

}

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

publicclassArrayDemo{

publicstaticvoidmain(String[]args){

inta[][]=newint[4][];

a[0]=newint[1];

a[1]=newint[2];

a[2]=newint[3];

a[3]=newint[4];

inti,j,k=0;

for(i=0;i<4;i++)

for(j=0;j

a[i][j]=k;

k++;

}

for(i=0;i<4;i++){

for(j=0;j

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

System.out.println();

}

}

}

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.给出下列程序的运行结果。

publicclassMultiExceptionDemo{

staticStrings="";

publicstaticvoidmethod(intsel){

try{

if(sel==0){

s=s+"A";

return;

}elseif(sel==1){

inti=0;

System.out.println(4/i);

}elseif(sel==2){

intiArray[]=newint[4];

iArray[4]=10;

}

}catch(ArithmeticExceptione){

s=s+"B";

}catch(ArrayIndexOutOfBoundsExceptione){

s=s+"C";

}catch(Exceptione){

s=s+"D";

}finally{

s=s+"E";

}

}

publicstaticvoidmain(String[]args){

method(0);

method

(1);

method

(2);

System.out.println(s);

}

}

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

38.编程打印输出Fibonacci数列的前20个数。

Fibonacci数列是第一和第二个数都是1,以后每个数是前两个数之和,用公式表示为:

f1=f2=1,fn=fn-1+fn-2(n>=3)。

要求使用数组存储Fibonacci数。

39.编写一个方法,将十进制数转换为二进制数的字符串,方法签名如下:

publicstaticStringtoBinary(intvalue)

例如,按如下调用该方法将输出101010.

System.out.println(toBinary(42));

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

(1)定义一个名为Circle的类表圆,其中含有double型的成员变量centerX、centerY表示圆心坐标,radius表示圆的半径。

定义求圆面积的方法getArea()方法和求圆周长的方法getPerimeter()。

(2)定义一个带参数构造方法,通过给出圆的半径创建圆对象。

定义默认构造方法,在该方法中调用有参数构造方法,将圆的半径设置为1.0。

(3)定义一个名为Cylinder类表示圆柱,它继承Circle类,要求定义一个变量height表示圆柱高度。

定义getVolume()方法求圆柱体积。

定义默认构造方法和带radius和height两个参数的构造方法。

Java面向对象程序设计

模拟试题2参考答案

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

1.B2.D3.A4.D5.D

6.D7.D8.C9.B10.D

11.C12.B13.C14C15.D

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

16.A,B,E

17.A,C,F

18.A,D

19.A,D

20.B,E

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

21.void

22.javaHelloWorld

23.14

24.super或super()

25final

26.interface

27.Integer.parseInt()或Integer.parseInt

28.自动类型转换

29.setSize()或setSize

30.run或run()

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

31.参考答案:

基本数据类型包括字节型(byte)、短整型(short)、整型(int)、长整型(long)、布尔型(loolean)、字符型(char)、单浮点型(float)和双浮点型(double)。

引用数据类型包括类(class)、数组、抽象类、接口。

32.参考答案:

没有使用static修饰的成员称为实例成员,使用static修饰的成员称为类成员。

实例成员必须使用实例变量访问,类成员属于类,既可以通过类名访问,也可以通过对象名访问。

33.参考答案:

相同之处:

(1)都包含抽象方法

(2)都不能被实例化(3)都是引用数据类型。

不同点如下:

(1)一个类只能继承一个类,一个类可实现多个接口

(2)抽象类访问权限同普通类,接口访问权限有public和默认,成员访问权限是public(3)抽象类可抽象方法、普通方法、构造方法,接口只能声明抽象方法和常量。

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

34.答案:

缺少一个数扣1分。

10

11

35.答案:

若答案格式与结果不同,扣1分,缺少行可酌情扣分。

0

12

345

6789

36.答案:

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

BB’smetoo()

37.答案:

若答案格式与结果不一致,可酌情扣分。

AEBECE

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

38.本小题满分8分,参考程序如下:

publicclassFibonacci{

publicstaticvoidmain(String[]args){

longf1=1,f2=1;

for(inti=1;i<10;i++){

System.out.print(f1+""+f2+"");

f1=f1+f2;

f2=f1+f2;

}

}

}

39.本小题满分8分,参考程序如下:

publicstaticStringtoBinary(intvalue){

Strings="";

while(value!

=0){

intr=value%2;//反复除以2取余数

s=r+s;

value=value/2;

}

returns;

}

40本小题满分14分,参考程序如下:

参考程序如下:

publicclassCircle{

doublecenterX;

doublecenterY;

doubleradius;

publicCircle(){//4分

this(1.0);

}

publicCircle(doubleradius){

this.radius=radius;

}

publicdoublegetArea(){//4分

doublearea=3.14*radius*radius;

returnarea;

}

publicdoublegetPerimeter(){

doubleperimeter=2*3.14*radius;

returnperimeter;

}

}

publicclassCylinderextendsCircle{//6分

privatedoubleheight;

publicCylinder(){}

publicCylinder(doubleradius,doubleheight){

this.radius=radius;

this.height=height;

}

publicdoublegetVolume(){

returnsuper.getArea()*height;

}

}

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

当前位置:首页 > 人文社科 > 哲学历史

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

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