java期末练习题和答案.docx

上传人:b****1 文档编号:14305674 上传时间:2023-06-22 格式:DOCX 页数:24 大小:24.15KB
下载 相关 举报
java期末练习题和答案.docx_第1页
第1页 / 共24页
java期末练习题和答案.docx_第2页
第2页 / 共24页
java期末练习题和答案.docx_第3页
第3页 / 共24页
java期末练习题和答案.docx_第4页
第4页 / 共24页
java期末练习题和答案.docx_第5页
第5页 / 共24页
java期末练习题和答案.docx_第6页
第6页 / 共24页
java期末练习题和答案.docx_第7页
第7页 / 共24页
java期末练习题和答案.docx_第8页
第8页 / 共24页
java期末练习题和答案.docx_第9页
第9页 / 共24页
java期末练习题和答案.docx_第10页
第10页 / 共24页
java期末练习题和答案.docx_第11页
第11页 / 共24页
java期末练习题和答案.docx_第12页
第12页 / 共24页
java期末练习题和答案.docx_第13页
第13页 / 共24页
java期末练习题和答案.docx_第14页
第14页 / 共24页
java期末练习题和答案.docx_第15页
第15页 / 共24页
java期末练习题和答案.docx_第16页
第16页 / 共24页
java期末练习题和答案.docx_第17页
第17页 / 共24页
java期末练习题和答案.docx_第18页
第18页 / 共24页
java期末练习题和答案.docx_第19页
第19页 / 共24页
java期末练习题和答案.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java期末练习题和答案.docx

《java期末练习题和答案.docx》由会员分享,可在线阅读,更多相关《java期末练习题和答案.docx(24页珍藏版)》请在冰点文库上搜索。

java期末练习题和答案.docx

java期末练习题和答案

2009-2010学年第一学期JAVA期末练习题及参考答案

一、选择题

1、main方法是Java应用程序执行的入口点,以下哪项是main方法头?

(C)

A.publicstaticintmain(String[]arg)

B.publicstaticvoidmain(Stringarg)

C.publicstaticvoidmain(String[]args)

D.publicstaticvoidmain()

2、以下哪个不是Java的关键字?

(D)

A.doB.tryC.finalD.While

3、以下哪项标识符是不合法的。

(D)

A.StringB.$1C.xD.3_a

4、以下哪个修饰符可用于定义成员常量?

(A) 

 A.finalB.staticC.abstractD.const 

5、以下关于构造函数的描述正确的是(D)。

A.构造函数是特殊的方法,返回类型只能为void

B.可以定义多个构造函数,但每个方法名需各不相同

C.在类定义中必须定义构造函数,而且只能定义一个构造函数

D.构造方法与类同名,在创建新对象时系统会自动调用构造函数

6、关于类的继承以下说法错误的是(D)。

A.在java中类只允许单一继承

B.在java中一个类可实现多个接口

C.在java中一个类可以同时继承一个类和实现一个接口

D.java允许多重继承

7、设有下面两个类的定义:

classPerson{

classStudentextendsPerson{

longid;//身份证号

intscore;//入学总分

Stringname;//姓名

intgetScore(){returnscore;}

}

}

则类Person和类Student的关系是(B)。

A、包含关系B、继承关系C、关联关系D、上述类定义有语法错误

8、关于修饰符static以下叙述错误的是(B)。

A.static方法不可被覆盖

B.static可以用来修饰类

C.static方法不可以直接访问非静态的方法,否则编译出错

D.static方法只能访问类变量或方法参数,不可直接访问成员变量

9、关于Java的修饰符,以下说法错误的是(B)。

A.抽象类中的方法不一定都是抽象方法

B.final类中的属性和方法都必须被final修饰符修饰

C.类及其属性、方法可以同时有一个以上的修饰符来修饰

D.要使类中某个成员变量只能被它自身访问到,该变量只能用private修饰

10、给出如下代码:

class Test{

  //定义成员a

  public static void fun() {

    // some code...

}

}

要在函数fun()中直接访问a,以下成员变量a定义正确的是(B)。

A.public int a;B.static int a; C.int a;D.protected int a;

11、有以下程序片段,下列哪个选项不能插入到行1。

(A)

1.

2.publicclassA{

3.//dosth

4.}

A、publicclassMainClass{}B、packagemine;

C、classANotherClass{}D、importjava.util.*;

12、在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。

A、privateB、protectedC、privateprotectedD、public

13、关于以下application的说明,正确的是(C)。

1.classStaticStuff

2.{

3.staticintx;

4.static{x+=5;}

5.publicstaticvoidmain(Stringargs[])

6.{

7.System.out.println(“x=”+x);

8.}

9.static{x/=5;}

10.}

A、4行与9行不能通过编译,因为缺少方法名和返回类型

B、9行不能通过编译,因为只能有一个静态初始化器

C、编译通过,执行结果为:

x=1

D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化

14、有程序如下,关于程序的描述哪个是正确的?

(C)

publicclassPerson{

  staticintarr[]=newint[5];

  publicstaticvoidmain(Stringa[])

  {   System.out.println(arr[0]);  }

}

A、编译将产生错误B、编译时正确,但运行时将产生错误C、正确,输出0D、正确,输出 null

15、Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位。

A、8B、16C、32D、64

16、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。

这种面向对象程序的特性称为(C)。

A、隐藏B、覆盖C、重载D、Java不支持此特性

 

17、以下哪个接口的定义是正确的?

(D)

A、interfaceB

{voidprint(){};}

B、abstractinterfaceB

{voidprint();}

C、abstractinterfaceBextendsA1,A2//A1、A2为已定义的接口

{abstractvoidprint(){};}

D、interfaceB

{voidprint();}

18、下面哪个函数是public void aMethod(){...}的重载函数?

(D)

A、void aMethod( ){...}

B、public int aMethod(){...}

C、public void aMethod(){...}

D、public int aMethod ( int m){...}

19、A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:

1.Aa0=newA();

2.A a1=newB();

3.Aa2=newC();

问以下哪个说法是正确的?

 (D)

A、只有第1行能通过编译 

B、第1、2行能通过编译,但第3行编译出错

C、第1、2、3行能通过编译,但第2、3行运行时出错

D、第1行、第2行和第3行的声明都是正确的 

20、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?

(C)

classA

{inti;

staticStrings;

voidmethod1(){}

staticvoidmethod2(){}

}

A、System.out.println(a.i);B、a.method1();C、A.method1();D、A.method2()

21、将以下哪个方法的定义插入第6行后,会引发编译错误?

(A)

1.classSuper{

2.publicvoida(){}

3.}

4.

5.publicclassSubextendsSuper{

6.

7.}

A.floata(){return1;}

B.publicvoida(intx){}

C.publicvoida(floatf){}

D.publicfloata(intx){return(float)x;}

22、以下方法的返回类型是(D)。

ReturnTypefunction(intx,doubley)

{

returnx+y/2;

}

A.byteB.shortC.floatD.double

二、程序阅读

1、写出以下程序的运行结果。

publicclassTest_2

{

publicstaticvoidmain(String[]args)

{System.out.println(fun(3,4,5));}

staticintfun(intx,inty,intz)

{returnfun(x,fun(y,z));}

staticintfun(intx,inty)

{returnx*y;}

}

60

2、写出以下程序的运行结果。

classOverloadDemo{

voidtestOverload(inti){

System.out.println("integer");

}

voidtestOverload(Strings){

System.out.println("String");

}

publicstaticvoidmain(Stringargs[]){

OverloadDemoa=newOverloadDemo();

charch=’k’;

a.testOverload(ch);

}

}

integer

3、写出以下程序的运行结果。

classStaticStuff

{

staticintx;

static{x+=7;}

publicstaticvoidmain(Stringargs[]){

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

}

static{x%=4;}

}

x=3

4、写出以下程序的运行结果。

publicclassTest_3

{

staticintx;

publicTest_3(){

x++;}

publicstaticvoidmain(String[]args){

Test_3s1=newTest_3();

System.out.print(s1.x+",");

s1=newTest_3();

System.out.println(s1.x+",");

s1=newTest_3();

System.out.println(s1.x);

}

static{x=1;}

}

2,3,4

5、写出以下程序的运行结果。

publicclassTest_3

{

publicstaticvoidmain(String[]args)

{System.out.println(doSth(1,2,3));}

staticintdoSth(intx,inty,intz)

{returndoSth(x,doSth(y,z));}

staticintdoSth(intx,inty)

{returnx>y?

x:

y;}

}

3

6、阅读以下程序,输出结果为1.23。

classQ1{

publicstaticvoidmain(Stringargs[]){

doubled=1.23;

Decdec=newDec();

dec.decrement(d);

System.out.println(d);

}

classsDec{

publicvoiddecrement(doubledecMe){

decMe=decMe-0.1;

}

}

7、以下程序段的输出结果为1234589。

publicclassC

{publicstaticvoidmain(Stringargs[]){

inti,j;

inta[]={2,1,4,8,9,5,3};

for(i=0;i

intk=i;

for(j=i;j

if(a[j]

inttemp=a[i];

a[i]=a[k];

a[k]=temp;}

for(i=0;i

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

System.out.println();}

}

8、写出以下程序的功能。

将数组元素从大到小排序并显示到屏幕上

publicclassABC

{

publicstaticvoidmain(Stringargs[]){

inti,j;

inta[]={9,7,5,1,3};

for(i=0;i

intk=i;

for(j=i;j

if(a[j]>a[k])k=j;

inttemp=a[i];

a[i]=a[k];

a[k]=temp;}

for(i=0;i

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

System.out.println();

}

}

9、以下程序段的输出结果为MessageFour。

intx=0,y=4,z=5;

if(x>2){

if(y<5){

System.out.println(“Messageone”);

}

else{

System.out.println(“Messagetwo”);

}

}

elseif(z>5){

System.out.println(“Messagethree”);

}

else{

System.out.println(“Messagefour”);

}

10、以下程序段的输出结果为Valueistwo.Valueisthree。

intj=2;

switch(j){

case2:

System.out.print(“Valueistwo.”);

case2+1:

System.out.println(“Valueisthree.”);

break;

default:

System.out.println(“valueis“+j);

break;

}

11、阅读以下程序段:

classParent

{

voidprintMe()

{

System.out.println(“parent”);

}

}

classChildextendsParent

{

voidprintMe()

{

System.out.println(“child”);

}

voidprintAll()

{

super.printMe();

this.printMe();

printMe();

}

}

publicclassTest_this

{

publicstaticvoidmain(Stringargs[])

{

ChildmyC=newChild();

myC.printAll();

}

}

输出结果为:

parent

child

child

 

12、已有Bird类的定义如下:

packageabcde;

publicclassBird{

protectedstaticintreferenceCount=0;

publicBird(){referenceCount++;}

protectedvoidfly(){}

staticintgetReCount(){returnreferenceCount;}

}

有类Nightingale的定义如下,请写出它的输出结果Before:

0After:

2。

packagesingers;

classNightingaleextendsabcde.Bird{

Nightingale(){referenceCount++;}

publicstaticvoidmain(Stringargs[]){

System.out.print(“Before:

”+referenceCount);

Nightingaleflorence=newNightingale();

System.out.println(“After:

”+referenceCount);

florence.fly();

}

}

四、编程题

1.编写一个完整的JavaApplication程序,包括:

①复数类Complex②主类Test,将每组测试数据相加并显示结果,三组测试的复数为:

1+2i和1-2i、1+2i和3+4i、1+2i和-1+2i。

其中,复数类Complex必须满足如下要求:

(1)复数类Complex的属性

realPart:

int型,代表复数的实部。

imaginPart:

int型,代表复数的虚部。

(2)复数类Complex的方法

Complex():

构造函数,将复数的实部和虚部都置0。

Complex(intr,inti):

构造函数,将复数的实部初始化为r,将虚部初始化为i。

ComplexcomplexAdd(Complexa):

将当前复数对象与形参复数对象a相加,所得的结果仍是一个复数对象,返回给此方法的调用者。

publicStringtoString():

把当前复数对象的实部a、虚部b组合成“a+bi”的字符串形式;若实部为0,虚部不为0,则返回”bi”;若虚部为0,则返回”a”。

(注:

程序框架和部分源码已给出,请补充完整)

importjava.io.*;

publicclassTest

{

publicstaticvoidmain(Stringargs[])

{Complexa,b;

a=newComplex(1,2);

b=newComplex(1,-2);

System.out.println((a.addComplex(b)).toString());

b=newComplex(3,4);

System.out.println((a.addComplex(b)).toString());

b=newComplex(-1,2);

System.out.println((a.addComplex(b)).toString());

}

}

classComplex

{

//添加属性定义

intrealPart;

intimaginPart;

//添加构造方法Complex()

publicComplex(){

realPart=0;

imaginPart=0;

}

//添加构造方法Complex(intr,inti)

publicComplex(intr,inti){

realPart=r;

imaginPart=i;

}

//添加复数相加方法addComplex

publicComplexaddComplex(Complexa)

{

Complexb=newComplex();

b.realPart=a.realPart+this.realPart;

b.imaginPart=a.imaginPart+this.imaginPart;

returnb;

}

//添加toString方法

publicStringtoString()

{Stringslt="";

if(this.realPart!

=0)

{

if(this.imaginPart>0)

slt=String.valueOf(this.realPart)+"+";

else

slt=String.valueOf(this.realPart);

}

if(this.imaginPart!

=0)

slt=slt+String.valueOf(this.imaginPart)+"i";

returnslt;

}

}

 

2.编写一个完整的JavaApplication程序。

包含类Circle,类Cylinder,类Test,具体要求如下:

⑴类Circle

1属性

radius:

double型,表示圆的半径。

2方法

Cirle(doubler):

构造函数,将半径初始化为r。

doublefindArea():

返回圆的面积。

doublegetRadius():

返回圆的半径。

⑵类Cylinder

继承Circle类,并有以下属性和方法:

1属性

length:

double型,表示圆柱体的高。

2方法

Cylinder(doubler,doublel):

构造函数,给圆柱体的半径和高赋初值。

doublefindVolume():

返回圆柱体的体积。

toString():

返回圆柱体的半径、高、体积等信息。

⑶主类Test

1生成Cylinder对象。

②调用对象的toString方法,输出对象的描述信息。

(注:

程序框架和部分源码已给出,请补充完整)

importjava.io.*;

publicclassTest//主类定义已给出

{

publicstaticvoidmain(Stringargs[])

{

Cylinderc=newCylinder(2,5);

System.out.println(c.toString());

}

}

classCircle//类Circle定义,请填写完整

{

finalfloatPI=3.14159f;

//添加属性radius

doubleradius;

//添加

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2