1、 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 JAVA 语言程序设计考试试题及部分答案 一、单选题:(每题 1 分)下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确 的,请将正确选项的标记写在题干后的括号内。 1下列语句序列执行后,k 的值是( B )。 int m=3, n=6, k=0; while( (m+) z B) x != y C) z ( y + x ) D) x y=“+flag); flag=zw; System.out.println(“zw=“+flag); 四、问答题:(每题 5 分, )
2、 1. Java 的接口和 C+的虚 类的相同和不同处。 由于 Java 不支持多继 承,而有可能某个 类或对 象要使用分别在几个类或对象里面 的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活 性,因为接口中没有任何实现代码。当一个 类实现了接口以后,该类要实现接口里面 所有的方法和属性,并且接口里面的属性在默认状态下面都是 public static,所有方 法默认情况下是 public.一个类可以实现多个接口。 2. 垃圾回收的优点和原理。并考虑 2 种回收机制。 Java 语言中一个 显著的特点就是引入了垃圾回收机制,使 c+程序员最头疼的内 免费提供各种资格考
3、试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 存管理的问题迎刃而解,它使得 Java 程序员在编写程序的 时候不再需要考虑内存管 理。由于有个垃圾回收机制,Java 中的对象不再有“ 作用域“的概念,只有对象的引用 才有“ 作用域“ 。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃 圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中 已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃 圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标 记垃圾回收,增量垃圾回收。 3,
4、谈谈 final, finally, finalize 的区别。 Final修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子 类,不能作为父类被继承。因此一个类不能既被声明为 abstract 的,又被声明为 final 的。将变量或方法声明为 final,可以保 证它们在使用中不被改 变。被声明为 final 的变 量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明 为 final 的 方法也同样只能使用,不能重载。 Finally再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常, 那么相匹配的 catch 子句就会执行,然后
5、控制就会进入 finally 块(如果有的话)。 Finalize方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存 中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有 被引用时对这个对象调用的。它是在 Object 类中定 义的,因此所有的 类都继承了它。 子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是 在垃圾收集器删除对象之前对这个对象调用的。 4,数组有没有 length()这个方法? String 有没有 length()这个方法?举例说明使 用方法? 数组没有 length()这个
6、方法,有 length 的属性。 String 有有 length()这个方法。 5. Java 中的异常处理机制的 简单原理和应用。 当 JAVA 程序违反了 JAVA 的语义规则时, JAVA 虚拟机就会将发生的错误表示 为一个异常。违反语义规则包括 2 种情况。一种是 JAVA 类库内置的语义检查。例如 数组下标越界,会引发 IndexOutOfBoundsException;访问 null 的对象时会引发 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 NullPointerException.另一种情况就是 JAVA 允
7、许程序 员扩展这种语义检查,程序员 可以创建自己的异常,并自由选择在何时用 throw 关键字引发异常。所有的异常都 是 java.lang.Thowable 的子类。 五、程序设计:(每题 11 分,共 33 分) 1、编程:编写一个截取字符串的函数, 输入为一个字符串和字节数, 输出为按字节截 取的字符串。 但是要保证汉字不被截半个,如 “我 ABC“4,应该截为“我 AB“,输入“ 我 ABC 汉 DEF“,6,应该输出为“ 我 ABC“而不是“我 ABC+汉的半个“ 。 2、编程求解:所有两位整数能被 3 整除的数的和,以及不能被 3 整除的数的各位数字 之和。 3、设计一个程序求解
8、e 的值。精度达到 1.0e-6, 4、请设计一个对 N 个数进 行排序的程序 一、选择题(每道题只有一个正确答案,每小题 2 分,共 30 分)15 道题 1、关于 Java 语言叙述错误的是:( C ) AJava 语言具有跨平台性 BJava 是一种面向对象的语言 CJava 语言中的类可以多继承 DJava 的垃圾收集机制自动回收程序已不再使用的对象 2、以下叙述正确的是:( B )的确台 a A构造方法必须是 public 方法 Bmain 方法必 须是 public 方法 CJava 应用程序的文件名可以是任意的 D构造方法应该声明为 void 类型 3、关于 Java 中数据类型
9、叙述正确的是:( B ) A、整型数据在不同平台下 长度不同 Bboolean 类型数据只有 2 个值,true 和 false C数组属于简单数据类 型 DJava 中的指针类型和 C 语言的一样 4、设 int x=1,float y=2,则表达式 x / y 的值是:( D ) 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 A0 B1 C2 D以上都不是 5、以下语句有语法错的是:( A ) Aint x=1;y=2;z=3 Bfor (int x=10,y=0;x0;x+); Cwhile (x5); Dfor(; ;)
10、; 6、关于类和对象的叙述正确的是:( A ) AJava 的类分为两大部分:系统定义的类和用户自定义的类 B类的静态属性和全局 变量的概念完全一样,只是表达形式不同 C类的成员至少有一个属性和一个方法 D类 是对象的 实例化 7、以下有关构造方法的说法,正确的是:( A ) A一个 类的构造方法可以有多个 B构造方法在类定义时 被调用 C构造方法只能由对象中的其它方法 调用 D构造方法可以和类同名,也可以和类名不同 8、以下有关类的继承的叙述中,正确的是:( D ) A子 类能直接 继承父类 所有的非私有属性,也可通过接口继承父类的私有属性 B子类只能继承父类的方法,不能继承父类的属性 C子
11、类只能继承父类的非私有属性,不能继承父 类的方法 D子 类不能 继承父类的私有属性 9、下列属于容器的组件有:( B ) AJButton BJPane CCanvas DJTextArea 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 10、void 的含义:( C ) A方法体 为 空 B定义的方法没有形参 C定义的方法没有返回 值 D方法的返回值不能参加算 术运算 11、关于 Java 中异常的叙述正确的是:( D ) A异常是程序编写过程中代 码的语法错误 B异常是程序编写过程中代 码的逻辑错误 C异常出现后程序的运行
12、马上中止 D异常是可以捕获和处 理的 12、所有的异常类皆继承哪一个类?( C ) Ajava.io.Exception Bjava.lang.Throwable Cjava.lang.Exception Djava.lang.Error 13、下面哪个不是 java 语言中的关键字?( B ) Along Bsizeof Cinstanceof Dconst 14、为实现进程之间的通信,需要使用下列那种流才合适?(D) AData stream BFile stream CBuffered stream DPiped stream 15、在复选框中移动鼠标,然后单击一选项,要捕获 所选项必需
13、实现哪个接口?(D) AActionListener BMouseListener CMouseMotionListern 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 DItemListener 二、填空题(每空 1 分,共 20 分) 1、面向对象程序设计所具有的基本特征是:_抽象性_,_封装性_, _继承性 _,_多态性_ 2、数组 x 定义如下 int x =new int32 则 xlength 的值为_3_, x0.length 的值为_2_。 3、Java 中实现多线程一般使用两种方法,一是_继承 Thread 类
14、_,二是 _实现 Runnable 方法 _ 4、Java 的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的 布局管理器有(列出四种即可) _FlowLayout_,_GridLayout_,_BorderLayout_,_CardLayout_ _ 5、Applet 常用的方法是:_init()_、_run()_、 _stop()_和 destroy()。 三、阅读程序,写出程序的输出结果(每题 5 分,共 20 分) 1、class A private int privateVar; A(int _privateVar) privateVar=_privateVar;
15、boolean isEqualTo(A anotherA) if(this.privateVar = anotherA.privateVar) return true; else return false; public class B public static void main(String args) A a = new A(1); 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 A b = new A(2); System.out.println(a.isEqualTo(b); 程序的输出结果为:_false_ 2、cl
16、ass 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 program output is 10_ 3、public class Uncheck
17、ed 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“
18、); finally System.out.println(“E“); System.out.println(“F“); static void wrench() throw new NullPointerException(); 程序的输出结果为: E A B 4、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.
19、println(“the value is a5 is “ + a5); static int calculate(int x, int y) for (int i = 1; i =0; j-) if(1 j) else System.out.print(“0“); System.out.println();/换行 A) 00000000000000000000000000000001 B) 00000000000000000000000000000010 C) 00000000000000000000000000001111 D) 000000000000000000000000000000
20、00 【答案】B 4. 应用程序的 main 方法中有以下语句,则输出的结果是 ( )。 String s1=“0.5“,s2=“12“; double x=Double.parseDouble(s1); int y=Integer.parseInt(s2); System.out.println(x+y); A) 12.5 B) 120.5 C) 12 D) “12.5” 【答案】A 5. 应用程序的 main 方法中有以下语句,则输出的结果是 ( )。 double x=1234.1234567; 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练
21、习题、精选题及答案 DecimalFormat form1 = new DecimalFormat(“0000.0“); System.out.println(“PI=“+form1.format(x); A) PI=1234.1 B) PI=1234 C) PI=1234.1235 D) PI=1234.0 【答案】A 6.下列程序段执行后的结果是( )。 String s=new String(“abcdefg“); for(int i=0;is.length();i+=2) System.out.print(s.charAt(i); A) aceg B) ACEG C) abcdefg
22、D) abcd 【答案】A 7. 应用程序的 main 方法中有以下语句,则输出的结果是 ( )。 int x=122,33,55,678,-987; int max=x0; for(int i=1;imax) max=xi; System.out.println(max); A) 678 B) 122 C) -987 D) 33 【答案】A 8.下列语句序列执行后,k 的值是( )。 int x=2, y=5, k=0; switch( x%y ) case 0: k=x+y; break; case 1: k=x-y; break; case 2: k=x*y; break; defaul
23、t: k=x/y; break; System.out.println(k); A) 2 B) 5 C) 10 D) 0 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 【答案】C 9. 下面的程序输出的结果是( ) 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) i=0 B)
24、i=10 C) 程序有编译错误 D) i=true 【答案】B 10应用程序的 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 【答案】A 11. 有整型数组:int x=12,35,8,7,2;,则调用方法 Arrays.sort(x)后,数组 x 中的元素 值依次是( ). A) 2
25、 7 8 12 35 B) 12 35 8 7 2 C) 35 12 8 7 2 D) 8 7 12 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 35 2 【答案】A 12.编译和运行下面的应用程序,并在命令行界面输入 12345,则回车后屏幕输出的结 果是( ). public class A public static void main(String args) throws IOException BufferedReader buf=new BufferedReader( new InputStreamReader(
26、System.in); String str=buf.readLine(); int x=Integer.parseInt(str); System.out.println(x/100); A) 45 B)5 C) 123 D) 12345 【答案】C 13.下面的程序段执行后输出的结果是( )。 StringBuffer buf=new StringBuffer(“Beijing2008“); buf.insert(7,“); System.out.println(buf.toString(); A) Beijing2008 B) Beijing2008 C) Beijing2008 D)
27、Beijing#2008 【答案】A 14. 下面的程序编译运行后输出的结果是( )。 public class A implements Runnable public static void main(String argv) A a = new A(); Thread t = new Thread(a); t.start(); public void run() while(true) try Thread.currentThread().sleep(1000); 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 catch(
28、InterruptedException e) System.out.println(e.toString(); System.out.println(“looping while“); A) 在屏幕上重复输出“looping while“。 B) 在屏幕上 输出一次“looping while“。 C) 没有结果 输出。 D) 以上说法都错误。 【答案】A 15.下面的程序段创建了 BufferedReader 类的对象 in,以便读取本机 d 盘 my 文件夹下 的文件 1.txt。File 构造函 数中正确的路径和文件名的表示是( )。 File f=new File(填代码处); fi
29、le=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.下面的说法正确的是( )。 A) Java 语言是面向 对象的、解释执行的网络编程 语言。B) Java 语言具有可移植性, 是与平台无关的编程语 言。 C) Java 语言可对内存垃圾自动收集。 D) Java 语言编写的程序虽然是“一次编译,到 处运行”,但必须要 java 的运行环境。 免费提供各种资格
30、考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 【答案】ABCD 2.下面 main()方法的定义哪些是正确的( )? A)public static void main(String args) B)public static void main(String) C)public static void main(String args) D)public static void main(String x) 【答案】ACD 3.定义变量如下: char c=w; int i=8; long L=15; float f=8.9f; 以下赋值语句
31、正确的是( )。 A) i=c+i; B) c=c+i; C) L=f+L; D) f=i+L+f; 【答案】AD 4.下面哪些关键字能用来控制对类成员的访问( )? A)public B)protected C)private D)default 【答案】ABC 5.面向对象程序设计的基本特征是( )。 A)抽象 B)封装 C)继承 D)多态 【答案】ABCD 6.下面关于类的说法正确的是( )。 A)类 是 Java 语言中的一种复合数据 类型。 B)类中包含数据变量和方法。 C)类是对所有具有一定共性的对象的抽象。 D) Java 语言的类只支持单继承。 【答案】ABCD 7. 编译并运
32、行下面的程序,运行结果为( ). 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)程序有编译错误,因 为两个 method(
33、)方法必须定义为静态(static)的。 B)程序可以编译运行,输出结果为: long: 8 float: 1.2 C)程序可以编译运行,输出结果为: float: 1.2 long: 8 D) 程序中定义的两个参数不同的 method 方法称为方法重栽。 【答案】BD 8.下面是在命令行运行 Java 应用程序 A,怎样才能在 main(String args)方法中访问单 词“first“ ( )? java A the first snow , the first snow came. A)args0 B)args1 C)args2 D)args5 【答案】BD 9.编译并运行下面的程序
34、,运行结果为( ). 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)代码可以
35、编译运行,并输出结果:AB 。 C)代码可以编译运行,并输出结果:A。 D)子类 B 定义了与父类 A 中同名的方法 test,java 中称为方法的重载 。 【答案】AB 10.下面哪个说法正确( )? A)如果某公共的接口被声明在一个源文件中,则接口必 须与源文件具有相同的名字。 B)如果源文件包含 import 语句,则该语句必须是除空行和注 释行外的第一个语句行。 C)如果某源文件包含 package 语句, 则该语句必须是第一个非空、非注 释行。 D)接口中的方法必定是抽象方法,但可以不用关键 字 abstract 修饰。 【答 案】ABCD 三、填空题(本大题 10 小题,每小 题
36、 1 分,共 10 分) 1. 创建类的对象时,使用运算符_给对象分配内存空间。 2. 定义类的构造方法不能有返回值类型,其名称与_名相同。 3. Java 语言中关键字_ 表示双精度类型。 4. 若有定义:float b=1.1f, 3.5f, 6.8f;,则 b.length()的值是_。 5若有类定义: class B extends A 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 则类 B 是类 A 的_。 6接口中的成员只有静态常量和_。 7. 在子类中使用关键字_做前缀可调用被子类覆盖的父类中的方法。 8. 关键字
37、_用于导入包中的类到程序中,供程序中使用。 9. Java 语言中, 通常把可能发生异常的方法调用语句放到 try 块中,并用紧跟其后的 _块来捕获和处理异 常。 10. 程序中实现多线程的方法有两种:继承_类和实现 Runnable 接口。 【答案】 1.new 2.类 3.double 4. 3 5.子类 6. 抽象方法 7.super 8. import 9. catch 10. Thread 四、阅读程序,回答问题(本大题 5 小题,每小题 5 分,共 25 分) 1. (5 分 ) 1: public class Output1 2: public static void main(
38、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 行的 if 语句的功能是什么? (2 分) (2)程序输出的结果有几行?(3 分) 【答案】 (1)每打印 8 个字符,则换行。(2)输出的结果有 2 行。 2. (5 分 ) 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精
39、选题及答案 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(stri+“ “); 9: 10: (1)写出程序运行后的结果。(2 分) (2)方法调用 str0.length()的返回结果是多少?(3 分 )
40、 【答案】(1) abs class length size (2) 4 3. (5 分 ) 1: /TestKeyListener.java 2: 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
41、 void keyTyped( KeyEvent e ) 15: if(e.getKeyChar()=r|e.getKeyChar()=R) 16: clr=Color.red; 17: else if(e.getKeyChar()=g|e.getKeyChar()=G) 18: clr=Color.green; 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 19: else if(e.getKeyChar()=b|e.getKeyChar()=B) 20: clr=Color.blue; 21: else 22: clr=Co
42、lor.black; 23: setBackground(clr); 24: 25: ); 26: 27: (1)程序第 15、16 行实现的功能是什么?(2 分) (2)编译该程序,并编写嵌入该程序字节码文件的网页后,通过支持 java 的浏览器打 开网页。如果敲击键盘的 b键,有什么结果?(3 分) 【答案】(1) 如果敲击键盘的r键,则将颜色对象的值赋为红色。(2) 小程序的背景颜 色变为兰色。 4.定义类 A 和类 B 如下. (5 分) class A int a=1; double d=2.0; void show( ) System.out.println(“Class A: a
43、=“+a +“td=“+d); class B extends A float a=3.0f; String d=“Java program.“; 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 void show( ) super.show( ); System.out.println(“Class B: a=“+a +“td=“+d); (1) 若在应用程序的 main 方法中有以下语句: A a=new A(); a.show(); 则输出的结果如何?(2 分) (2) 若在应用程序的 main 方法中定义类 B 的对象 b
44、: A b=new B(); b.show(); 则输出的结果如何?(3 分) 【答案】 (1) Class A: a=1 d=2.0 (2) Class A: a=1 d=2.0 Class B: a=3.0 d=Java program. 5. (5 分 ) import java.util.*; public class W static String s=“甲“,“乙“,“丙“,“ 丁“; public static void main(String args) Stack stk=new Stack(); for(int i=0;is.length;i+) stk.push(si+“ “); int k=0; while(k3) System.out.print(stk.pop(); k+; 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 免费提供各种资格考试真题、模拟题、练习题、精选题及答案 (1)堆栈的操作 规则如何?(2 分) (2)写出程序运行后的结果。(3 分) 【答案】 (1) 先 进后出 (2) 丁 丙 乙 五、根据题目要求编写程序(本大题 2 小题,第 1 小题 5 分,第 2 小题 10 分,共 15 分) 1.请定义一个名为 Card 的扑克牌 类,该类有两个 private 访问权限