2012-2013java面向对象期末测试题(带答案)
2012-2013java面向对象期末测试题(带答案)
济南大学2009~2010 学年第二学期课程考试试卷课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 题号 一 二 三 四 五 总 分 审核人 得分 一、填空题(每空2分,共20分) 1.Java 源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。
2.Socket 通常也称为 套接字 ,用于描述 IP 地址 和 端口 。
3.线程的优先级在 1 至 10 之间,数值越大 优先级越高 4.构造方法是一种特殊的成员方法,构造方法名与 类名 相同 5.Java 语言只允许单继承,指每个类只能有一个 父类或子类 。
二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的 ( B ) A 、继承 B 、流程控制 C 、抽象 D 、封装 2.以下关于执行Java 小程序的论述错误的是: ( C ) A 、可以通过浏览器调用嵌入了Java 小程序的HTML 文档 B 、可以通过appletviewer .exe 调用嵌入了Java 小程序的HTML 文档 C 、可以通过java.exe 调用嵌入了Java 小程序的HTML 文档 D 、可以在Java 集成开发环境中调用嵌入了Java 小程序HTML 文档 3.符合对象和类关系的是: ( D ) A 、人和老虎 B 、书和汽车 C 、楼和土地 D 、松树和植物4.关于选择结构下列哪个说法正确? (B )A .if 语句和 else 语句必须成对出现B .if 语句可以没有else 语句对应 …………………………………………装…………………………订…………………………线…………………………………………C.一个if语句只能有一个else if语句与之对应D.else if结构中必须有default语句5.while循环和do…while循环的区别是:(D)A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.do…while循环执行次数可能为0D.while循环执行次数可能为06.关于for循环和while循环的说法哪个正确?(B)A.while循环先判断后执行,for循环先执行后判断。
Java面向对象程序设计期末复习试题(附解析)
JAVA面向对象程序设计复习试题+解析1)在JAVA编程中,关于Font下列()是正确的。
(选择两项)a)在我们的程序中可以使用Font类中定义的字体常量。
b)我们可以使用Tookit类中的函数来获取我们的机器中java所支持的字体的列表c)我们可以自己创建字体实例对象d)以上说明都正确【解析】参考答案:A BFont属于java.awt包中的一个类,专门用来设置程序中的字体实例对象。
创建Font类的对象时使用的方法:getFont(int face,int style,int size);例如:Font font = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font. SIZE_MEDIUM);无论哪一个参数,都只能使用系统设置的数值,这些数值具体的大小在不同的手机上可能不同。
下面对于其中的三个参数的取值做详细的介绍:face参数指字体的外观;style参数指字体的样式;size参数指字体的大小。
这三个参数都是系统中定义好的一些常量。
获得系统的默认字体:Font font = Font.getDefaultFont();ToolKit类是 Abstract Window Toolkit 的所有实际实现的抽象父类。
Toolkit 用于把各种组件绑定到特定的本地工具箱实现上。
该类有个方法getFontList()用于返回该工具箱中可用字体名。
也就是可以获取机器中java所支持的字体的列表。
2)在Java语言中,在包Package1中包含包Package2,类Class_A直接隶属于包Package1,类Class_B直接隶属于包Package2。
在类Class_C要应用Class_A的方法A和Class_B 的方法B,你需要()语句。
(选择两项)a)import Package1.*;b)import Package1.Package2.*;c)import Package2.*d)import Package2.Package1.*;【解析】A BJava语言中的包机制就像Windows中的文件夹,用来归类类文件的位置。
面向对象测试题及答案
面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。
2. 解释什么是多态,并给出一个Java中多态的例子。
3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。
面向对象期末考试题及答案
面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。
答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。
面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。
通过对象之间的交互来实现程序的功能。
2. 解释什么是多态性,并给出一个简单的例子。
答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
例如,在Java中,可以通过重载和重写来实现多态。
假设有一个动物类Animal,它有一个方法makeSound()。
然后有一个子类Dog,它重写了makeSound()方法。
当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。
3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。
封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。
三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4
《面向对象程序设计JA V A语言程序设计》期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。
1.下列语句序列执行后,k 的值是(B )。
int m=3, n=6,k=0;while((m++) < (-— n))++k;A)0 B)1 C) 2 D)32.设i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是(B )。
A)i = i + 2 B)a[0]= 7;C)i++ — --j;D)a(0)= 66;3.Java语言的类间的继承关系是(B )。
A)多重的B)单重的C)线程的D)不能继承4.设有定义int i = 6 ;,则执行以下语句后,i 的值为(C )。
i += i - 1;A) 10 B)121 C) 11 D) 1005.下列选项中,用于在定义子类时声明父类名的关键字是( C )。
A)interface B)package C) extends D) class6.若已定义byte[ ] x= {11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是( C )。
A)x[5—3]B)x[k] C) x[k+5] D)x[0]7.下列语句序列执行后,ch1 的值是( B )。
char ch1=’A’,ch2=’W’;if(ch1 + 2 〈ch2 )++ch1;A)‘A' B) ‘B’ C) ‘C' D) B8.下列语句序列执行后,i 的值是(D )。
int i=8,j=16;if( i-1 〉j )i—-;else j——;A)15 B) 16 C) 7 D)89.下列语句序列执行后,k 的值是(C )。
int i=10, j=18,k=30;switch(j — i ){case 8 :k++;case 9 :k+=2;case 10:k+=3;default :k/=j;}A)31 B) 32 C)2 D)3310.下面语句执行后,i 的值是(B )。
java面向对象考试题及答案
java面向对象考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 方法B. 构造函数C. 属性D. 包答案:C3. 在Java中,哪个关键字用于实现类的继承?A. extendsB. implementsC. importD. package答案:A4. 在Java中,以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于定义一个枚举类型?A. classB. structC. enumD. interface答案:C二、填空题(每题2分,共10分)1. 在Java中,一个类可以继承另一个类的______方法。
答案:public2. 当一个类实现了一个接口,它必须提供接口中所有方法的______实现。
答案:具体3. Java中的______关键字用于定义一个包。
答案:package4. 在Java中,______关键字用于声明一个方法,该方法没有返回值。
答案:void5. 在Java中,______关键字用于声明一个方法,该方法返回一个布尔值。
答案:boolean三、简答题(每题5分,共20分)1. 简述Java中构造函数的作用。
答案:构造函数是类的特殊方法,用于在创建对象时初始化对象的状态。
它具有与类同名的名称,并且没有返回类型。
2. 描述Java中接口和抽象类的区别。
答案:接口是完全抽象的,不能包含任何实现细节,而抽象类可以包含实现细节。
接口中的方法默认是public和abstract的,而抽象类可以有非抽象方法。
一个类可以实现多个接口,但只能继承一个抽象类。
3. 什么是Java中的多态性?请举例说明。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力。
java面向对象程序设计期末考试题及答案
java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。
答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。
答案:final3. 在Java中,______关键字用于声明一个类是抽象的。
JAVA面向对象程序设计(期末考试试题及答案)
程序设计(期末考试试题及答案)JAVA面向对象面向对象程序设计一、单选择题1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB..classC.htmlD..exe2、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.privateC.staticD.Protected3、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5C.4D.54、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.static void method()B.public void method()C.final void method()D.abstract void method()5、下列属于容器的组件有:(B)A.JButton B.JPaneC.Canvas D.JTextArea6、v oid的含义:(C)A.方法体为空B.定义的方法没有形参C.定义的方法没有返回值 D.方法的返回值不能参加算术运算7、关于Java中异常的叙述正确的是:(D)A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的8、下面哪个不是java语言中的关键字?(B)A.longB.sizeofC.instanceofD.Const9、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)A.ActionListenerB.MouseListenerC.MouseMotionListernD.ItemListener10、以下有关类的继承的叙述中,正确的是:(D)A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B.子类只能继承父类的方法,不能继承父类的属性C.子类只能继承父类的非私有属性,不能继承父类的方法D.子类不能继承父类的私有属性二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
java面向对象试题及答案
java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。
答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。
面向对象编程的主要特点包括封装、继承和多态。
封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。
继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。
多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。
面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。
通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。
2. 试题二题目:什么是类?请简要描述类的特点和组成部分。
答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。
类是用来创建对象的蓝图,可以通过实例化类来创建对象。
类的特点包括了封装、继承和多态。
类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。
继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。
多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。
类的组成部分包括了属性(Field)和方法(Method)。
属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。
方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。
3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。
答案:传值和传引用是在方法调用时,参数传递的两种方式。
2012-2013java程序设计期末考试A卷
学号: 姓名:年级: 专业:考号:A.method2()4.创建一个标识有“关闭”标签的语句是( )。
A、TextField b = new TextField(“关闭”);B、Label b = new Label(“关闭”);C、Checkbox b = new Checkbox(“关闭”);D、Button b = new Button(“关闭”);5.对于子类的构造函数说明,下列叙述中错误的是()。
A、子类可以继承父类的构造函数。
B、子类中调用父类构造函数不可以直接书写父类构造函数,而应该用super();。
C、用new创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。
D、子类的构造函数中不可以调用其他函数。
6.下列哪个选项是错误的。
()A、一个文件中只能有一个public class。
B、一个文件中可以有多个类。
C、一个类中可以有两个main方法。
D、main方法必须是public的。
7.类ABC定义如下:1.public class ABC{2.public double max( double a, double b) { }3.4.}将以下哪个方法插入行3是不合法的。
()A、public float max(float a, float b, float c){ }B、public double max (double c, double d){ }C、public float max(float a, float b){ }D、private int max(int a, int b, int c){ }8.以下哪项是错误的()。
A、JPanel中不能包含按钮。
B、Frame 中可以设置Panel。
C、Applet 中可以包含按钮。
D、Dialog 中不可以设置菜单条。
9.在Applet中,方法执行的顺序是? ()A、init(), start(), paint(),stop(),destroy().B、init(),paint(),start(),stop(),destroy().C、paint(),start(),stop(),destroy().D、init(), start(),stop(),destroy(),paint().10.以下哪个方法用于定义线程的执行体?()A、 start()B、init()C、run()D、synchronized()11.当使包含applet 程序的页面从最小化恢复时,以下选项中的哪个方法将被执行?()A、paint()B、start()C、destroy()D、stop()12. A 是抽象父类或接口,B ,C派生自A,或实现A,现在Java源代码中有如下声明:1. A a0=new A();2. A a1 =new B();3. A a2=new C();问以下哪个说法是正确的?()A、只有第1行不能通过编译B、第1、2行能通过编译,但第3行编译出错C、第1、2、3行能通过编译,但第2、3行运行时出错D、第1行、第2行和第3行的声明都是正确的13.以下哪个接口的定义是正确的?()A、interface B{ public abstract void print() { } ;}B、i nterface B{ static void print() ;}C、a bstract interface B extends A1, A2 //A1、A2为已定义的接口{private abstract void print();}D、interface B{ void print();}14.关于Socket通信编程,以下描述正确的是:( )A、客户端通过new ServerSocket()创建TCP连接对象B、客户端通过TCP连接对象调用accept()方法创建通信的Socket 对象C、客户端通过new Socket()方法创建通信的Socket对象D、服务器端通过new ServerSocket()创建通信的Socket对象15.关于数据库连接的程序,以下哪个语句的注释是错误的( )A、Class.forName(“com.mysql.jdbc.Driver”); //指定MySQL JDBC 驱动程序B、String url=” jdbc:mysql://localhost:3306/student”; //指定驱动程序与数据源的连接C、db.executeUpdate(sql); //用于返回查询结果D、while(rs.next())//用于遍历查询结果中的记录16.关于异常的编程,以下描述错误的是:( )A、在有除法存在的代码处,抛不抛出异常均可B、int i=Integer.parseInt(”123a”);将产生IDberFormatExceptionC、int a[]=null; a[0]=1; 将产生ArraylndexOutOfBoundsExceptionD、输入输出流编程中,读和写时都必须抛出IOException17.在main()方法中给出的字节数组,如果将其显示到控制台上,需要( )A. 标准输出流System.out.println()。
java面向对象考题和答案
1.下面代码的输出结果是:2.public class Main {3. public static void main(String[] args) {4. int n = 100;5. int m = 200;6. System.out.println(f(n,m));7. System.out.println(n);8. }9. public static int f(int m, int n) {10. n = m+n;11. return n;12. }13.}A.300300B.100100C.300100D.1003002.程序执行的结果是:3.public class Test {4. public static void main(String[] args) {5. int x = 6;6. Test p = new Test();7. p.doStuff(x);8. System.out.println(" main: x = " + x);9. }10. void doStuff(int x) {11. System.out.println(" doStuff:x =" + x++);12. }13.}A.doStuff:x =7B. main: x = 7B.doStuff:x =7main: x = 6C.doStuff:x =6main: x = 7D.doStuff:x =6main: x = 63.下列关于JVM的内存结构描述正确的是:A.类的各种信息在方法区中保存B.堆用于存放程序运行过程当中所有的局部变量C.栈用于存储使用new关键字创建的对象D.数组属于JVM的内存结构4.下列代码的输出结果是:5.public class Test {6. public void print(char c) {7. System.out.println("c");8. }9.10. public void print(int i) {11. System.out.println("i");12. }13.14. public void print(double d) {15. System.out.println("d");16. }17. public void print(String s) {18. System.out.println("s");19. }20. public static void main(String[] args) {21. Test test=new Test();22. test.print('5');23. }24.}A.cB.iC.dD.s5.程序执行的结果是:6.public class Test {7. String name="Tom";8. public Test(String name){9. name=name;10. }11. public static void main(String [] args){12. Test t = new Test("Jack");13. System.out.println();14. }15.}A.nullB.TomC.JackD." "6.关于构造方法,下列说法错误的是:A.构造方法不可以进行方法重写B.构造方法用来实例化一个新的对象C.构造方法具有和类名相同的名称D.构造方法不返回任何数据类型7.关于 Java 中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类8.下列代码运行的结果是:class Foo {public int a;public Foo() {a = 3;}public void addFive() {a += 5;}}class Bar extends Foo {public int a;public Bar() {a = 8;}public void addFive() {this.a += 5;}}public class TestFoo {public static void main(String[] args) {Foo foo = new Bar();foo.addFive();System.out.println("Value: " + foo.a);}}A.Value: 3B.Value: 8C.Value: 13D.Value: 189.下列代码编译和运行的结果是:10.class Person {11. String name = "No name";12.13. public Person(String nm) {14. name = nm;15. }16.}17.class Employee extends Person {18. String empID = "0000";19.20. public Employee(String id) {21. empID = id;22. }23.}24.public class EmployeeTest {25. public static void main(String[] args) {26. Employee e = new Employee("4321");27. System.out.println(e.empID);28. }29.}A.输出:0000B.输出:4321C.代码public Employee(String id) {行,出现编译错误D.抛出运行时异常10.下列代码的运行结果是:11.public class Animal {12. public String noise() {13. return "peep";14. }15. public static void main(String[] args) {16. Animal animal = new Dog();17. Cat cat = (Cat)animal;18. System.out.println(cat.noise());19. }20.}21.class Dog extends Animal {22. public String noise() {23. return "bark";24. }25.}26.class Cat extends Animal {27. public String noise() {28. return "meow";29. }30.}A.peepB.barkC.meowD.抛出运行时异常11.下列代码编译和运行的结果是:public class A {public void start() {System.out.println("TestA");}}public class B extends A {public void start() {System.out.println("TestB");}public static void main(String[] args) {( (A) new B( ) ).start();}}A.输出:TestAB.输出:TestBC.输出:TestA TestBD.编译错误12.请看下列代码:class One {void foo() {}}class Two extends One {// insert method here}下列选项中的代码,放置在<插入代码>处无编译错误的是: A.int foo() { /* more code here */ }B. protected void foo() { /* more code here */ }C. public void foo() { /* more code here */ }D. private void foo() { /* more code here */ }13.下列选项中,不属于Java 的访问修饰符的是:A.privateB.protectedC.friendlyD.public14.下列代码的输出结果是:15.class Foo {16. private int x;17. public Foo(int x) {18. this.x = x;19. }20. public void setX(int x) {21. this.x = x;22. }23. public int getX() {24. return x;25. }26.}27.public class Gamma {28. static Foo fooBar(Foo foo) {29. foo = new Foo(100);30. return foo;31. }32. public static void main(String[] args) {33. Foo foo = new Foo(300);34. System.out.print(foo.getX() + "-");35. Foo fooFoo = fooBar(foo);36. System.out.print(foo.getX() + "-");37. System.out.print(fooFoo.getX() + "-");38. foo = fooBar(fooFoo);39. System.out.print(foo.getX() + "-");40. System.out.print(fooFoo.getX());41. }42.}A.300-100-100-100-100B.300-300-100-100-100C.300-300-300-100-100D.300-300-300-300-10015.下列代码运行的结果是:16.public class Base {17. public static final String FOO = "foo";18.class Sub extends Base {19. public static final String FOO = "bar";20.}21. public static void main(String[] args) {22. Base b = new Base();23. Sub s = new Sub();24. System.out.print(Base.FOO);25. System.out.print(Sub.FOO);26. System.out.print(b.FOO);27. System.out.print(s.FOO);28. System.out.print(((Base) s).FOO);29. }30.}31.A.foofoofoofoofooB.foobarfoobarbarC.foobarfoofoofooD.foobarfoobarfoo16.关于下列代码说法正确的是:17.public class ItemTest {18. private final int id;19. public ItemTest(int id) {20. this.id = id;21. }22. public void updateId(int newId) {23. id = newId;24. }25. public static void main(String[] args) {26. ItemTest fa = new ItemTest(42);27. fa.updateId(69);28. System.out.println(fa.id);29. }30.}A.编译错误B.运行时抛出异常C.运行后,fa对象属性id的值没有改变,应然是42D.运行后,fa对象属性id的值改变成新的值6917.请看下列代码编译和运行的结果是:18.public class Student {19. private String name="sun";20. public static void main(String[] args) {21. Student[] students=new Student[2];22. System.out.println(students[0].name);23. System.out.println(students.length);24. }25.}A.sun 2B.null 2C.null 1D.运行时抛出NullPointerException异常18.下列代码的输出结果是:19.abstract class Vehicle {20. public int speed() {21. return 0;22. }23.}24.class Car extends Vehicle {25. public int speed() {26. return 60;27. }28.}29.class RaceCar extends Car {30. public int speed() {31. return 150;32. }33.}34.public class TestCar {35. public static void main(String[] args) {36. RaceCar racer = new RaceCar();37. Car car = new RaceCar();38. Vehicle vehicle = new RaceCar();39. System.out.println(racer.speed() + ", " + car.speed() + ", "40. + vehicle.speed());41. }42.}A.0, 0,0B.150, 60, 0C.150, 150, 150D.抛出运行时异常19.请看下列代码:public abstract class Employee {protected abstract double getSalesAmount();public double getCommision() {return getSalesAmount() * 0.15;estA() {}}class Sales extends Employee {<插入代码>}在<插入代码>处填入的方法正确的是:A.double getSalesAmount() { return 1230.45; }B.public double getSalesAmount() { return 1230.45; }C.private double getSalesAmount() { return 1230.45; }D.protected double getSalesAmount() { return 1230.45; }20.关于下列代码说法正确的是:public interface A {public void doSomething(String thing);}public class AImpl implements A {public void doSomething(String msg) {}}public class B {public A doit() {return null;}public String execute() {return null;}}public class C extends B {public AImpl doit() {return null;}public Object execute() {return null;}}A. 所有类和接口都编译成功B.类B编译失败C.类Aimpl编译失败D.类C编译失败21.关于下列代码说法正确的是:interface A {public void aMethod();}interface B {public void bMethod();}interface C extends A, B {public void cMethod();}class D implements B {public void bMethod() {}}class E extends D implements C {public void aMethod() {}public void bMethod() {}public void cMethod() {}}A.编译失败B.如果定义D e = new E();, 那么 e.bMethod();调用D类的bMethod()方法C.如果定义D e = (D)(new E());, 那么 e.bMethod();调用D类的bMethod()方法D.如果定义D e = (D)(new E());, 那么 e.bMethod();调用E类的bMethod()方法22.请看下列代码:public class UserRequest {public void request(ServletAction action) {action.doService();}public static void main(String[] args) {UserRequest user = new UserRequest();user.request(new ServletAction() {public void doService() {System.out.println("处理请求");}});}}如果上述代码采用回调模式编写,下列关于ServletAction的定义正确的是:A. public static class ServletAction {public void doService();}B.public final class ServletAction {public void doService();}C.public class ServletAction {public void doService();}D. public interface ServletAction {public void doService();}23.下列代码运行的结果是:24.public class Hello {25. String title;26. int value;27. public Hello() {28. title += "World";29. }30. public Hello(int value) {31. this.value = value;32. title = "Hello";33. }34. public static void main(String[] args) {35. Hello c = new Hello(5);36. System.out.println(c.title);37. }38.}A.HelloB. Hello WorldC. Hello World 5D.运行后无输出24.请看下列代码编译和运行的结果是:25.interface TestA {26. String toString();27.}28.public class Test {29. public static void main(String[] args) {30. System.out.println(new TestA() {31. public String toString() {32. return "test";33. }34. });35. }36.}A.输出:testB.输出:nullC.代码System.out.println(new TestA() {行,编译出错D.代码public String toString() {行,编译出错25.请看下列代码:1)public class Outer {2) void fn(int i) {3) class Inner {4) void print() {5) System.out.println(i);6) }7) }8) Inner in = new Inner();9) in.print();10) }11)}12)class Test {13) public static void main(String args[]){14) Outer out=new Outer();15) out.fn(100);16) }17)}关于上述代码说法正确的是:A.在第5行出现编译错误,fn方法的参数必须用final修饰B.在第3行出现编译错误,在方法的内部不能写类C.在第8行出现编译错误,在方法的内部不能实例化Inner类的对象D.运行代码,控制台输出100A1,正确答案:C2,正确答案:D3,正确答案:A4,正确答案:A5,正确答案:B6,正确答案:B7,正确答案:B8,正确答案:A9,正确答案:C10,正确答案:D11,正确答案:B12,正确答案:BC13,正确答案:C14,正确答案:B15,正确答案:D16,正确答案:A 17,正确答案:D 18,正确答案:C 19,正确答案:BD 20,正确答案:D21,正确答案:D 22,正确答案:D 23,正确答案:A 24,正确答案:A 25,正确答案:A。
JAVA面向对象程序设计(期末考试试题及答案)
程序设计(期末考试试题及答案)JAVA面向对象面向对象程序设计一、单选择题1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB..classC.htmlD..exe2、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.privateC.staticD.Protected3、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5C.4D.54、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.static void method()B.public void method()C.final void method()D.abstract void method()5、下列属于容器的组件有:(B)A.JButton B.JPaneC.Canvas D.JTextArea6、v oid的含义:(C)A.方法体为空B.定义的方法没有形参C.定义的方法没有返回值 D.方法的返回值不能参加算术运算7、关于Java中异常的叙述正确的是:(D)A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的8、下面哪个不是java语言中的关键字?(B)A.longB.sizeofC.instanceofD.Const9、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)A.ActionListenerB.MouseListenerC.MouseMotionListernD.ItemListener10、以下有关类的继承的叙述中,正确的是:(D)A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B.子类只能继承父类的方法,不能继承父类的属性C.子类只能继承父类的非私有属性,不能继承父类的方法D.子类不能继承父类的私有属性二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
Java面向对象期末考试题
Java期末考试题选择题(每题2分,共20分)1.在Java中,下列哪个选项是合法的变量名?(2分)A. 3xB. _nameC. $valueD. -age2.Java中boolean类型的取值是什么?(2分)A. 0 和1B. true 和falseC. yes 和noD. on 和off3.Java中,数组的第一个元素的下标是多少?(2分)A. 0B. 1C. -1D. 取决于数组的长度4.下列哪个关键字用于定义不可变的变量?(2分)A. staticB. constC. finalD. immutable5.Java中,继承是使用哪个关键字实现的?(2分)A. implementsB. extendsC. inheritsD. derives6.抽象类的特点是什么?(2分)A. 可以实例化B. 必须包含至少一个抽象方法C. 不能包含具体方法D. 可以包含具体方法7.使用哪个方法可以获取字符串的长度?(2分)A. length()B. size()C. lengthD. getSize()8.在Java中,++i比i++的效率高。
(2分)A. 正确B. 错误9.在Java中,所有类都直接或间接继承自Object类。
(2分)A. 正确B. 错误10.StringBuffer类是线程安全的。
(2分)A. 正确B. 错误填空题(每题2分,共20分)1.在Java中,使用关键字______声明类变量。
(2分)2.使用______关键字可以跳出当前循环。
(2分)3.______方法用于在字符串末尾添加新的字符串,而不改变原字符串。
(2分)4.Java中,如果子类的方法与父类的方法相同,这种机制称为______。
(2分)5.在Java中,一个类可以实现多个______。
(2分)6.使用______关键字可以声明一个方法可能抛出的异常。
(2分)7.______是Java中用于生成文档注释的注释方式。
(2分)8.在Java中,使用______和______关键字可以定义一个二维数组。
《Java面向对象程序设计》科目考试卷及答案
安徽财贸职业学院2011—2012学年第二学期 《Java 面向对象程序设计》期末试卷(B 卷)适用班级:软件1101一、单选题(每小题1分,共30分)1.在MyEclipse 中,( )视图可以将项目中包含的文件及层次结构展示出来。
A) Package B)Declaration C)Navigator D) Console 2.下列标识符中,正确的是( )。
A)class B) 123_rr C) _lei D) test&12 3.下列的( )选项可以正确用以表示八进制值8。
A )0x8 B )0x10 C )08 D )010 4.以下哪个不是Java 的原始数据类型( ) A) int B) boolean C) float D) Char 5.下列有关Java 布尔类型的描述中,正确的是( ) A)一种基本的数据类型,它的类型名称为boolean B)用int 表示类型C)其值可以赋给int 类型的变量 D)有两个值,1代表真,0代表假6.在Java 中,不属于整数类型变量的是( ) A) double B) long C) int D) byte 7.以下do-while 语句构成的循环执行次数是( )。
int k=0;do { ++k ;}while(k<1);A) 一次也不执行 B) 执行1次 C) 无限次 D) 有语法错误,不能执行8.表达式(1/0<1)&& (12==0) 的值为( )。
A) true B) false C) 0 D) 运行时抛出异常 9.以下( )表达式不可以作为循环条件 A) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是( ) A) int score[5] = {90,12,34,77,56}; B) int[5] score = new int[];C) int[] score = new int[5]{90,12,34,77,56}; D) int score[] = new int[]{90,12,34,77,56};班级_______ 考号________ 姓名_________________________________装______订______线_______________________________________________________________________________11.若有定义:byte[] x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是()A) x[5-3] B) x[k] C) x[k+5] D) x[0]12.以下代码的输出结果是()。
面向对象期末考试答案
一、填空(15分)1、类之间的静态联系称作关联。
•在实例化后,由类产生对象,链是关联的实例。
•在系统实现时,关联采用对象的属性来实现。
2、用例图用于建立需求模型,描述用户的需求。
对象图是面向对象分析中的基本模型,属于静态结构模型。
3、顺序图(时序图)、通信图、活动图、状态图用于描述系统的行为方面的特征,属于动态结构模型。
4、时序图构成:参与者、相互协作的对象、对象的生命线、参与者与对象之间发送的消息、执行规约5、表示[可见性] 属性名[:类型][ =初始值]可见性分为+表示:(公有的)、#表示:(受保护的)、-表示:(私有的)、 ~(包,只有在同一包中声明的类能够使用这一属性)。
二、名词解释(15分)1、面向对象方法:是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
2、类:是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作务两个主要部分。
类的作用是用来创建对象,对象是类的一个实例。
3、抽象:指从事物中舍弃个别的、非本质的、与问题域无关的特征,而抽取共同的、本质特征的、相关的做法。
4、多态性:在具有继承关系的类层次结构中可以定义同名的操作或属性,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。
(“同名不同参”或“同名不同类”)5、OOA模型:就是通过面向对象的分析所建立的系统分析模型。
用况:一个用况是对参与者使用系统的一项功能的描述,是一组动作序列的描述,是一项请求与响应。
(三、简答(45分)1、继承和泛化关系特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。
一般类对特殊类的抽象关系叫泛化关系(简称泛化)。
2、聚合与组合有区别,请说明他们间的区别,并指出下图中哪图是聚合?聚合刻画了现实事物之间的构成关系,体现“整体——部分”关系。
而关联没有组成关系或拥有关系。
如例题中的c图3、简述下图中体现的面向对象的基本思想答: (1)第一次抽象封装:事物——对象①首先,直接以问题域(现实世界)中的事物为中心来思考问题、认识问题;②然后,根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。
java面向对象期末试题及答案
java面向对象期末试题及答案一、选择题(共10题,每题2分,共20分)1. 下列选项中,不属于Java的基本数据类型的是:A) intB) doubleC) booleanD) String答案:D2. 下列选项中,哪个关键字表示一个类不能被继承:A) finalB) staticC) privateD) abstract答案:A3. 在Java中,抽象类的特点是:A) 可以直接实例化B) 可以包含具体方法C) 可以被继承D) 可以实现多重继承答案:C4. 下列选项中,哪个关键字表示一个方法可以被子类重写:A) staticB) finalC) privateD) abstract答案:D5. 在Java中,接口的特点是:A) 可以包含成员变量B) 可以被实例化C) 可以包含具体方法D) 可以被类直接继承答案:B6. 下列选项中,哪个关键字表示一个方法或类只能被同一个包内的其他类访问:A) protectedB) publicC) privateD) default答案:D7. 在Java中,多态的实现方式是通过:A) 继承B) 接口C) 抽象类D) 重载答案:A8. 下列选项中,哪个关键字表示一个方法可以在同一个类中多次定义,但参数列表必须不同:A) staticB) finalC) privateD) overloading答案:D9. 在Java中,使用关键字“this”表示的是:A) 调用当前对象的方法B) 调用父类的方法C) 调用子类的方法D) 调用类的静态方法答案:A10. 下列选项中,哪个关键字表示一个方法不能被子类重写:A) finalB) abstractC) privateD) protected答案:A二、填空题(共5题,每题4分,共20分)1. 在Java中,创建对象的关键字是________。
答案:new2. 在Java中,使用关键字________定义了一个类的成员变量只能被本类的方法访问。
java面向对象试题及答案
java面向对象试题及答案# Java面向对象试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?- A. class- B. interface- C. enum- D. package答案:A2. 以下哪个是Java中的继承特性?- A. 一个类可以继承多个类- B. 类可以继承接口- C. 接口可以继承类- D. 接口可以继承多个接口答案:D3. 以下哪个是Java中封装的体现?- A. 使用public关键字- B. 使用private关键字- C. 使用static关键字- D. 使用final关键字答案:B4. 在Java中,哪个关键字用于实现多态?- A. abstract- B. final- C. override- D. implements答案:C5. 以下哪个是Java的构造方法的特点?- A. 可以有返回类型- B. 可以有多个同名的构造方法- C. 必须有返回类型- D. 必须与类名相同答案:D二、简答题1. 简述面向对象编程的三大特性,并给出Java中的例子。
面向对象编程的三大特性是封装、继承和多态。
- 封装:封装是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。
例如,在Java中,可以通过使用private关键字来隐藏类的成员变量,只通过public方法来访问这些变量。
- 继承:继承允许新创建的类(子类)继承现有类(父类)的属性和方法。
例如,如果有一个`Animal`类,可以创建一个`Dog`类继承`Animal`类。
- 多态:多态允许同一个接口接受不同的数据类型。
在Java中,可以通过重写父类的方法来实现多态。
例如,`Animal`类有一个`makeSound()`方法,而`Dog`类可以重写这个方法来发出狗的叫声。
2. 解释Java中的接口和抽象类的区别。
接口和抽象类都是Java中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。
Java程序设计(面向对象基础)期末单元测试与答案
一、单选题1、下面关于类的描述错误的是()。
A.类的实现包括类声明和类体两部分B.一个包可以包含多个类C.类的方法都由方法头和方法体组成D.一个Java程序可以有多个公共类正确答案:D2、关于面向对象概念的描述不正确的是()。
A.程序中的对象等同于现实生活中的对象B.对象描述的是客观世界的实体C.在Java中通过类来描述对象D.类是具有相同特征的若干对象的模板正确答案:A3、下列构造方法的调用方式中,正确的是()。
A.按照一般方法调用B.只能通过new自动调用C.被系统调用D.由用户直接调用正确答案:B4、对于下面()类定义,可以通过“new J_Class()”生成类J_Class 的实例对象。
A.public class J_Class {public J_Class(void) {}}B.public class J_Class { }C.public class J_Class {public void J_Class() {}public J_Class(String s) {}}D.public class J_Class {public J_Class(String s) {}}正确答案:B5、在Java中,下面对于构造函数的描述正确的是()。
A.构造函数和类有相同的名称,并且不能带任何参数B.构造函数的返回类型是voidC.一个类可以定义多个构造函数D.类必须显式定义构造函数正确答案:C6、下列关于包的描述中,错误的是()。
A.包是使用package语句创建的B.包是若干个类的集合C.包是一种特殊的类D.包有有名包和无名包两种正确答案:C7、下面关于包的描述中,错误的是()。
A.包分为有名包和无名包两种B.包是若干对象的集合C.使用package语句创建包D.使用import语句引入包正确答案:B二、填空题1、类是一组具有相同()和()的对象的抽象。
()是由某个特定的类所描述的一个个具体的对象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
济南大学2009~2010 学年第二学期课程考试试卷课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 题号 一 二 三 四 五 总 分 审核人 得分 一、填空题(每空2分,共20分) 1.Java 源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。
2.Socket 通常也称为 套接字 ,用于描述 IP 地址 和 端口 。
3.线程的优先级在 1 至 10 之间,数值越大 优先级越高 4.构造方法是一种特殊的成员方法,构造方法名与 类名 相同 5.Java 语言只允许单继承,指每个类只能有一个 父类或子类 。
二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的 ( B ) A 、继承 B 、流程控制 C 、抽象 D 、封装 2.以下关于执行Java 小程序的论述错误的是: ( C ) A 、可以通过浏览器调用嵌入了Java 小程序的HTML 文档 B 、可以通过appletviewer .exe 调用嵌入了Java 小程序的HTML 文档 C 、可以通过java.exe 调用嵌入了Java 小程序的HTML 文档 D 、可以在Java 集成开发环境中调用嵌入了Java 小程序HTML 文档 3.符合对象和类关系的是: ( D ) A 、人和老虎 B 、书和汽车 C 、楼和土地 D 、松树和植物4.关于选择结构下列哪个说法正确? (B )A .if 语句和 else 语句必须成对出现B .if 语句可以没有else 语句对应 …………………………………………装…………………………订…………………………线…………………………………………C.一个if语句只能有一个else if语句与之对应D.else if结构中必须有default语句5.while循环和do…while循环的区别是:(D)A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.do…while循环执行次数可能为0D.while循环执行次数可能为06.关于for循环和while循环的说法哪个正确?(B)A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空7.下列修饰符中与访问控制无关的是(D)A.private B.publicC.protected D.final8.方法内的形参:(B)A.必须定义多个形参B.可以没有C.至少有一个D.只能是简单变量9.throws的作用:(A)A.表示方法可能会抛出例外B.表示后面是方法的输出量C.方法的标志,每个方法都必须有D.没有意义10.在Java语言中,整型常量123占用的存储字节数是:(C)A.1B.2C.4 D.811.关于对象成员占用内存的说法哪个正确?(B)A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对12.return语句:(C)A.只能让方法返回数值B.方法都必须含有C.方法中可以有多句return D.不能用来返回对象13.下列说法哪个正确?(C)A、一个程序可以包含多个源文件B、一个源文件中只能有一个类C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用14.关于方法main()的说法哪个正确?(C)A.方法main()只能放在公共类中B.main()的头定义可以根据情况任意更改C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中15.构造函数何时被调用?(A)A、创建对象时B、类定义时C、使用对象的方法时D、使用对象的属性时16.抽象方法:(c)A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法17.关于继承的说法正确的是:(B)A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性D、子类只继承父类的方法,而不继承属性18.关于构造函数的说法哪个正确?(C)A、一个类只能有一个构造函数B、一个类可以有多个不同名的构造函数C、构造函数与类同名D、构造函数必须自己定义,不能使用父类的构造函数19.关于super的说法正确的是:BA、是指当前对象的内存地址B、是指当前对象的父类对象的内存地址C、是指当前对象的父类D、可以用在main()方法中20.覆盖与重载的关系是(A)A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事21.下列关于finally的说法正确的是?(C)A.无论程序是否找到合适的例外控制器,都会去执行finally语句B.finally语句应该放在所有例外控制器的最前面C.如果程序在前面的例外控制器中匹配到了合适例外,就不再执行finally语句D.如果程序在前面的例外控制器中匹配到了多个合适的例外,就不再执行finally语句22.对于已经被定义过可能抛出例外的语句,在编程时:(A)A、必须使用try/catch语句处理例外,或用throws将其抛出B.如果程序错误,必须使用try/catch语句处理例外C.可以置之不理D.只能使用try/catch语句处理23.下列哪个关键字用于实现接口(A)A.implements B.implementC. importD. imports24.字符流与字节流的区别在于(B)A.前者带有缓冲,后者没有B.前者是块读写,后者是字节读写C. 二者没有区别,可以互换使用D. 每次读写的字节数不同25.下列流中哪个不属于字符流(D)A.InputStreamReaderB.BufferedReaderC. FilterReaderD. FileInputStream三、程序阅读与填空题(每题6分,共30分)1. 阅读程序给出结果下列程序段用来计算Fibonacci序列的第0,1,2,…各项public class Fibonacci {public static void main(String args[]) {System.out.println("Fibonacci 第4项="+(1)fib(3));}static int fib(int n) {if (n==0||n==1) {return n;}else {int sum=fib(n-1)+fib(n-2);return sum;}}}输出结果为:(2)22. 多线程CPU调度// TwoThreads.java源代码如下:public class TwoThreadsDemo{public static void main(String[] args){new SimpleThread("Cat"). Run()(1);new SimpleThread("Mouse"). Run()(2);}}class SimpleThread extends Thread{public SimpleThread(String str){super(str);}public void run(){for (int i=0;i<10;i++){System.out.println(i+" "+getName());try{sleep((long)(Math.random()*1000));}catch (InterruptedException e){}}System.out.println("DONE! "+getName());}}3. 按注释提示完成文件复制的程序//FileStream源代码如下:import java.io.*;class FileStream {public static void main(String args[]) {try{File inFile=new File("file1.txt"); //指定源文件File outFile=new File("file2.txt"); //指定目标文件FileInputStream fis=(1)new FILEinputSream(infile);FileOutputStream fos=new FileOutputStream(outFile);int c;//逐字节从源文件中输入,再输出到fos流while((c=fis.read())!=-1)(2)fos.write(fis,0,c) ;fis.close();fos.close();}catch(Exception e) {System.out.println("FileStreamsTest: "+e);}}}4. 阅读程序,给出结果//B.java源代码如下:class A{int x=100;}class B extends A{int x=200;void prt(){System.out.println("SubClass: "+x);System.out.println("SuperClass: "+super.x);}public static void main(String args[]){new B().prt();}}输出结果是(1)200(2)1005. 阅读程序,给出结果:// AbstractClassDemo.java源代码如下:abstract class Shape { //定义抽象类Shape和抽象方法displayabstract void display();}class Circle extends Shape {void display() { //实现抽象类的方法System.out.println("Circle");}}class Rectangle extends Shape {void display() { System.out.println(“Rectangle”) //实现抽象类的方法System.out.println("Rectangle");}}class Triangle extends Shape {void display() { //实现抽象类的方法System.out.println("Triangle");}}public class AbstractClassDemo{public static void main(String args[]){(new Circle()).display(); //定义无名对象来调用对应的display方法(new Rectangle()).display();(new Triangle()).display();}}输出结果是:(1)circle(2)rctanglee(3)triangle。