JAVA程序设计练习题有答案.docx

上传人:b****6 文档编号:7487960 上传时间:2023-01-24 格式:DOCX 页数:13 大小:20.55KB
下载 相关 举报
JAVA程序设计练习题有答案.docx_第1页
第1页 / 共13页
JAVA程序设计练习题有答案.docx_第2页
第2页 / 共13页
JAVA程序设计练习题有答案.docx_第3页
第3页 / 共13页
JAVA程序设计练习题有答案.docx_第4页
第4页 / 共13页
JAVA程序设计练习题有答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

JAVA程序设计练习题有答案.docx

《JAVA程序设计练习题有答案.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计练习题有答案.docx(13页珍藏版)》请在冰豆网上搜索。

JAVA程序设计练习题有答案.docx

JAVA程序设计练习题有答案

《JAVA程序设计》练习题

一、单选择题

1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。

..class

..exe

2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。

、不允许作为类及类成员的访问控制符的是(C)。

、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。

()()

()()

二、填空题

1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、

编译生成字节码和解释运行字节码。

2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占

用2字节内存空间,这样,无论是中文字符还是英文字符,都是占

用2字节内存空间。

3、设x=2,则表达式(x++)/3的值是0。

4、若x=5,y=10,则x=y的逻辑值分别为true和false。

5、抽象(abstract)方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。

最终(final)方法是不能被当前类的子类重新定义的方法。

6、创建一个名为MyPackage的包的语句是packageMyPackage;,

该语句应该放在程序的位置为:

应该在程序第一句。

7、设有数组定义:

intMyIntArray[]={10,20,30,40,50,60,70};则执行以下几个语句后的输出结果是120。

ints=0;

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

if(i%2==1)

s+=MyIntArray[i];

8、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。

三、写出下面程序的运行结果

1、.*;

publicclassabc

{

publicstaticvoidmain(Stringargs[])

{

ABs=newAB("Hello!

","IloveJAVA.");

));

}

}

classAB{

Strings1;

Strings2;

publicAB(Stringstr1,Stringstr2)

{

s1=str1;

s2=str2;

}

publicStringtoString()

{

returns1+s2;

}

}

Hello!

IloveJAVA.

2、.*;

publicclassabc

{

publicstaticvoidmain(Stringargs[])

{inti,s=0;

inta[]={10,20,30,40,50,60,70,80,90};

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

if(a[i]%3==0)s+=a[i];

}

}

s=180

3、.*;

publicclassabc

{

publicstaticvoidmain(Stringargs[])

{

}

}

classSubClassextendsSuperClass

{intc;

SubClass(intaa,intbb,intcc)

{

super(aa,bb);

c=cc;

}

}

classSubSubClassextendsSubClass

{inta;

SubSubClass(intaa,intbb,intcc)

{super(aa,bb,cc);

A=aa+bb+cc;

}

voidshow()

{

}

}

一.判断题

1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。

(√)

2.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。

(×)

3.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。

(×)

4.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。

(×)

5.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。

(√)

6.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。

(√)

7.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。

(×)

8.静态初始化器是在其所属的类加载内存时由系统自动调用执行。

(√)

9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。

(×)

二.单项选择题

1.Javaapplication中的主类需包含main方法,以下哪项是main方法的正确形参?

(B)

A、StringargsB、Stringar[]C、CharargD、StringBufferargs[]

2.以下关于继承的叙述正确的是(A)。

A、在Java中类只允许单一继承

B、在Java中一个类只能实现一个接口

C、在Java中一个类不能同时继承一个类和实现一个接口

D、在Java中接口只允许单一继承

3.paint()方法使用哪种类型的参数?

(A)

A、GraphicsB、Graphics2DC、StringD、Color

4.以下哪个不是Java的原始数据类型(B)

A、intB、BooleanC、floatD、char

5.以下哪项可能包含菜单条(B)。

A、PanelB、FrameC、AppletD、Dialog

6.若需要定义一个类域或类方法,应使用哪种修饰符?

(A)

A、staticB、packageC、privateD、public

7.在浏览器中执行applet程序,以下选项中的哪个方法将被最先执行(A)。

A、int()B、start()C、destroy()D、stop()

11.以下代码段执行后的输出结果为(A)

intx=-3;

inty=-10;

A、-1B、2C、1D、3

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

(D)

1.

{

3.

A、.*;B、packagemypackage;

C、classOtherClass{}D、publicclassMyClass{}

15.在编写JavaApplet程序时,需在程序的开头写上(B)语句。

A、.*;B、import;

C、.*;D、import;

16.类Parent、Child定义如下:

1.publicclassParent

2.{publicfloataFun(floata,floatb)throws

3.IOException{}

4.}

5.publicclassChildextendsParent{

6.

7.}

将以下哪种方法插入行6是不合法的。

(A)

A、floataFun(floata,floatb){}

B、publicintaFun(inta,intb)throwsException{}

C、publicfloataFun(floatp,floatq){}

D、publicintaFun(inta,intb)throwsIOException{}

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

A、privateB、protectedC、privateprotectedD、public

18、有以下方法的定义,请选择该方法的返回类型(D)。

ReturnTypemethod(bytex,doubley)

{

return(short)x/y*2;

}

A、byteB、shortC、intD、double

三.程序阅读题

1.以下程序的输出结果为相等。

classStringTest1

{

publicstaticvoidmain(String[]args)

{

Strings1="hello";

Strings2=newString("hello");

if(s2)){

}else{

}

}

}

2.以下程序段的输出结果为56789。

publicclassTestArray

{

publicstaticvoidmain(Stringargs[]){

inti,j;

inta[]={5,9,6,8,7};

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

intk=i;

for(j=i;j<;j++)

if(a[j]

inttemp=a[i];

a[i]=a[k];

a[k]=temp;

}

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

");

);

}

}

4.阅读以下程序,写出输出结果。

classAnimal{

Animal(){

("Animal");}

}

public

classDogextendsAnimal{

Dog(){

("Dog");}

publicstaticvoidmain(String[]args){

Dogsnoppy=newDog();}

}

AnimalDog

填空题

1、如果将类MyClass声明为public,它的文件名称必须是()才能正常编译。

2、Java程序中的单行注释符是(;)。

8、当声明一个数组intarr[]=newint[5];时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0到4)。

9、假设x=13,y=4,则表达式x%y!

=0的值是(true),其数据类型是(boolean)。

10、异常处理是由(try)、(catch)和finally块三个关键所组成的程序块。

11、以下程序段的输出结果是(三角形)

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

if(x+y>z&&x+z>y&&z+y>x)

else

12、下面程序段的执行结果是(65432)

inta[]={2,3,4,5,6};

for(inti=;i>=0;i--)

+"");

三、程序阅读题

1、以下程序的输出结果为_Peteris17yearsold!

__。

PublicclassPerson{

Stringname;

intage;

publicPerson(Stringname,intage){

=name;

=age;

}

Publicstaticvoidmain(String[]args){

Personc=newPerson("Peter",17);

+"is"++"yearsold!

");

}

}

2、以下程序的输出结果为_课程号:

101课程名:

ASP学分:

3__。

PublicclassCourse{

privateStringcNumber;

privateStringcName;

privateintcUnit;

publicCourse(Stringnumber,Stringname,intunit){

cNumber=number;

cName=name;

cUnit=unit;

}

PublicvoidprintCourseInfo(){

+cNumber+"课程名:

"+cName+"学分:

"+cUnit);

}

}

classCourseTest{

publicstaticvoidmain(String[]args){

Coursec;

c=newCourse("101","ASP",3);

();

}

}

5、下列程序的运行结果是__12345____。

publicclassMyClass{

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

voidout(){

for(intj=0;j<;j++)

+"");

}

publicstaticvoidmain(String[]args){

MyClassmy=newMyClass();

();

}

}

四、简答题

1、简述Java中异常处理的机制?

答:

首先Java的异常是面向对象的。

一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。

Java的异常处理是通过5个关键词来实现的:

try,catch,throw,throws和finally。

1.异常处理:

在Java语言的错误处理结构由try,catch,finally三个块组成。

其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在try块后面,用来激发被捕获的异常;finally块包含清除程序没有释放的资源,句柄等。

不管try块中的代码如何退出,都将执行finally块。

2.抛出异常:

Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者。

Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。

2、什么是继承?

答:

通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。

3、请简述重载和重写的区别?

答:

方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。

子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

Overloaded的方法是可以改变返回值的类型。

1.创建类的对象时,使用运算符______new_____给对象分配内存空间。

2.定义类的构造方法不能有返回值类型,其名称与___类__名相同。

语言中关键字__double___表示双精度类型。

4.若有定义:

floatb={,,};,则()的值是___3____。

5.若有如下类定义,则类B是类A的__子类____。

classBextendsA{

}

6.接口中的成员只有静态常量和__抽象方法____。

7.在子类中使用关键字__super_____做前缀可调用被子类覆盖的父类中的方法。

8.关键字__import____用于导入包中的类到程序中,供程序中使用。

语言中,通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的__catch___块来捕获和处理异常。

阅读程序,回答问题

1.

1:

publicclassOutput1{

2:

publicstaticvoidmain(Stringarge[]){

3:

inti=0;

4:

for(charch=97;ch<113;ch++,i++){

5:

if(i%8==0)

6:

");

7:

+ch);

8:

}

9:

}

10:

}

(1)程序第5、6行的if语句的功能是什么?

(2)程序输出的结果有几行?

(1)每打印8个字符,则换行。

(2)输出的结果有2行

2.

1:

import

2:

3:

publicclassSortArray{

4:

publicstaticvoidmain(Stringargs[]){

5:

String[]str={"size","abs","length","class"};

6:

(str);

7:

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

8:

");

9:

}

10:

}

(1)写出程序运行后的结果。

(2)方法调用str[0].length()的返回结果是多少?

(1)?

abs?

?

?

?

?

?

?

?

class?

?

?

?

?

?

?

?

length?

?

?

?

?

?

?

?

?

size?

?

?

?

(2)?

4

1.定义类A和类B如下.

classA

{

inta=1;

doubled=;

voidshow()

{

A:

a="+a+"\td="+d);

}

}

classBextendsA

{

floata=;

Stringd="Javaprogram.";

voidshow()

{

();

B:

a="+a+"\td="+d);

}

}

(1)若在应用程序的main方法中有以下语句:

Aa=newA();

();

则输出的结果如何?

(2)若在应用程序的main方法中定义类B的对象b:

Ab=newB();

();

则输出的结果如何?

答:

输出结果为:

1)ClassA:

a=1d=

2)ClassA:

a=1d=

ClassB:

a==Javaprogram。

.*;

publicclassW{

staticString[]s={"甲","乙","丙","丁"};

publicstaticvoidmain(String[]args){

Stackstk=newStack();

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

(s[i]+"");

}

intk=0;

while(k<3){

k++;

}

}

}

堆栈的操作规则如何?

写出程序运行后的结果。

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

当前位置:首页 > 小学教育 > 语文

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

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