Java程序设计试题及答案(一)时间:2012-02-20Java程序设计试题及答案(一)一、判断题。判断下列各题是否正确,若正确,在()内打“√”,否则打“×”。1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√2、Java语言的源程序不是编译型的,而是编译解释型的。√3、Java语言使用的是Unicode字符集,每个字符在内存中占8位。×4、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。√6、一个类可以实现多个接口,接口可以实现“多重继承”。√7、实现接口的类不能是抽象类。×二、不定项选择题。1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。A、javaB、classC、htmlD、exe2、main方法是JavaApplication程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。A、publicstaticvoidmain()B、publicstaticvoidmain(Stringargs[])C、publicstaticintmain(String[]arg)D、publicvoidmain(Stringarg[])3、关于下面代码的说法(C)是正确的?publicclassExample{publicstaticvoidmain(String[]args){int[]arr=newint[10];System.out.println(arr[1]);}}A、编译时产生错误B、编译时正确,运行时将产生错误C、输出零D、输出空(null)4、不正确的表达式是(AB)。A、floata=1.0d;B、Doublea=newDouble(1.0)C、bytea=(byte)340;D、Bytea=120;5、定义一个类名为MyClass.java的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为(CD)。A、privateclassMyClassextendsObjectB、classMyClassextendsObjectC、publicclassMyClassD、publicclassMyClassextendsObject6、下列构造方法的调用方式中,正确的是(C)。A、按照一般方法调用B、由用户直接调用C、只能通过new自动调用D、被系统调用7、private级的成员可以被哪些对象访问?CA、同一包中的其他类B、仅同一类的私有成员方法C、仅同一类的所有成员方法D、所有其他类8、关于Object类,以下正确的是(ADE)。A、Object类中定义了一些重要的方法,以方便Java类的使用B、Object类是一个非常特殊的“虚拟”类,就是说只能从Object类派生出其它类,但不能创建一个Object类的对象,也不能将一个引用变量定义为Object类型C、如果一个类已经有了父类,那么这个类同时继承了Object类,也就是说这时候这个类实际上有两个父类D、Object类是所在其他Java类的直接或间接父类E、Java中的类是单继承的,因此所在的类以Object类为根,形成了棵继承树9、抽象类与普通类的区别是什么?CA、抽象类没有成员变量,只有成员函数B、抽象类只有成员变量,没有成员函数C、抽象类中有抽象函数,而普通类的每个函数都是有具体实现的D、抽象类与普通类没有区别10、使用接口的通常办法是(D)。A、将接口数当作静态数据来调用B、直接调用接口的方法C、将接口变量作为方法的参数来使用D、定义一个接口变量,该变量指向实现接口的对象来访问E、定义一个接口对象,通过对象访问11、执行下列代码后,哪个结论是正确的String[]s=newString[10];BDA、s[10]为B、s[9]为null;C、s[0]为未定义D、s.length为1012、以下对substring函数的描述中,错误的是()。BCA、String和StringBuffer类都可以使用substring函数B、substring函数返回一个StringBuffer对象C、substring函数获得从指定位置开始,到指定位置为止的字符串D、substring函数用于获得字符串的一个子串13、如果catch块中包括多个异常类,这些异常类的匹配原则是什么?CA、接try块中程序执行的顺序,寻找最通用的异常类B、接try块中程序执行的顺序,寻找能够最精确匹配的类C、接catch块中异常类的排列顺序,寻找第一个能够匹配的异常对象D、在catch块中寻找能够最精确匹配的类14、以下异常中,不属于RuntimeException的是(D)。A、IndexoutofBoundsException数组以下越界异常B、NullPointerExcePtion使用未初始化的引用变量C、ArithmeticException算术异常D、IllegalAccessException没有足够的权限访问其他类的成员15、运行下列程序,会产生什么结果。ADpublicclassMyThreadextendsThreadimplementsRunnable{publicvoidrun(){System.out.println(thisisrun());}publicstaticvoidmain(String[]args){Threadt=newThread(newMyThread());t.start();}}A、第一行会产生编译错误B、第六行会产生编译错误C、第六行会产生运行错误D、程序会运行和启动三、简答题。1、子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什么?此时子类对象还能执行父类中原来的方法吗?答:这种情况称为方法的覆盖,此时,在子类中已不能找到父类原来的方法,它的内存位置已经被替代。2、final修饰符可以用来修饰什么?被final修饰符修饰后有何特点?答:final修饰符可用来修饰类、属性、方法和终结器。被final修饰符修饰的类没有子类。被final修饰符修饰的属性在程序整个执行过程中都不能改变。被final修饰符修饰的方法是功能和内部语句不能更改的最终方法。被final修饰符修饰的终结器(以称析构器——finalize()方法,是在对象被删除前进行收尾工作的方法)也是不能更改的。3、试写出一个语句创建一个名为myPackage的包,这个语句应该放在程序的什么位置?packageMyPackage;应该在程序第一句。四、编程题。1、打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。#includestdio.hintmain(){//所谓水仙花数是指一个三位数,其各位数字立方和等于该数inti;inta=0,b=0,c=0;//a表示百位上的数,b表示十位上的数,c表示个位上的数,printf(打印三位数的所有水仙花数\n);for(i=100;i1000;i++){a=i/100;b=i/10;c=i;if(i==a*a*a+b*b*b+c*c*c){printf(%d\n,i);}}return0;}2、编程创建一个Cube类,在其中定义三个变量表示一个立方体的长、宽和高,定义一个构造方法对这三个变量进行初始化,然后定义一个方法求立方体的体积。创建一个对象,求给定尺寸的立方体的体积。publicclassBox{doublelength;//长doublewidth;//宽doubleheight;//高publicBox(){//构造函数length=0;width=0;height=0;}publicvoidsetLength(doublelength){//设置长this.length=length;}publicdoublegetLength(){//得到长returnlength;}publicvoidsetWidth(doublewidth){//设置宽this.width=width;}publicdoublegetWidth(){//得到宽returnwidth;Java程序设计试题及答案(二)时间:2012-02-20Java程序设计试题及答案(二)一、判断题。判断下列各题是否正确,若正确,在()内打“√”,否则打“×”。1、JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以。×2、Java程序中不区分大小写字母。×3、已知bytei=(byte)127;i=i+1;这两个语句能被成功编译。×4、调用this或super构造方法的语句必须放在第一条语句。√5、创建对象时系统将调用适当的构造方法给对象初始化。√6、对象可作方法参数,对象数组不能作方法参数。×二、不定项选择题。1、Java程序的编程与运行分几个阶段,下面的阶段描述中正确的是(BE)。A、Java编译器将源文件编译为二进制的目标码文件B、连接软件将目标码文件连接为最终的执行文件C、Java虚拟机运行连接后的可执行文件,将它们翻译为硬件能够理解的机器语言D、目标码无需连接,可以直接由Java虚拟机执行E、Java虚拟机解释目标文件,并把它们翻译为硬件能够理解的机器语言2、执行一个Java程序“FirstApp”的方法是(B)A、直接双击编译好的Java目标码文件执行B、运行“javacFirstApp.class”C、运行“javaFirstApp.java”D、运行“javaFirstApp”3、按照Java的标识符命名规范,下列表示一个类的标识符正确的是(B)。A、HelloworldB、HelloWorldC、helloworldD、helloWorld4、下列叙述中,正确的是(A)。A、Java语言的标识符是区分大小写的B、源文件名与public类名可以不相同C、源文件扩展名为.jarD、源文件中public类的数目不限5、指出下列哪个方法不是publicvoidadd(inta){}的重载方法。(A)A、publicintadd(inta)B、publicvoidadd(longa)C、publicvoidadd(inta,intb)D、publicvoidadd(floata)6、关于缺省级和公开级的类在访问上的差别,描述正确的是(BD)。A、对于其它包的类,只要用“import”关键字导入,就可以访问到缺省级的类B、“import”关键字只能导入公开级的类C、在公开级,不但同一个包里的其它类可以访问这个类,而且其它包里的类也可以访问它D、缺省级下,只有同一个包内的其它类可以访问这个类,外界不能访问E、缺省级和公开级的类都能从包外访问到7、子类如何调用父类带有参数的构造方法?BA、子类也创建具有同样参数的方法参数,Java会自动调用父类构造方法B、子类构造方法的开头用“super”语句调用父类构造方法C、无法调用D、创建子类对象时,先调用父类的构造方法,再调用子类的构造方法8、public的成员变量能够被以下哪些对象访问到?CA、所有的对象,但子类只能直接访问,而不能继承父类对象的public组成员B、所有的对象,但其它包中的对象只能访问少数从句中导出的成员C、所有的对象,子类可以直接访问,也可以继承父类对象的public组成员D、所有的对象E、所有的对象,但子类不能访问其它包中的父类对象的public组成员9、当父类的引用变量指向子类对象时,对于同名的方法调用哪个?AA、调用子类的方法B、先调用父类的方法再调用子类的方法C、调用父类的方法D、先调用子类的方法再调用父类的方法10、关于多态性,以下描述中正确的是(D)。A、多态性就是方法的覆盖B、多态性就是方法重载C、多态性只存在于同名的成员变量之间D、多态性是指按引用变量指向的对象,而不是引用变量本身的类型来决定调用哪个方法11、以下关于字符串函数的描述中,正确的是(C)。A、delete函数用于删除整个字符串B、replace函数