Java面向对象程序设计复习题附答案.docx
《Java面向对象程序设计复习题附答案.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计复习题附答案.docx(30页珍藏版)》请在冰点文库上搜索。
Java面向对象程序设计复习题附答案
Java面向对象程序设计复习题
一、选择题
1、下列哪个是Java中的关键字(C)。
A、run B、Integer C、default D、implement
2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B)。
A、Applet是Container的一种 B、Applet是Window的一种
C、Applet是Component的一种 D、Applet是Panel的一种
3、下列类DataOutputStream的构造方确的是(A)。
A、newdataOutputStream(newFileOutputStream(“out.txt”));
B、newdataOutputStream(“out.txt”);
C、newdataOutputStream(newwriter(“out.txt”));
D、newdataOutputStream(newFileWriter(“out.txt”));
4、在switch(表达式)语句中,表达式的类型不能为(C)。
A、byte B、char C、long D、int
5、在接口MouseMotionListener中方确的是(A)。
A、PublicvoidmouseDragged(MouseEvent)
B、PublicbooleanmouseDragged(MouseEvent)
C、PublicvoidmouseDragged(MouseMotionEvent)
D、PublicbooleanMouseDragged(MouseMotionEvent)
6、下面是一些异常类的层次关系
Java.lang.Exception
Java.lang.RuntimeException
Java.lang.IndexOutOfBoundsException
Java.lang.ArrayIndexOutOfBoundsException
Java.lang.StringIndexOutOfBoundsException
假设有一个方法X,能够抛出两个异常,ArrayIndex和StringIndex异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。
(B)
A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds
Exception。
B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds
Exception和StringIndexOutOfBoundsException都可以被捕获。
C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch语句
捕获。
D、方法X不能声明抛弃异常。
7、现有一变量声明为booleanaa;下面赋值语句中正确的是(D)。
A、aa=0 B、aa=True C、aa="true" D、aa=false
8、某类Example的main()方法参数为args,当输入数据JavaExamplecat时,args[0]的值为(A)。
A、cat B、Java C、example D、null
9、Strings1=newString(“Java”);Strings2=newString(s1)则下列哪个说法是正确的(C)。
A、表达式s1==s2为真
B、s1和s2是同一个对象
C、表达式s1.equals(s2)为真
D、以上均不对
10、类定义如下
classFoo{
publicstaticvoidmain(Stringargs[]){
Strings;
System.out.println("s="+s);
}
}
则下列结论正确的是(C)。
A、有输出结果,且为空 B、没有输出结果
C、编译错误 D、有输出结果,且不为空
11、下列哪个不是Java的保留字(D)。
A、float B、class C、extends D、virtual
12、下列符号中不能作为Java标识符的是(D)。
A、abc B、$str1 C、_pore D、45six
13、方法methodA定义如下:
returnTypemethodA(bytex,doubley){
return(short)x/y*2;
}
则返回值returnType为(C)。
A、byte B、double C、short D、int
14、如果floatf=4.2F;Floatg=newFloat(4.2F);Doubled=newDouble(4.2);则下列选项正确的是(B)。
A、f==g B、f==g.floatValue() C、d==f D、d.equals(f)
15、下列二维数组定义中错误的是(A)。
A、inta[][]=newint[][];
B、int[]a[]=newint[10][10];
C、inta[][]=newint[10][10];
D、int[][]a=newint[10][10];
16、关于下列语句哪个答案是正确的(D)。
System.out.println(4|7);
A、4 B、5 C、6 D、7
17、下面哪一个AWT组件可以有菜单栏MenuBar(A)。
A、Java.awt.Frame
B、Java.awt.Window
C、Java.awt.Applet
D、Java.awt.Panel
18、下列哪个方法用于创建并开始一个新的线程(B)。
A、run();
B、start();
C、execute();
D、run(Runnabler);
19、如果有Booleana=newBoolean(“yes”),则a.booleanValue()值为(D)。
A、yes B、“yes” C、true D、false
20、以下类DataOutputStream的构造方确的是(C)。
A、newdataInputStream(“in.txt”);
B、newdataInputStream(newfile(“in.txt”));
C、newdataInputStream(newFileInputStream(“in.txt”));
D、newdataInputStream(newFileWriter(“in.txt”));
21、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A、.Java B、.class C、.html D、.exe
22、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A、3 B、3.5 C、4 D、5
23、在Applet表面输出文字时,可以选择不同的颜色,但是忘记了设置颜色的方法,应该首先在哪个类里面寻找(D)。
A、Java.awt.Applet
B、Java.awt.Panel
C、Java.applet.Applet
D、Java.awt.Component
24、类Cycle的main()方法为:
publicstaticvoidmain(Stringargs[]){
System.out.println(args[0]);
}
则运行时如果命令行语句为JavaCycleonetwothree,则输出结果为(B)。
A、Cycle B、one C、two D、three
25、下面哪一个是Thread类中的静态方法(D)。
A、start() B、stop() C、run() D、sleep(longm)
26、关于下列语句哪个答案是正确的(A)。
if(5&7&&5|2)System.out.println(“true”);
A、不能编译成功 B、可以编译成功,输出true
C、可以编译成功,但无输出 D、以上均不对
27、声明公用的abstract方法的正确格式是(C)。
A、publicabstractvoidadd(){}
B、publicabstractadd();
C、publicabstractvoidadd();
D、publicvirtualadd();
28、下列程序结果正确的是(B)。
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Ada1=newAd();
System.out.println(a1.add
(1));
Ada2=newAd();
System.out.println(a2.add
(2));
}
}
classAd{
staticinttotal=10;
publicintadd(inti){
total=total+i;
returntotal;
}
}
A、11,12 B、11,13 C、11,11 D、12,12
29、基于Java.awt.Frame的一个程序中包含一个Panel,Panel其中包含一个Label,在Frame和Panel中分别有下面的一些语句,
//Frame里面的语句
setFont(newFont("Serif",Font.ITALIC,18);
setBackground(Color.cyan);
//Panel中的语句
setBackground(Color.white);
setForeground(Color.magenta);
请问Label用什么颜色和字体显示(A)。
A、Background=white;foreground=magenta;font=SerifItalicstyle,18point
B、Background=cyan;foreground=black;font=SerifItalicstyle,18point
C、Background=cyan;foreground=black;font=systemdefaultstyleforlabels
D、Background=white;foreground=magenta;font=systemdefaultstyleforlabels
30、语句for(intx=0,y=0;(y!
=0)&&(x<4);x++)的执行次数是(B)。
A、无限次 B、一次也不执行 C、执行4次 D、执行3次
二、判断题
1、abstract是抽象修饰符,可以用来修饰类及其属性和方法。
(对)
2、Java支持多线程机制。
(对)
3、一个Java源程序文件中允许有多个公共类。
(错)
4、重载的方法可以通过它们的返回值类型的不同来区分。
(错)
5、子类要调用父类的方法,必须使用super关键字。
(错)
6、子类拥有的成员数目一定大于等于父类拥有的成员数目。
(错)
7、一个catch块也可以区分处理多个不同类型的异常,只要它们是该catch语句块异常参数的子类或其本身。
(对)
8、程序中一旦执行了catch语句块,则不会执行finally语句块。
(错)
9、新建一个Frame对象,则其将立即显示在屏幕上。
(错)
10、一个正在执行的线程使用yield()方法将处理器让给其它同优先级的其它线程。
(对)
11、Java中的的字符使用的是16位的Unicode编码。
(对)
12、for语句中的循环体不能为空。
(错)
13、Java仅支持类间的单重继承。
(对)
14.接口是由常量和抽象方法组成的特殊类。
(对)
15、构造函数的方法名可由编程人员任意命名。
(错)
16、使用静态属性必须以类名做前缀。
(错)
17、类的私有属性和私有方法可以被其子类访问。
(错)
18、使用了FlowLayout布局管理器,不能改变组件的高度。
(对)
19、Java.lang.RuntimeException及其子类的异常可以不捕获。
(对)
20、当用户在TextField中改变光标的位置时,会产生一个TextEvent事件。
(错)
31、Java程序是由若干类定义组成的,类定义包括定义类头和定义类体。
(对)
32、类Class1中的属性被private修饰符修饰为私有变量,所以方法不能访问它。
(错)
34、引用一个类的属性或调用其方法,必须以这个类的对象为前缀。
(错)
35、与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问围,private修饰符则缩小了这种围。
(对)
36、子类要调用父类的方法,必须使用super关键字。
(错)
37、因为Java不支持多重继承,所以定义类时implements关键字后面只能说明一个接口名。
(错)
38、挂起、阻塞或等待的线程都能恢复执行,但停止的线程不能复生。
(对)
39、如果一个方法在运行过程中产生异常,则方法会终止,但整个应用不一定终止。
(对)
40、接口Java.lang.runnable中只有一个run()方法。
(对)
三、程序阅读题
1.阅读下面的程序代码,并回答问题。
Strings1=newString("abcde");
Strings2=newString("abcde");
booleanb1=s1.equals(s2);
booleanb2=s1==s2;
System.out.print(b1+""+b2);
(1)程序段执行后,在命令行的输出结果如何?
(2)解释输出
(1)的结果的原因?
(1)truefalse
(2)equals方法比较两个字符串的容是否相等;运算符“==”判断两个对象是否指向同一个引用,即是否为同一个对象。
2.阅读下面的程序代码,并回答问题。
importjava.io.*;
publicclassTest{
publicstaticvoidmain(Stringargs[])throwsIOException{
BufferedReaderbuf=newBufferedReader(
newInputStreamReader(System.in));
while(true){
Stringstr=buf.readLine();
if(str.equals("quit"))
break;
intx=Integer.parseInt(str);
System.out.println(x*x);
}
}
}
编译运行上面的程序:
(1)从键盘输入10,回车后输出的结果如何?
(2)从键盘输入exit,回车后程序能正确执行吗?
为什么?
(1)100
(2)不能;因为方法Integer.parseInt(str)不能将字符串“exit”转化为整数,抛出异常。
3.阅读下面的程序代码
importjava.io.*;
publicclassTest{
publicstaticvoidmain(Stringargs[]){
inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90};
for(i=0;i if(a[i]%3==0)
continue;
s+=a[i];
}
System.out.println("s="+s);
}
}
程序执行后,在命令行的输出结果是什么?
270
4.阅读下面的程序代码
importjava.util.*;
publicclassExample9_14{
publicstaticvoidmain(Stringargs[]){
Strings="市话费:
28.89元,长途话费:
128.87元,上网费:
298元。
";
Stringdelim="市话长途话上网费元:
。
";
StringTokenizerfenxi=newStringTokenizer(s,delim);//用delim中的字符的任意组合作为分隔标记
doubletotalMoney=0;
while(fenxi.hasMoreTokens()){
doublemoney=Double.parseDouble(fenxi.nextToken());
System.out.println(money);
totalMoney+=money;
}
System.out.println("总费用:
"+totalMoney+"元");
}
}
程序执行后,在命令行的输出结果是什么?
市话费:
28.89元
长途话费:
128.87元,
上网费:
298元。
总费用:
455.76元
5.阅读下面的程序代码
importjava.util.*;
classStudentimplementsComparable{
intenglish=0;
Stringname;
Student(intenglish,Stringname){
this.name=name;
this.english=english;
}
publicintcompareTo(Objectb){
Studentst=(Student)b;
return(this.english-st.english);
}
}
publicclassExample13_8{
publicstaticvoidmain(Stringargs[]){
TreeSetmytree=newTreeSet();
Studentst1,st2,st3,st4;
st1=newStudent(90,"一");
st2=newStudent(66,"钱二");
st3=newStudent(86,"三");
st4=newStudent(76,"四");
mytree.add(st1);
mytree.add(st2);
mytree.add(st3);
mytree.add(st4);
Iteratorte=mytree.iterator();
while(te.hasNext()){
Studentstu=te.next();
System.out.println(""+stu.name+""+stu.english);
}
}
}
程序执行后,在命令行的输出结果是什么?
钱二66
四76
三86
一90
6.写出下面的程序编译、运行后的结果。
publicclassTest{
publicstaticvoidmain(Stringargs[]){
newStudent("Tom",'m',90,88);
newStudent("Jack",'m',66,89);
newStudent("Mary",'f',76,86);
System.out.println("name\tsex\tchinese\tenglish");
Student.print();
}
}
classStudent{
protectedStringname;
protectedcharsex;
protectedintchinese;
protectedintenglish;
protectedStudentnext;
staticStudentlist;
Student(Stringname,charsex,intchinese,intenglish){
this.name=name;
this.sex=sex;
this.chinese=chinese;
this.english=english;
this.next=list;
list=this;
}
staticvoidprint(){
Studentfriend=list;
if(friend==null)
System.out.println("Thelistisempty.");
else{
do{
System.out.println(friend.toString());
friend=friend.next;
}while(friend!
=null);
}
}
publicStringtoString(){
returnnewString(name+"\t"+sex+"\t"+chinese+"\t"+english);
}
}
7.写出以下程序的功能。
importjava.io.*;
publicclassTestFile
{
publicstaticvoidmain(Stringargs[])throwsException
{
BufferedReaderbr=newBufferedReader(
newInputStreamReader(System.in));
BufferedWriterbw=newBufferedWriter(newFileWriter(“input.txt"));
Strings;
while(true)
{