浙江工业大学Java程序的设计期终考卷级计算机.doc

上传人:聆听****声音 文档编号:18861684 上传时间:2024-02-02 格式:DOC 页数:19 大小:122KB
下载 相关 举报
浙江工业大学Java程序的设计期终考卷级计算机.doc_第1页
第1页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第2页
第2页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第3页
第3页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第4页
第4页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第5页
第5页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第6页
第6页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第7页
第7页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第8页
第8页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第9页
第9页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第10页
第10页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第11页
第11页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第12页
第12页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第13页
第13页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第14页
第14页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第15页
第15页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第16页
第16页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第17页
第17页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第18页
第18页 / 共19页
浙江工业大学Java程序的设计期终考卷级计算机.doc_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

浙江工业大学Java程序的设计期终考卷级计算机.doc

《浙江工业大学Java程序的设计期终考卷级计算机.doc》由会员分享,可在线阅读,更多相关《浙江工业大学Java程序的设计期终考卷级计算机.doc(19页珍藏版)》请在冰点文库上搜索。

浙江工业大学Java程序的设计期终考卷级计算机.doc

浙江工业大学期终考试命题稿

2011/2012学年第一学期

课程名称

Java程序设计

使用班级

计算机类10级

教师份数

学生份数

命题人

赵小敏、黄洪

盛伟国、程珍

审核人

命题总页数

每份试卷

需用白纸

1大张

命题注意事项:

一、命题稿请用A4纸电脑打印,或用教务处印刷的命题纸,并用黑墨水书写,保持字迹清晰,页码完整。

二、两份试题必须同等要求,卷面上不要注明A、B字样,由教务处抽定A、B卷。

三、命题稿必须经学院审核,并在考试前两周交教务处。

浙江工业大学2011/2012学年

第一学期试卷

课程JAVA程序设计姓名______________________

班级______________________学号______________________

授课教师___________________

题序

十一

十二

总评

计分

注:

答案请写在答题纸上,否则一律不给分。

一、选择题(共15小题,每题2分,共30分)

1、以下的变量定义语句中,合法的是()

A)doublea=1.0;

B)charc=a+'1';

C)double$a*5=2.0D;

D)Stringname#2="jack";

2、以下程序片段,下列哪个选项插入到第1行引起编译错误的是()

1)packagemypackage;

2)

3)classMyClass

4){

5)//dosth

6)}

A)publicclassMainClass{}

B)packagemypackage1;

C)classB{}

D)importjava.util.*;

3、以下程序代码,无法通过编译的是()

A)

classA{

inti=0;

publicvoidmethod(){ System.out.println(i);}

}

B)

classA{inti=0;}

classB

{

publicvoidmethod() { System.out.println(newA().i); }

}

C)

classA

{

publicinti=0;

publicstaticvoidmethod() {System.out.println(newA().i); }

}

D)

classA

{

publicinti=0;

publicstaticvoidmethod() { System.out.println(i); }

}

4、以下代码段执行后的输出结果为()

intx=2,y=3;

System.out.println((x>y)?

x--:

++y);

A)1 B)2 C)3 D)4

5、给定如下Java程序片断:

classA{

publicA(){

System.out.print("O");

}

}

classBextendsA{

publicB(){

System.out.print("K");

}

publicstaticvoidmain(String[]args){

Bb=newB();

}

}

上述程序将( )

A)不能通过编译

B)通过编译,执行后输出为:

O

C)通过编译,执行后输出为:

K

D)通过编译,执行后输出为:

OK

6、已知MyInterface是一个接口,ClassA是实现了MyInterface的一个类,ClassB是ClassA的子类,则下列哪个语句是正确的?

()

A)ClassBobj=newClassA();

B)MyInterfaceobj=newClassB();

C)ClassAobj=newMyInterface();

D)MyInterfaceobj=newMyInterface();

7、下列变量哪个是引用类型的()。

A)booleans=false; B) Strings=null;

C)ints=513; D) floats=3.14f;

8、为了使用JDK的javac.exe编译Java应用程序,应该设置以下哪个环境变量?

()

A)java_home B)classpathC)path D)runtime

9、下面的程序编译后用以下命令运行:

javaExceptionDemohello,运行的情况是()

1)publicclassExceptionDemo{

2) publicstaticvoidmain(Stringargs[]){

3) for(inti=0;i<2;i++){

4) System.out.println(args[i]);

5) }

6) }

7)}

A)发生异常,异常类型是ArithmeticException

B)发生异常,异常类型是IOException

C)发生异常,异常类型是ArrayIndexOutOfBoundsException

D)程序正常输出信息hello

10、下列说法中,正确的是()

A)一个Java源程序中的每个类都可以包含一个main方法。

B)一个Java源程序中,不能既定义接口,又定义类。

C)一个Java源程序中必须有一个类定义了main方法。

D)一个Java源程序中必须定义接口。

11、关于Java输入输出流,下列说法正确的是()

A)FileReader类和FileInputStream类都是按照字节读取的

B)FileReader类和FileInputStream类都是按照字符读取的

C)FileReader类是按字节读取的,FileInputStream类是按字符读取的

D)FileReader类是按字符读取的,FileInputStream类是按字节读取的

12、有一个类A,以下为其构造方法的声明,其中错误的是()。

A)publicvoidA(intx){...}

B)publicA(intx){...}

C)protectedA(floatx){...}

D)privateA(){...}

13、对于异常处理语句try…catch…finally,下面哪个说法是正确的?

()

A)如果有多个catch语句,对所有的catch都会执行一次

B)如果有多个catch语句,对每个符合条件的catch都会执行一次

C)多个catch的情况下,异常类的排列顺序应该是父类在前,子类在后

D)任何情况下,finally部分都会被执行一次

14、下面说法错误的是()。

A)单击CheckBox(复选框)产生ItemEvent事件,并由ItemListener处理。

B)处理Button和TextField事件监听器接口都是ActionListener。

C)一个面板(Panel)可以加入到另一个面板(Panel)中。

D)采用BorderLayout布局时,添加到NORTH区的两个按钮将并排显示。

15、关于线程,以下说法正确的是()

A)线程可以使用wait()方法,让其他线程等待,以便自己执行。

B)不管有无活动的用户线程,后台线程都会一直执行。

C)如果一个应用程序的用户线程都结束了,则后台线程自动结束。

D)线程可以使用notify()方法,让其他线程等待,以便自己执行。

二、判断题(共10小题,每题1分,共10分)

1、abstract是抽象修饰符,可以用来修饰类、属性和方法。

(对)

2、用“+”可以实现字符串的拼接,用“-”可以从一个字符串中去除一个字符子串。

(错)

3、父类的静态方法不能被子类覆盖为非静态的方法,反之亦然。

(对)

4.子类的构造方法一定会调用父类的构造方法。

(对)

5、接口和抽象类一样,虽然有构造方法,但却不能实例化对象。

(错)

6、线程t运行就是运行其run()方法,所以t.start()等价于t.run()。

(错)

7、Object类型的引用变量可以引用任何对象。

(对)

8、数据流就是从源到目的的字节的有序序列包括输入流和输出流。

(对)

9、java为每一个监听器接口都定义了对应的适配器类。

(错)

10、如果有高优先级的线程就绪,则正在执行的低优先级线程将暂停执行。

(对)

三、程序阅读题。

(共5小题,每题6分,共30分)

1、写出下列程序代码的运行结果。

classA

{

intm=0,n=0;

longf()

{

returnm+n;

}

}

classBextendsA

{

intm=1,n=1;

longf()

{

longresult=0;

super.m=10;

super.n=30;

result=super.f()+(m+n);

returnresult;

}

longg()

{

longresult=0;

result=super.f();

returnresult/2;

}

}

classExample

{

publicstaticvoidmain(Stringargs[])

{

Bb=newB();

b.m=6;

b.n=2;

longresultOne=b.g();

longresultTwo=b.f();

longresultThree=b.g();

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

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

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

}

}

标准答案:

resultOne=0

resultTwo=48

resultThree=20

2、写出下列程序代码的运行结果:

classTest{

publicstaticStringss="杭州电子科技大学";

publicStringms="计算机学院";

publicvoidprintInfo()

{

System.out.println("ss="+ss+"ms="+ms);

}

publicstaticvoidmain(String[]args)

{

Testobj1,obj2;

obj1=newTest();

obj2=newTest();

obj1.ss="浙江工业大学";

obj1.ms="软件学院";

obj1.printInfo();

obj2.printInfo();

}

}

输出结果:

ss=浙江工业大学ms=软件学院

ss=浙江工业大学ms=计算机学院

3、仔细阅读下面的程序代码,写出运行后的输出结果。

importjava.util.Vector;

classTestVector

{

publicstaticvoidmain(String[]args)

{

Vectorvs=newVector(16,8);

vs.add("1");

vs.add("2");

vs.add(1,"3");

System.out.println(vs.get

(1));

if(vs.contains("3"))

System.out.println("\"3\"isanelementofvs");

vs.remove("3");

System.out.println(vs.get

(1));

}

}

输出结果:

3

"3"isanelementofvs

2

4、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。

publicclassTest

{

privateinti;

publicclassInner

{

publicvoidincreaseSize(){i++;}

}

Innerinner=newInner();

publicvoidincreaseSize()

{

inner.increaseSize();

}

publicstaticvoidmain(String[]a)

{

Testtest=newTest();

for(intj=0;j<3;j++)

{

test.increaseSize();

System.out.println("i="+test.i);

}

}

}

输出结果:

i=1

i=2

i=3

5、阅读以下程序,回答问题。

packagepackage1;

classClassA

{

publicvoidprintInfo()

{

System.out.println("IamClassA.");

}

}

packagepackage2;

importpackage1.ClassA;

publicclassClassB

{

publicstaticvoidmain(String[]args)

{

newClassA().printInfo();

}

}

问题1:

上面两个类是在同一个源程序文件中吗?

问题2:

第一个类的定义有一个错误。

请改正。

参考答案:

1、不是

2、将classClassA改成publicclassClassA

四、程序填空题(共2小题,每小题5分,共10分)

1、下面是一个多线程程序。

请根据提示,将划线上

(1)~(5)的语句补充完整。

classTestMultiThreads

{

publicstaticvoidmain(String[]args)

{

Threadt1=newThread(newT1());//实例化线程,

t1.setName("线程1");//将线程t1改名为“线程1”

t1.start();//启动线程t1

System.out.println("main方法结束。

");

}

}

classT1implementsRunnable//定义T1为线程体(包含线程的数据和代码)

{

privateinti;

publicvoidrun()

{

while(true)

{

System.out.println(i++);

try

{

Thread.sleep((int)(Math.random()*5000));//随机休眠0-5秒

}catch(InterruptedExceptione){}

}

}

}

2、下面的程序可以编辑文本文件,单击保存按钮可以保存文件。

如果是新的没有保存过的文件,单击保存按钮时会弹出一个保存文件对话框。

程序运行时界面如下图,请将划线的(6)~(10)的语句补充完整。

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.io.*;

publicclassMyEditorextendsJFrameimplementsActionListener

{

JButtonjbSave;

JTextAreajtaText;

JScrollPanejsp;

booleanisNewFile;

FileeditFile;

publicMyEditor()

{

super("MyEditor");

isNewFile=true;

jbSave=newJButton("保存");

jbSave.addActionListener(this);

add(jbSave,BorderLayout.NORTH);

jtaText=newJTextArea(10,80);

jtaText.setLineWrap(true);

jsp=newJScrollPane(jtaText);

add(jsp);

pack();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==jbSave)

{

if(isNewFile)

{

JFileChooserchooser=newJFileChooser();

intreturnVal=chooser.showSaveDialog(this);

if(returnVal==JFileChooser.APPROVE_OPTION)

{

editFile=chooser.getSelectedFile();

StringfileName=editFile.getName();

}

}

try

{

BufferedWriterbfw=newBufferedWriter(newFileWriter(editFile));

bfw.write(jtaText.getText(),0,jtaText.getText().length());

bfw.flush();

bfw.close();

setTitle("MyEditor---"+editFile.toString());

isNewFile=false;

}

catch(Exceptione1)

{

System.out.println(e1.getMessage());

}

}

}

publicstaticvoidmain(String[]args)

{

newMyEditor();

}

}

五、编程题(共2小题,每小题10分,共20分)

1、请编程实现以下要求:

(1)定义一个接口DataStructure,包括以下方法:

BooleanisFull()

BooleanisEmpty()

VoidaddElement(Objectobj),

ObjectremoveElement()

(2)设计一个堆栈类(MyStack)实现DataStructure接口。

堆栈的大小由其构造方法指定。

要求实现的方法体现出堆栈的先进后出特性。

(3)设计一个队列类(MyQueue)实现DataStructure接口。

队列的大小由其构造方法指定。

要求实现的方法体现出队列的先进先出特性。

(4)设计一个测试类,在其主方法中用DataStructure类型的引用变量分别引用两个大小为10的MyStack对象和MyQueue对象,使用addElement()方法增加“0”,“1”,¼“9”共10个字符串对象,再用removeElement()方法取出这些元素并打印出来。

参考答案:

interfaceDataStructure

{

booleanisEmpty();

booleanisFull();

voidaddElement(Objectobj);

ObjectremoveElement();

}

classMyStackimplementsDataStructure

{

privateintidx=0,size;

privateObject[]data;

publicMyStack(intsize)

{

data=newObject[size];

this.size=size;

}

publicbooleanisEmpty()

{

if(idx==0)

returntrue;

else

returnfalse;

}

publicbooleanisFull()

{

if(idx==size)

returntrue;

else

returnfalse;

}

publicvoidaddElement(Objectobj)

{

data[idx++]=obj;

}

publicObjectremoveElement()

{

returndata[--idx];

}

}

classMyQueueimplementsDataStructure

{

privateintidx=0,size;

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2