JAVA试卷

  • 格式:doc
  • 大小:70.00 KB
  • 文档页数:9

JAVA编程语言考试时间:120分钟姓名:得点:一、判断题(15*1分=15分)若正确,打“√”。

错误打“X”()创建新的类对象用关键字new,回收无用的类对象使用关键字free。

()使用赋值号(等号)相当于创建了一个各属性与赋值实例相同的新实例。

()类及其属性、方法可以同时有一个以上的修饰符来修饰。

()最终类不能派生子类,最终方法不能被覆盖。

()子类要调用父类的方法,必须使用super关键字。

()一个Java类可以有多个直接父类。

()数组声明并不为数组元素分配空间。

()如果p是父类的实例,而c是子类的实例,则语句c = p是正确的。

()用“+”可以实现String类的拼接。

()使用方法length( )可以获得String或数组的长度。

()Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。

()执行完以下代码int[] x = new int[25];后x[24]为0()Java中是区分大小写的。

()Vector类中的对象不能是简单数据类型。

()设x=2 ,则表达式(x++)*3的值是9。

二、判断改错题(5*3分=15分)(不符合编码规约的地方不作为错误)判断下面的源代码片断是否有错,指出错在哪里并改正;若正确,打“√”。

1.public class MyClass {private int var = 100;public static int getVar() {return var;}}Var不是静态的静态方法不能调用非静态属性2.public class MyClass {int data;void MyClass (int d ) {data = d;}}3.public class MyMain {public static void main(String args[]) {System.out.println(MyClass1.data);}}class MyClass1 {int data = 10;}静态方法不能调用非静态属性把data改成static4.class A1 {private int mine;}class child extends A1 {int getMine() {return mine;}}子类不能继承父类的私有属性将mine的修饰符改成不是私有的5.public static void main(String args[]) {try {char ch = (char)System.in.read();} catch (Exception e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}先捕捉IOException再捕捉Exception三、分析题(2*2分 + 4分=8分)(1)阅读以下源代码,并给出执行结果:class Parent {void printMe() {System.out.print("parent ");}}class Child extends Parent {void printMe() {System.out.print("child ");}void printAll() {super.printMe();this.printMe();printMe();}}public class B2 {public static void main(String args[]) {Child myC = new Child();myC.printAll();}}输出结果为: parentchildchild。

(2)public static void main(String args[]){ ...StringBuffer sb = new StringBuffer("123");call(sb)System.out.print(sb.toString());...}void call(StringBuffer sb) {sb.append("abc");sb = new StringBuffer("xyz");}程序中System.out.print(sb.toString())输出的结果是:。

(3)在下表中填写正确的存取权限(打勾)。

A子类包内包外privatepublicprotected缺省定义private三、选择题:(5*2分 = 10分)1) HashMap map;map.put(key,value)方法,如果key在原hashMap中已经存在,结果会怎么样?A) 保留原来value,B) 更新value,C) 新的value和老的value并存D) 抛出Exception3) List listA = new ArrayList(listB);如果用listA.set(index, object)改变了listA的值, listB的值会随着变化吗?A)是 B)否 C)不一定4) List listA = new ArrayList(listB);如果用((StringBuffer)listA.get(index)).append("xyz")改变了 listA里的一个StringBuffer对象的值, listB的相应的对象的值会随着变化吗?A)是 B)否 C)不一定5) 从代码片断看,输出的setA.size()等于多少? BSet setA = new HashSet();String sa = "abc";String sb = "abc";setA.add(sa);setA.add(sb);System.out.println(setA.size());A) 0 B) 1 C) 2 D) 不确定四、问答题:(10*3分=30分)1.String类和StringBuffer类的主要差别是什么?写出互相间转换所使用的函数。

2.implements 和 extends有什么区别?分别在什么场合使用?、3.java怎么实现多继承?4.override和overload有什么不同?5.怎么知道数组的长度?怎么知道一个ArrayList的长度?怎么知道一个String的长度?6.throw和throws有什么不同?7.java.util.Collection和java.util.Collections分别是什么?8.java.io.InputStream和java.io.Reader之间有什么区别和关系?9.从代码片断看,会抛出一个异常,请写出这个异常的名字。

Object o = null;System.out.println(o.toString());10.简述StateMent和PrepareStateMent的区别和用途。

五、编程(7 + 7 + 8 = 22分)(答案请写在反面)1.用JAVA语言编写一个完整的程序打印出所有的“水仙花数“。

所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

例如:153是一个“水仙花数“,因为153=13+53+33。

2.用java.util.ArrayList实现一个FIFO(先进先出)的队列的类。

队列中的元素为Object类型。

实现的类必须实现以下接口:interface Queue {/***进队列*@param o 进队列的元素*/void enqueue(Object o); // ddd/***出队列*@return 出队列的元素*/Object dequeue(); // ccc/***队列是否为空*@return <tt>true</tt>如果队列为空*/boolean isEmpty();}提示: ArrayList 的方法有Booleanadd(Object o) Appends the specified element to the end of this listObject get(int index) Returns the element at the specified position in this listObject remove(int index) Removes the element at the specified position in this listint size() Returns the number of elementsin this list3. 有部门员工信息表(Employee)如下员工编号员工姓名入司年月工资性别No char (10)Namevarchar2(10)hireDayDateSalaryNumber(5,1)Char(1)数据库信息如下:222.222.222.222 数据库访问端口:1521 数据库SID:soerp 用户名: soerp 密码:so1e2r3p请使用JDBC链接DB2数据库后,取出信息表中所有姓“李”的员工信息。