JAVA语言程序设计期末考试.试题.及其答案.doc

上传人:一*** 文档编号:809177 上传时间:2019-07-16 格式:DOC 页数:60 大小:108.50KB
返回 下载 相关 举报
JAVA语言程序设计期末考试.试题.及其答案.doc_第1页
第1页 / 共60页
JAVA语言程序设计期末考试.试题.及其答案.doc_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《JAVA语言程序设计期末考试.试题.及其答案.doc》由会员分享,可在线阅读,更多相关《JAVA语言程序设计期末考试.试题.及其答案.doc(60页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、JAVAJAVA 语言程序设计考试试题及部分答案语言程序设计考试试题及部分答案一、单选题:(每题 1 分)下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1下列语句序列执行后,k 的值是( B )。 int m=3, n=6, k=0; while( (m+) 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

2、; default : k/=j; A) 31 B) 32 C) 2 D) 3310下面语句执行后,i 的值是( B )。 for( int i=0, j=1; j y | x z B) x != y C) z ( y + x ) D) x 3 ); A) 16 B) 8 C) 4 D) 213以下由 for 语句构成的循环执行的次数是( B )。 for ( int i = 0; true ; i+) ; A) 有语法错,不能执行 B) 无限次 C) 执行 1 次 D) 一次也不执行14定义类头时能使用的修饰符是(C )。 A) private B) static C) abstract D

3、) protected15设 int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值, 正确的 switch 语句是 D )。 A) switch (x + y) B) switch ( ch + 1 ) . . C) switch ch D) switch ( a + b ); . . 16. 下列最终属性 i 的定义中,正确的是( )。 A) static final int i=100; B) final int i=1.2; C) final i=w; D) final char i;17. 下列类定义中,不正确的是(C )。 A) class

4、x . B) class x extends y . C) static class x implements y1,y2 . D) public class x extends Applet . 18. 设 x、 y 为已定义的类名,下列声明 x 类的对象 x1 的语句中正确的是( )。 A) static x x1; B) public x x1=new x(int 123); C) y x1; D) x x1=x( );19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是(B )。 A) x( int m) . B) void x( int m

5、) . C) x( int m, int n) . D) x( int h,int m,int n) . 20. 下列方法定义中,正确的是( A )。 A) int x( ) char ch=a; return (int)ch; B) void x( ) .return true; C) int x( ) .return true; D) int x( int a, b) return a+b; 21. 用于定义类成员的访问控制权的一组关键字是( D )。 A) class, float, double, public B) float, boolean, int, long C) char,

6、 extends, float, double D) public, private, protected 22. 不能构成循环的语句是( C )。 A) for 语句 B) while 语句 C) switch 语句 D) do_while 语句23. 下列程序段执行后 b3 的结果是( D )。 boolean b1=true, b2, b3; 24= b1 ? b1 : b2; A) 0 B) 1 C) true D) false25 下面数据结构中,属于非线性的是( B )。 A) 线性表 B) 树 C) 队列 D) 堆栈11. 设有定义 int i=123; long j=456;

7、下面赋值不正确的语句是( D )。 A) j=i; B) j=(long)i; C) i=(int)j; D) i=j;二、填空题:(每空 1 分) 1. 构造函数_没_有返回值。 2. Java 语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float 和 _ double _两种具体类型。 3. 创建类对象的运算符是_ new。 4. 当整型变量 n 的值不能被 13 除尽时,其值为 false 的 Java 语言表达式是_n%13=0_ 。 5. 在 Java 语言中,所有的数组都有一个 lenght 属性,这个属性存储了该数组的_元素个数。 6. 定义类就是定义一种抽象

8、的_父类_,它是所有具有一定共性的对象的抽象描述。 7. 在 Java 语言中,使用_平台无关_、_java 虚拟机_等技术,实现软件重用。8. 表达式 3/6 * 5 的计算结果是_0_ 。 9.下面是一个类的定义: public class _int Myclass_ int x, y; Myclass ( int i, _=0_) / 构造函数 x=i; y=j; 10.下面是一个 Java Application 的主类的定义,其功能是输出所有命令行参数。 import java.io.*; public class MyClass public static void main(St

9、ring args ) if( args.length !=_0_) for(int i=0; i xj+1) w=xj; xj=xj+1; xj+1=w; /* if(i=1|i=2) ShowArray(x); if(i=2) break; */ public static void ShowArray(int b) for(int i=0; iy; System.out.println(“xy=“+flag); flag=zw; System.out.println(“zw=“+flag); 四、问答题:(每题 5 分, ) 1. Java 的接口和 C+的虚类的相同和不同处。 由于 J

10、ava 不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是 public static,所有方法默认情况下是 public.一个类可以实现多个接口。 2. 垃圾回收的优点和原理。并考虑 2 种回收机制。 Java 语言中一个显著的特点就是引入了垃圾回收机制,使 c+程序员最头疼的内存管理的问题迎刃而解,它使得 Java 程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制

11、,Java 中的对象不再有“作用域“的概念,只有对象的引用才有“作用域“。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 3,谈谈 final, finally, finalize 的区别。 Final修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract

12、的,又被声明为 final 的。将变量或方法声明为 final,可以保证它们在使用中不被改变。被声明为 final 的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为 final 的方法也同样只能使用,不能重载。 Finally再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话) 。 Finalize方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这

13、个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 4,数组有没有 length()这个方法? String 有没有 length()这个方法?举例说明使用方法? 数组没有 length()这个方法,有 length 的属性。 String 有有 length()这个方法。 5. Java 中的异常处理机制的简单原理和应用。 当 JAVA 程序违反了 JAVA 的语义规则时,JAVA 虚拟机就会将发生的错误表示为一个异常。违反语义规则

14、包括 2 种情况。一种是 JAVA 类库内置的语义检查。例如数组下标越界,会引发 IndexOutOfBoundsException;访问 null 的对象时会引发 NullPointerException.另一种情况就是 JAVA 允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用 throw 关键字引发异常。所有的异常都是 java.lang.Thowable 的子类。 五、程序设计:(每题 11 分,共 33 分) 1、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我 ABC“4,应该截为“我 A

15、B“,输入“我 ABC 汉 DEF“,6,应该输出为“我 ABC“而不是“我 ABC+汉的半个“。 2、编程求解:所有两位整数能被 3 整除的数的和,以及不能被 3 整除的数的各位数字之和。 3、设计一个程序求解 e 的值。精度达到 1.0e-6, 4、请设计一个对 N 个数进行排序的程序一、选择题(每道题只有一个正确答案,每小题 2 分,共 30 分)15 道题1、关于 Java 语言叙述错误的是:( C )AJava 语言具有跨平台性BJava 是一种面向对象的语言CJava 语言中的类可以多继承DJava 的垃圾收集机制自动回收程序已不再使用的对象2、以下叙述正确的是:( B )的确台

16、aA构造方法必须是 public 方法Bmain 方法必须是 public 方法CJava 应用程序的文件名可以是任意的D构造方法应该声明为 void 类型3、关于 Java 中数据类型叙述正确的是:( B )A、整型数据在不同平台下长度不同Bboolean 类型数据只有 2 个值,true 和 falseC数组属于简单数据类型DJava 中的指针类型和 C 语言的一样4、设 int x=1,float y=2,则表达式 x / y 的值是:( D )A0B1C2D以上都不是5、以下语句有语法错的是:( A )Aint x=1;y=2;z=3Bfor (int x=10,y=0;x0;x+);

17、Cwhile (x5);Dfor(; ;);6、关于类和对象的叙述正确的是:( A )AJava 的类分为两大部分:系统定义的类和用户自定义的类B类的静态属性和全局变量的概念完全一样,只是表达形式不同C类的成员至少有一个属性和一个方法D类是对象的实例化7、以下有关构造方法的说法,正确的是:( A )A一个类的构造方法可以有多个B构造方法在类定义时被调用C构造方法只能由对象中的其它方法调用D构造方法可以和类同名,也可以和类名不同8、以下有关类的继承的叙述中,正确的是:( D )A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B子类只能继承父类的方法,不能继承父类的属性C子类只

18、能继承父类的非私有属性,不能继承父类的方法D子类不能继承父类的私有属性9、下列属于容器的组件有:( B )AJButtonBJPaneCCanvasDJTextArea10、void 的含义:( C )A方法体为空B定义的方法没有形参C定义的方法没有返回值D方法的返回值不能参加算术运算11、关于 Java 中异常的叙述正确的是:( D )A异常是程序编写过程中代码的语法错误B异常是程序编写过程中代码的逻辑错误C异常出现后程序的运行马上中止D异常是可以捕获和处理的12、所有的异常类皆继承哪一个类?( C )Ajava.io.ExceptionBjava.lang.ThrowableCjava.l

19、ang.ExceptionDjava.lang.Error13、下面哪个不是 java 语言中的关键字?( B )AlongBsizeofCinstanceofDconst14、为实现进程之间的通信,需要使用下列那种流才合适?(D)AData streamBFile streamCBuffered streamDPiped stream15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)AActionListenerBMouseListenerCMouseMotionListernDItemListener二、填空题(每空 1 分,共 20 分)1、面向对象程序设计所

20、具有的基本特征是:_抽象性_,_封装性_,_继承性_,_多态性_2、数组 x 定义如下int x =new int32 则 x.length 的值为_3_,x0.length 的值为_2_。3、Java 中实现多线程一般使用两种方法,一是_继承 Thread 类_,二是_实现 Runnable 方法_4、Java 的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)_FlowLayout_,_GridLayout_,_BorderLayout_,_CardLayout_5、Applet 常用的方法是:_init()_、_run()_、_stop()_

21、和 destroy()。三、阅读程序,写出程序的输出结果(每题 5 分,共 20 分)1、class Aprivate int privateVar;A(int _privateVar)privateVar=_privateVar;boolean isEqualTo(A anotherA)if(this.privateVar = anotherA.privateVar)return true;elsereturn false;public class Bpublic static void main(String args)A a = new A(1);A b = new A(2);Syste

22、m.out.println(a.isEqualTo(b);程序的输出结果为:_false_2、class A double f(double x, double y) return x * y;class B extends A double f(double x, double y) return x + y;public class Test public static void main(String args) B obj = new B();System.out.println(“The program output is “ + obj.f(4, 6);程序的输出结果为:_ The

23、 program output is 10_3、public class Unchecked public static void main(String args) try method(); catch (Exception e) System.out.println(“A“); finally System.out.println(“B“);static void method() try wrench();System.out.println(“C“); catch (ArithmeticException e) System.out.println(“D“); finally Sys

24、tem.out.println(“E“);System.out.println(“F“);static void wrench() throw new NullPointerException();程序的输出结果为:EAB4、public class Test public static void main(String args) int x;int a = 0, 0, 0, 0, 0, 0 ;calculate(a, a5);System.out.println(“the value of a0 is “ + a0);System.out.println(“the value is a5

25、is “ + a5);static int calculate(int x, int y) for (int i = 1; i 10 );public static void main(String arg) int i=10;Test t= new Test();t.printValue(i);输出将是什么? CA. 8B. 9C. 10D. 1128. 下面的有关声明的哪些叙述是对的? BCA. 对原始数据类型例如 boolean,byte 的变量的声明不会为该变量分配内存空间。B. 对原始数据类型例如 boolean,byte 的变量的声明将为之分配内存空间。C. 非原始数据类型例如 S

26、tring,Vector 的变量的声明不会为该对象分配内存。D. 非原始数据类型例如 String,Vector 的变量的声明会为该对象分配内存。/该对象指的是堆空间的对象;指向该对象的引用只能叫变量;29. 类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制? DA. publicB. 不加修饰符C. protectedD. private /面向对象编程 P196 页的表格,private 一行有错误30. 给出下面的代码片断1 String str = null;2 if (str != null) 4 5 else if (str != nul

27、l) 【答案】B3.以下是应用程序中定义的静态方法 printBinary,若在其 main 方法中有方法调用语句 printBinary(2),则输出的结果是 ( )。static void printBinary(int i) System.out.print(i + “的 2 进制数表示为:t“);for(int j = 31; j =0; j-)if(1 max)max=xi;System.out.println(max);A) 678 B) 122 C) -987 D) 33 【答案】A8.下列语句序列执行后,k 的值是( )。int x=2, y=5, k=0;switch( x%

28、y ) case 0: k=x+y; break;case 1: k=x-y; break;case 2: k=x*y; break;default: k=x/y; break;System.out.println(k);A) 2 B) 5 C) 10 D) 0 【答案】C9. 下面的程序输出的结果是( )public class A implements B public static void main(String args) int i;A c1 = new A();i= c1.k;System.out.println(“i=“+i);interface B int k = 10;A)

29、 i=0 B) i=10 C) 程序有编译错误 D) i=true 【答案】B10应用程序的 main 方法中有以下语句,则输出的结果是 ( )。int b=1, 2, 3, 4,5, 6,7;int sum=0;for(int i=0;ib.length;i+) for(int j=0;jbi.length;j+) sum+=bij; System.out.println(“sum=“+sum);A) 28 B)6 C) 9 D) 13 【答案】A11. 有整型数组:int x=12,35,8,7,2;,则调用方法 Arrays.sort(x)后,数组 x 中的元素值依次是( ).A) 2

30、7 8 12 35 B) 12 35 8 7 2 C) 35 12 8 7 2 D) 8 7 12 35 2【答案】A12.编译和运行下面的应用程序,并在命令行界面输入 12345,则回车后屏幕输出的结果是( ).public class A public static void main(String args) throws IOExceptionBufferedReader buf=new BufferedReader(new InputStreamReader(System.in);String str=buf.readLine();int x=Integer.parseInt(str

31、);System.out.println(x/100); A) 45 B)5 C) 123 D) 12345 【答案】C13.下面的程序段执行后输出的结果是( )。StringBuffer buf=new StringBuffer(“Beijing2008“);buf.insert(7,“);System.out.println(buf.toString();A) Beijing2008 B) Beijing2008 C) Beijing2008 D) Beijing#2008 【答案】A14. 下面的程序编译运行后输出的结果是( )。public class A implements Run

32、nable public static void main(String argv) A a = new A();Thread t = new Thread(a);t.start();public void run() while(true) tryThread.currentThread().sleep(1000);catch(InterruptedException e)System.out.println(e.toString(); System.out.println(“looping while“);A) 在屏幕上重复输出“looping while“。 B) 在屏幕上输出一次“lo

33、oping while“。C) 没有结果输出。 D) 以上说法都错误。 【答案】A15.下面的程序段创建了 BufferedReader 类的对象 in,以便读取本机 d 盘 my 文件夹下的文件 1.txt。File 构造函数中正确的路径和文件名的表示是( )。File f=new File(填代码处);file=new FileReader(f);in=new BufferedReader(file);A) “1.txt“ B) “d:my1“ C) “d:my1.txt“ D) “d: my1.txt“ 【答案】C二、多选题(本大题 10 小题,每小题 2 分,共 20 分)1.下面的说

34、法正确的是( )。A) Java 语言是面向对象的、解释执行的网络编程语言。B) Java 语言具有可移植性,是与平台无关的编程语言。 C) Java 语言可对内存垃圾自动收集。D) Java 语言编写的程序虽然是“一次编译,到处运行” ,但必须要java 的运行环境。【答案】ABCD2.下面 main()方法的定义哪些是正确的( )?A)public static void main(String args) B)public static void main(String) C)public static void main(String args) D)public static voi

35、d main(String x) 【答案】ACD3.定义变量如下:char c=w; int i=8; long L=15; float f=8.9f;以下赋值语句正确的是( )。A) i=c+i; B) c=c+i; C) L=f+L; D) f=i+L+f; 【答案】AD4.下面哪些关键字能用来控制对类成员的访问( )?A)public B)protected C)private D)default 【答案】ABC5.面向对象程序设计的基本特征是( )。A)抽象 B)封装 C)继承 D)多态 【答案】ABCD6.下面关于类的说法正确的是( )。A)类是 Java 语言中的一种复合数据类型。

36、 B)类中包含数据变量和方法。C)类是对所有具有一定共性的对象的抽象。 D) Java 语言的类只支持单继承。 【答案】ABCD7. 编译并运行下面的程序,运行结果为( ).public class T1 public static void main (String args)T1 a=new T1();a.method(8);a.method(1.2f); void method(float i) System.out.println(“float: “+i);void method(long i) System.out.println(“long: “+i);A)程序有编译错误,因为两个

37、 method()方法必须定义为静态(static)的。B)程序可以编译运行,输出结果为:long: 8float: 1.2C)程序可以编译运行,输出结果为:float: 1.2long: 8D) 程序中定义的两个参数不同的 method 方法称为方法重栽。 【答案】BD8.下面是在命令行运行 Java 应用程序 A,怎样才能在 main(String args)方法中访问单词“first“ ( )?java A the first snow , the first snow came.A)args0 B)args1 C)args2 D)args5 【答案】BD9.编译并运行下面的程序,运行结

38、果为( ).public class A public static void main (String args) A a=new B( ); a.test(); void test() System.out.print (“A“); class B extends A void test() super.test(); System.out.println(“B“); A)子类 B 定义了与父类 A 中同名的方法 test,java 中称为方法的覆盖。 B)代码可以编译运行,并输出结果:AB。C)代码可以编译运行,并输出结果:A。 D)子类 B 定义了与父类 A 中同名的方法test,ja

39、va 中称为方法的重载。【答案】AB10.下面哪个说法正确( )?A)如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。B)如果源文件包含 import 语句,则该语句必须是除空行和注释行外的第一个语句行。C)如果某源文件包含 package 语句,则该语句必须是第一个非空、非注释行。D)接口中的方法必定是抽象方法,但可以不用关键字 abstract 修饰。 【答案】ABCD三、填空题(本大题 10 小题,每小题 1 分,共 10 分)1. 创建类的对象时,使用运算符_给对象分配内存空间。2. 定义类的构造方法不能有返回值类型,其名称与_名相同。3. Java 语言中关键

40、字_表示双精度类型。4. 若有定义:float b=1.1f, 3.5f, 6.8f;,则 b.length()的值是_。5若有类定义:class B extends A 则类 B 是类 A 的_。6接口中的成员只有静态常量和_。7. 在子类中使用关键字_做前缀可调用被子类覆盖的父类中的方法。8. 关键字_用于导入包中的类到程序中,供程序中使用。9. Java 语言中, 通常把可能发生异常的方法调用语句放到 try 块中,并用紧跟其后的_块来捕获和处理异常。10. 程序中实现多线程的方法有两种:继承_类和实现 Runnable 接口。【答案】1.new 2.类 3.double 4. 3 5.

41、子类 6. 抽象方法 7.super 8. import 9. catch 10. Thread四、阅读程序,回答问题(本大题 5 小题,每小题 5 分,共 25 分)1. (5 分)1: public class Output1 2: public static void main(String arge) 3: int i=0;4: for ( char ch = 97; ch113; ch+,i+) 5: if( i % 8 = 0 )6: System.out.println(“ “);7: System.out.print(“t“ +ch); 8: 9: 10: (1)程序第 5、6

42、 行的 if 语句的功能是什么? (2 分) (2)程序输出的结果有几行?(3分)【答案】 (1)每打印 8 个字符,则换行。(2)输出的结果有 2 行。2. (5 分)1: import java.util.Arrays;2: 3: public class SortArray 4: public static void main(String args) 5: String str = “size“, “abs“,“length“,“class“;6: Arrays.sort(str);7: for (int i=0; istr.length; i+)8: System.out.print

43、(stri+“ “);9: 10: (1)写出程序运行后的结果。(2 分)(2)方法调用 str0.length()的返回结果是多少?(3 分)【答案】(1) abs class length size (2) 43. (5 分)1: /TestKeyListener.java2: import java.applet.Applet;3: import java.awt.*;4: import java.awt.event.*;5: 6: public class TestKeyListener extends Applet 7: 8: Color clr;9: 10: public void init() 11: 12: addKeyListener(13: new KeyAdapter() 14: public void keyTyped( KeyEvent e ) 15: if(e.getKeyChar()=r|e.getKeyCh

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com