JAVA语言程序设计复习题及答案 _第1页
JAVA语言程序设计复习题及答案 _第2页
JAVA语言程序设计复习题及答案 _第3页
JAVA语言程序设计复习题及答案 _第4页
JAVA语言程序设计复习题及答案 _第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

JAVA语言程序设计考试试题及部分答案一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。1下列语句序列执行后,k的值是(B)。intm=3,n=6,k=0;while(m+)j)i-;elsej-;A)15B)16C)7D)89下列语句序列执行后,k的值是(C)。inti=10,j=18,k=30;switch(j-i)case8:k+;case9:k+=2;case10:k+=3;default:k/=j;A)31B)32C)2D)3310下面语句执行后,i的值是(B)。for(inti=0,j=1;jy|xzB)x!=yC)z(y+x)D)x3);A)16B)8C)4D)213以下由for语句构成的循环执行的次数是(B)。for(inti=0;true;i+);A)有语法错,不能执行B)无限次C)执行1次D)一次也不执行14定义类头时能使用的修饰符是(C)。A)privateB)staticC)abstractD)protected15设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,正确的switch语句是(D)。A)switch(x+y)B)switch(ch+1).C)switchchD)switch(a+b);.16.下列最终属性i的定义中,正确的是()。A)staticfinalinti=100;B)finalinti=1.2;C)finali=w;D)finalchari;17.下列类定义中,不正确的是(C)。A)classx.B)classxextendsy.C)staticclassximplementsy1,y2.D)publicclassxextendsApplet.18.设x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()。A)staticxx1;B)publicxx1=newx(int123);C)yx1;D)xx1=x();19.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的是(B)。A)x(intm).B)voidx(intm).C)x(intm,intn).D)x(inth,intm,intn).20.下列方法定义中,正确的是(A)。A)intx()charch=a;return(int)ch;B)voidx().returntrue;C)intx().returntrue;D)intx(inta,b)returna+b;21.用于定义类成员的访问控制权的一组关键字是(D)。A)class,float,double,publicB)float,boolean,int,longC)char,extends,float,doubleD)public,private,protected22.不能构成循环的语句是(C)。A)for语句B)while语句C)switch语句D)do_while语句23.下列程序段执行后b3的结果是(D)。booleanb1=true,b2,b3;24=b1?b1:b2;A)0B)1C)trueD)false25下面数据结构中,属于非线性的是(B)。A)线性表B)树C)队列D)堆栈11.设有定义inti=123;longj=456;下面赋值不正确的语句是(D)。A)j=i;B)j=(long)i;C)i=(int)j;D)i=j;二、填空题:(每空1分)1.构造函数_没_有返回值。2.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和_double_两种具体类型。3.创建类对象的运算符是_new。4.当整型变量n的值不能被13除尽时,其值为false的Java语言表达式是_n%13=0_。5.在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的_元素个数。6.定义类就是定义一种抽象的_父类_,它是所有具有一定共性的对象的抽象描述。7.在Java语言中,使用_平台无关_、_java虚拟机_等技术,实现软件重用。8.表达式3/6*5的计算结果是_0_。9.下面是一个类的定义:publicclass_intMyclass_intx,y;Myclass(inti,_=0_)/构造函数x=i;y=j;10.下面是一个JavaApplication的主类的定义,其功能是输出所有命令行参数。importjava.io.*;publicclassMyClasspublicstaticvoidmain(Stringargs)if(args.length!=_0_)for(inti=0;ixj+1)w=xj;xj=xj+1;xj+1=w;/*if(i=1|i=2)ShowArray(x);if(i=2)break;*/publicstaticvoidShowArray(intb)for(inti=0;iy;System.out.println(xy=+flag);flag=zw;System.out.println(zw=+flag);四、问答题:(每题5分,)1.Java的接口和C+的虚类的相同和不同处。由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是publicstatic,所有方法默认情况下是public.一个类可以实现多个接口。2.垃圾回收的优点和原理。并考虑2种回收机制。Java语言中一个显著的特点就是引入了垃圾回收机制,使c+程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有作用域的概念,只有对象的引用才有作用域。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。3,谈谈final,finally,finalize的区别。Final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。Finally再异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。Finalize方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。4,数组有没有length()这个方法?String有没有length()这个方法?举例说明使用方法?数组没有length()这个方法,有length的属性。String有有length()这个方法。5.Java中的异常处理机制的简单原理和应用。当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。五、程序设计:(每题11分,共33分)1、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如我ABC4,应该截为我AB,输入我ABC汉DEF,6,应该输出为我ABC而不是我ABC+汉的半个。2、编程求解:所有两位整数能被3整除的数的和,以及不能被3整除的数的各位数字之和。3、设计一个程序求解e的值。精度达到1.0e-6,4、请设计一个对N个数进行排序的程序一、选择题(每道题只有一个正确答案,每小题2分,共30分)15道题1、关于Java语言叙述错误的是:(C)AJava语言具有跨平台性BJava是一种面向对象的语言CJava语言中的类可以多继承DJava的垃圾收集机制自动回收程序已不再使用的对象2、以下叙述正确的是:(B)的确台aA构造方法必须是public方法Bmain方法必须是public方法CJava应用程序的文件名可以是任意的D构造方法应该声明为void类型3、关于Java中数据类型叙述正确的是:(B)A、整型数据在不同平台下长度不同Bboolean类型数据只有2个值,true和falseC数组属于简单数据类型DJava中的指针类型和C语言的一样4、设intx=1,floaty=2,则表达式x/y的值是:(D)A0B1C2D以上都不是5、以下语句有语法错的是:(A)Aintx=1;y=2;z=3Bfor(intx=10,y=0;x0;x+);Cwhile(x5);Dfor(;);6、关于类和对象的叙述正确的是:(A)AJava的类分为两大部分:系统定义的类和用户自定义的类B类的静态属性和全局变量的概念完全一样,只是表达形式不同C类的成员至少有一个属性和一个方法D类是对象的实例化7、以下有关构造方法的说法,正确的是:(A)A一个类的构造方法可以有多个B构造方法在类定义时被调用C构造方法只能由对象中的其它方法调用D构造方法可以和类同名,也可以和类名不同8、以下有关类的继承的叙述中,正确的是:(D)A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B子类只能继承父类的方法,不能继承父类的属性C子类只能继承父类的非私有属性,不能继承父类的方法D子类不能继承父类的私有属性9、下列属于容器的组件有:(B)AJButtonBJPaneCCanvasDJTextArea10、void的含义:(C)A方法体为空B定义的方法没有形参C定义的方法没有返回值D方法的返回值不能参加算术运算11、关于Java中异常的叙述正确的是:(D)A异常是程序编写过程中代码的语法错误B异常是程序编写过程中代码的逻辑错误C异常出现后程序的运行马上中止D异常是可以捕获和处理的12、所有的异常类皆继承哪一个类?(C)Ajava.io.ExceptionBjava.lang.ThrowableCjava.lang.ExceptionDjava.lang.Error13、下面哪个不是java语言中的关键字?(B)AlongBsizeofCinstanceofDconst14、为实现进程之间的通信,需要使用下列那种流才合适?(D)ADatastreamBFilestreamCBufferedstreamDPipedstream15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)AActionListenerBMouseListenerCMouseMotionListernDItemListener二、填空题(每空1分,共20分)1、面向对象程序设计所具有的基本特征是:_抽象性_,_封装性_,_继承性_,_多态性_2、数组x定义如下intx=newint32则x.length的值为_3_,x0.length的值为_2_。3、Java中实现多线程一般使用两种方法,一是_继承Thread类_,二是_实现Runnable方法_4、Java的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)_FlowLayout_,_GridLayout_,_BorderLayout_,_CardLayout_5、Applet常用的方法是:_init()_、_run()_、_stop()_和destroy()。三、阅读程序,写出程序的输出结果(每题5分,共20分)1、classAprivateintprivateVar;A(int_privateVar)privateVar=_privateVar;booleanisEqualTo(AanotherA)if(this.privateVar=anotherA.privateVar)returntrue;elsereturnfalse;publicclassBpublicstaticvoidmain(Stringargs)Aa=newA(1);Ab=newA(2);System.out.println(a.isEqualTo(b);程序的输出结果为:_false_2、classAdoublef(doublex,doubley)returnx*y;classBextendsAdoublef(doublex,doubley)returnx+y;publicclassTestpublicstaticvoidmain(Stringargs)Bobj=newB();System.out.println(Theprogramoutputis+obj.f(4,6);程序的输出结果为:_Theprogramoutputis10_3、publicclassUncheckedpublicstaticvoidmain(Stringargs)trymethod();catch(Exceptione)System.out.println(A);finallySystem.out.println(B);staticvoidmethod()trywrench();System.out.println(C);catch(ArithmeticExceptione)System.out.println(D);finallySystem.out.println(E);System.out.println(F);staticvoidwrench()thrownewNullPointerException();程序的输出结果为:EAB4、publicclassTestpublicstaticvoidmain(Stringargs)intx;inta=0,0,0,0,0,0;calculate(a,a5);System.out.println(thevalueofa0is+a0);System.out.println(thevalueisa5is+a5);staticintcalculate(intx,inty)for(inti=1;i10);publicstaticvoidmain(Stringarg)inti=10;Testt=newTest();t.printValue(i);输出将是什么?CA.8B.9C.10D.1128.下面的有关声明的哪些叙述是对的?BCA.对原始数据类型例如boolean,byte的变量的声明不会为该变量分配内存空间。B.对原始数据类型例如boolean,byte的变量的声明将为之分配内存空间。C.非原始数据类型例如String,Vector的变量的声明不会为该对象分配内存。D.非原始数据类型例如String,Vector的变量的声明会为该对象分配内存。/该对象指的是堆空间的对象;指向该对象的引用只能叫变量;29.类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制?DA.publicB.不加修饰符C.protectedD.private/面向对象编程P196页的表格,private一行有错误30.给出下面的代码片断1Stringstr=null;2if(str!=null)&(str.length()10)3System.out.println(morethan10);45elseif(str!=null)&(str.length()y?y:xB)xy?(x+y):(x-y)D)x=y?y:x;【答案】B3.以下是应用程序中定义的静态方法printBinary,若在其main方法中有方法调用语句printBinary(2),则输出的结果是()。staticvoidprintBinary(inti)System.out.print(i+的2进制数表示为:t);for(intj=31;j=0;j-)if(1max)max=xi;System.out.println(max);A)678B)122C)-987D)33【答案】A8.下列语句序列执行后,k的值是()。intx=2,y=5,k=0;switch(x%y)case0:k=x+y;break;case1:k=x-y;break;case2:k=x*y;break;default:k=x/y;break;System.out.println(k);A)2B)5C)10D)0【答案】C9.下面的程序输出的结果是()publicclassAimplementsBpublicstaticvoidmain(Stringargs)inti;Ac1=newA();i=c1.k;System.out.println(i=+i);interfaceBintk=10;A)i=0B)i=10C)程序有编译错误D)i=true【答案】B10应用程序的main方法中有以下语句,则输出的结果是()。intb=1,2,3,4,5,6,7;intsum=0;for(inti=0;ib.length;i+)for(intj=0;jbi.length;j+)sum+=bij;System.out.println(sum=+sum);A)28B)6C)9D)13【答案】A11.有整型数组:intx=12,35,8,7,2;,则调用方法Arrays.sort(x)后,数组x中的元素值依次是().A)2781235B)1235872C)3512872D)8712352【答案】A12.编译和运行下面的应用程序,并在命令行界面输入12345,则回车后屏幕输出的结果是().publicclassApublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in);Stringstr=buf.readLine();intx=Integer.parseInt(str);System.out.println(x/100);A)45B)5C)123D)12345【答案】C13.下面的程序段执行后输出的结果是()。StringBufferbuf=newStringBuffer(Beijing2008);buf.insert(7,);System.out.println(buf.toString();A)Beijing2008B)Beijing2008C)Beijing2008D)Beijing#2008【答案】A14.下面的程序编译运行后输出的结果是()。publicclassAimplementsRunnablepublicstaticvoidmain(Stringargv)Aa=newA();Threadt=newThread(a);t.start();publicvoidrun()while(true)tryThread.currentThread().sleep(1000);catch(InterruptedExceptione)System.out.println(e.toString();System.out.println(loopingwhile);A)在屏幕上重复输出loopingwhile。B)在屏幕上输出一次loopingwhile。C)没有结果输出。D)以上说法都错误。【答案】A15.下面的程序段创建了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是()。Filef=newFile(填代码处);file=newFileReader(f);in=newBufferedReader(file);A)1.txtB)d:my1C)d:my1.txtD)d:my1.txt【答案】C二、多选题(本大题10小题,每小题2分,共20分)1.下面的说法正确的是()。A)Java语言是面向对象的、解释执行的网络编程语言。B)Java语言具有可移植性,是与平台无关的编程语言。C)Java语言可对内存垃圾自动收集。D)Java语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。【答案】ABCD2.下面main()方法的定义哪些是正确的()?A)publicstaticvoidmain(Stringargs)B)publicstaticvoidmain(String)C)publicstaticvoidmain(Stringargs)D)publicstaticvoidmain(Stringx)【答案】ACD3.定义变量如下:charc=w;inti=8;longL=15;floatf=8.9f;以下赋值语句正确的是()。A)i=c+i;B)c=c+i;C)L=f+L;D)f=i+L+f;【答案】AD4.下面哪些关键字能用来控制对类成员的访问()?A)publicB)protectedC)privateD)default【答案】ABC5.面向对象程序设计的基本特征是()。A)抽象B)封装C)继承D)多态【答案】ABCD6.下面关于类的说法正确的是()。A)类是Java语言中的一种复合数据类型。B)类中包含数据变量和方法。C)类是对所有具有一定共性的对象的抽象。D)Java语言的类只支持单继承。【答案】ABCD7.编译并运行下面的程序,运行结果为().publicclassT1publicstaticvoidmain(Stringargs)T1a=newT1();a.method(8);a.method(1.2f);voidmethod(floati)System.out.println(float:+i);voidmethod(longi)System.out.println(long:+i);A)程序有编译错误,因为两个method()方法必须定义为静态(static)的。B)程序可以编译运行,输出结果为:long:8float:1.2C)程序可以编译运行,输出结果为:float:1.2long:8D)程序中定义的两个参数不同的method方法称为方法重栽。【答案】BD8.下面是在命令行运行Java应用程序A,怎样才能在main(Stringargs)方法中访问单词first()?javaAthefirstsnow,thefirstsnowcame.A)args0B)args1C)args2D)args5【答案】BD9.编译并运行下面的程序,运行结果为().publicclassApublicstaticvoidmain(Stringargs)Aa=newB();a.test();voidtest()System.out.print(A);classBextendsAvoidtest()super.test();System.out.println(B);A)子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。B)代码可以编译运行,并输出结果:AB。C)代码可以编译运行,并输出结果:A。D)子类B定义了与父类A中同名的方法test,java中称为方法的重载。【答案】AB10.下面哪个说法正确()?A)如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。B)如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。C)如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。D)接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。【答案】ABCD三、填空题(本大题10小题,每小题1分,共10分)1.创建类的对象时,使用运算符_给对象分配内存空间。2.定义类的构造方法不能有返回值类型,其名称与_名相同。3.Java语言中关键字_表示双精度类型。4.若有定义:floatb=1.1f,3.5f,6.8f;,则b.length()的值是_。5若有类定义:classBextendsA则类B是类A的_。6接口中的成员只有静态常量和_。7.在子类中使用关键字_做前缀可调用被子类覆盖的父类中的方法。8.关键字_用于导入包中的类到程序中,供程序中使用。9.Java语言中,通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_块来捕获和处理异常。10.程序中实现多线程的方法有两种:继承_类和实现Runnable接口。【答案】1.new2.类3.double4.35.子类6.抽象方法7.super8.import9.catch10.Thread四、阅读程序,回答问题(本大题5小题,每小题5分,共25分)1.(5分)1:publicclassOutput12:publicstaticvoidmain(Stringarge)3:inti=0;4:for(charch=97;ch113;ch+,i+)5:if(i%8=0)6:System.out.println();7:System.out.print(t+ch);8:9:10:(1)程序第5、6行的if语句的功能是什么?(2分)(2)程序输出的结果有几行?(3分)【答案】(1)每打印8个字符,则换行。(2)输出的结果有2行。2.(5分)1:importjava.util.Arrays;2:3:publicclassSortArray4:publicstaticvoidmain(Stringargs)5:Stringstr=size,abs,length,class;6:Arrays.sort(str);7:for(inti=0;istr.length;i+)8:System.out.print(stri+);9:10:(1)写出程序运行后的结果。(2分)(2)方法调用str0.length()的返回结果是多少?(3分)【答案】(1)absclasslengthsize(2)43.(5分)1:/TestKeyListener.java2:importjava.applet.Applet;3:importjava.awt.*;4:importjava.awt.event.*;5:6:publicclassTestKeyListenerextendsApplet7:8:Colorclr;9:10:publicvoidinit()11:12:addKeyListener(13:newKeyAdapter()14:publicvoidkeyTyped(KeyEvente)15:if(e.getKeyChar()=r|e.getKeyChar()=R)16:clr=Color.red;17:elseif(e.getKeyChar()=g|e.getKeyChar()=G)18:clr=Color.green;19:elseif(e.getKeyChar()=b|e.getKeyChar()=B)20:clr=Color.blue;21:else22:clr=Color.black;23:setBackground(clr);24:25:);26:27:(1)程序第15、16行实现的功能是什么?(2分)(2)编译该程序,并编写嵌入该程序字节码文件的网页后,通过支持java的浏览器打开网页。如果敲击键盘的b键,有什么结果?(3分)【答案】(1)如果敲击键盘的r键,则将颜色对象的值赋为红色。(2)小程序的背景颜色变为兰色。4.定义类A和类B如下.(5分)classAinta=1;doubled=2.0;voidshow()System.out.println(ClassA:a=+a+td=+d);classBextendsAfloata=3.0f;Stringd=Javaprogram.;voidshow()super.show();System.out.println(ClassB:a=+a+td=+d);(1)若在应用程序的main方法中有以下语句:Aa=newA();a.show();则输出的结果如何?(2分)(2)若在应用程序的main方法中定义类B的对象b:Ab=newB();b.sho

温馨提示

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

评论

0/150

提交评论