logo资料库

大一java期末复习习题和答案.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
一、选择、填空(每题 1 分,共 30 分) 1、运行 Java 程序需要的工具软件所在的目录是__A___。 A)JDK 的 bin 目录 C)JDK 的 lib 目录 2、以下___B____不是 Java 中有效的关键字 B)JDK 的 demo 目录 D)JDKR 的 jre 目录 A)const C)false B) NULL D) this 3、下列关于 for 循环和 while 循环的说法中哪个是正确的___A____ A)while 循环能实现的操作,for 循环也都能实现 B)while 循环判断条件一般是程序结果,for 循环判断条件一般是非程序结果 C)两种循环任何时候都可替换 D)两种循环结构中都必须有循环体,循环体不能为空 4、下列关于 Java 对 import 语句规定的叙述中,错误的是___C__。 A)在 Java 程序中 import 语句可以有多个 B)在 Java 程序中 import 语句可以没有 C)在 Java 程序中 import 语句必须有一个 D)在 Java 程序中 import 语句必须引入在所有类定义之前 5、下列基本类型数据所占的字节数相同的是__A____ A) boolean 和 char C) byte 和 short B) int 和 float D) int 和 double 6、以下的选项中能正确表示 Java 语言中的一个 double 型常量的是 C A) Float.MIN_VALUE C) 2.0 7、阅读下列代码后 public class Person{ B) 1.8e-6F D)abcf’ int arr[]=new int[10]; public static void main(String args[]){ System.out.println(arr[1]); } B)编译时正确,运行时将产生错误 D)输出为空 } 正确的说法是 ____A____ A)编译时将产生错误 C)输出为零 8、下列语句序列执行后,k 的值是 C int if(i>j||m
} A) 31 10、下列语句序列执行后,ch1 的值是 D) 33 B) 32 C) 2 B char ch1='A',ch2='W'; if(ch1+2 < ch2 ) ++ch1; B) ‘B’ D) B C) ‘C’ A) ‘A’ 11.内部类是在一个类内嵌套定义的类。其特点描述错误的是(A ) (A)只能在定义它的类或程序段中或表达式内匿名使用,外部使用时必须给出类的全名 (B)可以使用它所在类的静态成员变量或实例成员变量,但不可以使用所在类中的局部变量 (C)可以作为其它类的成员,而且可访问它所在类的成员 (D)除 static 内部类外,不能在类内声明 static 成员 12、下列叙述中,错误的是__D_____ A)接口与类的层次无关 C)通过接口可了解对象的交互界面 13、System 类在哪个包中 D A) java.util 14.当方法遇到异常又不知如何处理时,下列哪种说法是正确的(C ) A.捕获异常 B.抛出异常 C.声明异常 D.嵌套异常 15. 给出一段程序,试判断哪个是正确的结果( D public class MyProgram{ B) java.io C) java.awt D) java.lang B)通过接口说明类所实现的方法 D)接口与存储空间有关 ) public static void main (String args[]){ try{ System.out.print(“Hello world ”); } finally{ System.out.println(“Finally executing”); } } } A、无法编译,因为没有指定异常 B、无法编译,因为没有 catch 子句 C、Hello world D、Hello world Finally executing 16、封装、继承 和多态是 Java 语言的三大基本特性。 17、Java 程序从 main 方法 开始执行。 18、Java 中类成员的权限修饰词有以下几种:private, public, __protected___, __默认 ____。其中, ___public_____的限定的范围最大。 19、接口中所有属性均为___public______、___static______和___final_____的。 20、Java 中所有类都是类 ___Object_____的子类。 21、final 关键字能修饰__非抽象类___、___非抽象类成员方法__、__变量___。 22、在 Java 中,3.14156D 表示的是______double______类型的数据。 23、复用代码的两种方法 复用类组合和继承 24、Java 中的基本数据类型和对象引用类型分别存储在 栈 和 栈 。 。
25、一个对象是某个类的_成员对象___,如果要建立一个属于类 Car 的对象 myCar,其语法 格式为___Car myCar=new Car()__。 26、Java 不直接支持多继承,但可以通过_____接口_______实现多继承。 27、如果有一个类 MyFrame 是 Frame 的子类,能够被不同包中的类所使用,请写出该类的 声明头 _import 28.用 static 修饰的方法,称为静态方法。它们不是对象的方法,而是整个类的方法。静态方 法只能处理用关键字 static 修饰的数据。 29.比较两个对象里面的值是否相等,可以通过实现 object 中 equals 方法的覆写来实现。 30.Java 语言通过 接口 和 类 支持多重继承,使类继承具有更灵活的扩展性。 java.awt.*________________。 二、程序分析题(共 30 分) 2.1 对下面的程序,分析程序输出结果(10 分) class Plate { Plate(int i) { System.out.println("Plate constructor"); } } class DinnerPlate extends Plate { DinnerPlate(int i) { super(i); System.out.println("DinnerPlate constructor"); } } class Utensil { Utensil(int i) { System.out.println("Utensil constructor"); } } class Spoon extends Utensil { Spoon(int i) { super(i); System.out.println("Spoon constructor"); } } class Fork extends Utensil { Fork(int i) { super(i); System.out.println("Fork constructor"); } } class Knife extends Utensil { Knife(int i) { super(i);
System.out.println("Knife constructor"); } } class Custom { Custom(int i) { System.out.println("Custom constructor"); } } public class PlaceSetting extends Custom { private Spoon sp; private Fork frk; private Knife kn; private DinnerPlate pl; public PlaceSetting(int i) { super(i + 1); sp = new Spoon(i + 2); frk = new Fork(i + 3); kn = new Knife(i + 4); pl = new DinnerPlate(i + 5); System.out.println("PlaceSetting constructor"); } public static void main(String[] args) { PlaceSetting x = new PlaceSetting(9); } } 结果: Custom constructor Utensil constructor Spoon constructor Utensil constructor Fork constructor Utensil constructor Knife constructor Plate constructor DinnerPlate constructor PlaceSetting constructor 2.2 阅读程序,分析输出结果(20 分) abstract class Base { public Base(int i) { System.out.println("Base constructor, i = " + i); } public abstract void f(); }
public class AnonymousConstructor { public static Base getBase(int i) { return new Base(i) { { System.out.println("Inside instance initializer"); } public void f() { System.out.println("In anonymous f()"); } }; } public static void main(String[] args) { Base base = getBase(47); base.f(); } System.out.println("Game constructor"+i); } class Game { Game(int i) { public class Contents{ int i; } 结果: Base constructor, i =47 Inside instance initializer In anonymous f() 三、改错题(10 分),找出错误并写出正确答案 1 2 3 4 5 6 7 8 9 10 class BoardGame extends Game { 11 12 13 14 15 16 17 18 19 20 21 22 23 double x = 0; //应定义为 float 格式 System.out.println("double argument:"); } public static main(String[] args) { } public class Demotion { } } } void f(float x) { System.out.println("f1(float)"); } void testDouble() { void Contents(int j){i=j;}//应该把 void 去掉 BoardGame(int i) { Game(i); System.out.println("BoardGame constructor"+i); //super(i); BoardGame x = new BoardGame(3); //漏写 void
f(x); } } Demotion p = new Demotion(); p.testDouble(); } public static void main(String[] args) { 24 25 26 27 28 29 30 四、编程题(每题 15 分,共 30 分) 4.1 编写 Java 应用程序实现下面数据的排序 int a[]={52, 38, 16,89, 24, 18, 0, 190, 87, 21} import java.util.*; public class Ssort { public static void main(String[] args) { int a[]={52, 38, 16,89, 24, 18, 0, 190, 87, 21}; Arrays.sort(a); System.out.println("排序之后的结果: "); for(int i = 0; i < a.length; i++){ System.out.print(a[i] + ", "); } } } 4.2 编写一个算法求 n!。 import java.util.*; import java.io.*; class aa { public static void main(String[] args) throws IOException { int sum=1,num; String str; System.out.println("请输入 n:"); BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); str=buf.readLine(); num=Integer.parseInt(str); if(num!=0) { for(int i=1;i<=num;i++) { sum=sum*i; } } else{ System.out.println("0 的阶乘是 0"); } System.out.println("n 的阶乘是:"+sum);}}
分享到:
收藏