java程序面试笔试期末考试试题.doc_第1页
java程序面试笔试期末考试试题.doc_第2页
java程序面试笔试期末考试试题.doc_第3页
java程序面试笔试期末考试试题.doc_第4页
java程序面试笔试期末考试试题.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试题八(共 15 分) 阅读以下说明和 Java 代码,将解答写在答题纸的对应栏内。 【说明】 已知类 SubClass 的 getSum 方法返回其父类成员 i 与类 SubClass 成员 j 的和,类SuperClass中的 getSum为抽象函数,程序中的第 14 行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,当程序运行到第 22 行且尚未执行第 22行语句时成员变量 i 的值,最后给出程序运行后的输出结果。 【Java 代码】 行号代码01public class MainJava 02public static void main(String args) 03SuperClass s = new SubClass(); 04 System.out.println(s.getValue(); 05 System.out.println(s.getSum(); 060708abstract class SuperClass 09 private int i; 10 public SuperClass() i = 5; 11 public int getValue() 12 return i; 13 14 public final abstract int getSum(); 1516class SubClass extends SuperClass 17 int j; 18 public SubClass() 19 this(-3); 20 21 public SubClass(int j) 22 (1) .j = j; 2324 public int getValue()return j; 25 public int getSum() 26 return (2) .getValue() + j; 27 28试题八(共 15 分)阅读以下说明和 Java 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。说明在下面的 Java 程序代码中,类 SalesTicket 能够完成打印票据正文的功能,类 HeadDecorator 与 FootDecorator 分别完成打印票据的台头和脚注的功能。已知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。这是票据的台头! 这是票据正文! 这是票据的脚注!-这是票据的台头! 这是票据的脚注!Java 程序代码public class SalesTicket public void printTicket() System.out.println(这是票据正文!);public class Decorator extends SalesTicketSalesTicket ticket;public Decorator(SalesTicket t)ticket = t;public void printTicket()if(ticket != null)ticket.printTicket();public class HeadDecorator extends Decoratorpublic HeadDecorator(SalesTicket t) (1) ;public void printTicket() System.out.println(这是票据的台头!); super.printTicket();public class FootDecorator extends Decoratorpublic FootDecorator(SalesTicket t) (2) ;public void printTicket() super.printTicket(); System.out.println(这是票据的脚注!);public class Main public static void main(String args) T = new HeadDecorator( (3) ); T. (4) ;System.out.println(-);T = new FootDecorator( (5) ); T.printTicket();试题八 (共15分) 阅读以下说明和 Java 代码,请回答问题 1 和问题 2,将解答写在答题纸的对应栏内。 说明 已知类 Stock 和类 cxyjava 都定义在 cxyjava.java 文件中,类 Stock 的定义中第14 行前共有四行出现了错误,将下面代码修改正确并完善后的输出结果为: 0:0 1:23 问题 1 请指出错误所在行号并给出该行修改后的完整结果。 问题 2 请补齐第 21 行代码中的空缺。 Java 代码 01 public class Stock 02 static 03 shares = 0; 04 share_val = 0.0; 05 06 public Stock()getData(); 07 public Stock(int n, int pr=0) 08 shares = n; 09 share_val = pr; 10 getData(); 11 12 public void getData() 13 System.out.println(shares + :+share_val); 14 15 private int shares; 16 private int share_val; 17 ; 18 19 public class cxyjava 20 public static void main(String args) 21 Stock a = (1) ; 22 Stock b = new Stock(1,23); 23 /其它无输出代码省略 24 25 试题七(共15分)阅读下列说明、图和Java代码,回答问题1至问题3,将解答写在答题纸的对应栏内。说明已知四个类之间的关系如图7-1所示,分别对每个类的方法进行编号,例如Shape的perimeter()为1号,表示为“1:perimeter()”,Rectangle类的perimeter()为2号,表示为“2:perimeter()”,依此类推,其中,每个类的perimeter方法签名相同。ShapeRectangleTriangleSquare1:perimeter()2:perimeter()4:perimeter()3:height()5:perimeter()图7-1 类图Java 代码Triangle tr = new Triangle();Square sq = new Square();Shape sh = tr;问题1 关于上述Java代码中sh 和 tr的以下叙述中,哪两个是正确的(写出编号)。 sh 和 tr分别引用同一个对象; sh 和 tr分别引用同一类型的不同的对象; sh 和 tr分别引用不同类型的不同对象; sh 和 tr分别引用同一个对象的不同拷贝; sh 和 tr所引用的内存空间是相同的。问题2 写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无”)。tr.height() (1) sh.perimeter() (2) sq.height() (3) sq.perimeter() (4) sh.height() (5) tr.perimeter() (6) 问题3 下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)。 sq = sh; sh = tr; tr = sq; sq = tr; sh = sq; 试题七(共15 分) 阅读下列说明、图和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 说明 已知对某载客车辆(Car)进行类建模,如图7-1所示,其中类Engine表示发动机引擎,类Wheel表示车轮,类Body表示车身,类Driver表示司机,类Passenger表示乘客。Java代码 class Body /此处代码省略 ; /车身类 class Passenger /此处代码省略 ; /乘客类 class Wheel /此处代码省略 ; /车轮类 class Driver /司机类 public String name; /表示第几路公交车司机 public Driver(String driverName)name = driverName; /构造函数 ; class Engine /引擎类 public String engineNo; /引擎编号 public Engine(String engineNo) this.engineNo = engineNo; /构造函数 ; public class Car /汽车类 static final int (1) = 7; /定义最多载客数 static final int MAX_WHEELS = 5; /定义最多轮胎数 protected Engine engine; protected Driver driver; protected Body body = new Body(); protected Wheel wheels; protected Passenger passengers; public Car(Driver driver) /构造函数 (2) .driver = driver; engine = new Engine(TX6536型号引擎); wheels = new WheelMAX_WHEELS; passengers = new PassengerMAX_PASSENGERS; for (int index = 0; index MAX_WHEELS; index+) wheelsindex = new Wheel(); for (int index = 0; index MAX_PASSENGERS; index+) passengersindex = null; int getPassengerNumber() /获取车上乘客数量 /此处代码省略 void getOnPassenger(Passenger aPassenger ) /乘客上车 /此处代码省略 void run() /开车 if( (3) ) System.out.println(司机尚未上车!); return; /此处代码省略 public static void main(String args) Driver driver = new Driver(第五路公交车司机); Car car = new Car( (4) ); for (int index = 0 ; index MAX_PASSENGERS; index +) car.getOnPassenger( (5) Passenger(); car.run(); 试题七(共15 分) 阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 说明 java.util库中提供了Vector模板类,可作为动态数组使用,并可容纳任意数据类型。该类的部分方法说明如下表所示: 方法名含义add(k)向 vector 对象的尾部添加一个元素 kremoveElementAt(i)删除序号为 i 的元素(vector 元素序号从 0 开始)isEmpty()判断 vector 对象是否含有元素size()返回 vector 对象中所包含的元素个数Java代码import (1) ; public class JavaMain static private final int (2) = 6; public static void main(String args) Vector theVector = new Vector(); / 初始化theVector,将theVector的元素设置为0至5 for (int cEachItem = 0; cEachItem ARRAY_SIZE; cEachItem+) theVector.add( (4) ); showVector(theVector); / 依次输出theVector中的元素 theVector.removeElementAt(3); showVector(theVector); public static void showVector(Vector theVector) if (theVector.isEmpty() System.out.println(theVector is empty.); return; for (int loop = 0; loop theVector.size(); loop+) System.out.print(theVector.get(loop); System.out.print(, ); System.out.println(); 该程序运行后的输出结果为: 0, 1, 2, 3, 4, 5 (5)试题六(共 15分) 阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、numberOfElement()以及removeLastElement()。四个方法的含义分别为: void addElement(Object): 在列表尾部添加一个对象; Object lastElement(): 返回列表尾部对象; int numberOfElement(): 返回列表中对象个数; void removeLastElement(): 删除列表尾部的对象。 现需要借助LinkedList来实现一个Stack栈类, Java代码1和Java代码2分别采用继承和组合的方式实现。 【Java代码1】 public class Stack extends LinkedList public void push(Object o) /压栈 addElement(o); public Object peek() /获取栈顶元素 return (1) ; public boolean isEmpty() /判断栈是否为空 return numberOfElement() = 0; public Object pop() /弹栈 Object o = lastElement(); (2) ; return o; 【Java代码2】 public class Stack private (3) ; public Stack() list = new LinkedList(); public void push(Object o) list.addElement(o); public Object peek()/获取栈顶元素 return list. (4) ; public boolean isEmpty()/判断栈是否为空 return list.numberOfElement() = 0; public Object pop() /弹栈 Object o = list.lastElement(); list.removeLastElement(); return o; 【问题】 若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合) 试题六(共15 分) 阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 现需要统计某企业员工的月平均工资,即该企业本月发给员工的工资总和除以员工人数。 假设企业本月发给员工的工资总和为sumSalary,该企业的员工总数为employeeNumber,下面的程序代码计算该企业员工本月的平均工资,其中需要处理employNumber为0的情况。 【Java 代码】 import java.util.Scanner; public class JavaMain static float average(float x, int y) throws Exception if (y =0 ) throw new Exception( (1) ); return x/y; static void caculate() throws Exception float sumSalary; int employeeNumber; Scanne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论