《JAVA测试题(三套含答案).docx》由会员分享,可在线阅读,更多相关《JAVA测试题(三套含答案).docx(27页珍藏版)》请在三一办公上搜索。
1、1 .在单一文件中import、C1.aSS和PaCkage的正确出现顺序是:AA. package,import,c1.assB. c1.ass,import,packageC. import,package,c1.assD. package,c1.ass,import2 .PUb1.iCStatiCVoidmain方法的参数描述是:A,DA. StringargsB. StringsargsC. StringargsD. Stringargs3 .下面哪行代码会在编译的时候出现错误或警告:A,B,C,DA. f1.oatf=;B. charc=,a;C. byteb=257;D. boo1
2、.eanb=nu1.1.;E. inti=10;4 .编译,运行下列代码后的结果是:Dpub1.icc1.assTestpub1.icstaticvoidmain(Stringargs)intage;age=age+1;Theageis+age);)A.编译,运行后没有输出B.编译,运行后输出:Theageis1C能通过编译,但运行时产生错误D.不能通过编译4 .下面那些关键字不是JAVA的关键字BAifBthenCgotoDwhi1.eEcase5 .下面那些不是合法的变量定义:A,FC.Whatavariab1.eD._3_E. SanothervarF. #myvar6 .内部数据类型b
3、yte的取值范围是B-65,535B.(-128)-127C.(-32,768)-32,767D.(-256)-2557 .下列哪些表达式返同InIeABA.john=johnB.john.equa1.s(john()C.johnu=johnuD.john.equa1.s(newButtonCjohn)8 .声明公用的abstract方法的正确格式是AA. pub1.icabstractvoidadd();B. pub1.icabstractvoidadd()C. pub1.icabstractadd();D. pub1.icvirtua1.add();9 .下面的代码能打印出的结果为:Cin
4、ti=1.;switch(i)caseO:zero);break;case 1:one);case 2:two);defau1.t:defau1.t);)B. one,defau1.tC. one,two,defau1.tD. defau1.t1O.下面的代码能打印出的结果为:Binti=9;switch(i)defau1.t:defau1.t);caseO:zero);break;case1:one);case2:two);A.defau1.t,zeroC. errordefau1.tc1.ausenotdefinedD. nooutputdisp1.ayed11.下面的代码那个能正常的编译
5、通过:B,CAinti=0;if(i)He1.1.o);)Bboo1.eanb=true;boo1.eanb2=true;if(b=b2)(Sotrue*);)C.inti=1.;intj=2;if(i=1.j=2)OK,);Dinti=1.;intj=2;if(i=1.&|j=2)OK);12.不与在同一个目录下,如果你试图编译,运行下面的代码,那么会是什么结果Cimportpub1.icc1.assMinepub1.icstaticvoidmain(Stringargv)Minem=newMine();intamethod()try(FiIeInputStreamdis=newFi1.eI
6、nputStream();Jcatch(Fi1.eNotFoundExceptionfne)Nosuchfi1.efound);return-1;)catch(IOExceptionioe)fina1.1.yDoingfina1.1.y);)returnO;1 3.当你试图准备编译,运行下面代码时会发生:CA.编译和运行很正常B.编译时错误C.运行时错误c1.assBase)c1.assSubextendsBasec1.assSub2extendsBase)pub1.icc1.assCExpub1.icstaticvoidmain(Stringargv)Baseb=newBase();Subs
7、=(Sub)b;)14.当你试图准备编译,运行下面代码时会发生:Dpub1.icc1.assTuxextendsThreadstaticStringsName=,vande1.eur;pub1.icstaticvoidmain(Stringargv)Tuxt=newTux();(sName);voidpiggy(StringsName)sName=sName+wiggy;start();)pub1.icvoidrun()for(inti=0;i4;i+)sName=sName+,+i;)A.编译时错误B.编译成功,并打印出vande1.eurwiggyC.编译成功,并打印出vande1.eur
8、wiggy0123D.编译成功,并打印出“vande1.ur”15.在什么情况下类获得默认的构造方法:BA.类被定义时B.类中没有定义任何构造方法时C.在类中至少定义了一个构造方法时16.IisteneK监听器)方法的正确的访问修饰符是什么A(即默认为空)17 .假定有一个包含引起异常(不是一个RuntimeException)的代码的方法,用什么方式告诉方法的调用者要捕获该异常:BExceptionExceptionExceptionD.不用特别指定18 .下面的代码能打印出的结果是:A,Bpub1.icc1.assMyForpub1.icstaticvoidmain(Stringargv)
9、inti;intj;outer:for(i=1.;i3;i+)inner:for(j=1.;j0);itforiis3itforiis2itforiis1itforiis040.打印的结果为:DA-2BC-3D测试二JaVa程序员笔试题一、单项选择题(共10题,每题2分,共20分)1 .下列说法哪一个是正确的。(B)A. Java程序经编译后会产生machinecodeB. Java程序经编译后会产生bytecodeC. JaVa程序经编译后会产生D1.1.D.以上都不正确2 .提供JaVa存取数据库能力的包是。(A)A.B.C.D.3 .执行如下程序代码后,C的值是。(C)a=0;c=0;d
10、o-c;a=a-1.;)whi1.e(aO);A. OB.1C.-1D.死循环4 .下面的语句中正确的表达式为。(C)A. byteb=128;B. boo1.eann=nu1.1.;C. doub1.ed=;D. f1.oatf=;5 .将一个十六进制值赋给一个Iong型变量的正确写法为。(D)A.1.ongnumber=3451.;B. 1.ongnumber=0345;C. 1.ongnumber=03451.;D. 1.ongnumber=0x3451.;6 .以下程序代码的输出是。(B)pub1.icc1.asstest(pub1.icstaticvoidmain(Stringarg
11、s)(63);)A.3B.5C.6D.117 .以下程序代码的输出是。(E)pub1.icc1.asstest(privatestaticintj=0;privatestaticboo1.eanmethodB(intk)(j+=k;returntrue;)pub1.icstaticvoidmethodA(inti)boo1.eanb:b=i10ImethodB(4);b=i10methodB(8);)pub1.icstaticvoidmain(Stringargs)(methodA(0);)A.0B.4C.8D.12E.不能编译通过8 .以下程序代码的输出是。(A)pub1.icc1.asst
12、estpub1.icstaticvoidadd3(Integeri)intva1.=();va1.+=3;i=newInteger(va1.);)pub1.icstaticvoidmain(Stringargs)Integeri=newInteger(0);add3(i);();)A.编译失败B.编译成功但在第三行会出现异常C.0D.39 .以下程序代码执行后,哪个说法正确(B)intindex=1;boo1.eantest=newBoo1.ean3;boo1.eanfo=testindex);A.有异常抛出。B.无法编译。C. foo的值是0。D. foo的值是nu1.1.。E. foo的值
13、是trueOF. foo的值是fa1.se。10.以下哪个类是SWI包中的。(D)A.MessageBoxB.MessageDia1.ogC.JDia1.ogD.Disp1.ayMode二、多项选择题(共5题,每题4分,共20分)1 .在下面的选项中合法的标识符有。(ADEF)A._okB.*pointC.thisD.SbyteE.constF.I1.ikeJ1.CSS2 .下面的选项中哪些不是java的关键字。(ABD)A.TRUEB.sizeofC.gotoD.constE.superF.void3 .下面的叙述中正确的有。(AC)A.环境变量可在编译SoUrCeCode时指定。B.在编译
14、程序时,所能指定的环境变量不包括CIaSSPath。C.javac一次可同时编译数个JaVa源文件。D.能指定编译结果要置于哪个目录(directory).4 .下面的叙述中正确的有。(C)A.equa1.s。方法判定引用值是否指向同一对象。B.=操作符判定两个分立的对象的内容和类型是否一致。C.equa1.s。方法只有在两个对象的内容一致时返回true。D.类FiIe重写方法equa1.s。在两个分立的对象的内容和类型一致时返回true,5 .下面有关变量及其作用域的陈述哪些是对的。(AC)A.在方法里面定义的局部变量在方法退出的时候被撤销。B.局部变量也叫自动变量。C.在方法外面定义的变量
15、(译注:即实例变量)在对象被构造时创建。D.在方法中定义的方法的参变量只要该对象被需要就一直存在。三、简答题(共7题,共40分)1. 请写出一个输出“He1.1.oWor1.d!”的程序。(3分)答:pub1.icC1.assHe1.1.oWor1.d(Pub1.icstaticvoidmain(Stringargs)WOT1.D);2. Char型变量中能不能存贮一个中文汉字为什么(3分)答:能存储一个汉字;因为它能存储四个字节而每个汉字只占两个字节。3. 常见的两种XmI解析技术是什么区别是什么(4分)答:常见的两种有:SAX和DOM。区别:SAX是一种事件驱动的Xm1.解析方式。每次访问
16、一个Xm1.文件中的某个节点的时候,SaX就会搜索一遍Xm1.文件,在找到相应的节点后就会触发一个事件来处理请求。只读DOM是一种基于树状的查找方式。DOM会将XmI解析成一棵树,存在内存中。开发者可以通过查找树的节点来取得文件的内容或者修改内容。可读写4. MVC是什么,如何实现(5分)答:MVC是一个是一个设计模式,它强制性的使应用程序的输入,处理和输出分开。使用MVC应用程序被分为三个核心部件:MMODo模型,VVIEW试图,cComra1.控制实现:首先有页面(jsp)发送请求给控制器(SerV1.et),然后由控制器接收用户的请求,并决定应该调用哪个模型OaVabean)来进行处理,
17、然后模型用业务逻辑来处理用户的请求并返问数据,最后控制器用相应的视图格式化模型返同的数据,并通过表示层显示给用户。5. J2EE是什么(6分)答:J2EE是Sun公司提出的多层(mu1.ti-diered),分布式(distributed),基于组件(COmPOnenI-base)的企业级应用模型(enterprieseapp1.icationmode1.).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(Iier)中。所属层次包括客户层(C1.iemtier)组件,web层和组件,Business层和组件,企业信息系统(E1.S)层。6.
18、jsp有哪些内置对象作用分别是什么(9分)答:用户端请求,此请求会包含来自GET/POST请求的参数;网页传回用户端的回应;网页的属性是在这里管理;与请求有关的会话期;SerVIeI正在执行的内容;用来传送回应的输出;SerVIe1.的构架部件;JSP网页本身;针对错误网页,未捕捉的例外7.作用域PUb1.iC,private,proiected,以及不写时的区别(10分)答:作用域当前类同一package子孙类其他packagepub1.icprotectedXfriend1.yXXprivate不写时默认为friend1.yXX四、编码及论述题(共2题,每题10分,共20分)1.什么是Si
19、ngIeIon,它的作用是什么,它有几种形式请用代码写出一个SingIeton类。答:JaVaSingIeIon模式用来保证在运行的应用程序中,一个CIaSS只是实例化一次,也就是只有一个相应的对象存在。它有三种形式pub1.icc1.assSing1.eton(privatestaticSing1.etoninstance=nu1.1.;pub1.icstaticsynchronizedSing1.etonget1.nstance()if(instance=nu1.1.)instance=newSing1.eton();returninstance;112 .在Struts+Spring+H
20、ibernate的组合框架模式中,三者各自的特点都是什么答:StrtusWEB层SPring是业务层Hiebenate是持久化层V测试三一、单项选择题1 .JaVa是从。语言改进重新设计。A.AdaB.C+C.Pasaca1.D.BASIC答案:B2 .下列语句哪一个正确()A. Java程序经编译后会产生machinecodeB. Java程序经编译后会产生bytecodeC. JaVa程序经编译后会产生D1.1.D.以上都不正确答案:B3 .下列说法正确的有()A. c1.ass中的constructor不可省略B. constructor必须与CIaSS同名,但方法不能与c1.ass同名
21、C. constructor在-一个对象被new时执行D. 一个CIaSS只能定义一个ConSInIC1.or答案:C4 .提供JaVa存取数据库能力的包是。A.B.C.D.答案:A5 .下列运算符合法的是OA.&B.C.ifD.:=答案:A6 .执行如下程序代码a=0;c=0;do-c;a=a-1.;)whi1.e(a0);后,C的值是OA.OB.1C.-1D.死循环答案:C7 .下列哪一种叙述是正确的OA.absirac1.修饰符可修饰字段、方法和类8 .抽象方法的body部分必须用一对大括号包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D9 .下列语句正确的是。
22、A.形式参数可被视为IOCaIVariab1.e10 形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A11 下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二、多项选择题1 .JaVa程序的种类有OA.类(C1.aSS)B.App1.etC.App1.icationD.Serv1.et2 .下列说法正确的有OA.环境变量可在编译sourcecode时指定B.在编译程序时,所能指定的环境变量不包括CIaSSPathC.
23、javac一次可同时编译数个JaVa源文件D.能指定编译结果要置于哪个目录(directory)答案:BCD3 .下列标识符不合法的有OA.newB.SUsdo1.1.arsC.1234D.答案:ACD4 .下列说法错误的有。A.数组是一种对象B.数组属于一种原生类C.intnumber=31,23,33,43,35,63D.数组的大小可以任意改变答案:BCD5 .不能用来修饰interface的有()A.privateB.pub1.icC.protectedD.static答案:ACD6 .下列正确的有。A. ca1.1.byva1.ue不会改变实际参数的数值B. ca1.1.byrefer
24、ence能改变实际参数的参考地址C. ca1.1.byreference不能改变实际参数的参考地址D. ca1.1.byreference能改变实际参数的内容答案:ACD7 .下列说法错误的有。A.在类方法中可用this来调用本类的类方法8 .在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:ACD8.下列说法错误的有。A. JaVa面向对象语言容许单独的过程与函数存在B. Java面向对象语言容许单独的方法存在C. JaVa语言中的方法属于类中的成员(member)D. JaVa语言中的方法必定隶属于某一类(对象),调用方法与过
25、程或函数相同答案:ABC9,下列说法错误的有。A.能被成功运行的javac1.ass文件必须有main。方法8. J2SDK就是JaVaAP1.C.可利用jar选项运行Jar文件D.能被App1.etviewer成功运行的javac1.ass文件必须有main()方法答案:BCD三、判断题1.JaVa程序中的起始类名称必须与存放该类的文件名相同。O答案:正确9. UniCOde是用16位来表示一个字的。()答案:正确10. 生类中的数据类型均可任意转换。O答案:错误1 .分别写出Boo1.,int,f1.oat,指针类型的变量a与“零”的比较语句。答案:BOO1.:if(!a)orif(a)i
26、nt:if(a=O)f1.oat:constEXPRESSIONEXP=if(a-EXP)pointer:if(a!=NU1.1.)orif(a=NU1.1.)2 .请说出ConSt与#加仃腕相比,有何优点答案:1)COnSt常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。2)有些集成化的调试工具可以对COnSt常量进行调试,但是不能对宏常量进行调试。3 .简述数组与指针的区别数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。(1)修改内容上的差
27、别Chara=he1.1.o”;a0=X;Char*p=wor1.d”:成员函数的重载、覆盖和隐藏区别答案:a.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;4 4)virtua1.关键字可有可无。b.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类):(2)函数名字相同;(3)参数相同;(4)基类函数必须有VinUa1.关键字。c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无Vim1.aI关键字,基类的函数将被隐藏(注意别与重载混淆)
28、。(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有VirtUa1.关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)5.Therearetwointvariab1.es:aandb,don,tusetiifw,fcSWiteh“orOtherjudgenientstatements,findoutthebiggestoneofthetwonumbers.答案:(a+b)+abs(a-b)26.如何打印出当前源文件的文件名以及源文件的当前行号答案:COUt_FI1.E_;cout_1.INE_;_FI1.E_和_1.INE_是系统预定义宏,这种宏并不是在某个文件中定义的,
29、而是由编译器定义的。7.main主函数执行完毕后,是否可能会再执行一段代码,给出说明答案:可以,可以用_onexit注册一个函数,它会在main之后执行intfn1.(void),fn2(void),fn3(void),fn4(void);voidmain(void)Stringstr(,zhang1.in);_onexit(fh1.);_onexit(fn2);_onexit(fn3);_onexit(fn4);printf(Thisisexecutedfirst.n,);1intfn1.()(printf(next.nu);return0;intfn2()printf(executed);
30、returnO;1intfn3()printf(is,);returnO;)intfn4()(printf(This);returnO;IThe_onexitfunctionispassedtheaddressofafunction(func)tobeca1.1.edwhentheprogramterminatesnorma1.1.y.Successiveca1.1.sto_onexitcreatearegisteroffunctionsthatareexecutedin1.IFO(1.ast-in-first-out)order.Thefunctionspassedto_onexitcann
31、ottakeparameters.8 .如何判断一段程序是由C编译程序还是由C+编译程序编译的答案:#ifdef_cp1.usp1.uscout,c+r;#e1.secoutnext=NU1.1.)returnhead;Node*p1=head;Node*p2=p1.-next;Node*p3=p2-next;p1.-next=NU1.1.;whi1.e(p3!=NU1.1.)p2-next=p1.;p1.=p2;p2=p3;p3=p3-next;)p2-next=p1.;head=p2;returnhead;)(2)已知两个链表head1.和head2各自有序,请把它们合并成一个链表依然有序
32、。(保留所有结点,即便大小相同)Node*Merge(Node*head1,Node*head2)(if(head1.=NU1.1.)returnhead2;if(head2=NU1.1.)returnhead1;Node*head=NU1.1.;Node*p1.=NU1.1.;Node*p2=NU1.1.;if(head1-datadata)head=head1;p1.=head1.-next;p2=head2;)e1.se(head=head2;p2=head2-next;p1.=head1;)Node*pcurrent=head;whi1.e(p1.!=NU1.1.&p2!=NU1.1.
33、)(if(pI-datadata)(pcurrent-next=p1.;pcurrent=p1.;p1.=p1.-next;)e1.sepcurrent-next=p2;pcurrent=p2;p2=p2-next;1)if(p1.!=NU1.1.)pcurrent-next=p1.;if(p2!=NU1.1.)pcurrent-next=p2;returnhead;)(3)已知两个链表head1.和head2各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(Autodesk)答案:Node*MergeRecursive(Node*head1.,Node*head2)(if(head1.=NU1.1.)returnhead2;if(head2=NU1.1.)returnhead1.;Node*head=NU1.1.;if(headI-datadata)head=head1;head-next=MergeRecursive(head1-next,head2);e1.se(head=head2;head-next=MergeRecursive(head1,head2-