华中科技大学计算机学院本科Java考试最终版.docx
- 文档编号:25490998
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:22
- 大小:21.73KB
华中科技大学计算机学院本科Java考试最终版.docx
《华中科技大学计算机学院本科Java考试最终版.docx》由会员分享,可在线阅读,更多相关《华中科技大学计算机学院本科Java考试最终版.docx(22页珍藏版)》请在冰豆网上搜索。
华中科技大学计算机学院本科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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华中科技大学 计算机 学院 本科 Java 考试 最终版