收藏 分享(赏)

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

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

1、JAVA 语言程序设计考试试题及部分答案一、单选题:(每题 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; default : k/=j;

2、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) protected15设 int

3、型变量 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 x B) class x extends y C) st

4、atic 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) . C) x( int m, int n) . D) x( int h

5、,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, extends, float, double D) public, pr

6、ivate, 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; 下面赋值不正确的语句是( D )。 A) j=i; B) j=(long)

7、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. 定义类就是定义一种抽象的_父类_,它是所有具有一定共性的对象的抽象描述。 7. 在 Java语言中,使用_平台无

8、关_、_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(String args ) if( args.length !=_0_) for(int i=0

9、; 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+的虚类的相同和不同处。 由于 Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机

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

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

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

13、以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 4,数组有没有 length()这个方法? String有没有 length()这个方法?举例说明使用方法? 数组没有 length()这个方法,有 length的属性。 String 有有 length()这个方法。 5. Java中的异常处理机制的简单原理和应用。 当 JAVA程序违反了 JAVA的语义规则时,JAVA 虚拟机就会将发生的错误表示为一个异常。违反语义规则包括 2种情况。一种是 JAVA类库内置的语义检查。例如数组下标越界,会引发 IndexOutOfBoundsExce

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

15、 3整除的数的和,以及不能被 3整除的数的各位数字之和。 3、设计一个程序求解 e的值。精度达到 1.0e-6, 4、请设计一个对 N个数进行排序的程序一、选择题(每道题只有一个正确答案,每小题 2分,共 30分)15 道题1、关于 Java语言叙述错误的是:( C )AJava 语言具有跨平台性BJava 是一种面向对象的语言CJava 语言中的类可以多继承D Java的垃圾收集机制自动回收程序已不再使用的对象2、以下叙述正确的是:( B )的确台 aA构造方法必须是 public方法Bmain 方法必须是 public方法CJava 应用程序的文件名可以是任意的D构造方法应该声明为 voi

16、d类型3、关于 Java中数据类型叙述正确的是:( B )A、整型数据在不同平台下长度不同Bboolean 类型数据只有 2个值,true 和 falseC数组属于简单数据类型D Java中的指针类型和 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+);Cwhile (x5);Dfor(; ;);6、关于类和对象的叙述正确的是:( A )AJava 的类分为两大部分:系统定义的类和用户自定义的类B类的静态属性

17、和全局变量的概念完全一样,只是表达形式不同C类的成员至少有一个属性和一个方法D类是对象的实例化7、以下有关构造方法的说法,正确的是:( A )A一个类的构造方法可以有多个B构造方法在类定义时被调用C构造方法只能由对象中的其它方法调用D构造方法可以和类同名,也可以和类名不同8、以下有关类的继承的叙述中,正确的是:( D )A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B子类只能继承父类的方法,不能继承父类的属性C子类只能继承父类的非私有属性,不能继承父类的方法D子类不能继承父类的私有属性9、下列属于容器的组件有:( B )AJButtonBJPaneCCanvasDJTex

18、tArea10、 void 的含义:( C )A方法体为空B定义的方法没有形参C定义的方法没有返回值D方法的返回值不能参加算术运算11、关于 Java中异常的叙述正确的是:( D )A异常是程序编写过程中代码的语法错误B异常是程序编写过程中代码的逻辑错误C异常出现后程序的运行马上中止D异常是可以捕获和处理的12、所有的异常类皆继承哪一个类?( C )Ajava.io.ExceptionBjava.lang.ThrowableCjava.lang.ExceptionDjava.lang.Error13、下面哪个不是 java语言中的关键字?( B )AlongBsizeofCinstanceof

19、Dconst14、为实现进程之间的通信,需要使用下列那种流才合适?(D)AData streamBFile streamCBuffered streamDPiped stream15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D )AActionListenerBMouseListenerCMouseMotionListernDItemListener二、填空题(每空 1分,共 20分)1、面向对象程序设计所具有的基本特征是:_抽象性_,_封装性_,_继承性_,_多态性_2、数组 x定义如下int x =new int32 则 xlength 的值为_3_ ,x0.l

20、ength 的值为_2_。3、Java 中实现多线程一般使用两种方法,一是_继承 Thread类_,二是_实现 Runnable方法_4、Java 的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)_FlowLayout_,_GridLayout_,_BorderLayout_,_CardLayout_5、Applet 常用的方法是:_init()_、_run()_、_stop()_和 destroy()。三、阅读程序,写出程序的输出结果(每题 5分,共 20分)1、class Aprivate int privateVar;A(int _priv

21、ateVar)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);System.out.println(a.isEqualTo(b);程序的输出结果为:_false_2、class A double f(double x, double y) re

22、turn 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 program output is 10_3、public class Unchecked public static void main(String args) tr

23、y 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 System.out.println(“E“);System.out.println(“F“);static void wrench() throw new NullPointe

24、rException();程序的输出结果为: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 is “ + a5);static int calculate(int x, int y) for (int i = 1; i x.length; i+)if (y x.l

25、ength)xi = xi - 1 + 1;return x0;程序的输出结果为:the value of a0 is 0the value is a5 is 51. 下面哪些是 short型的取值范围 CA. -27 27-1B. 0 216-1C. -215 215-1D. -231 231-12. 下面哪些是合法的标识符 ABEA. $personsB. TwoUsersC. *pointD. thisE. _endline3. 哪些是将一个十六进制值赋值给一个 long型变量 DA. long number = 345L;B. long number = 0345;C. long nu

26、mber = 0345L;D. long number = 0x345L;4. 下面的哪些程序片断可能导致错误。 BDA.String s = “Gone with the wind“;String t = “ good “;String k = s + t;B.String s = “Gone with the wind“;String t;t = s3 + “one“;C.String s = “Gone with the wind“;String standard = s.toUpperCase();D.String s = “home directory“;String t = s -

27、 “directory“;5. 在 / point x处的哪些声明是合法的 DEclass Person private int a;public int change(int m) return m; public class Teacher extends Person public int b;public static void main(String arg)Person p = new Person();Teacher t = new Teacher();int i;/ point xA. i = m;B. i = b;C. i = p.a;D. i = p.change(30);

28、E. i = t.b;6. 当 Frame的大小被改变时, Frame中的按钮的位置也可能被改变,请问此时使用的是什么布局管理器 BA. BorderLayoutB. FlowLayoutC. CardLayoutD. GridLayout7. 给出下面的代码片断1 public void create() 2 Vector myVect;3 myVect = new Vector();4 下面的哪些陈述是正确的? ADEA. 第二行的声明不会为变量 myVect分配内存空间。 /指的是堆空间, 只是在栈 中分配;这里不用较真.自己理解就好;B. 第二行的声明分配一个到 Vector对象的引用

29、的内存空间。C. 第二行语句创建一个 Vector类对象。D. 第三行语句创建一个 Vector类对象。E. 第三行语句为一个 Vector类对象分配内存空间。/分配栈空间,相当于指针, 但是不分配“到 Vector对象的引用的空间“; 选项二的意思是分配了堆空间;8. 下面的哪些答案可以用以表示八进制值 8? AA. 010B. 0x10C. 08D. 0x89. 哪些不是 Java关键字 ABA. TRUEB. sizeofC. constD. superE. void10. 下面的哪些叙述为真。 ADA. equals()方法判定引用值是否指向同一对象。 /不说是谁的就是默认的B. =

30、操作符判定两个分立的对象的内容和类型是否一致。C. equals()方法只有在两个对象的内容一致时返回 true。D. 类 File重写方法 equals()在两个分立的对象的内容和类型一致时返回 true。 /当两个独立的对象的内容和类型一致;11. 下面关于继承的哪些叙述是正确的。 ADA. 在 java中只允许单一继承。B. 在 java中一个类只能实现一个接口。C. 在 java中一个类不能同时继承一个类和实现一个接口。D. java的单一继承使代码更可靠。12. 第十行的声明将调用哪些方法. D1 class Person 2 public void printValue(int i

31、, int j) 3 public void printValue(int i) 4 5 public class Teacher extends Person 6 public void printValue() 7 public void printValue(int i) 8 public static void main(String args)9 Person t = new Teacher();10 t.printValue(10);11 12 A. 第 2行的方法B. 第 3行的方法C. 第 6行的方法D. 第 7行的方法13. 下面哪些不是 java的原始数据类型 BCA. s

32、hortB. BooleanC. unitD. float14. 下面的哪些关键字通常用来对对象的加锁,该标记使得对对象的访问是排他的? BA. transientB. synchronizedC. serializeD. static15. main()方法的返回类型是什么? BA. intB. voidC. booleanD. static16. 给出以下关于一个使用适当的字符间距的字体的 TextField的表达式TextField t = new TextField(“they are good“,40);/40指的是像素哪些叙述是对的? DA. 被显示的字符串可以使用多种字体。B.

33、一行中最大的字符数是 40C. 显示的宽度正好是 40个字符宽。D. 用户可以编辑字符。17. 关于垃圾收集的哪些叙述是对的? BA. 程序开发者必须自己创建一个线程进行内存释放的工作。B. 垃圾收集将检查并释放不再使用的内存。C. 垃圾收集允许程序开发者明确指定并立即释放该内存。D. 垃圾收集能够在期望的时间释放被 java对象使用的内存。18. 给出下面的代码1 public class Test 2 int m, n;3 public Test() 4 public Test(int a) m=a; 5 public static void main(String arg) 6 Test

34、 t1,t2;7 int j,k;8 j=0; k=0;9 t1=new Test();10 t2=new Test(j,k);11 12 在编译时哪行将导致一个错误? DA. 第 3行B. 第 5行C. 第 6行D. 第 10行19. Thread的方法 resume()负责恢复哪些线程的执行? DA. 通过调用 stop()方法而停止的线程。B. 通过调用 sleep()方法而停止运行的线程。C. 通过调用 wait()方法而停止运行的线程。D. 通过调用 suspend()方法而停止运行的线程。 /已经过期了20. 有关线程的哪些叙述是对的? BDA. 一旦一个线程被创建,它就立即开始运

35、行。B. 使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。C. 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。/比它 优先级高的进程抢占了 cpu,它运行的时间根据操作系统而定;D. 一个线程可能因为不同的原因停止并进入就绪状态。/可运行状态21. 给出下面的不完整的方法12 success = connect();3 if (success=-1) 4 throw new TimedOutException();5 6 已知 TimedOutException 不是一个 RuntimeException。下面的哪些声明可以被加入第一行完成此方法的声

36、明 BCA. public void method()B. public void method() throws ExceptionC. public void method() throws TimedOutExceptionD. public void method() throw TimedOutExceptionE. public throw TimedOutException void method()22. 给出下面的代码class Person String name,department;public void printValue()System.out.println(“

37、name is “+name);System.out.println(“department is “+department);public class Teacher extends Person int salary;public void printValue()/ 完成父类代码中 printValue()相同的工作System.out.println(“salary is “+salary);下面的哪些表达式可以加入 printValue()方法的注释部分? DA. printValue();B. this.printValue();C. person.printValue();D.

38、super.printValue();23. 下面的哪些赋值语句是错的? AA. float f = 11.1;B. double d = 5.3E12;C. double d = 3.14159;D. double d = 3.14D;24. 给出下面的不完整的类代码class Person String name, department;int age;public Person(String n) name = n; public Person(String n, int a) name = n; age = a; public Person(String n, String d, int a) / 完成 Person(String n, int a)的逻辑

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报