JAVA程序设计期末考试题(多套含答案).docx
JAVA程序设计期末考试试题(五)一、单选题1、当某一线程正处于休眠状态,而另一个线程用Thread类中的interrupt()方法中断它时,抛出的异常类型是()oA)IOExceptionB)RuntimeExceptionC)InterruptedExceptionD)ClassNotFoundException2、下面的程序段的功能是()0Filefilel=newFile(dxxxyyyzzz);filel.mkdirs();A)在当前目录下生成子目录:xxxyyyzzzB)生成目录:e:xxxyyyzzzC)在当前目录下生成文件xxx.yyy.zzzD)以上说法都不对3、应用程序的main方法中有以下语句,则输出的结果是()。Strings="xxxxxxxxxxxxxxx#123#456#zzzzzM;intn=s.indexOf("#");intk=s.indexOf("#",n+l);Strings2=s.substring(n+l,k);System.out.println(s2);A)123456B)123C)xxxxxxxxxxxxxxxD)zzzzz4、关于下面的程序TestJava说法正确的是()。publicclassTestStringx=n,;inty;publicstaticvoidmain(Stringargs)intz=2;System.out.println(x÷y+z);)A)3B)102C)12D)程序有编译错误5、应用程序的main方法中有以下语句,则输出的结果是()。intb=l,1,1,2,2,3;intsum=O;for(inti=0;i<b.length;i+)for(intj=0;j<bi.length;j+)sum+=bij;)System.out.println("sum=+sum);A)10B)6C)9D)136、应用程序的main方法中有以下语句,则执行后输出的结果是()。int11X=125,21,5,168,98);intmin=x0;for(inti=l;i<x.length;i+)if(xi<min)min=xi;1System.out.println(min);A)125B)5C)98D)1687、应用程序的main方法中有以下语句,则输出的结果是()。Hashtablehashtable=newHashtableO;hashtable.put("l00",aaau);hashtable.put(',200",bbb");hashtable.put("300",ncccn);System.out.println(hashtable.get(300).toString()+hashtable.get(',200,).toString()+hashtable.get(u100',).toString();A)aaaB)bbbC)cccD)cccbbbaaa8、以下关于java异常说法不正确的是()。A)Throwable类是Java语言中ElTor类和EXCePtiOn类的父类。B)当异常对象是Exception类(或其子类)的实例时,能通过Java虚拟机或者throw语句抛出该异常对象,并能通过try.CatChfinally处理。C)如果只用一个CatCh块捕捉多个异常对象,则CatCh子句中的参数类型应是所有异常对象的父类。D)以上说法都不对。9、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件testtxt,编译下面的程序TestJava后,将该程序运行3次,则文件testtxt的内容是()0importjava.io.*;publicclassTestpublicstaticvoidmain(Stringargs)try(Strings=mABCDE"byteb=s.getBytes();FileOutputStreamfile=newFileOutputStream(test.txt",true);file.write(b);file.close();1catch(IOExceptione)System.out.println(e.toString();)A)ABCABCB)ABCDEC)TestD)ABCDEABCDEABCDE10、下面说法不正确的是()?A)列表(LiSt)、集合(Set)和映射(MaP)都是java.util包中的接口。B)LiSt接口是可以包含重复元素的有序集合。C)Set接口是不包含重复元素的集合。D)M叩接口将键映射到值,键可以重复,但每个键最多只能映射一个值。二、多选题1、下面哪些关键字能用来控制对类成员的访问()?A)publicB)protectedC)privateD)default2、下面关于Java中异常处理try块的说法正确的是()?A) try块后通常应有一个CatCh块,用来处理try块中抛出的异常。B) catch块后必须有finally块。C)可能抛出异常的方法调用应放在try块中。D)对抛出的异常的处理必须放在try块中3、线程对象的生命周期中,通常经历下面哪些状态()0A)新建B)运行C)就绪D)死亡4、定义如下的二维数组b,下面的说法正确的是()0intb=1,2,3,4,5,6,7,8;A)b.length的值是3。B)bl.length的值是3。C)bll的值是5。D)二维数组b的第一行有3个元素5、类B是一个抽象类,类C是类B的非抽象子类,下列创建对象Xl的语句中正确的是()oA)Bxl=newB();B)Bxl=newC();C) Cxl=newC();D)Cxl=newB();6、下面关于进程、线程的说法正确的是()。A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程多线程,形成多条执行线索。B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。C)Java多线程的运行与平台相关。D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。7、下面关于外部类和内部类成员的相互访问的规则中,正确的选项是()oA)内部类可以直接访问外部类的成员B)外部类可以直接访问内部类的成员C)外部类不能访问内部类的成员D)外部类可通过创建内部类的实例来访问内部类的成员三、程序阅读题1、阅读下面的程序代码,并回答问题(问3分,问3分,共6分)。Stringsi=newString("abcde");Strings2=newString("abcde);booleanbl=sl.equals(s2);booleanb2=si=s2;System.out.print(b1+,'"+b2);程序段执行后,在命令行的输出结果如何?解释输出的结果的原因?答案:truefalseequals方法比较两个字符串的内容是否相等;运算符判断两个对象是否指向同一个引用,即是否为同一个对象。2、阅读下面的程序,并回答问题(问3分,问3分,共6分)。importjava.io.*;publicclassTestpublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderbuf=newBfferedReader(newInputStreamReader(Systemjn);while(true)Stringstr=buf.readLine();if(str.equals("quit")break;intx=lnteger.parselnt(str);System.out.println(x*x);)编译运行上面的程序:从键盘输入10,回车后输出的结果如何?从键盘输入exit,回车后程序能正确执行吗?为什么?答案:100不能;因为方法Integer.parselnt(str)不能将字符串“exit”转化为整数,抛出异常。3、写出下面的程序编译、运行后的结果(6分)。publicclassTestpublicstaticvoidmain(Stringargs)newStudent("Tom",m,90,88);newStudent("Jack",'m',66,89);newStudent(',Mary",'f576,86);System.out.println("nametsextchinesetenglish,r);Student.print();classStudentprotectedStringname;protectedcharsex;protectedintChinese;protectedintenglish;protectedStudentnext;staticStudentlist;Student(Stringname,charsex,intChinese,intenglish)this.name=name;this.sex=sex;this.chinese=chinese;this.english=english;this.next=list;list=this;)staticvoidprint()Studentfriend=list;if(friend=null)System.out.printIn("Thelistisempty.");elsedoSystem.out.println(friend.toString();friend=friend.next;)while(friend!=null);)publicStringtoString()returnnewString(name+"t,'÷sex+',t"+chinese+"t"÷english);答案:namesexChineseenglishMaryf7686Jackm6689Tomm9088JAVA程序设计期末考试试题(六)一、填空题1 .定义类的保留字是(class),定义接口的保留字是(interface)。2 .SoCket通常也称为(套接字),用于描述(IP地址)和(端口)o3 .线程的优先级在(1)至(10)之间,数值越大(任务越紧急)。4 .构造方法是一种特殊的成员方法,构造方法名与(类名)相同。5 .Java语言只允许单继承,指每个类只能有一个(父类)。6 .Java源程序的扩展名是(JaVa),经过编译后的程序的扩展名是(.class)。7 .在一个时间只能由一个线程访问的资源称为(临界资源)。访问临界资源的代码(临界代码)。8 .在多线程系统中,多个线程之间有(同步)和(互斥)两种关系。二、选择题1 .关于选择结构下列哪个说法正确?()A.if语句和else语句必须成对出现B.if语句可以没有else语句对应C. switch结构中每个case语句中必须用break语句D. switch结构中必须有default语句2.WhiIe循环和doWhiIe循环的区别是:()A.没有区别,这两个结构任何情况下效果一样B. While循环比doWhiIe循环执行效率高C. WhiIe循环是先循环后判断,所以循环体至少被执行一次D. doWhiIe循环是先循环后判断,所以循环体至少被执行一次3 .关于for循环和WhiIe循环的说法哪个正确?()A. While循环先判断后执行,for循环先执行后判断。B. While循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空4 .下列修饰符中与访问控制无关的是()A. privateC. protected5. Void的含义:()A.方法没有返回值C.没有意义6. relum 语句: ()A.只能让方法返回数值C.方法中可以有多句returnB. publicD. finalB.方法体为空D.定义方法时必须使用B.方法都必须含有D.不能用来返回对象7 .关于对象成员占用内存的说法哪个正确?()A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对8 .下列说法哪个正确?A.不需要定义类,就能创建对象B.对象中必须有属性和方法C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量9 .下列说法哪个正确?A、一个程序可以包含多个源文件B、一个源文件中只能有一个类C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用10 .关于方法mainO的说法哪个正确?()A.方法main()只能放在公共类中Bmain()的头定义可以根据情况任意更改C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中11 .构造函数何时被调用?B、类定义时D、使用对象的属性时A、创建对象时C、使用对象的方法时12 .抽象方法:()A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法13 .关于继承的说法正确的是:()A、子类将继承父类所有的属性和方法。B、子类将继承父类的非私有属性和方法。C、子类只继承父类PUbIiC方法和属性D、子类只继承父类的方法,而不继承属性14 .关于构造函数的说法哪个正确?()A、一个类只能有一个构造函数B、一个类可以有多个不同名的构造函数C、构造函数与类同名D、构造函数必须自己定义,不能使用父类的构造函数15 .this和SUPer:A、都可以用在main()方法中B、都是指一个内存地址C、不能用在main()方法中D、意义相同16 .关于super的说法正确的是:A、是指当前对象的内存地址B、是指当前对象的父类对象的内存地址C、是指当前对象的父类D、可以用在main()方法中17 .覆盖与重载的关系是()A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事18.关于接口哪个正确?()A、实现一个接口必须实现接口的所有方法B.一个类只能实现一个接口C.接口间不能有继承关系D.接口和抽象类是同一回事19.异常包含下列哪些内容?()A.程序执行过程中遇到的事先没有预料到的情况B.程序中的语法错误C.程序的编译错误D.以上都是20.对于已经被定义过可能抛出异常的语句,在编程时:()A、必须使用try/catch语句处理异常,或用throws将其抛出B.如果程序错误,必须使用try/catch语句处理异常C.可以置之不理D.只能使用try/catch语句处理21 .字符流与字节流的区别在于()A.前者带有缓冲,后者没有B.前者是块读写,后者是字节读写C.二者没有区别,可以互换使用D.每次读写的字节数不同22 .下列流中哪个不属于字节流()A. FileInputStreamB. BufferedlnputStreamC. FilterInputStreamD.InputStreamReader三、程序填空题LpublicclassSumpublicstaticvoidmain(Stringargs)intj=10;System.out.println(jis:,+j);calculate);System.out.println("Atlast,jis:+j);)staticvoidcalculate(intj)for(inti=0;i<10;i+)j+÷JSystem.out.println("jincalculate()is:,÷j);)输出结果为:jis:(Djincalculate()is:(2)AtIastjis:(3)答案:(1)10;(2)20;(3)IOo2.按要求填空abstractclassSUperAbstractvoida().abstractvoidb();abstractintc(inti);1interfaceAsSupervoidx();abstractclassSubAbstractextendsSuperAbstractimplementsAsSuper(publicvoidb().abstractStringf();)publicclassInheritAbstractextendsSubAbstractpublicvoidx().publicintc(inti).publicStringf().publicstaticvoidmain(Stringargs)InheritAbstractinstance=newInheritAbstractO;instance.x();instance.a();instance.b();instance.c(100);System.out.println(instance.f();)在以上这段程序中:抽象类有:SuperAbstract 和 (1)非抽象类有:接口有:(2)(3)ASSUPer中的x()方法是(4)方法, 答案:(写出类名)(写出类名)(写出接口名)所以在InheritAbStraCt中必须对它进行(5)(1) SuperAbstract;(2) InheritAbstract;(3) AsSuper;(4)抽象;(5)覆盖和实现。3.按注释完成程序publicclassLeafprivateinti=O;此属性值用于检验1.eafinCrement()/定义方法increment(),返回值是Leaf类的对象i+÷return(1);将当前对象的地址作为返回值返回)voidprint()System.out.println(Mi="+i);)publicstaticvoidmain(Stringargs)1.eafx=(2);/创建Leaf类的对象xx.increment().increment().increment().pnt();多次调用方法increment。,返回的都是X的地址,i值表示调用次数)输出结果为i=(3)答案:(1) this;(2) newLeaf();34 .按注释提示完成文件复制的程序/FileStream源代码如下:importjava.io.*;classFiIeStreampublicstaticvoidmain(Stringargs)try(FileinFile=newFilecfiIel.txt");指定源文件FileoutFile=newFile(t)指定目标文件FileInputStreamfis=(1);FileOutputStreamfos=newFileOutputStream(outFile);intc;逐字节从源文件中输入,再输出到fos流while(c=fis.read()!=-l)(2);fs.close();fos.close();catch(Exceptione)System.out.println(FileStreamsTest:,+e);)答案:newFileInputStreamCinFile);fos.write(c);5 .阅读程序,给出结果:/AbStraCtClaSSDemoJava源代码如下:abstractclassShape定义抽象类Shape和抽象方法displayabstractvoiddisplay();1classCircleextendsShapevoiddisplay()实现抽象类的方法System.out.println(Circle");)classRectangleextendsShapevoiddisplay()实现抽象类的方法System.out.println("Rectangle,');)classTriangleextendsShapevoiddisplay()实现抽象类的方法System.out.println(nTriangleM);)publicclassAbstractClassDemopublicstaticvoidmain(Stringargs)(newCirele().display();定义无名对象来调用对应的display方法(newRectangle().display();(newTriangle().display();)1输出结果是?答案:(1)Circle;(2)Rectangle;(3)TriangleoJAVA程序设计题库一、选择题(每小题2分,共40分)1 .下列关于java语言的叙述中,正确的是A.机器语言B汇编语言C.面向过程的语言D.面向对象的语言2 .下列是JaVa合法的标识符A.staticB.5stuC.-3eD.atm3 .下列关于继承的描述中,正确的是A.在JaVa中允许多重继承BJava的单一继承使代码更可靠C.在JaVa中一个类只能实现一个接口D.在Java中一个类不能同时继承一个类和实现一个接口4 .下列代表十六进制整数A.0x7EB.034C.2E3D.195 .下列符号修饰成员后,可以在JaVa中用类名前缀直接调用A.staticB.abstractC.finalD.define6 .SWiICh语句不能用于下列数据类型A.byteB.shortC.charD.float7 .执行下列程序段后,b,x,y的值正确的是intx=6,y=8;booleanb;b=x<yII+x=y;.true,6,8B.false,7,7C.true,7,7D.false,6,88 .设a=8,则表达式a»2的值是A.1B.2C.3D.49 .下面是findSum(intm,intn)方法的定义,方法调用findSum(l,4)的返回结果是intfindSum(intm,intn)intsum=0;fbr(inti=m;i<=n;i+)sum+=i;1returnsum;)A.lB.4C.5D.1010 .Java中main。方法的返回值是A. stringB.intC.charD.voidH.以下关于JAVA程序的叙述中正确的是。A.在JAVA程序中,main函数必须位于程序的最前面B. JAVA程序的每行只能有一条语句C.在对一个JAVA程序进行编译的过程中,可发现注释中的描写错误D.JAVA程序中必须有一个主函数12、若有inta=l,b=2,c=3,d=4jbooleanm,n;执行表达式(m=a>b)(n=c+>d)后c的值为A.1B.2C.3D.413、JAVA语言提供的合法的关键字是oA.CharB.max('.sviIchD.Default14、以下各标识符组中,合法的用户标识符为。A.Pad、ttabcB.b_KalC.void、maxD.8a、temp15、若有doublex=2,y;则表达式y=x+52的值是。A.3B.4C,4.5D.4.016、设有intx=y=z=l!booleanc;则执行语句C=一x>0&&y<2|z<l;后,x,y,z的值分别为。A.0,1,1B.0,1,0C.1,0,1D.0,0,117、inta=12,b;b=a>>2;则b、a的值为。A.3、3B.3、12C.6、12D.24、318、执行下面的语句后,x、y、Z的值为intx=7,y=9,z;z=(x>y)?x+y:x/y;D. 16> 16、 16A.7、9、16B.7、9、OC.16、9、1619、以下关于if语句的错误描述是。A.条件表达式可以是任意的表达式B.条件表达式只能是关系表达式或逻辑表达式C.条件表达式的括号不能省略D.与else配对的if语句是其之前最近的未配对的if语句21.下列语句序列执行后,k的值是()。intj=8,k=15;for(inti=2;i!=j;i+=6)k+;)A.18B.15C.16D.1722 .下列语句序列执行后,j的值是()。intj=3,i=2;whiIe(-i!=ij)j=j+2;A.2B.4C.6D.523 .下列语句序列执行后,i的值是()。inti=0;doi+=3;while(i<10);D. 12D. 10A.3B.6C.924 .下列语句序列执行后,k的值是()。inti=6,j=8,k=10,n=5,m=7;if(!(i<j)k=m+n;elsek=m-n;A.12B.2C.-225 .下列语句序列执行后,k的值是()。intx=3,y=5,k=0;switch(x%y+3)case0:k=x*y;break;case6:k=xy;break;case12:k=-y;break;default:k=x*y-;break;A.12B.OC.15D.-226 .执行完下面的程序段后,输出的结果是()。charc='0,;for(c=*a>c<,z'c+=3)if(c>='d')break;)System,out.Println("'"+c+"'");A.,e,B.,f,C,a,D.'d'27 .执行完下面的程序段后,k的值是()。intk=0;label:for(inti=l;i<10;i+)(for(intj=l;j<5;j+)(k+=i+j;if(j=3)breaklabel;)A.3B.9C.12D.628 .执行完下面的程序段后,k的值是()。intk=0;label:for(inti=l;i<3;i+)(for(intj=l;j<3;j+)(k+=i+j;System,out.println(k);if(i=2)continuelabel;)A.3B.5C.8D.1229 .表达式(Short)8/9.2*5的值的类型为()。D. floatA.shortB.intC.doube30 .以下选项中变量均已正确定义,合法的赋值语句是()oA.a=1B.+iC.a=a+l=5D.y(int)i(i已初始化)31.下面关于JaVaApplication程序结构特点描述中,错误的是()。A. 一个JaVaAPPIiCatiOn程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成。B. JaVa程序中声明有PUbIiC类时,则JaVa程序文件名必须与PUbliC类的类名相同,并区分大小写,扩展名为.java。C.组成JaVaAPPliCation程序的多个类中,有且仅有一个主类。D.一个.java文件中定义多个类时,允许其中声明多个PUbIiC类。32 .编译JaVa程序后生成的面向JVM的字节码文件的扩展名是()。A.javaB.classC.objD.exe33 .编译JaVa程序时,用于指定生成CIaSS文件位置的选项是()。A. -dB. -gC. -VerbOSeD. -nowarn34 .下面哪些选项是正确的Inain方法说明?()A. void main()C. public main(String args)B. private static void main(String args)D. public35.下面哪些标识符在JaVa语言中是合法的?static void main(String args) )A. 6persons$C. *point36 .下列(A. 2end37 .若 x = 5, yA. 3B. TwoUsersD. instanceof F. end-line )是合法标识符。B. -hello C. =AB=8,则表达式XIy的值为(B. 13C. 0D.整型变量)OD. 538 .若定义有变量floatfl,f2=8.OF,则下列说法正确的是()。A.变量fl,f2均被初始化为8.0B.变量fl没有被初始化,f2被初始化为8.0C.变量fl,f2均未被初始化D.变量f2没有被初始化,fl被初始化为8.039 .基本数据类型short的取值范围是()。A.(-256)255B.(-32768)32767C.(-128)127D.06553540 .下列()是不能通过编译的语句。A.doubled=545.0;B.charal="c"C.inti=321;D.floatfl=45.Of;41 .若定义有shorts;byteb;charc;则表达式S*b+c的类型为()。D. byteA.charB.shortC.int42 .下列循环语句的循环次数是()。int1=5;doSystem,out.println(i-);i;while(i!=0);A.5B.无限C.0D.143 .下面的表达式哪些是正确的?()A. Strings="你好";inti=3;s+=i;B. StringS=你好;inti=3;if(i=s)s+=i;C. Strings="你好"inti=3;s=i+s;D. Strings=nul1;inti=(s!=nul!)&&(s.length()>0)?s.IengthO:0;44 .下列代表十六进制整数的是()。A.012345B.2008C.0xfa08D.fb0545 .在SWitCh(expression)语句中,expression的数据型不能是(A.charB.shortC.doubleD.byte46 .指出正确的表达式()。A. byte=128;B.longI=OxfffL;C.Boolean=null;D.double=0.9239d;47.下面关于类的继承性的描述中,错误的是()。A.继承是在已有的基础上生成新类的一种方法B. JaVa语言要求一个子类只有一个父类C.父类中成员的访问权限在子类中将被改变D.子类继承父类的所有成员,但不包括私有的成员方法48 .在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是()。A.默认B.protectedC.privateD.public49 .在类的修饰符中,规定只能被同一包类所使用的修饰符是()。.publicB.默认C.finalD.abstract50 .下列关于抽象类的描述中,错误的是()。A.抽象类是用修饰符abstract说明的B.抽象类是不可以定义对象的C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类51 .下列关于构造方法的叙述中,错误的是()。A.构造方法名与类名必须相同B.构造方法没有返回值,且不用Void声明C.构造方法只能通过new自动调用D.构造方法不可以重载,但可以继承52 .下面关于接口的描述中,错误的是()。A.一个类只允许继承一个接口B.定义接口使用的关键字是interfaceC.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现D.接口实际上是由常量和抽象方法构成的特殊类53 .下列哪些方法与方法PUbIiCvoidadd(inta)为不合理的重载方法?()A.publicvoidadd(chara)B.publicintadd(inta)C. publicvoidadd(inta,intb)D.publicvoidadd(floata)54. MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是()。A.publicintMAX,ENGTH=I00;B.finalpublicintMAX-ENGTH=I00;C.publicfinalintMAXJENGTH=100;D.finalintMAXjJENGTH=I00;55、编译JaVaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()。A.javaB.classC.htmlD.exe56、设x=1,y=2,z=3,则表达式y+=z/+x的值是()=A. 3B.3.5C.4D.557、为AB类的个无形式