最新1Java语言与面向对象程序设计期末复习题资料Word文档格式.docx
《最新1Java语言与面向对象程序设计期末复习题资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新1Java语言与面向对象程序设计期末复习题资料Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
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
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、s>
>
=1;
B、inti=s.length();
C、Stringts=s.trim();
D、Stringt=s+”!
”;
19.在浏览器中执行applet程序,以下选项中的哪个方法将被最先执行(A)。
20.有程序片段如下,以下哪个表示式的结果为true?
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.以下哪个方法用于定义线程的执行体?
A、
start()B、init()C、run()D、synchronized()
25.当浏览器暂时离开含applet程序的页面时,以下选项中的哪个方法将被执行?
(D)
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、draw()
B、
update()
C、repaint()
D、paint()
30.编译并运行以下程序,以下描述哪个选项是正确的(C)
1.classA{
2.protectedbooleanequals(){
3.returnsuper.equals();
4.}
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、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(){...}的重载函数?
A、void
aMethod(
){...}
B、public
int
aMethod(){...}
C、public
aMethod(){...}
D、public
aMethod
(
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类的一个实例,下列语句调用哪个是错误的?
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)语句。
三.程序阅读题
1.阅读以下程序:
classA
{publicstaticvoidmain(String[]args)
{Strings,s1="
"
;
charc;
s=args[0];
for(inti=0;
i<
s.length();
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
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
{Strings;
charc;
intupper,lower;
upper=lower=0;
s=args[0];
for(inti=0;
{c=s.charAt(i);
if(c>
)lower++;
A'
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;
i<
a.length-1;
i++){
intk=i;
for(j=i;
j<
a.length;
j++)
if(a[j]<
a[k])k=j;
inttemp=a[i];
a[i]=a[k];
a[k]=temp;
for(i=0;
i<
a.length;
i++)
System.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;
2;
i++)v.addElement(s[i]);
v.insertElementAt(newString("
no3"
),2);
Enume