java基础考试题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

新员工考试一、选择题(共30题,每题2分)1.下面哪些是合法的标识符?(多选题)A.$personsB.TwoUsersC.*pointD.thisE._endline答案A,B,E分析Java的标识符可以以一个Unicode字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字(this保留字)。2.哪些是将一个十六进制值赋值给一个long型变量?(单选题)A.longnumber=345L;B.longnumber=0345;C.longnumber=0345L;D.longnumber=0x345L答案D分析十六进制数以0x开头,long型数以L(大小写均可,一般使用大写,因为小写的l和数字1不易区分)。3.下面的哪些程序片断可能导致错误?(多选题)A.Strings=Gonewiththewind;Stringt=good;Stringk=s+t;B.Strings=Gonewiththewind;Stringt;t=s[3]+one;C.Strings=Gonewiththewind;Stringstandard=s.toUpperCase();D.Strings=homedirectory;Stringt=s-directory;答案B,D分析A:String类型可以直接使用+进行连接运算。B:String是一种Object,而不是简单的字符数组,不能使用下标运算符取其值的某个元素,错误。C:toUpperCase()方法是String对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String类型)。D:String类型不能进行减(-)运算,错误。4.pointx处的哪些声明是句法上合法的?(多选题)classPerson{privateinta;publicintchange(intm){returnm;}}publicclassTeacherextendsPerson{publicintb;publicstaticvoidmain(Stringarg[]){Personp=newPerson();Teachert=newTeacher();inti;//pointx}}A.i=m;B.i=b;C.i=p.a;D.i=p.change(30);E.i=t.b.答案D,E分析A:m没有被声明过,不能使用。B:虽然b是类Teacher的public成员变量,但是在静态方法中不能使用类中的非静态成员。C:a是类Person的private成员,在类外不能直接引用。D:change(intm)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。E:b是类Teacher的public成员变量,且是int型,可以通过类的实例变量t引用并赋值给一个int型变量。5.下面的代码片断(多选题):1)publicvoidcreate(){2)VectormyVect;3)myVect=newVector();4)}下面的哪些陈述正确?A.第二行的声明不会为变量myVect分配内存空间。B.第二行的声明分配一个到Vector对象的引用的内存空间。C.第二行语句创建一个Vector类对象。D.第三行语句创建一个Vector类对象。E.第三行语句为一个Vector类对象分配内存空间。答案A,D,E分析要为一个新对象分配空间必须执行newXxx()调用,new调用执行以下的操作:1.为新对象分配空间并将其成员初始化为0或者null。2.执行类体中的初始化。(例如在类中有一个成员声明inta=10;在第一步后a=0,执行到第二步后a=10)3.执行构造函数。4.变量被分配为一个到内存堆中的新对象的引用。6.下面的哪些答案可以用以表示八进制值8?(单选题)A.010B.0x10C.08D.0x8答案A分析八进制值以0开头,以0x开头的为十六进制值,八进制中不能出现数字8,最大只有7。1)classPerson{2)publicvoidprintValue(inti,intj){/*…*/}3)publicvoidprintValue(inti){/*...*/}4)}5)publicclassTeacherextendsPerson{6)publicvoidprintValue(){/*...*/}7)publicvoidprintValue(inti){/*...*/}8)publicstaticvoidmain(Stringargs[]){9)Persont=newTeacher();10)t.printValue(10);11)}12)}第十行的声明将调用哪些方法?(单选题)A.online2B.online3C.online6D.online7答案D分析变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。7.给出下面的代码:(单选题)x的取值在什么范围内时将打印字符串second。A.x0B.x-3C.x=-3D.x=0&x-3答案D分析x0时打印first,x-3&&x=0时打印second,x=-3时打印third。这个题目没有什么难的,只要理解if语句的语法就可以了。8.下面的哪些赋值语句是不正确的(单选题)A.floatf=11.1;B.doubled=5.3E12;C.doubled=3.14159;D.doubled=3.14D.答案A题目:。浮点数的赋值是带有小数点的数字缺省是double型的,如果在浮点数后面加f或者F则是float,后面加d或者D则是double,科学计数法形式的浮点数也是double型的,而double的精度比float高,将一个高精度的double赋值给一个低精度的float时需要进行强制类型转换,反之则不需要。9.给出下面的不完整的类代码:(单选题)classPerson{Stringname,department;intage;publicPerson(Stringn){name=n;}publicPerson(Stringn,inta){name=n;age=a;}publicPerson(Stringn,Stringd,inta){//doingthesameastwoargumentsversionofconstructor//includingassignmentname=n,age=adepartment=d;}}下面的哪些表达式可以加到构造方法中的doingthesameas...处?A.Person(n,a);B.this(Person(n,a));C.this(n,a);D.this(name,age).答案C分析:在同一个类的不同构造方法中调用该类的其它构造方法需要使用this(…)的形式,而且必须是在构造方法的第一行调用,这个和普通的方法重载调用的方式不同,普通的方法可以直接使用方法名加参数来调用,而且调用位置没有限制,因此答案A是不行的,B的语法就是错误的,D的错误在于在父类型的构造函数被调用前不能引用类的成员。构造方法是一个类对象实例化的起点(虽然严格来说首先执行的并不是构造方法的第一个语句,而是内存的分配),因此在构造方法中不能将成员作为参数引用。10.publicvoidtest(){//(多选题)try{oneMethod();}catch(ArrayIndexOutOfBoundsExceptione){}catch(Exceptione){}finally{}}在oneMethod()方法运行正常的情况下将显示什么?A.condition1B.condition2C.condition3D.finally答案ad分析:如果try块中的语句在执行时发生异常,则执行从该处中断而进入catch块,根据异常的类型进行匹配,最前面的优先进行匹配比较,只要该异常是catch中指定的异常的子类就匹配成功进而执行相应的catch中的内容,而finally块中的内容无论是否发生异常都将被执行。11.给出下面的代码:(单选题)publicclassTest{voidprintValue(intm){while(--m10)}publicstaticvoidmain(Stringarg[]){inti=10;Testt=newTest();t.printValue(i);}}输出将是什么?A.Thevalueis8B.Thevalueis9C.Thevalueis10D.Thevalueis11答案:c此题考察的是do…while循环和--操作符的知识,do…while最少被执行一次,在执行完do中的内容后判断while中的条件是否为true,如果为true的话就再执行do中的内容,然后再进行判断,以此类推直到while的判断为false时退出循环执行循环后面的内容,而—操作符的规则是在变量右边的--将先进行运算,然后才是使变量的值减一,而在变量左边的是先将变量的值减一再运算。12.给出下面的代码:(单选题)1)publicvoidmodify(){2)inti,j,k;3)i=100;4)while(i0){5)j=i*2;7)k=k+1;8)i--;9)}10)}哪些行在编译时可能产生错误。A.line4B.line6C.line7D.line8答案c这个问题在前面有关变量的类型及其作用域的问题中讨论过,局部变量在使用前必须显式初始化,而代码中的变量k在使用前没有。13.给出下面的代码片断:(单选题)1)Stringstr=null;2)if((str!=null)&&(str.length()10)){3)4)}5)elseif((str!=null)&(str.length()5)){6)7)}ntln(end);}哪些行将导致错误?A.line1B.line2C.line5D.line8答案c此题需要将代码仔细看清楚,查询没有逻辑错误,if…else的使用没有问题,也没有拼写错误,错误在于第5行的“与”操作符的使用,逻辑操作符(logicaloperator)的“与”应该是&&,而&是位逻辑操作符(bitwiselogicaloperator)的“与”,使用的对象不一样,逻辑操作符的“与”的左右操作数都应该是布尔型(logicalboolan)的值,而位逻辑操作符的左右操作数都是整型(integral)值。14.给出下面的代码:(单选题)publicclassPerson{staticintarr[]=newint[10];publicstaticvoidmain(Stringa[]){}}那个叙述是对的。A.编译时将发生错误。B.编译时正确但是运行时出错。C.输出为0。D.输出为null答案cint型数组是类对象,它在类被加载时完成初始化,在前面题目中已经有叙述,由于是原始数据类型int,其初始值为0。15.publicclassParent{//(多选题)publicintaddValue(inta,intb){ints;s=a+b;returns;}}classChildextendsParent{}哪些方法可以加入类Child中?A.intaddValue(inta,intb){//dosomething...}B.pu

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功