Java语言程序期末复习题和答案.docx
《Java语言程序期末复习题和答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序期末复习题和答案.docx(24页珍藏版)》请在冰点文库上搜索。
![Java语言程序期末复习题和答案.docx](https://file1.bingdoc.com/fileroot1/2023-6/10/13481012-c9fd-49b5-a50c-dd60edb245c0/13481012-c9fd-49b5-a50c-dd60edb245c01.gif)
Java语言程序期末复习题和答案
Java语言程序期末复习题和答案
一.判断题
1.由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。
(×)
2.注释的作用是使程序在执行时在屏幕上显示//之后的内容。
(×)
3.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
(√)
4.java异常处理中可以使用多个catch子句,此时应将高级别异常类的catch子句放在前面。
(×)
5.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
(×)
6.创建Vector对象时构造函数给定的是其中可以包容的元素个数,使用中应注意不能超越这个数值。
(×)
7.静态初始化器是在其所属的类加载内存时由系统自动调用执行。
(√)
8.Applet是一种特殊的Panel,它是JavaApplet程序的最外层容器。
(√)
9.设String对象s=”H”,运行语句System.out.println(s.concat(“ello!
”));后String对象s的内容为”Hello!
”,所以语句输出为”Hello!
”。
(×)
10.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
(×)
11.无论Java源程序包含几个类的定义,若该源程序文件以B.java命名,编译后生成的都只有一个名为B的字节码文件。
(×)
12.即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。
(√)
13.Java的各种数据类型所占用的内存长度与具体软硬件环境有关。
(×)
14.在Java的方法中定义一个常量要用const关键字。
(×)
15.Java的类不允许多重继承,但接口支持多重继承。
(√)
16.所谓抽象类就是包含有抽象方法的类。
(×)
17.在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。
(×)
18.程序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。
(×)
19.Java语言中的数组元素只能是基本数据类型而不能为对象类型。
(×)
20.构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。
(×)
21.在Java中%是取余运算符,要求两端操作数为整型。
(×)
22.Java有两类程序:
JavaApplication和JavaApplet,其中JavaApplet程序只能在图形界面中工作,而JavaApplication程序只能在字符界面中工作。
(×)
23.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。
(√)
24.一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。
(√)
二.单项选择题
1.在浏览器中执行applet程序,以下选项中的哪个方法将被最后执行(C)。
A、init()B、start()C、destroy()D、stop()
2.Javaapplication中的主类需包含main方法,main方法的返回类型是什么?
(D)
A、intB、floatC、doubleD、void
3.有以下方法的定义,请选择该方法的返回类型(D)。
ReturnTypemethod(bytex,floaty)
{
return(short)x/y*2;
}
A、byteB、shortC、intD、float
4.设有下面两个类的定义:
classPerson{classStudentextendsPerson{
longid;//身份证号intscore;//入学总分
Stringname;//姓名intgetScore(){
}returnscore;
}
}
则类Person和类Student的关系是(B)。
A、包含关系B、继承关系C、关联关系D、上述类定义有语法错误
5.以下哪个关键字可以用来对对象加互斥锁?
(C)
A、transientB、serializeC、synchronizedD、static
6.在编写JavaApplet程序时,需要在程序的开头写上(B)语句。
A、importjava.awt.*;B、importjava.applet.*;
C、importjava.io.*;D、importjava.awt.event.*;
7.容器Panel和Applet缺省使用的布局编辑策略是(A)
A、FlowLayoutB、BorderLayoutC、GridLayoutD、CardLayout
8.以下声明合法的是(B)
A、defaultStrings;B、publicfinalstaticnativeintw()
C、abstractdoubled;D、abstractfinalinthyperbolicCosine()
9.以下程序段执行后将有(C)个字节被写入到文件afile中。
try{
FileOutputStreamfos=newFileOutputStream(“afile.txt”);
DataOutputStreamdos=newDataOutputStream(fos);
dos.writeInt(3);
dos.writeDouble(0.01);
dos.close();
fos.close();
}
catch(IOExceptione){}
A、2B、8C、12D、16
10.编译并运行以下程序,以下描述哪个选项是正确的(C)。
1.classATestOftoString{
2.protectedStringtoString(){
3.returnsuper.toString();}
4.}
A、编译通过运行无异常B、编译通过但运行时出错
C、行2出错,不能成功编译D、不能成功编译,行3出错
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.以下哪个不是Java的关键字?
(A)
A、FALSEB、constC、thisD、void
14.关于以下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没有初始化
15.有程序如下,关于程序的描述哪个是正确的?
(C)
publicclassPerson{
staticintarr[]=newint[5];
publicstaticvoidmain(Stringa[])
{ System.out.println(arr[0]); }
}
A、编译将产生错误B、编译时正确,但运行时将产生错误
C、正确,输出0D、正确,输出 null
16.类ABC定义如下:
1.publicclassABC{
2.publicintmax(inta,intb){}
3.
4.}
将以下哪个方法插入行3是不合法的。
(B)
A、publicfloatmax(floata,floatb,floatc){}
B、publicintmax(intc,intd){}
C、publicfloatmax(floata,floatb){}
D、privateintmax(inta,intb,intc){}
17.以下关于构造函数的描述错误的是(A)。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
18.有语句Strings=”helloworld”;,以下操作哪个是不合法的?
(A)
A、s>>>=1;B、inti=s.length();C、Stringts=s.trim();D、Stringt=s+”!
”;
19.在浏览器中执行applet程序,以下选项中的哪个方法将被最先执行(A)。
A、init()B、start()C、destroy()D、stop()
20.有程序片段如下,以下哪个表示式的结果为true?
(B)
Floats=newFloat(0.1f);
Floatt=newFloat(0.1f);
Doubleu=newDouble(0.1);
A、s==tB、s.equals(t)C、u.equals(s)D、t.equals(u)
21.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位。
A、8B、16C、32D、64
22.以下哪项可能包含菜单条(B)。
A、PanelB、FrameC、AppletD、Dialog
23.paint()方法使用哪种类型的参数?
(A)
A、GraphicsB、Graphics2DC、StringD、Color
24.以下哪个方法用于定义线程的执行体?
(C)
A、 start()B、init()C、run()D、synchronized()
25.当浏览器暂时离开含applet程序的页面时,以下选项中的哪个方法将被执行?
(D)
A、init()B、start()C、destroy()D、stop()
26.下面哪个不是Java中的容器?
(A)
A、Canvas B、ScrollPaneC、AppletD、Dialog
27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序的特性称为(C)。
A、隐藏B、覆盖C、重载D、Java不支持此特性
28.编译JavaApplet源程序文件产生的字节码文件的扩展名为(B)。
A、javaB、classC、htmlD、exe
29.下面哪个方法与applet的显示无关?
(A)
A、draw() B、 update() C、repaint() D、paint()
30.编译并运行以下程序,以下描述哪个选项是正确的(C)
1.classA{
2.protectedbooleanequals(){
3.returnsuper.equals();}
4.}
A、编译通过运行无异常B、编译通过但运行时出错
C、行2出错,不能成功编译D、不能成功编译,行3出错
31.以下自定义标识符中哪项是不合法的(A)
A、constB、$doubleC、helloD、BigMeaninglessName
32.有如下代码段:
1)
2){if(unsafe()){//dosomething…}
3)elseif(safe()){//dotheother…}
4)}
其中,方法unsafe()将抛出IOException,请问可将以下哪项填入第1行?
(D)
A、publicIOExceptionmethodName()
B、publicvoidmethodName()
C、publicvoidmethodName()throwIOException
D、publicvoidmethodName()throwsIOException
33.类Test1、Test2定义如下:
1.publicclassTest1
2.{publicfloataMethod(floata,floatb)throws
3.IOException{}
4.}
5.publicclassTest2extendsTest1{
6.
7.}
将以下哪种方法插入行4是不合法的。
(A)
A、floataMethod(floata,floatb){}
B、publicintaMethod(inta,intb)throwsException{}
C、publicfloataMethod(floatp,floatq){}
D、publicintaMethod(inta,intb)throwsIOException{}
34.以下哪个接口的定义是正确的?
(D)
A、interfaceB
{voidprint(){};}
B、abstractinterfaceB
{voidprint();}
C、abstractinterfaceBextendsA1,A2//A1、A2为已定义的接口
{abstractvoidprint(){};}
D、interfaceB
{voidprint();}
35.下面哪个函数是public void aMethod(){...}的重载函数?
(D)
A、void aMethod( ){...}
B、public int aMethod(){...}
C、public void aMethod(){...}
D、public int aMethod ( int m){...}
36.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行的声明都是正确的
37.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?
(C)
classA
{inti;
staticStrings;
voidmethod1(){}
staticvoidmethod2(){}
}
A、System.out.println(a.i);B、a.method1();C、A.method1();D、A.method2()
38.下列哪些语句关于Java内存回收的说明是正确的?
(B)
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
39.以下关于继承的叙述正确的是(A)。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
40.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(D)语句。
A、importjava.awt.*;B、importjava.applet.*;
C、importjava.io.*;D、importjava.awt.event.*;
三.程序阅读题
1.阅读以下程序:
classA
{publicstaticvoidmain(String[]args)
{Strings,s1="";
charc;
s=args[0];
for(inti=0;i{c=s.charAt(i);
if(c>='a'&&c<='z'){
s1=s1+Character.toUpperCase(c);
}else{s1=s1+Character.toLowerCase(c);}
}
System.out.println(s1);}
}
若在dos命令行输入:
javaAhELLO,则输出为Hello。
2.写出以下程序的运行结果。
publicclassEqualOrNot
{publicstaticvoidmain(String[]args)false
{Bb1=newB(5);false
Bb2=newB(5);
System.out.println(b1==b2);
System.out.println(b1.equals(b2));
}
}
classB
{intx;
B(inty){x=y;}
}
3.阅读以下程序:
importjava.io.*;
publicclassReadLineTest{
publicstaticvoidmain(String[]args){
BufferedReaderb=newBufferedReader(newInputStreamReader(System.in));
Strings;
System.out.flush();
s=b.readLine();
System.out.println(s);
}
}
运行以上程序,若从键盘输入:
Hello<回车>
则输出结果为Hello。
4.写出以下程序的功能。
复制文件a.txt到文件b.txt
importjava.io.*;
publicclassC{
publicstaticvoidmain(String[]args)throwsIOException{
FileinputFile=newFile(“a.txt");
FileoutputFile=newFile(“b.txt");
FileReaderin=newFileReader(inputFile);
FileWriterout=newFileWriter(outputFile);
intc;
while((c=in.read())!
=-1)out.write(c);
in.close();
out.close();}
}
5.写出以下程序的功能。
计算命令行参数串大小写字母的个数并在屏幕上显示结果
classTest
{publicstaticvoidmain(String[]args)
{Strings;
charc;
intupper,lower;
upper=lower=0;
s=args[0];
for(inti=0;i{c=s.charAt(i);
if(c>='a'&&c<='z')lower++;
if(c>='A'&&c<='Z')upper++;}
System.out.println(upper+”,”+lower);}
}
6.以下程序段的输出结果为1234589。
publicclassC
{publicstaticvoidmain(Stringargs[]){
inti,j;
inta[]={2,1,4,8,9,5,3};
for(i=0;iintk=i;
for(j=i;jif(a[j]inttemp=a[i];
a[i]=a[k];
a[k]=temp;}
for(i=0;iSystem.out.print(a[i]+"");
System.out.println();}
}
7.写出以下程序的运行结果。
no1no2no3
importjava.util.*;no1no3
publicclassVec{
publicstaticvoidmain(String[]args){
String[]s;
s=newString[2];
s[0]=newString("no1");
s[1]=newString("no2");
Vectorv=newVector();
for(inti=0;i<2;i++)v.addElement(s[i]);
v.insertElementAt(newString("no3"),2);
Enumeratione=v.elem