1、Java程序设计题库第一部分 绪论*下列关于Java语言的特点,描述错误的是( C )AJava是跨平台的编程语言 BJava支持分布式计算CJava是面向过程的编程语言 DJava支持多线程* Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?(B)A、安全性B、多线性C、跨平台D、可移植* Java JDK中调试器的命令是(C)。A、javacB、javaC、jdbD、avah*运行jar文件中class文件需要在java命令后面加的参数为(A)。A、-cpB-gC-dD-verbose*下面哪项在java中是不合法的标识符?(C)A、$userB、poin
2、tC、You&meD、_endline*下面关于Java语言说法正确的是(ABCD)。A、Java语言是面向对象的、解释执行的网络编程语言。B、Java语言具有可移植性,是与平台无关的编程语言。C、Java语言可对内存垃圾自动收集。D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的运行环境。*在Java程序设计中,程序员创建()文件,然后编译器把它们转化为()文件。(B)A、源, HTMLB、源, 字节代码C、字节代码, 源D、HTML, 字节代码*Java的JVM是指(B) 。A、由Java操作的家用设备(通常是一个漂亮的小烤箱)B、Java字节代码的解释程序C、J
3、ava源代码的编译器D、运行Java 所需的硬件设备*在Java中,关于CLASSPATH环境变量的说法不正确的是(A)。A、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。B、编译器用它来搜索各自的类文件。C、CLASSPATH是一个目录列表。D、解释器用它来搜索各自的类文件。*一个可以独立运行的Java应用程序(D)。A、可以有一个或多个main方法。B、最多只能有两个main方法。C、可以有一个或零个main方法。D、只能有一个main方法。*Java应用程序的入口方法是()。A. start() B. init() C. paint() D. main()*下列
4、描述中,错误的是(A)。A、Java要求编程者管理内存。B、Java的安全性体现在多个层次上。C、Applet要求在支持Java的浏览器上运行。D、Java内含多线程机制。*当在命令行输入:java myprog good morning 运行以下代码,输出结果是(D)。public class myprogpublic static void main(String argv)System.out.println(argv2);A. myprogB. goodC. morningD. Exception raised: javA.lang.ArrayIndexOutOfBoundsExcep
5、tion: 2*Java程序可以分为 应用程序(Application) 和 小应用程序(Applet) 两种。第二部分 结构化程序设计*下列整型数据类型中,需要内存空间最少的是(D)。A. short B. long C. int D. byte*下面哪项在java中是不合法的标识符?(C)A、$userB、pointC、You&meD、_endline*下面不属于Java关键字的是(A)。A. sealedB. privateC. newD. transient*下列哪一项不是Java保留字?(A)A、sizeofB、superC、abstractD、break*在switch(expre
6、ssion)语句中,expression的数据类型不能是(D)。A. doubleB. charC. byteD. short*下列选项中哪一个是表达式1+2+aa+3的值(B)?A)12aa3B) 3aa3C) 12aaD) aa3*以下程序的运行结果是:( C )public class Incrementpublic static void main(String args)int c;c = 2;System.out.println(c);System.out.println(c+);System.out.println(c);A2 B2 C2 D32 3 2 42 3 3 4*编译运
7、行以下程序后,关于输出结果的说明正确的是 ( C )public class Conditionalpublic static void main(String args )int x=4;System.out.println(“value is “+ (x4) ? 99.9 :9);A输出结果为:value is 99.99B输出结果为:value is 9C输出结果为:value is 9.0D编译错误*在Java语言中,下列哪个包是编译器自动导入的?(B)A、java.appletB、java.lang C、java.ioD、java.awt*下列关于for循环和while循环的说法中哪
8、个是正确的?(D)Awhile循环能实现的操作,for循环也都能实现 Bwhile循环判断条件一般是程序结果,for循环判断条件一般是非程序结果 C两种循环任何时候都可替换 D两种循环结构中都必须有循环体,循环体不能为空*结构化程序设计所规定的三种基本控制结构是 ( C )A输入、处理、输出 B树形、网形、环形C顺序、选择、循环 D主程序、子程序、函数*有500个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1500,从1号小朋友开始循环13报数,数到3的小朋友就退出。编写一个Java应用程序,计算出最后一个小朋友的号码是多少?(20分)1、 *某企业为了促销,搞抽奖宣传活动,奖品为新款手机
9、一部,抽奖规则如下:(1)有n个盒子摆成一圈,盒子按顺时针方向依次编号为0,1,2,n-1。手机随机放在其中一个盒子中。(n为自然数)(2)从0号盒子开始摸奖,顺时针方向计数,每遇到第m个盒子就摸奖一次。(m为自然数,mn)(3)直到重新摸到0号盒子为止。例如n=5,m=3,那么摸奖经过的盒子编号依次为0,3,1,4,2,0。请编写一个完整的程序,随机输入n,m(mn),程序分析手机有没有不被抽中的机会?如果有,概率是多少? (概率=不被抽中的可能数/n)(30分)*下面是Java的Boolean对象的值为(C)A、true; B、false C、new Boolean(true) D、Boo
10、lean;第三部分 面向对象程序设计*引用数据类型变量具有基本属性为(ABCD)A、变量名 B、数据类型 C、存储单元 D、变量值。*面向对象技术的特性是(ACD)A、继承性 B、有效性 C、多态性 D、封装性。*下列哪个命题为真?(C)A、所有类都必须定义一个构造函数。B、构造函数必须有返回值。C、构造函数可以访问类的非静态成员。D、构造函数必须初始化类的所有数据成员。*关于子类与父类关系的描述正确的是(ACD)A、子类型的数据可以隐式转换为其父类型的数据;B、父类型的数据可以隐式转换为其子类型的数据;C、父类型的数据必须通过显示类型转换为其子类型的数据;D、子类型实例也是父类型的实例对象。
11、*下列哪一项说法最好地描述了Java中的对象?(c)A、对象是通过import命令引入到程序中的所有事情B、对象是方法的集合,这些方法在小程序窗口或应用程序窗口中产生图形元素,或者计算和返回值C、对象是一种数据结构,它具有操作数据的方法D、对象是一组具有共同的结构和行为的类*下面哪个关键字不是用来控制对类成员的访问的?(C)A、publicB、protected C、defaultD、private*Java语言正确的常量修饰符应该是(D)A、final B、static final C、static D、public static final;*接口的所有成员域都具有public、stati
12、c和final属性。*接口的所有成员方法都具有public和abstract属性。*编译下列源程序会得到哪些文件?(C)class A1class A2public class Bpublic static void main(String args)A) 只有B.class B)只有A1.class和 A2.class文件C)有A1.class、A2.class和B.class文件D) 编译不成功*下列哪种说法是正确的?(A)A、私有方法不能被子类覆盖。B、子类可以覆盖超类中的任何方法。C、覆盖方法可以声明自己抛出的异常多于那个被覆盖的方法。D、覆盖方法中的参数清单必须是被覆盖方法参数清单的
13、子集。*关于类继承的说法,正确的是(b)。A、Java 类允许多重继承B、Java接口允许多继承C、接口和类都允许多继承D、接口和类都不允许多继承*使用以下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?(D)A)abstract B)privateC)protectedD)不使用保留字*为了区分重载多态中同名的不同方法,要求(A)。A. 采用不同的参数列表B. 返回值类型不同C. 调用时用类名或对象名做前缀D. 参数名不同*下述概念中不属于面向对象方法的是_D_。A对象、消息 B继承、多态 C类、封装 D过程调用*下列关于构造方法的叙述中,错误的是( C )AJava语言规定构造方
14、法名与类名必须相同BJava语言规定构造方法没有返回值,但不用void声明CJava语言规定构造方法不可以重载DJava语言规定构造方法只能通过new自动调用*如果str表示一个String对象“73”,那么以下哪些表达式将会把这个字符串转换为int值73?请选出正确答案。(C)A)Integer.getInt(str)B)(int) str)C)(new Integer(str).intValue()D)Integer.intValue(str)*下列哪个类的声明是正确的?(D)AabstractfinalclassHI Babstractprivatemove() Cprotectedpr
15、ivatenumber; DpublicabstractclassCar*关于被私有访问控制符private修饰的成员变量,以下说法正确的是( C )A可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B可以被两种类访问和引用:该类本身、该类的所有子类C只能被该类自身所访问和修改D只能被同一个包中的类访问*在Java中,关于final关键字的说法正确的是(AC)。A、如果修饰变量,则一旦赋了值,就等同一个常量。B、如果修饰类,则该类只能被一个子类继承。C、如果修饰方法,则该方法不能在子类中被覆盖。D、如果修饰方法,则该方法所在的类不能被继承。*、在Java中,下面关
16、于包的陈述中正确的是(AD)。A、包的声明必须是源文件的第一句代码。B、包的声明必须紧跟在import语句的后面。 C、只有公共类才能放在包中。D、可以将多个源文件中的类放在同一个包中。*下面有关私有变量和私有方法的声明,哪些叙述是对的?(AD)A、用关键字private修饰的成员变量和方法,称为私有变量和私有方法。B、用关键字protected修饰的成员变量和方法,称为私有变量和私有方法。C、用关键字public修饰的成员变量和方法,称为私有变量和私有方法。D、私有变量不能通过对象直接访问,只有在本类中创建的自己对象,才能访问自己的私有变量。*下面有关变量及其作用域的陈述哪些是对的?(ABC
17、)A、在方法里面定义的局部变量在方法退出的时候被撤销。B、局部变量只在定义它的方法内有效。C、在方法外面定义的变量(即实例变量)在对象被构造时创建。D、在方法中定义的方法的参变量只要该对象被需要就一直存在。*下面关于继承的叙述哪些是正确的?(AD)A、在java中只允许单一继承。B、在java中一个类只能实现一个接口。C、在java中一个类不能同时继承一个类和实现一个接口。D、java的单一继承使代码更可靠。*以下声明合法的是( B )Adefault String s;Bpublic final static native int w( )Cabstract double d;Dabstra
18、ct final double hyperbolicCosine( )*类Test1定义如下:1public class Test12public float aMethod(float a,float b) 34将以下哪种方法插入行3是不合法的。( B )A、public float aMethod(float a, float b,float c) B、public float aMethod(float c,float d) C、public int aMethod(int a, int b) D、private float aMethod(int a,int b,int c) *下面是
19、Example.java文件的完整代码,请找出会产生编译错误的行(C)。1) class BaseClass 2) public String str; 3) public BaseClass() 4) System.out.println(“ok”); 5) public BaseClass(String s) 6) str=s; 7) class SubClass extends BaseClass 8) 9) public class Example 10) public void method() 11) SubClass s=new SubClass(“hello”); 12) Ba
20、seClass b=new BaseClass(“world”); 13) 14) A、7B、10C、11D、12*下面关于类的说法错误的是(B)。A、类是Java语言中的一种复合数据类型。B、Java语言的类支持单继承和多继承。C、类是对所有具有一定共性的对象的抽象。D、类中包含数据变量和方法。*下列关于变量的叙述哪个是错的?(c)A、实例变量是类的成员变量。B、在方法中定义的局部变量在该方法被执行时创建。C、实例变量用关键字static声明。D、局部变量在使用前必须被初始化。*已知A类被打包在packageA , B类被打包在packageB ,且B类被声明为public ,且有一个成员变
21、量x被声明为protected控制方式。C类也位于packageA包,且继承了B类。则以下说法正确的是(C)。A、A类的实例不能访问到B类的实例B、A类的实例能够访问到B类一个实例的x成员C、C类的实例可以访问到B类一个实例的x成员D、C类的实例不能访问到B类的实例*下面关于Java语言中实例方法和类方法的说法,哪几项是对的?(BC)A、实例方法可以直接通过类名调用B、类方法可以直接通过类名调用。C、实例方法可以操作实例变量也可以操作类变量。D、类方法可以操作实例变量也可以操作类变量。*下面叙述哪些是正确的?(ABC)A、java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可
22、以自动调整。但需要事先知道所存储对象的类型,才能正常使用。B、在java中,可以用异常(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要花费更大的系统开销。C、java接口包含函数声明和常量声明。 D、java中,子类不可以访问父类的私有成员和受保护的成员。*下列说法正确的是(A)。A. final 可修饰类、属性、方法B. abstract可修饰类、属性、方法C. 定义抽象方法需有方法的返回类型、名称、参数列表和方法体D. 用final修饰的变量,在程序中可对这个变量的值进行更改*Java语言的类间的继承关系是(B)。A. 多重的B. 单重的C. 线程的D. 不
23、能继承*下列有关子类继承父类构造函数的描述正确的是(C)。A. 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数B. 子类无条件地继承父类不含参数的构造函数C. 子类必须通过super关键字调用父类的构造函数D. 子类无法继承父类的构造函数第四部分 数组、字符串、向量和哈希表*下面关于向量的描述正确的是(ACD)A、向量在功能上与数组类似,只是其元素个数可以改变,并且向量元素必须是引用类型;B、他们都有成员域实际元素个数size和容量capacty;C、数组的存储大小不能改变,而向量的存储能力可以改变;D、数组的容量成员为length,而向量的容量为capacity。*下面正
24、确声明一个一维数组的是(AB)。 A、String a B、String a C、char a D、String a10*执行完以下代码int x = new int10;后,以下哪项说明是正确的( A )Ax9为0Bx9未定义Cx10为0Dx0为空*关于以下程序段,正确的说法是( C )1 String s1=“a”+“b”;2 String s2=new String(s1);3 if(s1= =s2)4 System.out.println(“= = is succeeded”);5 if (s1.equals(s2)6 System.out.println(“.equals() is
25、succeeded”);A行4与行6都将执行B行4执行,行6不执行C行6执行,行4不执行C行4、行6都不执行*有整型数组:int x=2,33,88,5,10;, 则调用方法 Arrays.sort(x) 后,数组x中的元素值依次是(B)。A、88331052B、25103388C、88102335D、53321088*下列数组初始化形式正确的是(C)。A. int t1=1,2,3,4,5,6;B. int t2=1,2,3,4,5,6;C. int t332=1,2,3,4,5,6;D. int t4; t4=1,2,3,4,5,6;*关于以下程序段,正确的说法是( C )1 String
26、 s1=”abc”+”def”;2 String s2=new String(s1);3 if(s1= =s2)4 System.out.println(“= = succeeded”);5 if (s1.equals(s2)6 System.out.println(“.equals() succeeded”);A、行4与行6都将执行B、行4执行,行6不执行C、行6执行,行4不执行C、行4、行6都不执行*下面的程序段执行后输出的结果是(c)。StringBuffer buf=new StringBuffer(China2008); buf.insert(5,); System.out.prin
27、tln(buf.toString()); A、China2008B、China2008C、China2008D、China#2008*关于以下application的说明,正确的是( C )1class StaticStuff2 3 static int x=10;4 static x+=5;5 public static void main(String args )6 7 System.out.println(“x=” + x);8 9 static x/=3;10. A、4行与9行不能通过编译,因为缺少方法名和返回类型B、9行不能通过编译,因为只能有一个静态初始化器C、编译通过,执行结果
28、为:x=5D、编译通过,执行结果为:x=3* String或StringBuffer类的对象在调用以下哪个方法时其自身会发生更改?(D)A)String类的charAt()方法。B)String类的toUpperCase()方法。C)String类的replace()方法。D)StringBuffer类的reverse ()方法。E)StringBuffer类的length ()方法。*阅读以下代码:import java.io.*;import java.util.*;public class foopublic static void main (String args)String s;
29、System.out.println(s= + s);输出结果应该是:( C )A代码得到编译,并输出“s=” B代码得到编译,并输出“s=null” C由于String s没有初始化,代码不能编译通过D代码得到编译,但捕获到 NullPointException异常*以下关于abstract的说法,正确的是(D)。A、abstract只能修饰类B、abstract只能修饰方法C、abstract类中必须有abstract方法D、abstarct方法所在的类必须用abstract修饰*写出以下程序的运行结果。/结果为:1234publicclassChangeStrDemo publicsta
30、ticvoidchangestr(Stringstr) str=welcome; publicstaticvoidmain(Stringargs) Stringstr=1234; changestr(str); System.out.println(str); *写出以下程序的运行结果。/结果为:in Second classclass Firstpublic First()aMethod();public void aMethod()System.out.println(“in First class”);public class Second extends Firstpublic voi
31、d aMethod()System.out.println(“in Second class”);public static void main(String args)new Second( );*写出以下程序的运行结果。/结果为:abdcbdcbpublicclassFooDemo staticbooleanfoo(charc) System.out.print(c); returntrue; publicstaticvoidmain(Stringargs) inti=0; for(foo(a);foo(b)&(i,显示C:test文件夹下的目录和文件的文本形式树状显示;(C:test可以
32、为任意文件夹路径名)3 输入: java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;4 输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;(30分)*下列选项中属于过滤流FilterInputStream的子类的是(A)。A. DataInputStreamB. DataOutputStreamC. PrintStreamD. BufferedOutputStream第八部分 Swing图形用户界面程序设计*监听事件和处理事件(B)A、都由Listener完成 B、都由相应事件Listener处登记过的构件完成C、由Listener和构件分别完成D