浙江工业大学Java程序设计期终考卷级计算机.docx
- 文档编号:9410521
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:24
- 大小:45.64KB
浙江工业大学Java程序设计期终考卷级计算机.docx
《浙江工业大学Java程序设计期终考卷级计算机.docx》由会员分享,可在线阅读,更多相关《浙江工业大学Java程序设计期终考卷级计算机.docx(24页珍藏版)》请在冰豆网上搜索。
浙江工业大学Java程序设计期终考卷级计算机
浙江工业大学2012-Java程序设计期终考卷(2010级计算机)
浙江工业大学期终考试命题稿
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{}
3、以下程序代码,无法通过编译的是()
A)
classA{
inti=0;
}
B)
classA{inti=0;}
classB
{
}
C)
classA
{
publicinti=0;
publicstaticvoidmethod(){
}
D)
classA
{
publicinti=0;
}
4、以下代码段执行后的输出结果为()
intx=2,y=3;
--:
++y);
A)1B)2C)3D)4
5、给定如下Java程序片断:
classA{
publicA(){
O");
}
}
classBextendsA{
publicB(){
int("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_homeB)classpathC)pathD)runtime
9、下面的程序编译后用以下命令运行:
javaExceptionDemohello,运行的情况是()
1)publicclassExceptionDemo{
2)publicstaticvoidmain(Stringargs[]){
3)for(inti=0;i<2;i++){
4)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();
Sys
}
}
标准答案:
resultOne=0
resultTwo=48
resultThree=20
2、写出下列程序代码的运行结果:
classTest{
publicstaticStringss="杭州电子科技大学";
publicStringms="计算机学院";
publicvoidprintInfo()
{
s="+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、仔细阅读下面的程序代码,写出运行后的输出结果。
classTestVector
{
publicstaticvoidmain(String[]args)
{
Vector
vs.add("1");
vs.add("2");
vs.add(1,"3");
if(vs.contains("3"))
vs.remove("3");
}
}
输出结果:
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();
}
}
}
输出结果:
i=1
i=2
i=3
5、阅读以下程序,回答问题。
packagepackage1;
classClassA
{
publicvoidprintInfo()
{
ClassA.");
}
}
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
}
}
classT1implementsRunnable//定义T1为线程体(包含线程的数据和代码)
{
privateinti;
publicvoidrun()
{
while(true)
{
i++);
try
{
Thread.sleep((int)(Math.random()*5000));//随机休眠0-5秒
}catch(InterruptedExceptione){}
}
}
}
2、下面的程序可以编辑文本文件,单击保存按钮可以保存文件。
如果是新的没有保存过的文件,单击保存按钮时会弹出一个保存文件对话框。
程序运行时界面如下图,请将划线的(6)~(10)的语句补充完整。
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)
{
}
}
}
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;
privateObject[]data;
publicMyQueue(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()
{
Objectobj=data[0];
for(inti=0;i { data[i]=data[i+1]; } idx--; returnobj; } } publicclassTestDataStructure { publicstaticvoidmain(String[]args) { DataStructureds=newMyStack(10); for(inti=0;i<10;i++) ds.addElement(""+i); while(! ds.isEmpty()) ds=newMyQueue(10); for(inti=0;i<10;i++) ds.addElement(""+i); while(! ds.isEmpty()) } } 2、编写一个程序,将指定的多个文本文件合并到一个文件。 要求类的名称为MergeTxt。 在命令行状态下,该程序的运行形式是: javaMergeTxt目标文件名合并文件1合并文件2...合并文件n 要求程序能够判断文件的类型是否正确,如果类型不正确或者给定的文件不存在时要给出错误信息。 参考答案: publicclassMergeTxt { publicstaticvoidmain(String[]args) { if(args.length<3) { return; } for(Strings: args) { if(! s.endsWith(".txt")) { return; } } try { Filedf=newFile(args[0]); if(df.exists()) { return; } for(inti=1;i { if(! (newFile(args[i]).exists())) { } } BufferedWr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江工业大学 Java 程序设计 期终 考卷 计算机