1、面向对象模拟试卷 2014 一、选择题(每小题 2 分,共计 36 分) 1执行语句 double d=10; d*=d+11/2; 后,d 的值是 。 A155.0 B150.0 C105.5 D105.0 2. 关于 class,以下说法不正确的是: A. class 是关键字,实质上是系统类的名字; B. 与接口和数组相比,class 这一大类主要用于用户构造满足自己需要的对象类型; C. class 是对象的数据类型,描述的是一类对象的共同拥有的属性、行为等特征; D. 当 class 作为内部成员时,可以用 private 或 protected 等来修饰; 3下面关于 String
2、 类的说法中,正确的是 。 AString 对象以“n“ 结束 B. String 隶属于 class 这一大类 C. String 对象和字符数组对象是一回事 D. “(即空字符串)就是 null 4以下标识符中 是 Java 关键字。 A.String B.static C. System D. 5关于构造函数,下列说法不正确的说法是 。 A. 构造函数可以设为 private 权限 B. 子类不能重写超类的构造函数 C. 构造函数用于初始化对象 D. 在构造函数中不能调用构造函数,否则就会无穷构造下去 6. 关于 super 和 this,下列说法不正确的是: A这是两个特殊的对象引用,
3、可以引用类中的 static 成员; B这两个特殊引用可在构造函数中调用构造函数,且只能放在第一句; C借助 super 可引用超类的私有成员 Dthis 的含义为“自己” ,是指对象自身,而非类自身 7、关于抽象方法,以下说法不正确的是: A. 抽象方法是一种功能契约,不实现抽象方法就无法构造对象; B. 接口中的抽象方法只能是 public 的,而抽象类中的抽象方法可以用其它权限修饰; C. 抽象类中的抽象方法只能由其子类来实现;接口中的抽象方法可由不同类来实现; D. 抽象方法不能用 final 来修饰,可以用 static 来修饰。 8下面关于对象数组说法正确的是 。 A. 语句 A
4、s =new A3;创建了 3 个 A 型引用,未创建 A 型对象; B. 语句 A s =new A3;创建了 3 个 A 型对象; C. 语句 A s =new A()3; 创建了 3 个 A 型引用,未创建 A 型对象; D. 语句 A s =new A()3; 创建了 3 个 A 型对象; 9关于类、对象和对象的引用,下列说法不正确的说法是 。 A. 类是对象的构造模型,刻画了对象中的所有信息 B. 引用是对象的名字,引用值是对象的起始地址 C. 定义引用时,必须要指明其拥有对象的类型 D. 类是对象的类型,因此只有创建对象后,才能使用类中定义的成员 10下面关于 final 修饰符,
5、正确的说法是 。 A. final 变量不能被更改, final 类不能派生出子类,用 final 方法不能被重载; B. 对 class Apublic int x,语句 final A a=new A(); a.x=5; 将会产生编译错; C. 对计算公式已不需更改的数学函数,常用 public static final 修饰; D. 若类中有 final abstract 修饰的方法,必须实现该方法才能构造对象。 11下面关于 static 修饰符,正确的说法是 。 A. 与普通变量相比,static 变量只能更改 1 次 B. 与普通方法相比,static 方法只能借助类名调用,不能借
6、助对象引用; C. static 变量被该类所有对象所共享,甚至包括私有 static 变量 D. static 方法不能被重载,只能被重写。 12. 下列类、对象和对象的引用的诸多说法中,错误的是: A. 所有的对象都必须借助 new 操作来创建。 B. 对象是拥有特定空间和结构的实体,类是对象的构造模型,引用是对象的别名。 C. 引用是一种地址,但与指针不同,引用不能偏移计算,指针可以。 D. 声明引用需要类,类决定了可供引用的成员;创建对象均需要类,类决定了对象占用的空间大小。 13以下关于接口的说法正确的是 。 A接口是一种特殊的类,用于表达某种能力; B. 接口的构造函数用于初始化接
7、口对象; C. 若当类 A 实现接口 B 时,可将 A 类的对象赋值给 B 型的引用; D. 接口中的所有成员都具有 public 权限,此外,接口中的方法还必须用 final 修饰,接口中的变量必须用采用 final static 修饰。 14. 下列关于继承、抽象类和接口的说法中,不正确的是 。 A. 借助继承机制,可把类的复杂性分解到类家族的层次体系中 B. 为获得接口标定的某种能力,类必须继承该接口,并实现接口中的抽象方法 C. java 中的类之间采用单继承,接口之间采用多继承 D. 抽象方法可看成是一种契约,拥有抽象方法的抽象类是类家族内部之间的契约,拥有抽象方法的接口常作为不同类
8、之间的契约 15下列关于 java IO 流的说法中,错误的是 。 A. 流是单向的,只能向输入流写入;只能从输出流读取 B. 流适用于对象间大量、复杂、持续的数据交互 C. 流的使用基于按需组合的原则 D. 字节流是通用性流,可传输任何数据;字符流对传输可读字符更高效 16对委托事件处理模型,不正确的说法是 。 A事件源是事件发生的源头对象,监视器(即代理)是接收并处理事件对象 B事件是一种特殊的对象,由 Java 运行时环境创建和传播; C要想成为某事件的代理,必须实现该事件对应的接口 D一个事件源能产生多种事件,但一个监视器只能关联一个事件源 17关于 java 多态机制,错误的说法是:
9、 。 A多态表达的是一名多义,常见实现方式有重写和重载两种形式 B. 重写机制可在编译期间决定使用哪个方法的,重载则在运行期间绑定方法体 C. 重写是用子类方法遮盖住超类方法,因此重写只能发生在父子类之间, 并要求子类方法和超类方法同名、同参、同返回类型 D. 由于重写必须依赖于对象,因此 static 方法不能被重写 18关于 java 线程机制,错误的说法是: 。 A线程间的执行是并发的,单个线程自身的执行是顺序的; B. 只有实现了 run()方法的类,才有资格被并发执行; C. 要构造线程对象,一定要用到 Thread 类 D. 进程可实现程序间的并发,线程可实现程序内的并发 二、简答
10、题(每题 10 分,共计 40 分) 1、Java 为何采用 2 个字节的 Unicode 编码 2、简述结构化方法和面向对象方法的核心思想。 3、简述应用委托事件处理模型的基本步骤 4、什么是临界区,什么是临界资源,各有何作用。 参考答案: 1、B;2、A;3、B;4、B ; 5、D ;6、C ;7、D ;8、A;9、D;10、C; 11、C;12、A;13、C;14、 B;15、A ;16、D;17、B;18、B ; 二、简答题(每题 10 分,共计 40 分) 1、Java 为何采用 2 个字节的 Unicode 编码 答题要点: a) 网络环境需要面临不同编码环境,编码不匹配会导致乱码
11、现象; b) 采用 2 字节可编码 216 个字符,字符集大,可将各国文字均纳入这一字典,由此各国文字都能得到正常解释,基本解决了字符乱码问题。 2、简述结构化程序设计方法和面向对象程序设计方法的核心思想。 答题要点: 结构化程序设计方法是一种以功能为核心的程序设计方法。 “结构化”是指可组合、可分解,即系统(或大模块)由若干子模块组成,各模块独立性较强,设计策略为自顶向下逐步求精。 面向对象程序设计方法出发点为:软件就是现实世界的仿真(或模拟) 。现实世界由一组对象组成,功能表现为对象间交互;软件中也应有对象,对象间的交互就是对象间的消息传递。 3、简述应用委托事件处理模型的基本步骤 答题要
12、点: 基本步骤为:a. 确定事件源,并基于事件源确定事件对应的监听器接口; b. 让事件处理者实现监听器接口,特别是相关处理方法; c. 关联事件源和事件处理者。 4、什么是临界区,什么是临界资源,各有何作用。 答题要点:synchronized(D) S 中,D 是临界资源,S 是临界区。临界区 S 访问临界资源 D,必然具备原子性,使得对多个线程对临界资源的访问安全、规范。 三、程序设计题(第 1 题 1 0 分,第 2 题 1 4 分,共计 2 4 分) 1. JButton 可产生 ActionEvent 事件,该事件对应的接口为 ActionListener,接口内有唯一方法:pub
13、lic void actionPerformed(ActionEvent e);。另外,假定已有方法 public void newFrame().能够实现弹出一个新窗口。请完成如下代码,实现:点击“新建”按钮,弹出一个新窗口。 (10 分) import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Exam_1 extends JFrame implements ActionListener private JButton bt_new=new JButton(“新建“); public Ex
14、am_1() setSize(500,100); setLayout(new FlowLayout(); add(bt_new); bt_new.addActionListener(this); setVisible(true); private void newJFrame(). public void actionPerformed(ActionEvent e) if(e.getSOurce()=bt_new) newJFrame() ; 2. 补充下列程序,使得输出结果只能是 135792468 或者是 246813579。 (14 分) class D ; class OutThrea
15、d implements Runnable private int data; private D temp; public OutThread(int d,D t) data=d; temp=t; public void run() synchronized(temp) for(int i=data; i10; i=i+2)System.out.print(i); class Exam_2 public static void main (String args) D d=new D(); OutThread ot1=new OutThread(1,d); OutThread ot2=new
16、 OutThread(2,d); Thread t1=new Thread(ot1); Thread t1=new Thread(ot2); t1.start(); t2.start(); 三、 附:其它简答题复习题: 1、为何说虚拟机和字节码是 java 实现跨平台的关键。 2、自顶向下逐步求精策略如何实施,有何优点。 3、为何说大程序开发的侧重点是可靠性、可维护性和可重用性? 4、简述 java 的异常处理机制。 5、什么是程序性异常,什么是虚拟机异常?为何要区分这两类异常 6、简述互斥和同步的主要作用,以及基本实现策略。 7、简述 IO 流的使用策略。 8、简述线程三要素及其各自主要作用。