《中山大学Java程序设计2010秋复习题.doc》由会员分享,可在线阅读,更多相关《中山大学Java程序设计2010秋复习题.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流中山大学Java程序设计2010秋复习题.精品文档.Caution :一.1 以下哪条语句可以通过编译?(b)A.String #name = Jane Doe;B.int $age=24;C.Double _height = 123.5;D.double temp = 37.5;一.2 下列关于Java类的构造方法的说法中错误的是:dA.构造方法的名字必须与类的名字完全相同。B.构造方法没有返回值也不能用void修饰。C.父类的构造方法不能被子类继承。D.构造方法必须用public访问控制符修饰。一.3 给出如下代码:bclass Test
2、 private int m; public static void fun() /* some code. */ 如何使成员变量m被函数fun()直接访问?A.将private int m改为protected int mB.将private int m改为public int mC.将private int m改为static int mD.将private int m改为int m一.4 下面哪个函数是public void example() .的重载函数?bA.public void example() .B.public int example() .C.public void e
3、xample2() .D.public int example(int m, float f) .一.5 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( c )。A.隐藏B.覆盖C.重载D.Java不支持此特性以下程序的输出结果是()public class Test public static void main(String args) int x = 5; boolean b1 = true; boolean b2 = false; if (x = 4) & !b2) System.out.pr
4、int(l ); System.out.print(2 ); if (b2 = true) & b1) /若是改成 if (b2=true) & b1) 则只输出 2 System.out.print(3);A.2B.3C.1 2D.2 3一.6 关于异常处理下列说法中正确的是:BA.Java系统中所有异常都需要捕获处理。B.catch子句是通过类型匹配来捕获异常对象的。C.try-catch-finally结构处理完异常后结束程序的运行。D.异常是一种错误,所以在程序中应该完全避免异常的出现。一.7 下列关于对象类型转换的说法中正确的是:A.某类的对象引用只能指向它的直接子类的对象。B.不存
5、在祖先与后代关系的两个类的对象之间一定不能进行类型转换。C.后代类的对象引用能指向其祖先类的对象。D.对象类型转换只有强制转换而没有自动转换。一.8 类Teacher和Student是类Person的子类,则BPerson p; Teacher t; Student s; / 设p,t和s都是非null引用if(t instanceof Person) s = (Student)t; 关于最后一条语句的正确说法是:A.将构造一个Student对象。B.类型转换正确。C.表达式是错误的。D.编译时正确,但运行时错误。一.9 根据下面代码,找出正确的选项。Dpublic class Test st
6、atic Object o; public static void main(String args) System.out.println(o);A.编译时将产生错误。B.编译时正确,运行时将产生错误。C.程序输出零。D.程序输出null。关于类Foo的以下说法中正确的是()Aclass Foo static void alpha() /* more code here */ void beta() /* more code here */ A.在alpha()中可以直接调用beta();B.在beta()中可以直接调用alpha();C.在其中任一个方法中均可以直接调用另一个方法D.在其中
7、任一个方法中均不可以直接调用另一个方法一.10 关于下面数组定义的正确说法是?DString s = new String10;A.数组s定义不合语法B.s是1010的2维数组C.s数组的所有元素都是D.s是10个数组的数组一.11 下列程序的正确输出是。Apublic static void main(String args) Scanner scanner = new Scanner(this is one that is two);scanner.useDelimiter( is); while(scanner.hasNext() System.out.print(scanner.nex
8、t();A.this one that twoB.th one that twoC.thone that twoD.this is one that is two改错题(20分)说明:写出每段代码的错误原因并改正错误,每小题4分,说明原因和改正各2分。1 class First import java.io.*;package mypackage;class Second 2 class A String name; public A(String s) name = s; class B extends A int id; public B (int i) id = i; 3 public
9、class B extends A final void increase() value += 2;class A int value = 0; final void increase() value += 1;一、 程序阅读题(20分)说明:阅读下面程序并写出它们的输出结果,每小题5分。1 程序如下:class Base public Base() System.out.println(What a pleasure!); public Base(String s) this(); /调用上面的public Base() ? System.out.println(I am + s + !)
10、;public class Child extends Base public static void main(String args) Child t = new Child(Mike); public Child(String s) super(s); System.out.println(How do you do?); public Child() this(I am Tom);E:shiyanothersjavaWhat a pleasure!I am Mike!How do you do?2 程序如下:class DivTest public static void main(S
11、tring args) int r, n, d; n = 10; d = 0; try r = n / d; System.out.println(r= + r); catch(ArithmeticException e) System.out.println(发生除数为0的异常!); finally System.out.println(除法运算完毕!); System.out.println(程序运行结束!);二、 应用设计题(6分)下面是某公司人事管理系统进行分析过程中发现的部分类,请找出它们之间的关系,用UML的类图描述:雇员、固定雇员、临时雇员、经理、促销员(临时)三、 程序设计题(
12、24分)说明:按照题目要求编写下面两段程序。1 编写一个完整的Java Application 程序。包含类Person、Student、TestStudent,具体要求如下:(14分)类Person:属性name:String对象,表示一个人姓名sex:char类型,用来表示性别id:String对象,表示身份证号phone:String对象,表示联系电话email:String对象,表示E-mail地址方法Person(String name, char sex, String id):构造函数String getId():获取身份证号void setEmail(String email)
13、:设置E-mail地址void setPhone(String phone):设置联系电话String toString():返回个人的各项信息,包括姓名、性别等上述属性类Student:从Person类派生,增加了以下属性和方法:属性sNo:long类型,表示学生的学号sClass:String对象,表示学生的班级方法Student(long sNo, String name, char sex, String id):构造函数setClass(String sClass):设置学生的班级信息String toString():返回学生的各项信息,包括学号、班级、姓名等上述属性类TestSt
14、udent作为主类要完成测试功能用以下信息生成一个Student对象aStudent姓名: 杨过 性别: 男 身份证号: 22033198807070333 学号: 2004002 设置E-mail: yangguo 设置联系电话: 88078549 输出对象aStudent的各项信息public class testStudentpublic static void main(String x)Student astudent=new Student(2004002,杨过,男,22033198807070333);astudent.setEmail(yangguo);astudent.set
15、phone(88078549);String info=astudent.toString();System.out.println(info);class PersonString name;char sex;String id;String phone;String email;Person(String name, char sex, String id)this.name=name;this.sex=sex;this.id=id;public String getID()return id;public void setEmail(String email)this.email=ema
16、il;public void setphone(String phone)this.phone=phone;public String toString()return 这个人的信息:n +name+ ,+sex+ ,+id+ ,+phone+ ,+email;class Student extends Personlong sNO;String sClass; public Student(long sNo, String name, char sex, String id)super( name, sex, id); /注意这里this.sNO=sNO; public void setCl
17、ass(String sClass)this.sClass=sClass;public String toString()return 这个学生的信息:nn姓名 +name+ n性别 +sex+ n身份证 +id+ n电话号码 +phone+ n邮箱 +email;求多个圆形面积之和。(10分)具体要求如下: 定义一个名为Shape的接口,其中声明一个返回值为double的无参方法getArea()。 定义一个圆形(Circle)类实现上面的Shape接口,有一个double类型的属性半径(radius)和两个构造方法。其中,一个无参构造方法设置半径为0,另外一个有参构造方法根据参数设置半径,如果参数小于0则强制设置为0。 编写一个类Test,在里面编写main方法,将数组12, 123, 1ab, 中的值转换为double类型作为半径,创建相应个数的圆。在类型转换的过程中需作相应的异常处理,如果转换出错,提示并使用无参构造方法创建圆。最后计算所有圆的面积之和并输出。