华中科技大学计算机学院本科Java考试最终版.docx

上传人:b****7 文档编号:25490998 上传时间:2023-06-09 格式:DOCX 页数:22 大小:21.73KB
下载 相关 举报
华中科技大学计算机学院本科Java考试最终版.docx_第1页
第1页 / 共22页
华中科技大学计算机学院本科Java考试最终版.docx_第2页
第2页 / 共22页
华中科技大学计算机学院本科Java考试最终版.docx_第3页
第3页 / 共22页
华中科技大学计算机学院本科Java考试最终版.docx_第4页
第4页 / 共22页
华中科技大学计算机学院本科Java考试最终版.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

华中科技大学计算机学院本科Java考试最终版.docx

《华中科技大学计算机学院本科Java考试最终版.docx》由会员分享,可在线阅读,更多相关《华中科技大学计算机学院本科Java考试最终版.docx(22页珍藏版)》请在冰豆网上搜索。

华中科技大学计算机学院本科Java考试最终版.docx

华中科技大学计算机学院本科Java考试最终版

计算机学院2007—2008学年第一学期

《Java语言》考试试卷

A卷闭卷考试时间:

2007年11月14日150分钟

专业班级学号学生姓名

题号

总分

核对人

题分

20

10

25

10

15

20

100

得分

得分

评卷人

一、单项选择题(每小题1分,共20分)

1.关于Java语言的特性,下列说法不正确的是:

()

A.Java语言是一门纯粹的面向对象语言;

B.Java语言编译的程序可以跨平台运行;

C.Java程序编译后运行在操作系统上

D.Java语言健壮性比较好

2.某同学编辑了一个文件Test.java,则下列关于Test.java的说法正确的是:

()

A.Test.java里一定含有一个名为Test的类,且该类是一个public类

B.Test.java文件被编译后生成Test.class文件

C.命令行javaTest.class运行Test程序

D.命令行javacTest.java编译Test.java文件

3.下面的变量定义,不合法的是():

A.String_s;B.int[]cns=newint[5];

C.charc=’华’;D.double3m=12.6;

4.Strings1=newString(”HUSTCS”);Strings2=newString(“HUSTCS”);

booleanb=s1==s2;则b的值为()

A.trueB.falseC.0D.1

5.语句intm=newint[5];则m[5]=10;会有()

A.编译运行都正确;B.编译不正确

C.会引发ArrayIndexOutOfBoundsException异常

D.会引发NullPointerException异常

6.若intx;则下面哪个语句有错误()

A.x=7/3;B.x=’d’-1;C.x=6.0+5;D.x*=4;

7.String[]s={“Monday”,”Tuesday”,”Wednesday”,”Thirsday”,”Friday”,”Sataday”,”Sunday”};,则下列语句正确的是()

A.inta=s.length,b=s[1].length;

B.inta=s.length(),b=s[1].length;

C.inta=s.length,b=s[1].length();

D.inta=s.length(),b=s[1].length();

8.建立一个常量PI,以下写法正确的是()

A.finaldoublePI=3.14159;B.finallydoublePI=3.14159;

C.finalizedoublePI=3.14159;D.doublePI=3.14159;

9.分析下面的程序

abstractclassBase{

publicvoidfun(){

System.out.println("functionBase.fun()");

}

}

publicclassDeriveextendsBase{

publicstaticvoidmain(String[]args){

Basea=newDerive();

a.fun();

}

publicvoidfun(){

System.out.println(“functionDerive.fun()”);

}

}

以下说法正确的是()

A.编译错误,因为classBase里没有抽象方法

B.编译错误,因为类Derive也是个抽象类

C.运行输出结果为functionBase.fun()

D.输出结果为functionDerive.fun()

10.分析下面程序

publicclassTest{

publicstaticvoidmain(Stringargs){

System.out.println("HelloJavaworld!

");

}

}

下列说法正确的是()

A.编译错误,因为main是java关键字,不能被用来定义函数

B.编译正确,但是运行时会提示没有定义main方法

C.编译正确,输出结果为HelloJavaworld!

D.编译正确,但是运行时会提示Test类没有构造函数

11.有两个程序Test1.java和Test2.java,都位于Test目录下,Test1.java和Test2.java的内容分别如下所示。

Test1.java内容:

packageTest;

classTest1{

publicvoidfun(){

System.out.println(“Test.Test1.fun()”);

}

}

Test2.java内容:

publicclassTest2{

Test1a=newTest1();

a.fun();

}

下列说法正确的是()

A.两个文件都能正确编译,运行后输出结果为Test.Test1.fun()

B.Test1.java编译成功,而Test2.java编译错误

C.两个文件都有编译错误;

D.两个文件都编译成功,但是运行时出错

12.classAextendsBimplementsC,假定A和B有缺省构造方法,则下面的语句正确的是()

A.Aa=newA();Bb=a;Cc=b;

B.Bb=newB();Aa=(A)b;

C.Aa=newA();Bb=a;Cc1=a,c2=newA();

D.Aa=newA();Cc=newA();Bb=newC();

13.如果没有特别指定,容器Panel的布局方式为()

A.FlowLayoutB.BorderLayoutC.BoxLayoutD.GridLayout

14.为了对按钮被鼠标点击的事件进行响应,按钮事件应该实现的接口为()

A.MouseLisnterB.ActionListener

C.MouseMotionListenerD.ItemListener

15.下列属于字节流的是()

A.InputStreamB.BufferReader

C.StringWriterD.PipedReader

16.下列不会造成线程被阻塞的是()

A.调用线程对象的Suspend()方法

B.调用线程对象的wait()方法

C.调用线程对象的sleep()方法

D.调用线程对象的notify()方法

17.下列关于修饰符混用的说法,错误的是()

A.abstract不能与final并列修饰同一个类

B.abstract类中不可以有private的成员

C.static方法中不能处理非static的属性

D.abstract方法必须在abstract类或者接口中

18.下列情况中,必需要建立try/catch块或者重新抛出异常的是()

A.打开一个文件并读取文件中的内容

B.访问数组中的每一个元素

C.调用一个函数,该函数的声明中含有throws语句

D.两个整数相除,分母部分可能为0

19.语句Strings1=”HUST”,s2=“CS2005”;则下列语句中正确的是()

A.StringBuffers3=s1+s2;

B.StringBuffers3=(s1+s2).toStringBuffer();

C.StringBuffers3=s1.subString(0,2);

D.StringBuffers4=newStringBuffer(s1+s2);

20.对于classA,如果在另一个包中的classB中,语句Aa=newA();a.m=10;成立,则下列定义正确的是()

A.classA{intm;}B.publicclassA{intm;}

C.publicclassA{publicintm;}D.publicclassA{protectedintm;}

得分

评卷人

二、判断下列命题的正误,正确的填”T”,错误的填”F”(每小题1分,共10分)

1.Integer类是Java语言的基本数据类型之一()

2.一个java类可以有多个子类;()

3.子类要调用父类的方法,必须使用super关键字;()

4.语句importcom.mycompany.*;可以导入com.mycompany包中所有的类以及com.mycompany的子文件夹里面的所有类.()

5.一个java文件经过编译后生成一个后缀为.class的文件;()

6.若语句A.fun();能顺利执行(A是一个class),则函数fun()是一个static函数.()

7.Java程序中,变量a和A是等价的。

()

8.接口中的所有方法都是抽象方法.()

9.如果要让某一个类的对象能序列化,最适合的办法是该类实现Serializable接口.()

10.如果一个线程是自私的,则该线程的实例一旦占用CPU,其它的线程就只能等待自私的线程执行完毕才有机会使用CPU.()

得分

评卷人

三、写出程序运行时的输出结果(25分)

1.(5分)

classSuperClass{

staticinti=10;

static{

System.out.println("staticinSuperClass");

}

SuperClass(){

System.out.println("SupuerClassiscalled");

}

}

classSubClassextendsSuperClass{

staticinti=15;

static{

System.out.println("staticinSubClass");

}

SubClass(){

System.out.println("SunClassiscalled");

}

publicstaticvoidmain(String[]args){

inti=SubClass.i;

newSubClass();

newSuperClass();

}

}

运行结果:

2.(5分)

classA{

inti=10;

staticintj=18;

A(inti)

this.i=i;

}

A(){i=10;}

intgetI(){

returni;

}

voidsetI(inti){

j-=10;

this.i=i;

}

}

classBextendsA

{

inti=20;

B(){

i=15;

}

intgetI(){

returni;

}

voidsetI(inti){

this.i=i;

}

publicstaticvoidmain(String[]args){

Aa=newA();

Bb=newB();

b.j=a.i+b.i;

System.out.println(a.getI());

System.out.println(b.getI());

System.out.println(a.j);

a=b;

a.setI(16);

System.out.println(b.getI());

System.out.println(a.j);

}

}

运行结果:

3.(5分)

publicclassMultiThreadimplementsRunnable{

intnum=10;

Threadthread1,thread2;

MultiThread(){

thread1=newThread(this);

thread2=newThread(this);

}

publicsynchronizedvoidinc(){num+=5;}

publicvoidrun(){

Threadthread=Thread.currentThread();

for(inti=0;i<5;i++){

if(thread==thread1){

inc();

try{

Thread.sleep(1000);

}catch(InterruptedExceptione){

e.printStackTrace();

}

}

elseif(thread==thread2){

System.out.println("num="+num);

try{

Thread.sleep(1000);

}catch(InterruptedExceptione){

e.printStackTrace();

}

}

}

}

publicstaticvoidmain(String[]args){

MultiThreadt=newMultiThread();

t.thread1.start();

t.thread2.start();

}

}

运行结果:

4.(5分)

classMyExceptionextendsException{

MyException(){super();}

MyException(Stringmsg){super(msg);}

}

classStack{

intsize=100;

intpos=0;

int[]data;

Stack(inti)throwsMyException{

if(i<=0)

thrownewMyException("thedatasizemustbegreaterthan0");

size=i;

data=newint[size];

pos=0;

}

publicintpop()throwsMyException{

if(pos==0)

thrownewMyException("Erroroccuerdwhilefun()inclassTestiscalled");

else{

returndata[--pos];

}

}

publicvoidpush(intd)throwsMyException{

if(pos==size)

thrownewMyException("thestackisoverflow");

else

data[pos++]=d;

}

publicstaticvoidmain(String[]args){

try{

Stacks=newStack(10);

for(inti=10;i>=0;i--){

s.push(i);

}

intm=10;

m/=s.pop();

}catch(MyExceptione){

System.out.println("MyExceptioniscaught");

return;

}

catch(ArithmeticExceptione1){

System.out.println("ArithmeticExceptioniscaught");

return;

}

finally{

System.out.println("end");

}

System.out.println("programended");

}

}

运行结果:

5.(5分)

classComplexNumber{

inti=0;

intr=0;

staticintcount=0;

ComplexNumber(intr,inti){

this.r=r;

this.i=i;

count++;

}

publicComplexNumber(ComplexNumbers){

r=s.r;

i=s.i;

count++;

}

publicComplexNumberadd(finalComplexNumbert){

i+=t.i;

r+=t.r;

returnthis;

}

publicStringtoString(){

returnr+"+"+i+"i";

}

}

publicclassMain{

publicstaticvoidmain(String[]args){

ComplexNumbera=newComplexNumber(3,4);

ComplexNumberb=newComplexNumber(2,3);

ComplexNumberc=a.add(b);

ComplexNumberd=newComplexNumber(c);

System.out.println("a="+a);

System.out.println("b="+b);

System.out.println("c="+c);

System.out.println("c==d?

trueorfase?

"+c.equals(d));

System.out.println("count="+a.count);

}

}

运行结果:

得分

评卷人

四、分析下面的程序,指出错误语句的行号并简述错误原因(10分)

1.classCheckSample{

2.privateintm;

3.publicCheckSample(intn){m=n;}

4.publicvoidfun(){System.out.println("fun()iscalled");}

5.}

6.classDerivedCheckSampleextendsCheckSample{

7.publicDerivedCheckSample(){}

8.publicvoidfun(intp){System.out.println("fun(intp)iscalled");}

9.publicvoidfunc(){m*=2;}

10.}

11.publicclassProError{

12.publicstaticvoidmain(String[]args){

13.CheckSamplea=newCheckSample();

14.a.m=10;

15.a.fun();

16.DerivedCheckSample[]b=newDerivedCheckSample[10];

17.b[0].func();

18.}

19.}

错误行号:

错误原因:

错误行号:

错误原因:

错误行号:

错误原因:

错误行号:

错误原因:

错误行号:

错误原因:

得分

评卷人

五、阅读程序回答问题(15分)

importjava.util.Calendar;

importjava.util.Date;

abstractclassCustomer{

Stringname;

Stringaddress;

intscore=0;

Customer(Stringname,Stringaddress){

this.name=name;

this.address=address;

}

abstractStringcreditRating();

}

classGroupCustomerextendsCustomer{

StringcontactName;

GroupCustomer(Stringname,Stringaddress,StringcontactName){

super(name,address);

this.contactName=contactName;

}

}

classIndividualCustomerextendsCustomer{

IndividualCustomer(Stringname,Stringaddress){

super(name,address);

}

StringcreditRating(){

return"poor";

}

}

classOrderItem{

StringproductName;

intnumber;

doubleunitPrice;

publicOrderItem(Stringname,intnumber,doubleunitPrice){

productName=name;

this.number=number;

this.unitPrice=unitPrice;

}

}

classOrderForm{

DatedateReceived;

Customercustomer;

OrderItem[]orderItem;

intorderItemNumber=0;

booleanp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1