Java程序员认证考试题库.doc
第一部分基础知识练习目标 本章对应于学生指南各章的内容分别提供了练习题集,包括: 第一章Java入门 第二章数据类型和运算符 第三章流程控制与数组 第四章封装 第五章继承 第六章抽象类与接口 第七章多态 第八章异常 第九章多线程机制 第十章输入输出流 第十一章使用泛型和集合框架 第十二章基于Swing的图形用户界面(GUI)设计 第十三章Java事件驱动编程 第一章练习题(Java入门) (C)1下列哪项不是JDK所包含的内容?(选一项) AJava编程语言 B工具及工具的API CJava EE扩展API DJava平台虚拟机 2下列关于JDK、JRE和JVM的描述。哪项正确? AJDK中包含了JRE,JVM中包含了JRE BJRE中包含了JDK,JDK中包含了JVM CJRE中包含了JDK,JVM中包含了JRE DJDK中包含了JRE,JRE中包含了JVM 3下列哪个工具可以编译java源文件? Ajavac Bjdb Cjavadoc Djunit 4JDK工具javadoc的作用是哪项? A生成Java文档 B编译Java源文件 C执行Java类文件 D测试Java代码 5以下哪些包是Java标准库中常用的包?(选三项) Ajavalang Bjavaxservlet .http Cj ava. ioDjavasql1-83 6使用JDK工具生成的Java文档的文件格式是?AXML格式B自定义格式c二进制格式DHTML格式(AC)7以下关于JVM的叙述,哪项正确?(选两项)AJVM运行于操作系统之上,它依赖于操作系统BJVM运行于操作系统之上,它与操作系统无关CJVM支持Java程序运行,它能够直接运行Java字节码文件DJVM支持Java程序运行,它能够直接运行Java源代码文件8以下关于支持Java运行平台的叙述,哪项错误?AJava可在Solaris平台上运行BJava可在Windows平台上运行CJava语言与平台无关。Java程序的运行结果依赖于操作系统DJava语言与平台无关。Java程序的运行结果与操作系统无关(B)9以下关于Applet和Java程序之间关系的叙述,哪项错误?A -个Applet就是一段Java程序BApplet是一种特殊的Java程序,它需要运行在Web服务器上CApplet是一种特殊的Java程序,它需要运行在Web浏览器上DApplet是一种Java SE平台的应用程序(AD)10以下关于Java HotSpot的描述,哪两项错误?(选两项)AJava HotSpot是一种热编译技术,在编译Java源程序时会被使用BJava HotSpot是一种热编译技术,在运行Java代码时会被使用CJava HotSpot是一种热编译技术,它只对程序的部分字节码进行优化DJava HotSpot是一种热编译技术,它会对程序的全部字节码进行优化( A ) 11环境变量PATH中含有多个路径时,路径和路径之间可以用哪项来隔开? A.: B. , C.* D:| (B)12CLASSPATH中的“”的含义是哪项? A省略号 B当前目录 C所有目录 D上级目录 13JVM在执行一个Java类时,大致采用以下过程? A执行类中的代码一>装载类一>校验类 B校验类一>装载类一>执行类中的代码 C装载类一>执行类中的代码一>校验类 D装载类一>校验类一>执行类中的代码 (C)14当运行个Java程序时,传递参数的格式是哪项? A java类名参数1,参数2 B javac类名参数1参数2 C java类名参数1参数2 D java类名参数1+参数2 15以下关于Java文件名的叙述,正确的有?(选两项) AJava源文件的扩展名应为.java BJava源文件的文件名应与文件中的类名一致 C Java字节码文件的扩展名应为java D 一个Java源文件中只能包含一个Java类 lC 2D 3A 4A SACD 6D 7AC 8C 9B 10 A D 11 A 12 B 13 D 14 C 15 A B第二章练习题(数据类型和运算符) 1下列哪项不属于Java语言的基本数据类型? Aint BString Cdouble Dboolean 2下列哪项不是int类型的字面量? Au03A6 B077 COxABBC D20 3下列哪项不是有效的标识符? AuserName B2test C$change D_password (选项有误!)4下列哪项是Java语言中所规定的注释样式?(选三项) A单行注释 B-单行注释 C * *单行或多行注释 */ D /kk *文档注释 */ (B)5下列哪项不是Java语言的关键字? Agoto Bsizeof Cinstanceof Dvolatile 6现有如下五个声明: Linel: int a_really_really_really_long_variable_name=5 ; Line2: int _hi=6; Line3: int big=Integer. getlnteger("7”); Line4:int $dollars=8; line5: int %opercent=9; 哪行无法通过编译? ALine1 BLine3 C. Line4 D. Line5 (题目有问题)7现有: 1. class Top 2 static int x=l; 3. public Top (inty) x*=3; 4. 5. class Middle extends Top 6. public Middle() x+=1; ) 7. public static void main (String args) 8. Middle m = new Middle(); 9. System. out .println (x); IO. II. 结果为: A.1 B. 2 C3 D编译失败 (A)8现有: 1 class Passer f 2 static final int X=5; 3.public static void main (String args) 4 new Passer()go (x); 5.System. out .print (x); 6, ) 7 void go (int x) 8System. out .print(x+); 9 10. 结果是什么? A55 B56 C65 D66 9现有: 1 class Wrench f 2.public static void main(String args) 3.Wrench w=new Wrench(); Wrench w2=new Wrench(); 4 w2=go (w, w2); 5.System.out.print (w2=w); 6 7.static Wrench go (Wrench wrl, Wrench wr2) 8.Wrench wr3=wrl; wrl=wr2; wr2=wr3; 9 return wr3; 10 11 结果是什么? A. false B true C.编译失败 D运行的时候有异常抛出 10现有: 5 class Wrench2 6 int size; 7. public static void main(String args) 8. Wrench2 w=new Wrench2(); 9 w.size=II; IO. Wrench2 w2=go(w, w.size11); II. System. out .print (w2. size); 12 ) 13. static Wrench2 go ( Wrench2 wr. int s) 14. S=12; 17. 结果为: A. 11 B. 12 c编译失败。 D运行时异常被抛出 11现有: class Test2 f public static void main (String args) short a,b,C; a=1; b=2; C=a+b; a+=2: 以上代码中,哪一句是错误的? Aa=1: BC=a+b; C a+=2; D. short a,b,C; 12表达式:1-2/5+2 'k5的结果是哪项? A. 10.6 B. 9.8 C. 9 13现有代码片段: String s="123"; String sl=S+456; 请问sl的结果是哪项? A. 123456 B. 579 C编译错误 D运行时抛出异常14基本数据类型float的包裹类是哪项?A IntegerB DoubleC FloatD Character(D)15.现有: 1 class Test4 2. public static void main (String args) 3 boolean X=true; 4 boolean y=false; 5 short Z=42; 6 7. if(z+=42) (y=true)z+; 8. if(x=false) | (+z=45) z+; 9 10. System. out.println(¨z=”+z); II. 12. 结果为:A. Z=42B. z=44C Z= 45D z= 46 第二章练习题 参考答案 1B 2A 3B 4ACD 5B 6D 7D 8A 9B 10 A 11 B 12 D 13 A 14 C 15 D第三章练习题第三章练习题(流程控制与数组) 1现有: class TestApp public static void main (String args) for (int i=0; i<lO;i+) if(i=3) break; System. out .print (i); 程序运行后的输出是哪项? A0123 B012456789 C 0123456789 D 012 2程序: class TestApp public static void main (String args) int x=6; if (x>l) System. out. println("x>l"); else if (x>5) System. out .println("x>5"); else if (x<10) System. out. println("x<lO"); else if (x<29) System. out .println( "x<29"); else System. outprintln(“以上都不是”); 上述程序运行后的结果是哪项? Ax>5 Bx>l C x<10 Dx<29 3现有: class TestApp public static void main (String args) int 5 myarray= 10, 11, 12, 13, 14); int sum=0; for (int x : myarray) sum+=x; System. out. println( "sum= "+sum); 上述程序运行后的结果是哪项? A sum=10 B sum=70 C sum=60 D 运行时抛出异常 4下列有关数组的声明中,正确的是哪项?(选两项) A int s10; B int10 s; C int5 s=l,2,3,4,5; D int s; 5已知数组array,其最后一个元素的下标是? A array. size B array. length-l C array. size-l D arraylength 6程序: class TestApp public static void main (String args) int X=5: switch (x) case l: case 2: case 3: System. outprintln(“一季度”); break; case 4: case 5: case 6: System. outprintln(“二季度”); break; default: System. outprintln(“三季度以上”); break; ) ) 上述程序运行后的结果是哪项? A. 一季度 B二季度 c三季度以上 D无输出 7为将数组myArray的长度由3改为6,现采取以下编码: intmyArray=new int 3; myArray=new int6; 代码执行后,以下叙述哪项是正确的? A数组myArray的长度已由3改为6,其中前3个元素的值不变,后3个元素 的值为空。 B数组myArray的长度已由3改为6,其中前3个元素的值不变,后3个元素 需再经过初始化后才能使用。 C数组myArray的长度没有变化。 D数组myArray的长度已由3改为6,原来3个元素的值全部丢失。 8现有: 1 class Ifs 2public static void main (String args) 3boolean state=false; 4 int i=2; 5if( (+i>2) (state=true) 6i+; 7if( (+i>4) l l (state=false) 8i+; 9System.out .println (i); 10 11 结果为: A 6 B 5 C 4 D编译失败 9现有: 3 public class Tester 4.public static void main (String args) 5 intx-5; 6. Integer xl=x; Integer x2=x; 7.int x3=new Integer(5); 8. system.ut.print(x1.equals(x); 9. system.ut.print(xl=x); lu. system.ut.print(x2.equals(xl); 11. system.ut.print(x2=xl); 12- system.ut.print(x2=x3); 13- system.ut.print(x2.equals(x3); “ l4 15 结果为: A编译失败 B. falsefalsetruetruetruetrue C truetruetruetruetruetrue D. falsefalsetruetruetruefalse E. truefalsetruefalsefalsetrue F.运行时异常被抛出 10现有: 1 class Rectangle 2' public static V.id main(string args) 3 intx=(1,2,3); 4 x1= (x1>1) ?x2: O; 5 System.outprintln(x1); 6 7 结果为: A3 B2 C1 D0 11现有: 1class Output ( 2public static void main (String args) 3 int i=5: 4System.out.print( "4"+i+""); 5System.out.print (i+5+"7"); 6System.out.println (i+"8"); 7 8 结果为: A 9 9722 B 9 55758 C 45 10758 D 45 9722 12以下哪种初始化数组的方式是错误的? A Stringnames="zhang", "wang", "li"); B String names =new String 3; names O ="zhang" names 1 ="wang" names 2 ="li" C String3 names="zhang", "wang", "li" D 以上皆正确 13现有: 1 class WhileTests 2public static void main (String args) 3 int X=5; 4 while (+x<4) 5-x; 6 7System.out.println( "x="+x); 8 9 结果是什么? A.X=6 B. X=5 C.X=2 D编译失败 14现有: 1 class Test2 f 2public static void main (String args) 3 boolean X= true; 4 boolean y=false; 5 short Z=20; 6 7if(x=true) & (y=true) z+; 8 if(y=true) | (+z=22) z+; 9 10 System. out .println( "z="+z); 11 12 结果是什么? A.Z=21 B. z=22 C. z=23 D Z= 24 15.现有: 1 class Foo 2public static void main (String args) 3 int x=O; 4 int y=4; 5for (int z=0; z<3; Z+; X+) 6 if(x>1&+y<10) 7 y+; 8 9System. out .println (y); 10 11 结果是什么? A7 B8 C10 D12 I D 2B 3C 4CD 5B 6B 7D 8A 9C 11 C 12 C 13 A 14 B 15 B第四章练习题(封装) 1下列有关类、对象和实例的叙述,正确的是哪一项? A类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别 B对象是类的抽象,类是对象的具体化,实例是对象的另一个名称 C类是对象的抽象,对象是类的具体化,实例是类的另一个名称 D类是对象的抽象,对象是类的具体化,实例是对象的另一个名称 2下列类Account的构造方法中,声明正确的是? A Account (String name) B Account (String name) CAccount (name)() D NewAccount (String name) 3类Account中字段声明正确的是哪项? A class Account f name; amount; ) B class Account String name=l.0; double amount="Mike" ) C class Accountf String name; double amount; ) D class Account String name= "Mike, double amount=1000.0; ) 4类Account中方法声明正确的是哪一项? A class Account f deposit(); ) B class Accountf void deposit(); C class Accountf void deposit() ) D. class Accountf void deposit) ) 5下列有关类声明的代码片段,哪一项是正确的? A. package school; import java. sql.*; class Student Bimport javasql.*; package school; class Student f ) C package school; class Student import java. sql.*j D. package school; import java. sql.*; private String name; class Student 6有关new关键字的描述正确的是哪项? A.创建对象实例的时候可以不使用new关键字 Bnew所创建的对象不占用内存空间 Cnew会调用类的构造器来创建对象 Dnew所创建的对象一定存在引用变量 7下列哪些是方法public int add (int a)的重载方法?(选三项) A. public int add (long a); B. public void add (int a)j C. public void add (long a); D. public int add (float a); 8我们定义一个Account类来描述银行账户,银行账户有账户名、金额等属性 特征,同时有存款、取款等行为特征,下述代码适合描述的是哪项? Aclass Accountf String name;账户 String amount; 金额 Account (String name)( ) void deposit (double mount) 存款 ) void withdraw (double mount) 取款 ) Bclass Accountf String name;账户 doujole amount; 金额 Account (double amount) ) void deposit (double mount) 存款 ) void withdraw (double mount) 取款 ) ) Cclass Accountf String name;账户 double amount; 金额 Account (String name) ) void deposit (double mount)存款 ) void withdraw (double mount) 取款 ) ) Dclass Accountf String name;账户 double amount;金额 Account (String name) ) void deposit()存款 ) void withdraw()取款 ) ) 9现有: 1 class Banana2 f 2 static int X=2; 3.'public static void main (String args) 4 int X=2; 5.Banana2 b=new Banana2(); 6 bgo(x); 7 8 static x+=x; ) 9 void go (int x) 10 +x; 11 System. out.println (x); 12 13 结果为: A7 B. 5 C. 3 D. 2 10现有: 1 class TestFoo f 2 int x; 3 String y; 4.int getX() return x; 5.String getY() return y; 6 void setX (int x) 7 int Z=7: 8 this.x=x; 9 10. 可以添加多少个修饰符来封装此类? A.5 B. 4 C. 3 D. 2 11定义枚举如下: public enum Direction EAST,SOUTH,WEST,NORTH ) F列正确使用该枚举类型的语句是哪项? A. Direction Direction=EAST; B. Direction direction=Direction.WEST; C. int a- Direction.NORTH; n Direction direction=2; 12定义类: package utils; public class Rep public static String twice (String s)return s+s ;) 再定义另一个类Demo: l./insert code here 2.public class Demo 3. public sta