JAVA测试题(三套含答案)_第1页
JAVA测试题(三套含答案)_第2页
JAVA测试题(三套含答案)_第3页
JAVA测试题(三套含答案)_第4页
JAVA测试题(三套含答案)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.在单一文件中import、class和package的正确出现顺序是:Apackage,import,classclass,import,packageimport,package,classpackage,class,import.publicstaticvoidmain方法的参数描述是:A,DStringargs[]Stringsargs[]StringargsString[]args.下面哪行代码会在编译的时候出现错误或警告:A,B,C,Dfloatf=;charc=Han;byteb=257;booleanb=null;inti=10;.编译,运行以下代码后的结果是:DpublicclassTest{publicstaticvoidmain(Stringargs[]){intage;age=age+1;nTheageis"+age);))A.编译,运行后没有输出B.编译,运行后输出:Theageis1C能通过编译,但运行时产生错误D.不能通过编译.下面那些关键字不是JAVA的关键字BAifBthenCgotoDwhileEcase.下面那些不是合法的变量定义:A,FC._whatavariableD._3_$anothervar#myvar.现在你存储一个唯一的整型序列,那么你需要哪个容器接口A.给出以下代码,请选择2个正确输出D,EpublicclassExample{publicstaticvoidmain(Stringargs[]){inti=0;do{itforiis"+i);}while(—i>0);itforiis3itforiis2itforiis1itforiis0.打印的结果为:DA-2BC-3D〈测试二〉Java程序员笔试题一、单项选择题(共10题,每题2分,共20分).以下说法哪一个是正确的。(B)Java程序经编译后会产生machinecodeJava程序经编译后会产生bytecodeJava程序经编译后会产生DLLD.以上都不正确.提供Java存取数据库能力的包是。(A)A.B.C.D..执行如下程序代码后,C的值是。(C)a=0;c=0;do{-c;a=a-l;}while(a>0);A.0B.1C.-1D.死循环.下面的语句中正确的表达式为。(C)byteb=128;booleann=null;doubled=;floatf=;.将一个十六进制值赋给一个long型变量的正确写法为。(D)longnumber=345L;B・longnumber=0345;longnumber=0345L;longnumber=0x345L;.以下程序代码的输出是。(B)publicclasstest(publicstaticvoidmain(Stringargs[])((6A3);))A.3B.5C.6D.11.以下程序代码的输出是。(E)publicclasstest(privatestaticintj=0;privatestaticbooleanmethodB(intk)(j+=k;returntrue;)publicstaticvoidmethodA(inti){booleanb:b=i<10|methodB(4);b=i<10||methodB(8);)publicstaticvoidmain(Stringargs[]}(methodA(0);))A.0B.4C.8D.12E.不能编译通过.以下程序代码的输出是。(A)publicclasstest{publicstaticvoidadd3(Integeri)}intval=();val+二3;=newInteger(val);)publicstaticvoidmain(Stringargs[]){Integeri=newInteger(0);add3(i);());))A.编译失败B.编译成功但在第三行会出现异常C.0D.3.以下程序代码执行后,哪个说法正确(B)intindex=1;boolean[]test=newBoolean[3];booleanfoo=test[index];A.有异常抛出。B.无法编译。foo的值是0。foo的值是null。foo的值是trueofoo的值是falseo.以下哪个类是swt包中的。(D)A.MessageBoxB.MessageDialogC.JDialogD.DisplayMode二、多项选择题(共5题,每题4分,共20分).在下面的选项中合法的标识符有。(ADEF)A._okB.*pointC.thisD.$byteE.constF.ILikeJLCSS.下面的选项中哪些不是java的关键字。(ABD)A.TRUEB・sizeofC.gotoD.constE.superF.void.下面的表达中正确的有。(AC)A.环境变量可在编译sourcecode时指定。B.在编译程序时,所能指定的环境变量不包括classpath。C.javac一次可同时编译数个Java源文件。D.能指定编译结果要置于哪个目录(directory)。4.下面的表达中正确的有。(C)A.equals。方法判定引用值是否指向同一对象。B.==操作符判定两个分立的对象的内容和类型是否一致。C.equals。方法只有在两个对象的内容一致时返回true。D.类File重写方法equals。在两个分立的对象的内容和类型一致时返回true。5.下面有关变量及其作用域的陈述哪些是对的。(AC)A.在方法里面定义的局部变量在方法退出的时候被撤销。B.局部变量也叫自动变量。C.在方法外面定义的变量(译注:即实例变量)在对象被构造时创立。D.在方法中定义的方法的参变量只要该对象被需要就一直存在。三、简答题(共7题,共40分)请写出一个输出“HelloWorld!”的程序。(3分)答:publicClassHelloWorld{Publicstaticvoidmain(String[]args)(WOTLD");char型变量中能不能存贮一个中文汉字为什么(3分)答:能存储一个汉字;因为它能存储四个字节而每个汉字只占两个字节。常见的两种xml解析技术是什么区别是什么(4分)答:常见的两种有:SAX和DOM。区别:SAX是一种事件驱动的xml解析方式。每次访问一个xml文件中的某个节点的时候,sax就会搜索一遍xml文件,在找到相应的节点后就会触发一个事件来处理请求。只读DOM是一种基于树状的查找方式。DOM会将xml解析成一棵树,存在内存中。开发者可以通过查找树的节点来取得文件的内容或者修改内容。可读写MVC是什么,如何实现(5分)答:MVC是一个是一个设计模式,它强制性的使应用程序的输入,处理和输出分开。使用MVC应用程序被分为三个核心部件:MMODO模型,VVIEW试图,cContral控制实现:首先有页面(jsp)发送请求给控制器(servlet),然后由控制器接收用户的请求,并决定应该调用哪个模型(javabean)来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层显示给用户。J2EE是什么(6分)答:J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese叩plicationmodel).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。jsp有哪些内置对象作用分别是什么(9分)答:用户端请求,此请求会包含来自GET/POST请求的参数;网页传回用户端的回应;网页的属性是在这里管理;与请求有关的会话期;servlet正在执行的内容;用来传送回应的输出;servlet的构架部件;JSP网页本身;针对错误网页,未捕捉的例外四、编码及论述题(共2题,每题10分,共20分)7.作用域public,private,protected,以及不写时的区别(10分)答:作用域当前类同一package子孙类其他packagepublicVJVJprotectedVVVXfriendlyVJXXprivateVXXX不写时默认为friendly.什么是Singleton,它的作用是什么,它有几种形式请用代码写出一个Singleton类。答:JavaSingleton模式用来保证在运行的应用程序中,一个Class只是实例化一次,也就是只有一个相应的对象存在。它有三种形式publicclassSingleton(privatestaticSingletoninstance=null;publicstaticsynchronizedSingletongetlnstance()(if(instance==null)instance=newSingletonQ;returninstance;)).在Struts+Spring+Hibernate的组合框架模式中,三者各自的特点都是什么答:StrtusWEB层Spring是业务层Hiebenate是持久化层〈测试三〉一、单项选择题Java是从()语言改进重新设计。AdaB.C++C.PasacalD.BASIC答案:B.以下语句哪一个正确()Java程序经编译后会产生machinecodeJava程序经编译后会产生bytecodeJava程序经编译后会产生DLLD.以上都不正确答案:B.以下说法正确的有()A.class中的constructor不可省略constructor必须与class同名,但方法不能与class同名constructor在一个对象被new时执行一个class只能定义一个constructor答案:C.提供Java存取数据库能力的包是()A.B.C.D.答案:A.以下运算符合法的是()A.&&B.<>C.ifD.:=答案:A.执行如下程序代码a=0;c=0;do{-c;a=a-l;}while(a>0);后,C的值是()A.OB.1C.-1D.死循环答案:C.以下哪一种表达是正确的()A.abstract修饰符可修饰字段、方法和类.抽象方法的body局部必须用一对大括号{}包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D.以下语句正确的选项是()A.形式参数可被视为localvariable形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A以下哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二、多项选择题.Java程序的种类有()A.类(Class)B.AppletC.ApplicationD.Servlet.以下说法正确的有()A.环境变量可在编译sourcecode时指定B.在编译程序时,所能指定的环境变量不包括classpathC.javac一次可同时编译数个Java源文件D.能指定编译结果要置于哪个目录(directory)答案:BCD.以下标识符不合法的有()A.newB.$UsdollarsC.1234D.答案:ACD.以下说法错误的有()A.数组是一种对象.数组属于一种原生类C.intnumber=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BCD.不能用来修饰interface的有。A.privateB.publicC.protectedD.static答案:ACD.以下正确的有()callbyvalue不会改变实际参数的数值callbyreference能改变实际参数的参考地址callbyreference不能改变实际参数的参考地址callbyreference能改变实际参数的内容答案:ACD.以下说法错误的有()A.在类方法中可用this来调用本类的类方法.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:ACD.以下说法错误的有。Java面向对象语言容许单独的过程与函数存在Java面向对象语言容许单独的方法存在Java语言中的方法属于类中的成员(member)Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:ABC.以下说法错误的有()A.能被成功运行的javaclass文件必须有main。方法J2SDK就是JavaAPIC.可利用jar选项运行jar文件D.能被Appletviewer成功运行的javaclass文件必须有main()方法答案:BCD三、判断题Java程序中的起始类名称必须与存放该类的文件名相同。()答案:正确Unicode是用16位来表示一个字的。().内部数据类型byte的取值范围是B-65,535B.(-128)-127C.(-32,768)-32,767D.(-256)-255.以下哪些表达式返回trueABAJjohn"=="john”B.Hjohnn.equals(Hjohnn)CJjohn“=“john”D.njohnH.equals(newButton(njohnn)).声明公用的abstract方法的正确格式是AA.publicabstractvoidadd();B・publicabstractvoidadd(){}publicabstractadd();publicvirtualadd();9,下面的代码能打印出的结果为:Cinti=l;switch(i){case0:“zero");break;“one”);“wo");default:“default");)one,defaultone,two,defaultdefault0.下面的代码能打印出的结果为:Binti=9;switch(i){default:“default");case0:"zero”);break;case1:答案:正确3.原生类中的数据类型均可任意转换。()答案:错误.分别写出BOOL,int,float,指针类型的变量a与"零”的比拟语句。答案:BOOL:if(!a)orif(a)int:if(a==0)float:constEXPRESSIONEXP=if(a<EXP&&a>-EXP)pointer:if(a!=NULL)orif(a==NULL).请说出const与#(10行110相比,有何优点答案:1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。.简述数组与指针的区别数组要么在静态存储区被创立(如全局数组),要么在栈上被创立。指针可以随时指向任意类型的内存块。(1)修改内容上的差异chara[]="hello";a[0]='X';char*p="world”;成员函数的重载、覆盖和隐藏区别答案:a.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;4)virtual关键字可有可无。b.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规那么如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不管有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)5.Therearetwointvariables:aandb,don"use"switch"orotherjudgementstatements,findoutthebiggestoneofthetwonumbers.答案:((a+b)+abs(a-b))/26.如何打印出当前源文件的文件名以及源文件的当前行号答案:cout«FILEcout«—LINE—;_FILE_和_LINE_是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的。.main主函数执行完毕后,是否可能会再执行一段代码,给出说明答案:可以,可以用_onexit注册一个函数,它会在main之后执行intfn1(void),fn2(void),fn3(void),fn4(void);voidmain(void)(Stringstr(nzhanglin");_onexit(fnl);_onexit(fn2);_onexit(fn3);_onexit(fn4);printf("Thisisexecutedfirst.\nn);}intfnl()(printf(nnext.\nn);return0;}intfn2()printf(^executed");return0;}intfn3()(printf("isn);return0;)intfn4()(printf(nThisn);return0;)The_onexitfunctionispassedtheaddressofafunction(func)tobecalledwhentheprogramterminatesnormally.Successivecallsto_onexitcreatearegisteroffunctionsthatareexecutedinLIFO(last-in-first-out)order.Thefunctionspassedto_onexitcannottakeparameters..如何判断一段程序是由C编译程序还是由C++编译程序编译的答案:#ifdef_cpluspluscout«nc++n;#elsecout«^^c,^;#endif.文件中有一组整数,要求排序后输出到另一个文件中答案:#include#includeusingnamespacestd;voidOrder(vector&data)链表题:一个链表的结点结构structNode(intdata;Node*next;);typedefstructNodeNode;⑴链表的头结点head,写一个函数把这个链表逆序(Intel)Node*ReverseList(Node*head)//链表逆序(if(head==NULL||head->next==NULL)returnhead;Node*pl=head;Node*p2=pl->next;Node*p3=p2->next;pl->next=NULL;while(p3!=NULL)p2->next=pl;pl=p2;p2=p3;p3=p3->next;}p2->next=pl;head=p2;returnhead;)(2)两个链表headl和head2各自有序,请把它们合并成一个链表依然有序。(保存所有结点,即便大小相同)Node*Merge(Node*headl,Node*head2)(if(headl=NULL)returnhead2;if(head2=NULL)returnhead1;Node*head=NULL;Node*pl=NULL;Node*p2=NULL;if(headl->data<head2->data)head=head1;pl=headl->next;p2=head2;)else(head二head2;p2=head2->next;p1=head1;)Node*pcurrent=head;while(pl!=NULL&&p2!=NULL)(if(pl->data<=p2->data)(pcurrent->next=pl;pcurrent=pl;pl=pl->next;)elsepcurrent->next=p2;pcurrent二p2;p2=p2->next;})if(pl!=NULL)pcurrent->next=pl;if(p2!=NULL)pcuri'ent->next=p2;returnhead;)(3)两个链表headl和head2各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(Autodesk)答案:Node*MergeRecursive(Node*headl,Node*head2)(if(headl=NULL)returnhead2;if(head2==NULL)returnhead1;Node*head=NULL;if(head1->data<head2->data)head=headl;head->next二MergeRecursive(head1->next,head2);)elsehead=head2;head->next=MergeRecursive(head1,head2->next);returnhead;“one”);case2:“two”);A・default,zeroC・errordefaultclausenotdefinedD,nooutputdisplayed11.下面的代码那个能正常的编译通过:B,CAinti=0;if(i){“Hello”);)Bbooleanb=true;booleanb2=true;if(b==b2){"Sotrue");)C.inti=l;intj=2;if(i==l||j==2)HOKH);Dinti=l;intj=2;if(i==l&|j==2)nOKn);12.不与在同一个目录下,如果你试图编译,运行下面的代码,那么会是什么结果Cimport.*;publicclassMine{publicstaticvoidmain(Stringargv[]){Minem=newMine();intamethod(){try(FilelnputStreamdis=newFileInputStream(^"^);}catch(FileNotFoundExceptionfne){"Nosuchfilefound");return-1;}catch(IOExceptionioe){}finally!"Doingfinally'1);)return0;13.当你试图准备编译,运行下面代码时会发生:CA.编译和运行很正常B.编译时错误C.运行时错误classBase{}classSubextendsBase{}classSub2extendsBase{}publicclassCEx{publicstaticvoidmain(Stringargv[]){Baseb=newBase();Subs=(Sub)b;}}14.当你试图准备编译,运行下面代码时会发生:DpublicclassTuxextendsThread{staticStringsName=nvandeleurn;publicstaticvoidmain(Stringargv[]){Tuxt=newTux();(sName);voidpiggy(StringsName){sName=sName+“wiggy*';start();)publicvoidrun(){for(inti=0;i<4;i++){sName=sName+"”+i;}))A.编译时错误B.编译成功,并打印出"vandeleurwiggy”C.编译成功,并打印出“vandeleurwiggy0123”D.编译成功,并打印出“vandclur”15.在什么情况下类获得默认的构造方法:BA.类被定义时B.类中没有定义任何构造方法时C.在类中至少定义了一个构造方法时16.listener(监听器)方法的正确的访问修饰符是什么A(即默认为空).假定有一个包含引起异常(不是一个RuntimeExc叩tion)的代码的方法,用什么方式告诉方法的调用者要捕获该异常:BExceptionExceptionExceptionD.不用特别指定.下面的代码能打印出的结果是:A,BpublicclassMyFor{publicstaticvoidmain(Stringargv[]){inti;intj;outer:for(i=l;i<3;i++)inner:for(j=l;j<3;j++){if(j==2)continueouter;“Valuefori="+i+”Valueforj=n+j);))}fori=lvalueforj=lValuefori=2valueforj=lValuefori=2valueforj=2Valuefori=3valueforj=l19.那个代码能够添力□在voidamethod(inti)throwsException{}voidamethod(longi)throwsException{}voidamethod(longi){}publicvoidamethod(inti)throwsException{}20.运行下面代码能够得出的结果BStrings=newString("BicycleH);intiBegin=l;chariEnd=3;icicyerror:nomethodmatchingsubstring(int,char)21.下面定义的变量能执行那些操作AStringsl=newString(nHellon)Strings2=newString(ntheren);Strings3=newStringQ;s3=sl+s2;s3=sl-s2;s3=sl&s2;s3=sl&&s2.|3);能打印出什么结果DA6BOC1D7.传递4,0来运行以下代码中的方法divide(inta,intb),结果是:Apublicvoiddivide(inta,intb){try{intc=a/b;}catch(Exceptione){nException”);}finally{“Finally");)A.打印输出:ExceptionFinallyB.打印输出:FinallyC.打印输出:ExceptionD.没有任何输出.对publicvoidadd(inta){...}方法的重写方法:AA.必须返回voidB.必须返回intC.可以返回任何需要的类型.对publicvoidadd(inta){.・.}方法的重载方法应返回:CC.任何类型.以下类分别在不同的文件中定义:CclassVehicle{publicvoiddrive(){"Vehicle:drive*1);classCarextendsVehicle{publicvoiddrive(){nCar:drive");publicclassTest{publicstaticvoidmain(Stringargs[]){Vehiclev;Carc;v=newVehicle();c=newCar();0;0;v=c;0;)}编译和执行类Test后,结果是:A.在语句v=c;处产生编译时错误B.在语句v=c;处产生运行时错误C.输出:Vehicle:driveCar:driveCar:driveD.输出:Vehicle:driveCar:driveVehicle:drive.在子类构造方法内的什么位置可以对超类的构造方法(super。)进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论