java期末考试复习题及答案.pdf
Java 程序设计课程试卷1使用 Java 语言编写的源程序保存时的文件扩展名是( B )。(A ) .class (B).java (C).cpp (D).txt 2设 int a=-2,则表达式a3 的值为( C )。(A ) 0 (B)3 (C)8 ( D)-1 3设有数组的定义int a = new int3,则下面对数组元素的引用错误的是( C )。(A)a0; (B)aa.length-1; (C)a3; (D)int i=1; ai; 4在类的定义中可以有两个同名函数,这种现象称为函数( D )。(A)封装(B)继承(C )覆盖(D)重载5在类的定义中构造函数的作用是( D )。(A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量6下面关键字中,哪一个不是用于异常处理语句( B )。(A)try (B)break (C)catch (D)finally 7类与对象的关系是( A )。(A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例8下面哪一个是Java 中不合法的标识符( D )。(A)$persons (B)twoNum (C)_myVar (D)*point 9为 AB类的一个无形式参数无返回值的方法method 书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。(A)static void method( ) ( B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( C )。(A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D )List myList=new List( ) 11.Java 源文件和编译后的文件扩展名分别为(?B? )?(A) .class和? .java? (B).java和 .class? ? (C).class和? .class? ? (D) .java和? .java 12. 在 Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。(A) start( ) (B) stop( ) (C) init( ) ( D) paint( )13. 对于一个Java 源文件, import, class定义以及package 正确的顺序是: ( A ) ( A) package,import,class?(B) class,import,package (C) import,package,class? (D) package,class,import 14. 下面哪个是非法的:( D ) (A) int I = 32;? ? (B) float f = 45.0;? ? (C) double d = 45.0;? ? ( D) char c = u ;/ 符号错15Java 语言使用的字符码集是( D ) (A) ASCII (B) BCD (C) DCB ( D) Unicode16. 如果一个类的成员变量只能 在所在类中使用,则该成员变量必须使用的修饰是( C ) (A) public (B) protected ( C) private (D) static 17. 下面关于main 方法说明正确的是( B ) (A) public main(String args ) ( B) public static void main(String args ) (C) private static void main(String args ) (D) void main() 18. 哪个关键字可以对对象加互斥锁?( B ) (A) transient (B) synchronized (C) serialize (D) static 19. 关于抽象方法的说法正确的是( D ) (A) 可以有方法体 (B) 可以出现在非抽象类中(C) 是没有方法体的方法( D) 抽象类中的方法都是抽象方法20.java.io包的 File类是 ( B ) (A)字符流类( B) 字节流类 (C) 对象流类 (D) 非流类21Java application中的主类需包含main 方法,以下哪项是main 方法的正确形参?( B )A、 String args B、String argsC 、Char arg D、StringBuffer args 22以下代码段执行后的输出结果为( A )int x=3; int y=10;A、 -1B、2 C、 1 D、3 23以下关于继承的叙述正确的是()。A、在 Java 中类只允许单一继承B、在 Java 中一个类只能实现一个接口C、在 Java 中一个类不能同时继承一个类和实现一个接口D、在 Java 中接口只允许单一继承24. 若有定义: byte x=11,22,33,-66; 其中 0k 3,则对 x 数组元素错误的引用是( C )A)x5-3 B) xk C)xk+5 D )x0 25paint()方法使用哪种类型的参数? ( D ) A、Graphics B、 Graphics2D C、String D、 Color26以下哪个不是Java 的原始数据类型( B )A、int B、BooleanC、float D、char 27在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( C )A) 隐藏 B) 重写C) 重载D) Java 不支持此特性28 以下有关构造方法的说法,正确的是:( A )A 一个类的构造方法可以有多个B 构造方法在类定义时被调用C 构造方法只能由对象中的其它方法调用。 D 构造方法可以和类同名,也可以和类名不同29在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( B )。A、init() B、start()C、destroy() D、 stop() 31、有以下方法的定义,请选择该方法的返回类型( D )。ReturnType method(byte x, double y) return (short)x/y*2; A、byte B 、short C、int D、double32下列类定义中哪些是合法的抽象类的定义?( C )A、abstract Animalabstract void growl(); B、class abstract Animalabstract void growl(); C、abstract class Animalabstract void growl(); D、33有以下程序片段,下列哪个选项不能插入到行1。( D )1. 2.public class Interesting 3./do sth 4. A、import java.awt.*; B、package mypackage; C、class OtherClass D、public class MyClass 34. 设有下面两个赋值语句:a = Integer.parseInt(“12”);b = Integer.valueOf(“12”).intValue();下述说法正确的是( A )。A、a 是整数类型变量,b 是整数类对象。B、a 是整数类对象,b 是整数类型变量。C、a 和 b都是整数类对象并且值相等。D、a 和 b 都是整数类型变量并且值相等。35在编写Java Applet程序时,需在程序的开头写上( B )语句。A、import java.awt.* ; B、C、import java.io.* ; D、36下列哪一项不属于Swing 的顶层容器?( B )A)JApplet B)JTree C )JDialog D) JFrame 37. 为了使包ch4 在当前程序中可见,可以使用的语句是( A )。A)import ch4.*; B)package ch4.*; C)ch4 import; D)ch4 package; 38. 请问所有的异常类皆继承哪一个类?( B )。A)B)C) D )39进行 Java 基本的 GUI 设计需要用到的包是( C )。A)java.io B)java.sql C)java.awt D )java.rmi 40. 当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?( D )A)KeyEvent B )ActionEvent C)ItemEvent D)MouseEvent 一、选择题 (2 *15=30) 1、如下哪个是Java 中的标识符 ( A ) A、fieldname B、 super C、3number D、#number 2、设 x = 1 , y = 2 , z = 3,则表达式 y z / x 的值是 ( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、下面的代码段执行之后count 的值是什么 ( D ) int count = 1; for (int i = 1; i = 5; i+) count += i; A、5 B、1 C、15 D 、16 4、为 AB类的一个无形式参数无返回值的方法method 书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 5、下列程序段执行后的结果是( A )。String s = new String(abcdefg); for (int i=0; is.length(); i+=2) A) aceg B) ACEG C) abcdefg D) abcd 6、下面程序段执行后b 的值是 ( B )。Integer integ =new Integer(9); boolean b = integ instanceof Object; A) 9 B) true C) 1 D) false 7关于 for循环和 while循环的说法哪个正确?(B )Awhile 循环先判断后执行,for循环先执行后判断。Bwhile 循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C两种循环任何时候都不可以替换D两种循环结构中都必须有循环体,循环体不能为空8关于对象成员占用内存的说法哪个正确?(B )A同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C对象的方法不占用内存 D以上都不对9关于继承的说法正确的是:(B )A、子类将继承父类所有的属性和方法。 B、子类将继承父类的非私有属性和方法。C、子类只继承父类public方法和属性 D、子类只继承父类的方法,而不继承属性10覆盖与重载的关系是(A )A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B覆盖方法可以不同名,而重载方法必须同名Cfinal修饰的方法可以被覆盖,但不能被重载 D覆盖与重载是同一回事11、下面哪一个import命令可以为我们提供编写网络应用程序的类( D )A、import java.sql.*; B、import java.util.*; C、import java.io.*; D 、import .*; 12、如果容器组件p 的布局是BorderLayout ,则在 p 的下边中添加一个按钮b,应该使用的语句是( C )A、p.add(b); B、p.add(b,North); C 、p.add(b,South); D 、b.add(p,North); 13、Frame对象默认的布局管理器是( B )A、FlowLayout B、BorderLayout C、 CardLayout D 、 null 14、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象( A )A、FileInputStream B、FileOutputStream C、DataOutputStream D 、 FileWriter 1关于选择结构下列哪个说法正确?(B )Aif语句和 else语句必须成对出现 B if语句可以没有else 语句对应Cswitch结构中每个case 语句中必须用break 语句 D switch结构中必须有default语句2while 循环和dowhile循环的区别是:(D )A没有区别,这两个结构任何情况下效果一样 B while 循环比dowhile循环执行效率高Cwhile 循环是先循环后判断,所以循环体至少被执行一次Ddowhile循环是先循环后判断,所以循环体至少被执行一次3关于 for循环和 while循环的说法哪个正确?(B )Awhile 循环先判断后执行,for循环先执行后判断。Bwhile 循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C两种循环任何时候都不可以替换 D 两种循环结构中都必须有循环体,循环体不能为空4下列修饰符中与访问控制无关的是(D )Aprivate BPublic Cprotected Dfinal 5 void的含义:(A )A方法没有返回值B 方法体为空 C没有意义D. 定义方法时必须使用6 return语句:(C )A只能让方法返回数值 B方法都必须含有 C方法中可以有多句return D不能用来返回对象7关于对象成员占用内存的说法哪个正确?(B )A同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C对象的方法不占用内存 D以上都不对8下列说法哪个正确?( C ) A不需要定义类,就能创建对象 B 对象中必须有属性和方法C属性可以是简单变量,也可以是一个对象 D 、属性必须是简单变量9下列说法哪个正确?(A )A、一个程序可以包含多个源文件 B 、一个源文件中只能有一个类C、一个源文件中可以有多个公共类 D 、一个源文件只能供一个程序使用10关于方法main()的说法哪个正确?(C )A方法 main()只能放在公共类中 B main()的头定义可以根据情况任意更改C一个类中可以没有main() 方法 D 所有对象的创建都必须放在main() 方法中11构造函数何时被调用?(A )A、创建对象时B、类定义时C、使用对象的方法时 D 、使用对象的属性时12?抽象方法:(C )A、可以有方法体 B、可以出现在非抽象类中 C 、是没有方法体的方法 D、抽象类中的方法都是抽象方法13关于继承的说法正确的是:(B )A、子类将继承父类所有的属性和方法。 B 、子类将继承父类的非私有属性和方法。C、子类只继承父类public方法和属性 D 、子类只继承父类的方法,而不继承属性14关于构造函数的说法哪个正确?(C )A、一个类只能有一个构造函数 B 、一个类可以有多个不同名的构造函数C、构造函数与类同名 D 、构造函数必须自己定义,不能使用父类的构造函数15 this和 super : ( C ) A、都可以用在main() 方法中 B 、都是指一个内存地址 C 、不能用在main() 方法中 D 、意义相同16关于 super 的说法正确的是:( B ) A、是指当前对象的内存地址 B 、是指当前对象的父类对象的内存地址 C、是指当前对象的父类 D、可以用在main() 方法中17覆盖与重载的关系是(A)A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中 B 覆盖方法可以不同名,而重载方法必须同名Cfinal修饰的方法可以被覆盖,但不能被重载 D 覆盖与重载是同一回事18关于接口哪个正确?(A )A、实现一个接口必须实现接口的所有方法 B 一个类只能实现一个接口C接口间不能有继承关系 D 接口和抽象类是同一回事19异常包含下列哪些内容?(A )A程序执行过程中遇到的事先没有预料到的情况 B 程序中的语法错误C程序的编译错误 D 以上都是20对于已经被定义过可能抛出异常的语句,在编程时:(A )A、必须使用try catch 语句处理异常, 或用 throws 将其抛出 B 如果程序错误, 必须使用 trycatch语句处理异常C可以置之不理 D只能使用try catch 语句处理21?字符流与字节流的区别在于(D )A前者带有缓冲,后者没有 B 前者是块读写,后者是字节读写C. 二者没有区别,可以互换使用 D. 每次读写的字节数不同22下列流中哪个不属于字节流(D )AFileInputStream BBufferedInputStream C. FilterInputStream D. InputStreamReader 1. 在面向对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送 (?D ) A、调用语句 B 、命令 C 、口令 D 、消息2.Java 语言具有许多优点和特点, 下列选项中 , 哪个反映了Java 程序并行机制的特点:( B?)A、安全性 B 、多线程 C 、跨平台 D 、可移值3. 编写和运行Java applet程序与编写和运行Java application程序不同的步骤是:(B?)A、编写源代码 B 、编写 HTML 文件调用该小程序,以.html为扩展名存入相同文件夹C、编译过程 D、解释执行4.Java 的字符类型采用的是Unicode 编码方案,每个Unicode 码占用 _个比特位。( B? )A、8 B、16 C、32 D、64 5. 关于下列程序段的输出结果,说法正确的是:(?D 基本类型数值数据的默认初始值为0?)public class MyClass static int i; public static void main(String argv) A、有错误,变量i 没有初始化。B、null C、1 D、0 6. 下列代码的执行结果是:(?B? )public class Test3 public static void main(String args) A、1,1 B、1,1.0 C、1.0,1 D、1.0,1.0 9. 若要把变量声名为暂时性变量,应使用如下哪种修饰符?(C)A、protected B、provate C、transient(临时变量) D 、volatile (共享变量 ) 10. 在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同,这种面向对象程序特性称为:(?C? )A、隐藏 B、覆盖 C、重载 D、Java 不支持此特性11. 如要抛出异常,应用下列哪种子句?(?B? )A、catch B、throws C、try D、finally 12. 在使用 interface声明一个接口时,只可以使用_修饰符修饰该接口。(?D? )A、private B、protected C、private protected D、public 14. 为读取的内容进行处理后再输出,需要使用下列哪种流? (D ?) A、File stream B、 Pipe stream C、Random stream D 、Filter stream 15. 为实现多线程之间的通信,需要使用下列哪种流才合适?(?D? ) A、Filter stream B、File stream C、Random access stream D、Piped stream 16.Swing 与 aWT的区别不包括:( ?D ?)A、Swing 是由纯 Java 实现的轻量级构件 B 、Swing 没有本地代码C、Swing 不依赖操作系统的支持 D 、Swing 支持图形用户界面18. 注释的基本原则不包括:(?D? )A、注释应该增加代码的清晰度 B、注释要简洁 C 、在写代码之前写注释 D 、尽量给每一条语句加注释?C? )A、输入流和输出流(方向) B 、字节流和字符流(内容) C 、节点流和处理流(分工)填空题:1数组 x 定义: String x =new int32; x0 0 =”abc”, x0 1=”12345”;则 x.length 的值为 _2_,x01.length( ) 的值为 _5_。2、Java 语言的变量由变量名、_变量类型、变量属性、_初值 _组成。3、当程序中需要抛出异常时,应该使用_throw子句,当需要在方法中声明可能抛出的异常类型,应该使用 throws 子句。4、java.applet包中的 Applet 类定义了Applet与其运行环境之间的一个标准接口。5、Java 语言中提供的GUI 功能主要由java.awt包和 _java.swing_包中的类和接口实现。6、Java 源程序文件和字节码文件的扩展名分别为_.java _和_.class_。7、Java 语言的类型检查机制要求对于没有返回值的方法,在其前面必须加_void _进行说明。8、 类是 Java 语言的一种 引用 数据类型。9、 在 Java 语言中,所有的对象均通过new运算符分配内存,并对内存进行自动管理。10、每个 Java Application程序可以包括许多方法,但是必须有且只能有一个_?main() 方法,统一格式为public static void main(String args),它是程序执行的入口。11、 若要在程序中定义一个公用的int型的类成员变量MAX_LENGTH,且该变量的值保持常数值1000,则定义该变量的语句是publicint MAX_LENGTH=1000;。12、 子类必须通过_super _关键字调用父类有参数的构造函数。13、 在 Java 语言中,所有的类都是类_Object _的子类。14、 在 Java 程序中,通过类的定义只能实现单重继承,但通过_接口 _ 的定义可以实现多重继承关系。15、 如果在Java 程序中,需要使用java util包中的所有类,则应该在程序开始处加上语句_import java.util.*_。16、 下列程序的运行结果是_01234_ public class ex2 public static void main(String args) for(int cnt=0;cnt10;cnt+) if(cnt=5) break; 19、Java 源文件中最多只能有_1_个公共类,其它类的个数不限。? 20、在 Java 中所有实现的多维数组,实际上是由一维数组构成的_数组的数组 。? 21、设 x =15 ,则表达式 ( x + + )4 的值是 _3_。22、_抽象 _方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。23、 _ run () _方法用于定义线程的执行体. _ start() _方法用于启动线程. 24、String str1=”abc”; String str2=new String(“abc”); _fault_ 25、Java 语言中,有一个类是所有类或接口的父类,这个类的名称是 _ Object _。? 26、当启动 Applet 程序时,首先调用的方法是int () 。27、Java 语言是一种完全的面向对象的 , 适用于网络环境程序设计语言。28. 如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet ,则类 MyApplet 必须是_Applet _类的子类并且存储该源程序文件的文件名为。29. 设 int x = 2 ,则表达式 (x+)/3 的值是 _0_。30. Java提供的访问权限修饰符有4 个,即: public 、_private、protected和友元。31. Java中有两种常用的字符串类,一个是String ,另一个是 _stringBuffer。32. Java实现多线程的方法有两种,一种方法是通过创建_类的子类实现多线程,另一种方法是定义一个实现_接口的类。33. Java不支持多继承。但它允许一个类同时实现多个_接口 _,这就相当于部分实现了多继承。34. Java源文件中, _import_ _语句位于package 语句之后、类定义之前。Package、import 、class35. _ _OutputStreamWriter_类是 OutputStream 类的子类,用来处理以文件作为数据输出的数据流。1、如果将类MyClass 声明为 public,它的文件名必须是 MyClass.java 才能正常编译。2. 面向对象有三大特点分别是继承、封装 、 多态。3、设 x = 2 ,则表达式 ( x + + )3 的值是 0 。4、在 Java 的基本数据类型中,char 型采用 Unicode 编码方案,每个Unicode 码占用 2 字节内存空间5、Java 中用于两个数相等比较的运算符是:(=),用于不相等比较的运算符是( )。6、在 Java 中声明一个字符串类型的变量str的语句是: String str; ,定义一个具有10个元素的整型数组a 的语句是: int a=new int10; 。7、设有数组定义:int MyIntArray = 10,20,30,40,50,60,70; 则执行以下几个语句后的输出结果是 20+40+60=120 。 int s = 0 ; for (int i = 0 ; i MyIntArray.length ; i + + ) if ( i % 2 = = 1 ) s += MyIntArrayi ; 9、异常处理是由(try )、( catch )和 finally块三个关键所组成的程序块。1定义类的保留字是( class ),定义接口的保留字是( interface )。2Socket 通常也称为 ( 套接字 ) ,用于描述 ( IP地址 ) 和 ( 端口 ) 。3线程的优先级在( 1 )至 ( 10 )之间,数值越大( 任务越紧急 ) 。4构造方法是一种特殊的成员方法,构造方法名与( 类名 ) 相同。5Java 语言只允许单继承,指每个类只能有一个 ( 父类 ) 。6Java 源程序的扩展名是( .java ),经过编译后的程序的扩展名是( .class )。7. 在一个时间只能由一个线程访问的资源称为 ( 临界资源 ) 。访问临界资源的代码( 临界代码 ) 。8. 在多线程系统中,多个线程之间有 ( 同步 ) 和 ( 互斥 ) 两种关系。2. 在编写异常处理的Java 程序中,每个catch语句块都应该与_try_ 语句块对应,使得用该语句块来启动 Java 的异常处理机制。3. 顺序执行以下两个语句的输出结果是:10_。String s=我喜欢学习Java!; 4. Java语言通过接口支持_多重 _继承,使类继承具有更灵活的扩展性。5. 实例化对象:就是创建一个对象。用_new_运算符来实现对象的实例化。6. 我们用 _int_ 来定义一个整数,用_char_ 来定义一个字符类型,称为原始数据类型。7. 当用户在TextField中输入一行文字后,按回车,实现_ ActionListner_接口可实现对事件的响应。8. 包含 Swing 构件的 Applet (小应用程序)应该是_Applet_ 类的子类。8、在Java 程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。1、开发与运行Java 程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。2、在 Java 的基本数据类型中,char 型采用 Unicode 编码方案, 每个 Unicode 码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。四、简答题 (4 *5=20) JAVA的基本数据类型有那些? String是不是基本类型? float,int,char,byte,double,long,short,boolean。string不是基本类型2、什么是继承?通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。3、Java I/O中字符流和字节流的区别? java流在处理上分为字符流和字节流。字符流处理的单元为2 个字节的Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为1 个字节,操作字节和字节数组4. 创建线程的两种方法aThread 类的子类创建线程包括继承Thread 类,重写run 方法,在应用类中创建Thread 之类的对象和调用 start方法。B使用 Runnable 接口包括实现Runnable 接口,实现run 方法,创建THread 类对象,采用实现Runnable接口类的对象作为参数和调用start方法。5. 抽象类和接口的区别a。接口中的所有方法都是抽象的,而抽象类可以定义带有方法体的不同方法。b。一个类可以实现多个接口,而只能继承一个抽象父类。c。接口与实现它的类不构成继承体系,而抽象类是属于一个类的继承体系。d。接口中的方法默认是public abstract的,而成员变量默认是public static常量。e。implements关键字用于实现接口,extends 关键字用于继承。