java期末练习题和答案.docx
- 文档编号:14305674
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:24
- 大小:24.15KB
java期末练习题和答案.docx
《java期末练习题和答案.docx》由会员分享,可在线阅读,更多相关《java期末练习题和答案.docx(24页珍藏版)》请在冰点文库上搜索。
java期末练习题和答案
2009-2010学年第一学期JAVA期末练习题及参考答案
一、选择题
1、main方法是Java应用程序执行的入口点,以下哪项是main方法头?
(C)
A.publicstaticintmain(String[]arg)
B.publicstaticvoidmain(Stringarg)
C.publicstaticvoidmain(String[]args)
D.publicstaticvoidmain()
2、以下哪个不是Java的关键字?
(D)
A.doB.tryC.finalD.While
3、以下哪项标识符是不合法的。
(D)
A.StringB.$1C.xD.3_a
4、以下哪个修饰符可用于定义成员常量?
(A)
A.finalB.staticC.abstractD.const
5、以下关于构造函数的描述正确的是(D)。
A.构造函数是特殊的方法,返回类型只能为void
B.可以定义多个构造函数,但每个方法名需各不相同
C.在类定义中必须定义构造函数,而且只能定义一个构造函数
D.构造方法与类同名,在创建新对象时系统会自动调用构造函数
6、关于类的继承以下说法错误的是(D)。
A.在java中类只允许单一继承
B.在java中一个类可实现多个接口
C.在java中一个类可以同时继承一个类和实现一个接口
D.java允许多重继承
7、设有下面两个类的定义:
classPerson{
classStudentextendsPerson{
longid;//身份证号
intscore;//入学总分
Stringname;//姓名
intgetScore(){returnscore;}
}
}
则类Person和类Student的关系是(B)。
A、包含关系B、继承关系C、关联关系D、上述类定义有语法错误
8、关于修饰符static以下叙述错误的是(B)。
A.static方法不可被覆盖
B.static可以用来修饰类
C.static方法不可以直接访问非静态的方法,否则编译出错
D.static方法只能访问类变量或方法参数,不可直接访问成员变量
9、关于Java的修饰符,以下说法错误的是(B)。
A.抽象类中的方法不一定都是抽象方法
B.final类中的属性和方法都必须被final修饰符修饰
C.类及其属性、方法可以同时有一个以上的修饰符来修饰
D.要使类中某个成员变量只能被它自身访问到,该变量只能用private修饰
10、给出如下代码:
class Test{
//定义成员a
public static void fun() {
// some code...
}
}
要在函数fun()中直接访问a,以下成员变量a定义正确的是(B)。
A.public int a;B.static int a; C.int a;D.protected int a;
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、关于以下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没有初始化
14、有程序如下,关于程序的描述哪个是正确的?
(C)
publicclassPerson{
staticintarr[]=newint[5];
publicstaticvoidmain(Stringa[])
{ System.out.println(arr[0]); }
}
A、编译将产生错误B、编译时正确,但运行时将产生错误C、正确,输出0D、正确,输出 null
15、Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位。
A、8B、16C、32D、64
16、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序的特性称为(C)。
A、隐藏B、覆盖C、重载D、Java不支持此特性
17、以下哪个接口的定义是正确的?
(D)
A、interfaceB
{voidprint(){};}
B、abstractinterfaceB
{voidprint();}
C、abstractinterfaceBextendsA1,A2//A1、A2为已定义的接口
{abstractvoidprint(){};}
D、interfaceB
{voidprint();}
18、下面哪个函数是public void aMethod(){...}的重载函数?
(D)
A、void aMethod( ){...}
B、public int aMethod(){...}
C、public void aMethod(){...}
D、public int aMethod ( int m){...}
19、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行的声明都是正确的
20、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?
(C)
classA
{inti;
staticStrings;
voidmethod1(){}
staticvoidmethod2(){}
}
A、System.out.println(a.i);B、a.method1();C、A.method1();D、A.method2()
21、将以下哪个方法的定义插入第6行后,会引发编译错误?
(A)
1.classSuper{
2.publicvoida(){}
3.}
4.
5.publicclassSubextendsSuper{
6.
7.}
A.floata(){return1;}
B.publicvoida(intx){}
C.publicvoida(floatf){}
D.publicfloata(intx){return(float)x;}
22、以下方法的返回类型是(D)。
ReturnTypefunction(intx,doubley)
{
returnx+y/2;
}
A.byteB.shortC.floatD.double
二、程序阅读
1、写出以下程序的运行结果。
publicclassTest_2
{
publicstaticvoidmain(String[]args)
{System.out.println(fun(3,4,5));}
staticintfun(intx,inty,intz)
{returnfun(x,fun(y,z));}
staticintfun(intx,inty)
{returnx*y;}
}
60
2、写出以下程序的运行结果。
classOverloadDemo{
voidtestOverload(inti){
System.out.println("integer");
}
voidtestOverload(Strings){
System.out.println("String");
}
publicstaticvoidmain(Stringargs[]){
OverloadDemoa=newOverloadDemo();
charch=’k’;
a.testOverload(ch);
}
}
integer
3、写出以下程序的运行结果。
classStaticStuff
{
staticintx;
static{x+=7;}
publicstaticvoidmain(Stringargs[]){
System.out.println("x="+x);
}
static{x%=4;}
}
x=3
4、写出以下程序的运行结果。
publicclassTest_3
{
staticintx;
publicTest_3(){
x++;}
publicstaticvoidmain(String[]args){
Test_3s1=newTest_3();
System.out.print(s1.x+",");
s1=newTest_3();
System.out.println(s1.x+",");
s1=newTest_3();
System.out.println(s1.x);
}
static{x=1;}
}
2,3,4
5、写出以下程序的运行结果。
publicclassTest_3
{
publicstaticvoidmain(String[]args)
{System.out.println(doSth(1,2,3));}
staticintdoSth(intx,inty,intz)
{returndoSth(x,doSth(y,z));}
staticintdoSth(intx,inty)
{returnx>y?
x:
y;}
}
3
6、阅读以下程序,输出结果为1.23。
classQ1{
publicstaticvoidmain(Stringargs[]){
doubled=1.23;
Decdec=newDec();
dec.decrement(d);
System.out.println(d);
}
classsDec{
publicvoiddecrement(doubledecMe){
decMe=decMe-0.1;
}
}
7、以下程序段的输出结果为1234589。
publicclassC
{publicstaticvoidmain(Stringargs[]){
inti,j;
inta[]={2,1,4,8,9,5,3};
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 期末 练习题 答案