近几届考题分析Java篇Word下载.docx
《近几届考题分析Java篇Word下载.docx》由会员分享,可在线阅读,更多相关《近几届考题分析Java篇Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
publicclassRectangleextends___
(1)___{
doubleheight;
doublewidth;
publicRectangle(doubleheight,doublewidth){
this.height=height;
this.width=width;
publicStringtoString(){
return"
Rectangle:
height="
+height+"
,width="
+width+"
:
"
;
publicdoublegetArea(){
return___
(2)___;
classSquareextends___(3)___{
publicSquare(doublewidth){
___(4)___;
Square:
width="
classTriangleextends___(5)___{
doublela;
doublelb;
doublelc;
publicTriangle(doublela,doublelb,doublelc){
this.la=la;
this.lb=lb;
this.lc=lc;
Triangle:
sides="
+la+"
,"
+lb+"
+lc+"
doubles=(la+lb+lc)/2.0;
returnMath.sqrt(s*(s-la)*(s-lb)*(s-lc));
}
[考核要点]:
Java中的类、抽象类、抽象方法、继承、构造函数、关键字(this,super)
[答案]:
1.Figure,2..height*width,3.Rectangle,4.super(width,width),5.Figure
[2005年5月程序员]试题六(15分,每空3分)
当用户启动html浏览器并首次打开下面的html文档时,JavaApplet小程序在显示面板上显示字符串“Welcome!
”;
当html页面被其他窗口遮挡后再次显示时,小程序在显示面板上显示“Welcomeback!
”。
[Java代码]
importjava.awt.*;
importjava.applet.*;
publicclassHelloAppletextends___
(1)___{
publicvoidpaint(___
(2)___){
g.drawstring(message,10,20);
message=“welcomeback!
”;
publicvoid____(3)____(){
message=“welcome!
”;
private___(4)___message;
[html文档]
<
html>
head>
tittle>
HTMLTestHelloAppletPage<
/tittle>
/head>
body>
TestHelloApplet小程序<
br>
applet
codebase=“.”
code=“___(5)___”
name=“TestApplet”
width=”400”
height=“300”>
/applet>
/body>
/html>
JavaApplet类定义,继承,Applet方法paint(Graphicsg)绘图,init()初始化,成员变量字符串String,Applet嵌入HTML的用法(code,name,width,height,codebase,archive)
[参考答案]:
(1)Applet
(2)Graphicsg(3)init(4)String(5)HelloApplet.class
[2005年11月程序员]试题八(共15分)
已知类Stock和类JavaMain都定义在JavaMain.java文件中,类Stock的定义中有四处错误,分别在代码的第01、02、06、07行。
请修改错误并给出修改后该行的完整代码,并写出改正错误后程序运行的输出结果。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
publicclassStock{
static{
shares=0;
share_val=0.0;
}
privateStock(){getData();
privateStock(intn,doublepr=0){
shares=n;
share_val=pr;
getData();
pbulicvoidgetData(){
System.out.print(shares+“:
”+share_val+“”);
privateintshares;
//非静态变量
privatedoubleshare_val;
};
publicclassJavaMain{
publicstaticvoidmain(Stringargs[]){
Stocka=newStock();
Stockb=newStock(1,67.5);
//其他代码省略,且代码无输出
Java类的修饰符public与文件名的关系,关键字static(类变量与实例变量)
构造函数的修饰符,函数的参数
01代码行修改结果:
classStock{ (3分)
02代码行修改结果:
{ (3分)
06代码行修改结果:
publicStock(){getData():
} (3分)
07代码行修改结果:
publicStock(intn,doublepr){ (3分)
程序运行的输出结果为:
0:
0.0 1:
67.5 (3分)
[2006年5月程序员]试题八(共15分)
阅读以下说明和Java代码,将解答写在答题纸的对应栏内。
【说明】
已知类SubClass的getSum方法返回其父类成员i与类SubClass成员j的和,类SuperClass中的getSum为抽象函数,程序中的第14行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,当程序运行到第22行且尚未执行第22行语句时成员变量i的值,最后给出程序运行后的输出结果。
【Java代码】
Java类的继承、抽象方法、抽象类,关键字this、super、final、abstract
(1)this
(2)super
错误更正结果:
publicabstractintgetSum();
变量i的值:
5
运行结果:
-3
2
[2004年11月软件设计师]试题七(15分,每空3分)
阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
类Queue表示队列,类中的方法如下表所示。
类Node表示队列中的元素;
类EmptyQueueException给出了队列操作中的异常处理操作。
[JAVA代码]
publicclassTestMain{//主类
publicstaticvoidmain(Stringargs[]){
Queueq=newQueue();
q.enqueue(“first!
”);
q.enqueue(“second!
q.enqueue(“third!
(1) {
while(true)
System.out.printIn(q.dequeue());
}
catch(
(2) ){}
}
}
publicclassQueue{//队列
Nodem_FirstNode;
publicQueue(){m_FirstNode=null;
publicbooleanisEmpty(){
if(m_FirstNode==null)returntrue;
elsereturnfalse;
}
publicvoidenqueue(ObjectnewNode){//入队操作
Nodenext=m_FirstNode;
if(next==null)m_FirstNode=newNode(newNode);
else{
while(next.getNext()!
=null)next=next.getNext();
next.setNext(newNode(newNode));
}
publicObjectdequeue() (3) {//出队操作
Objectnode;
if(isEmpty())
(4) ;
//队列为空,抛出异常
else{
node=m_FirstNode.getObject();
m_FirstNode=m_FirstNode.getNext();
returnnode;
}
}
publicclassNode{//队列中的元素
Objectm_Data;
Nodem_Next;
publicNode(Objectdata){m_Data=data;
m_Next=null;
publicNode(Objectdata,Nodenext){m_Data=data;
m_Next=next;
}
publicvoidsetObject(Objectdata){m_Data=data};
publicObjectgetObject(){returnm_Data;
publicvoidsetNext(Nodenext){m_Next=next;
publicNodegetNext(){returnm_Next;
publicclassEmptyQueueExceptionextends (5) {//异常处理类
publicEmptyQueueException(){
System.out.printIn(“队列已空!
”);
Java中异常的捕获、自定义异常(定义和使用)、抛出异常
试题七参考答案
(1)try
(2)EmptyQueueExceptione
(3)throwsEmptyQueueException
(4)throw(newEmptyQueueException())
(5)Exception
[2005年5月软件设计师]试题六(15分)
阅读以下说明和Java代码,将应填入____(n)____处的字句写在答题纸的对应栏内。
某绘图系统存在point、line、square三种图元,它们具有shape接口,图元的类图关系如图6-1所示。
现要将circle图元加入此绘图系统以实现功能扩充。
已知某第三方库已经提供了XCircle类,切完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供的接口不能被系统直接使用。
代码6-1既使用了XCircle又遵循了Shape规定的接口,既避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。
代码6-2根据用户指定的参数生成特定的图元实例,并对之进行显示操作。
绘图系统定义的接口与XCircle提供的显示接口及其功能如下表所示:
[代码6-1]
classCircle____
(1)______{
private___
(2)___pxc;
publicCircle(){pxc=new___(3)___;
}
publicvoiddisplay(){
pxc.___(4)___;
[代码6-2]
publicclassFactory{
public___(5)___getShapeInstance(inttype){//生成特定类实例
switch(type){
case0:
returnnewpoint();
case1:
returnnewRectangle();
case2:
returnnewline();
case3:
returnnewCircle();
default:
returnnull
}
}
};
publicclassApp{
publicstaticvoidmain(Stringargv[]){
if(argv.length!
=1){
System.out.println(“errorparameters!
Return;
}
inttype=(newInteger(argv[0])).intValue();
Factoryfactory=newFactory();
Shapes;
s=factory.___(6)____;
If(s==null){
System.out.println(“Errorgetinstance!
Return;
s.display();
return;
Java中接口的实现和使用、接口定义变量、用类的构造函数创建对象、main方法参数的获取。
接口的定义没有考。
(1)implementsShape
(2)XCircle
(3)XCircle()
(4)displayIt()
(5)Shape
(6)getShapeInstance(type)
[2005年11月软件设计师]试题六(共15分)
阅读以下说明和Java代码,将应填入_____(n)____处的字句写在答题纸的对应栏内。
在一公文处理系统中,开发者定义了一个公文类OfficeDoc,其中定义了公文具有的属性和处理公文的相应方法。
当公文件的内容或状态发生变化时,关注此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态。
一个OfficeDoc对象能够关联一组DocExplorer对象。
当OfficeDoc对象的内容或状态发生变化时,所有与之相关联的DocExplorer对象都将得到通知,这种应用被称为观察者模式。
以下代码写在一个Java源文件中,能够正确编译通过。
//Subject.java文件
publicinterfaceSubject{
publicvoidattach(ObserverDocExplorer);
publicvoiddetach(ObserverDocExplorer);
voidnotifyObservers();
//Observer.java文件
publicinterfaceObsever{
voidupdate(____
(1)____);
//OfficeDoc.java文件
importjava.util.*;
publicclassOfficeDocimplementsSubject{//OfficeDoc类实现Subject接口
privateVectorObserverVector=newjava.util.Vector();
//存储与OfficeDoc相关联的DocExplorer对象
publicvoidattach(Obseverobserver){
//将某DocExplorer对象与OfficeDoc相关联
ObserverVector.addElement(observer);
publicvoiddetach(Observerobserver){
//解除某DocExplorer对象与OfficeDoc的关联关系
ObserverVector.removeElement(observer);
publicvoidnotifyObservers(){
//当OfficeDoc对象状态已发生变化时,通知所有的DocExplorer对象
Enumerationenumeration=______
(2)_____;
while(enumeration.hasMoreElements()){
((Observer)enumeration.nextElement())._____(3)_____;
publicEnumerationObservers(){
returnObserverVector.elements();
//其它公文类的属性和方法省略
//DocExplorer.java文件
publicclassDocExplorerimplements_____(4)____{
publicvoidupdate(____(5)____){
//更新DocExplorer自身的状态,代码省略
Java中接口的定义、实现和使用,类Vector、Enumeration的使用,方法的参数。
(1)Subjectsubject(注:
第二个subject可用其它标识符替换)(3分)
(2)Observers()(3分)
(3)update(this)(3分)
(4)Observer(3分)
(5)Subjectsubject(注:
[2006年5月软件设计师]试题六(共15分)
阅读下列说明、图以及Java程序,将应填入(n)处字句写在答题纸的对应栏内。
【说明】
某订单管理系统的部分UML类图如图7-l所示。
图7-1订单管理系统的部分UML类图
图7-1中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,OrderItem表示产品订单中的一个条目,OrderList表示订单列表,Sale