《Java 语言程序设计》阶段测试题.docx
《《Java 语言程序设计》阶段测试题.docx》由会员分享,可在线阅读,更多相关《《Java 语言程序设计》阶段测试题.docx(15页珍藏版)》请在冰点文库上搜索。
《Java语言程序设计》阶段测试题
《Java语言高级程序设计一》阶段测试题
(一)
题号
1
2
3
4
5
6
7
8
9
答案
A
E
A
AE
E
D
A
D
AE
题号
10
11
12
13
14
15
16
17
18
答案
ACD
E
CD
B
D
B
C
C
D
题号
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
11
答案
F
T
T
F
T
T
F
T
F
T
F
一、选择题(共18题,每题5分,共90分)
试题1:
当你编译运行下列程序代码,会得到什么结果?
publicclassSample{
publicstaticvoidmain(Stringargs[]){
inti=4;
floatf=4.3;
doubled=1.8;
intc=0;
if(i==f)c++;
if(((int)(f+d))==((int)f+(int)d))c+=2;
System.out.println(c);
}
}
a)这段代码不能通过编译。
b)0输出在屏幕中。
c)1输出在屏幕中。
d)2输出在屏幕中。
e)3输出在屏幕中。
试题2:
当你编译运行下列程序代码,会得到什么结果?
classMystery{
Strings;
publicstaticvoidmain(String[]args){
Mysterym=newMystery();
m.go();
}
voidMystery(){
s="constructor";
}
voidgo(){
System.out.println(s);
}
}
a)这段代码不能通过编译。
b)这段代码能通过编译,但是运行时会有异常。
c)这段代码能运行,但不输出任何结果。
d)这段代码能运行并且输出constructor在屏幕中。
e)这段代码能运行并且输出null在屏幕中。
试题3:
当你编译运行下列程序代码,会得到什么结果?
privateclassBase{
Base(){
inti=100;
System.out.println(i);
}
}
publicclassPriextendsBase{
staticinti=200;
publicstaticvoidmain(Stringargv[]){
Prip=newPri();
System.out.println(i);
}
}
a)这段代码不能通过编译。
b)输出200。
c)输出100和200。
d)输出100。
试题4:
考虑以下代码,在注释的位置,插入哪条方法声明不会引起编译错误?
publicclassQdd1f{
publiclongsum(longa,longb){returna+b;}
//在这里插入新的方法
}
a)publicintsum(inta,intb){returna+b;}
b)publicintsum(longa,longb){return0;}
c)abstractintsum();
d)privatelongsum(longa,longb){returna+b;}
e)publiclongsum(longa,intb){returna+b;}
试题5:
当你编译运行下列程序代码,会得到什么结果?
classBase{
inti;
Base(){add
(1);}
voidadd(intv){i+=v;}
voidprint(){System.out.println(i);}
}
classExtensionextendsBase{
Extension(){add
(2);}
voidadd(intv){i+=v*2;}
}
publicclassQd073{
publicstaticvoidmain(Stringargs[]){
bogo(newExtension());
}
staticvoidbogo(Baseb){
b.add(8);
b.print();
}
}
a)9b)18c)20d)21e)22
试题6当你编译运行下列程序代码,会得到什么结果?
classBase{
voidtest(){System.out.println("Base.test()");}
}
publicclassChildextendsBase{
voidtest(){System.out.println("Child.test()");}
staticpublicvoidmain(String[]a){
BasebaseObj=newChild();
baseObj.test();
}
}
a)Child.test()
Base.test()
b)Base.test()
Child.test()
c)Base.test()
d)Child.test()
e)Runtimeerror.java.lang.ClassCastException
试题7当你编译运行下列程序代码,会得到什么结果?
01:
classBase
02:
{
03:
finalintMAX_SIZE;
04:
Base(){
05:
MAX_SIZE=10;//初始化一个值
06:
}
07:
08:
voidtest(){
09:
MAX_SIZE++;
10:
System.out.println("Base.test()");
11:
}
12:
13:
}
a)在第9行产生编译错误:
不能改变常量MAX_SIZE的值
b)在第3行产生编译错误:
不能定义空常量MAX_SIZE
c)在第5行产生编译错误:
不能为空常量MAX_SIZE赋值
d)编译通过
试题8考虑下列代码,将产生什么结果?
///值得传递
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Stringa=newString("One");
Stringb=newString("Two");
Test.swap(a,b);
System.out.println("ais"+a+"\nbis"+b);
}
staticvoidswap(Stringa,Stringb){
a=a+"more";
b=a;
}
}
a.aisOnemore
bisTwo
b.aisOne
bisOne
c.aisOnemore
bisOnemore
d.aisOne
bisTwo
e.aisOnemore
bisTwomore
试题9下列哪行语句不会产生编译警告和错误?
a)floatf=0;
b)charc="0";
c)byteb=157;
d)booleanf=null;
e)inti=10;
试题10下列哪一个是合法的Java标识符?
a)_1_
b)int
c)byte1
d)$Value
e)goto
f)3Value
试题11当你编译运行下列程序代码,会得到什么结果?
1:
publicclassBase{
2:
3:
privatevoidtest(){
4:
5:
StringaStr="One";
6:
StringbStr=newString();
7:
StringcStr=newString("Three");
8:
StringdStr=aStr;
9:
System.out.println(aStr+","+bStr+","+cStr+","+dStr);
10:
}
11:
12:
staticpublicvoidmain(String[]a){
13:
newBase().test();
14:
}
15:
}
a)第5行产生编译错误。
b)运行时错误。
变量dStr没有被初始化。
c)运行时错误。
在第9行报java.lang.NullPointerException异常。
d)输出One,,Three,,
e)输出One,,Three,One
试题12考虑下列类的层次关系:
(其中向上的实线箭头表示继承关系,向上的虚线箭头表示实现关系)
考虑下列程序代码:
1:
DrivingUtilitiesdu;
2:
FourWheelerfw;
3:
TruckmyTruck=newTruck();
4:
du=(DrivingUtilities)myTruck;
5:
fw=newCrane();
6:
fw=du;
下列哪句陈述是正确的?
cd
a.第4行不能编译通过,因为接口不能引用对象;
b.这段代码可以编译运行;
c.第6行没有显式的类型转换不能编译通过,因为没有显式类型转换,不允许向下转型;
d.第4行可以编译通过,即使没有显式类型转换;
e.如果在第6行进行显式类型转换则可以编译通过,但会抛出运行时异常。
试题13当你编译运行下列程序代码,会得到什么结果?
publicclassBase{
privatevoidtest(){
System.out.println("Result:
"+6+6);
}
staticpublicvoidmain(String[]a){
newBase().test();
}
}
a)Result:
6
b)Result:
66
c)运行错误:
不兼容的类型,不能将整型转换为字符串。
d)编译错误:
不兼容的类型,不能把整型添加在字符串的后面。
e)Result:
12
试题14当你编译运行下列程序代码,会得到什么结果?
classX{
Yb=newY();
X(){
System.out.print("X");
}
}
classY{
Y(){
System.out.print("Y");
}
}
publicclassZextendsX{
Yy=newY();
Z(){
System.out.print("Z");
}
publicstaticvoidmain(String[]args){
newZ();
}
}
A.ZB.YZC.XYZD.YXYZ
试题15当你编译运行下列程序代码,会得到什么结果?
B
classBase{
inti=99;
publicvoidamethod(){
System.out.println("Base.amethod()");
}
Base(){
amethod();
}
}
publicclassDerivedextendsBase{
inti=-1;
publicstaticvoidmain(Stringargv[]){
Baseb=newDerived();
System.out.println(b.i);
b.amethod();
}
publicvoidamethod(){
System.out.println("Derived.amethod()");
}
}
A.Derived.amethod()
-1
Derived.amethod()
B.Derived.amethod()
99
Derived.amethod()
C.99
Derived.amethod()
Compiletimeerror
试题16当你编译运行下列程序代码,会得到什么结果?
c
classParent{
privatevoidmethod1(){
System.out.println("Parent'smethod1()");
}
publicvoidmethod2(){
System.out.println("Parent'smethod2()");
method1();
}
}
classChildextendsParent{
publicvoidmethod1(){
System.out.println("Child'smethod1()");
}
publicstaticvoidmain(Stringargs[]){
Parentp=newChild();
p.method2();
}
}
a.编译错误
b.运行时错误
c.Parent'smethod2()
Parent'smethod1()
d.Parent'smethod2()
Child'smethod1()
试题17当你编译运行下列程序代码,会得到什么结果?
publicclassTest{
publicvoidmethod(){
for(inti=0;i<3;i++){
System.out.print(i);
}
System.out.print(i);
}
}
a.0122b.0123c.编译错误d.以上都不对
试题18当你编译运行下列程序代码,会得到什么结果?
1.classMyClass
2.{
3.voidmyMethod(inti){System.out.println("intversion");}
4.voidmyMethod(Strings){System.out.println("Stringversion");}
5.publicstaticvoidmain(Stringargs[])
6.{
7.MyClassobj=newMyClass();
8.charch='c';
9.obj.myMethod(ch);
10.}
11.}
a.第4行编译通不过,因为voidmethods方法不能被重载
b.第9行将抛出一个异常
c.第9行编译通不过,因为没有将char型作为形参的myMethod()方法
d.可以编译运行,输出:
intversion
e.可以编译运行,输出:
stringversion
二、判断对错题(共10题,每题1分,共10分)
试题19类Fruit,Orange,GodenDelicious,Macintosh,Apple的继承关系如下图:
且有如下语句:
Fruitfruit=newGoldenDelicious();
Orangeorange=newOrange();
则判断对错:
(F)fruit是Orange的实例
(T)fruit是Apple的实例
(T)fruit是GoldDelicious的实例
(F)fruit是Macintosh的实例
(T)orange是Orange的实例
(T)orange是Fruit的实例
(F)orange是Apple的实例
(T)假设方法makeApple在类Apple中被定义,那么通过fruit对象可以调用这个方法。
(F)假设方法makeApple在类Apple中被定义,那么通过orange对象可以调用这个方法。
(T)假设方法makeOrangeJuice在类Orange中定义,那么通过orange对象可以调用这个方法。
(F)假设方法makeOrangeJuice在类Orange中定义,那么通过fruit对象可以调用这个方法。
三、附加题(共1题,每题20分,共20分)
试题20(8分)
定义一个描述员工的类Employee,包含姓名name、性别sex、年龄age和薪水wage四个属性,方法包括构造方法和toString方法。
编写一个测试类,创建一个员工(李杨,男,36,6000),利用toString方法输出员工信息。
试题21(12分)
定义商品类Goods,包含单价unitPrice和数量account二个属性,方法包括构造方法和价格计算方法totalPrice()。
定义接口VipPrice,包含DISCOUNT属性和reducedPrice()方法,使VIP会员享受商品价格85折待遇。
定义服装子类Clothing,它继承商品类Goods并实现接口VipPrice,并有服装样式style属性、构造方法和toString方法。
编写一个测试类,创建一种服装(200,1,男装),利用toString方法输出服装信息。