JAVA期末试题及答案剖析.docx
《JAVA期末试题及答案剖析.docx》由会员分享,可在线阅读,更多相关《JAVA期末试题及答案剖析.docx(39页珍藏版)》请在冰豆网上搜索。
![JAVA期末试题及答案剖析.docx](https://file1.bdocx.com/fileroot1/2022-12/8/7710d4a0-eac2-469d-81ec-c9d21a44181b/7710d4a0-eac2-469d-81ec-c9d21a44181b1.gif)
JAVA期末试题及答案剖析
Java复习一
1.使用Java语言编写的源程序保存时的文件扩展名是()。
(A).class(B).java(C).cpp(D).txt
2.设inta=-2,则表达式a>>>3的值为()。
(A)0(B)3(C)8(D)-1
3.设有数组的定义int[]a=newint[3],则下面对数组元素的引用错误的是()。
(A)a[0];(B)a[a.length-1];
(C)a[3];(D)inti=1;a[i];
4.在类的定义中可以有两个同名函数,这种现象称为函数()。
(A)封装(B)继承
(C)覆盖(D)重载
5.在类的定义中构造函数的作用是()。
(A)保护成员变量(B)读取类的成员变量
(C)描述类的特征(D)初始化成员变量
6.下面关键字中,哪一个不是用于异常处理语句()。
(A)try(B)break
(C)catch(D)finally
7.类与对象的关系是()。
(A)类是对象的抽象(B)对象是类的抽象
(C)对象是类的子类(D)类是对象的具体实例
8.下面哪一个是Java中不合法的标识符()。
(A)$persons(B)twoNum
(C)_myVar(D)*point
9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。
(A)staticvoidmethod()
(B)publicvoidmethod()
(C)finalvoidmethod()
(D)abstractvoidmethod()
10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的()。
(A)ArrayListmyList=newObject()
(B)ListmyList=newArrayList()
(C)ArrayListmyList=newList()
(D)ListmyList=newList()
11.Java源文件和编译后的文件扩展名分别为( )
(A).class和.java (B).java和.class
(C).class和 .class (D).java和 .java
12.在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的()方法来完成一些画图操作。
(A)start()(B)stop()
(C)init()(D)paint()
13.对于一个Java源文件,import,class定义以及package正确的顺序是:
(A)package,import,class
(B)class,import,package
(C)import,package,class
(D)package,class,import
14.下面哪个是非法的:
(A)intI=32; (B)floatf=45.0;
(C)doubled=45.0(D)charc=‘u’; //符号错
15.Java语言使用的字符码集是
(A)ASCII(B)BCD
(C)DCB(D)Unicode
16.如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是
(A)public(B)protected
(C)private(D)static
17.下面关于main方法说明正确的是
(A)publicmain(Stringargs[])
(B)publicstaticvoidmain(Stringargs[])
(C)privatestaticvoidmain(Stringargs[])
(D)voidmain()
18.哪个关键字可以对对象加互斥锁?
()
(A)transient(B)synchronized
(C)serialize(D)static
19.关于抽象方法的说法正确的是()
(A)可以有方法体(B)可以出现在非抽象类中
(C)是没有方法体的方法
(D)抽象类中的方法都是抽象方法
20.java.io包的File类是
(A)字符流类(B)字节流类
(C)对象流类(D)非流类
21.Javaapplication中的主类需包含main方法,以下哪项是main方法的正确形参?
()
A、StringargsB、Stringargs[]
C、CharargDStringBufferargs[]
22.以下代码段执行后的输出结果为()
intx=-3;inty=-10;
System.out.println(y%x);
A、-1B、2C、1D、3
24.若有定义:
byte[]x={11,22,33,-66};
其中0≤k≤3,则对x数组元素错误的引用是()
A)x[5-3]
B)x[k]
C)x[k+5]
D)x[0]
25.paint()方法使用哪种类型的参数?
()
A、GraphicsB、Graphics2D
C、StringD、Color
26.以下哪个不是Java的原始数据类型()
A、intB、BooleanC、floatD、char
27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为()
A)隐藏
B)重写
C)重载
D)Java不支持此特性
28.以下有关构造方法的说法,正确的是:
()
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用。
D.构造方法可以和类同名,也可以和类名不同
29.在浏览器中执行applet程序,以下选项中的哪个方法将被最先执行()。
A、init()B、start()
C、destroy()D、stop()
31、有以下方法的定义,请选择该方法的返回类型()。
ReturnTypemethod(bytex,doubley)
{
return(short)x/y*2;
}
A、byteB、shortC、intD、double
32.下列类定义中哪些是合法的抽象类的定义?
()
A、abstractAnimal{abstractvoidgrowl();}
B、classabstractAnimal{abstractvoidgrowl();}
C、abstractclassAnimal{abstractvoidgrowl();}
D、abstractclassAnimal{abstractvoidgrowl(){System.out.println(“growl”);};}
33.有以下程序片段,下列哪个选项不能插入到行1。
()
1.
2.publicclassInteresting{
3.//dosth
4.}
A、importjava.awt.*;B、packagemypackage;
C、classOtherClass{}
D、publicclassMyClass{}
34.设有下面两个赋值语句:
a=Integer.parseInt(“12”);
b=Integer.valueOf(“12”).intValue();
下述说法正确的是()。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。
D、a和b都是整数类型变量并且值相等。
36.下列哪一项不属于Swing的顶层容器?
()
A)JAppletB)JTreeC)JDialogD)JFrame
37.为了使包ch4在当前程序中可见,可以使用的语句是()。
A)importch4.*;B)packagech4.*;
C)ch4import;D)ch4package;
38.请问所有的异常类皆继承哪一个类?
()。
A)java.io.ExceptionB)java.lang.Throwable
C)java.lang.ExceptionD)java.lang.Error
39.进行Java基本的GUI设计需要用到的包是()。
A)java.ioB)java.sql
C)java.awtD)java.rmi
40.当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?
()
A)KeyEventB)ActionEvent
C)ItemEventD)MouseEvent
填空题:
1.数组x定义:
Stringx[][]=newint[3][2];x[0][0]=”abc”,x[0][1]=”12345”;
则x.length的值为______2___,x[0][1].length()的值为__5___。
2、Java语言的变量由变量名、_修饰符_、变量属性、_初值___组成。
5、Java语言中提供的GUI功能主要由java.awt包和_java.swing_包中的类和接口实现。
6、Java源程序文件和字节码文件的扩展名分别为_.java___和__.class___。
7、Java语言的类型检查机制要求对于没有返回值的方法,在其前面必须加___void___进行说明。
11、子类必须通过_super_关键字调用父类有参数的构造函数。
12、在Java语言中,所有的类都是类__Object__的子类。
13、在Java程序中,通过类的定义只能实现单重继承,但通过__接口__的定义可以实现多重继承关系。
14、如果在Java程序中,需要使用java.util包中的所有类,则应该在程序开始处加上语句_importjava.util.*_。
15、下列程序的运行结果是__01234_______________
publicclassex2{
publicstaticvoidmain(String[]args)
{
for(intcnt=0;cnt<10;cnt++)
{
if(cnt==5)
break;
System.out.print(cnt);
}}}
16、下列程序的运行结果是______4_________
importjava.io.*;
publicclassATest{
publicstaticvoidmain(Stringargs[])
{
SubClasssb=newSubClass();
System.out.println(sb.fun());
}}
classSuperClass{
inta=24,b=5;
}
classSubClassextendsSuperClass
{
intfun()
{
returna%b;
}
}
17、分析下列程序,填上空白处的语句
classpoint//定义坐标类
{intx,y;
test(inta,intb)
{x=a;y=b;}
}
classrec_extendspoint___//定义长方形类
{
intlength,width;
rec(inta1,intb1,intl,intw)
{super(a1,b1);
length=l;width=w;
}}
classtest
{publicstaticvoidmain(Stringargs[])
{testr1=newtest(“0”,“0”,“10”,“20”)____
//定义名为r1的对象同时初始化坐标为0,0,长度为10,宽度为20
r1.print();
}}
19、Java源文件中最多只能有____1______个公共类,其它类的个数不限。
21、设x=15,则表达式(x++)/4的值是___3_______________。
22、___抽象______方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
23、____run()______方法用于定义线程的执行体._____start()______方法用于启动线程.
25、Java语言中,有一个类是所有类或接口的父类,这个类的名称是____Object______。
。
29.设intx=2,则表达式(x++)/3的值是_____0______。
JAVA复习二
一、选择题(2’*15=30’)
1、如下哪个是Java中的标识符()
A、fieldnameB、super
C、3numberD、#number
2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是()。
A.3B.3.5C.4D.5
3、下面的代码段执行之后count的值是什么()
intcount=1;
for(inti=1;i<=5;i++){
count+=i;
}
System.out.println(count);
A、5B、1C、15D、16
4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。
A.staticvoidmethod()B.publicvoidmethod()
C.finalvoidmethod()D.abstractvoidmethod()
5、下列程序段执行后的结果是()。
Strings=newString("abcdefg");
for(inti=0;iSystem.out.print(s.charAt(i));
}
A)acegB)ACEGC)abcdefgD)abcd
6、下面程序段执行后b的值是()。
Integerinteg=newInteger(9);
booleanb=integinstanceofObject;
A)9B)trueC)1D)false
7.关于for循环和while循环的说法哪个正确?
( )
A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果
C.两种循环任何时候都不可以替换
D.两种循环结构中都必须有循环体,循环体不能为空
8.关于对象成员占用内存的说法哪个正确?
( )
A.同一个类的对象共用同一段内存
B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存
D.以上都不对
9.关于继承的说法正确的是:
( )
A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性
D、子类只继承父类的方法,而不继承属性
10.覆盖与重载的关系是 ( )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
11、下面哪一个import命令可以为我们提供编写网络应用程序的类()
A、importjava.sql.*;Bimportjava.util.*;
C、importjava.io.*;D、import.*;
12、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()
A、p.add(b);B、p.add(b,"North");
C、p.add(b,"South");D、b.add(p,"North");
13、Frame对象默认的布局管理器是()
A、FlowLayoutB、BorderLayout
C、CardLayoutD、null
14、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()
A、FileInputStreamB、FileOutputStream
C、DataOutputStreamD、FileWriter
15、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt的内容是()。
importjava.io.*;
publicclassTest{
publicstaticvoidmain(Stringargs[]){
try{
Strings="ABCDE";
Byteb[]=s.getBytes();
FileOutputStreamfile=newFileOutputStream("test.txt",true);
file.write(b);
file.close();
}
catch(IOExceptione){
System.out.println(e.toString());
}
}
}
A)ABCABCB)ABCDE
C)TestD)ABCDEABCDEABCDE
二、填空题(1’*10=10’)
1、如果将类MyClass声明为public,它的文件名必须是MyClass.java才能正常编译。
2.面向对象有三大特点分别是继承、封装、多态。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间
5、Java中用于两个数相等比较的运算符是:
(==),用于不相等比较的运算符是(<>)。
6、在Java中声明一个字符串类型的变量str的语句是:
Stringstr;,定义一个具有10个元素的整型数组a的语句是:
int[]a=newint[10];。
8、定义接口的保留字是(interface)。
9、异常处理是由(try)、(catch)和(finally)块三个关键所组成的程序块。
三、读程题(6’*5=30’)
1、以下程序的输出结果为:
publicclassPerson{
Stringname;
intage;
publicPerson(Stringname,intage){
this.name=name;
this.age=age;
}
publicstaticvoidmain(String[]args){
Personc=newPerson("Peter",17);
System.out.println(c.name+"is"+c.age+"yearsold!
");
}
}
Peteris17yearsold!
2、输出结果为:
publicclassSum{
publicstaticvoidmain(String[]args){
intj=10;
System.out.println("jis:
"+j);
calculate(j);
System.out.println("Atlast,jis:
"+j);
}
staticvoidcalculate(intj){
for(inti=0;i<10;i++)
j++;
System.out.println("jincalculate()is:
"+j);
}
}
jis:
10
jincalculate()is:
20
Atlastjis:
10
4、以下程序的输出结果为:
publicclassTom{
privatefloatweight;
privatestaticStringname;
publicvoidsetWeight(floatweight){
this.weight=weight;
}
privatevoidout(){
System.out.println(name+"体重:
"+weight+"斤");
}
publicstaticvoidmain(String[]args){
Tom.name="汤姆猫";
Tomcat=newTom();
cat.setWeight(20);
cat.out();
}
}
汤姆猫体重:
20.0斤
5、以下程序的输出结果为:
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("Thelistisem