还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《JAVA程序设计》练习题
一、单选择题
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为BA.javaB..classC.htmlD..exe
2、设x=1y=2z=3,则表达式y+=z--/++x的值是AA.3B.
3.5C.4D.
53、不允许作为类及类成员的访问控制符的是CA.publicB.privateC.staticD.protected
4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为AA.staticvoidmethodB.publicvoidmethodC.finalvoidmethodD.abstractvoidmethod
二、填空题
1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间
3、设x=2,则表达式x++/3的值是
04、若x=5,y=10,则xy和x=y的逻辑值分别为true和false
5、抽象abstract方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义最终final方法是不能被当前类的子类重新定义的方法
6、创建一个名为MyPackage的包的语句是packageMyPackage;,该语句应该放在程序的位置为应该在程序第一句
7、设有数组定义intMyIntArray[]={10203040506070};则执行以下几个语句后的输出结果是120ints=0;forinti=0;iMyIntArray.length;i++ifi%2==1s+=MyIntArray[i];s;
8、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系
三、写出下面程序的运行结果
1、publicclassabc{publicstaticvoidmainStringargs[]{ABs=newABHello!IloveJAVA.;s.toString;}}classAB{Strings1;Strings2;publicABStringstr1Stringstr2{s1=str1;s2=str2;}publicStringtoString{returns1+s2;}}Hello!IloveJAVA.
2、importjava.io.*;publicclassabc{publicstaticvoidmainStringargs[]{intis=0;inta[]={102030405060708090};fori=0;ia.length;i++ifa[i]%3==0s+=a[i];s=+s;}}s=
1803、importjava.io.*;publicclassabc{publicstaticvoidmainStringargs[]{a=+a+\nb=+b;}}classSubClassextendsSuperClass{intc;SubClassintaaintbbintcc{superaabb;c=cc;}}classSubSubClassextendsSubClass{inta;SubSubClassintaaintbbintcc{superaabbcc;A=aa+bb+cc;}voidshow{a=+a+\nb=+b+\nc=+c;}}一.判断题1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件(√)2.Java程序里创建新的类对象用关键字new,回收无用的类对象使用关键字free(×)3.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象(×)4.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void(×)5.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面(√)6.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法(√)7.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点(×)8.静态初始化器是在其所属的类加载内存时由系统自动调用执行(√)9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象(×)二.单项选择题1.Javaapplication中的主类需包含main方法,以下哪项是main方法的正确形参?(B)A、StringargsB、Stringar[]C、CharargD、StringBufferargs[]2.以下关于继承的叙述正确的是(A)A、在Java中类只允许单一继承B、在Java中一个类只能实现一个接口C、在Java中一个类不能同时继承一个类和实现一个接口D、在Java中接口只允许单一继承3.paint方法使用哪种类型的参数(A)A、GraphicsB、Graphics2DC、StringD、Color4.以下哪个不是Java的原始数据类型(B)A、intB、BooleanC、floatD、char5.以下哪项可能包含菜单条(B)A、PanelB、FrameC、AppletD、Dialog6.若需要定义一个类域或类方法,应使用哪种修饰符?(A)A、staticB、packageC、privateD、public7.在浏览器中执行applet程序,以下选项中的哪个方法将被最先执行(A)A、intB、startC、destroyD、stop11.以下代码段执行后的输出结果为(A)intx=-3;inty=-10;y%x;A、-1B、2C、1D、312.有以下程序片段,下列哪个选项不能插入到行1(D)
1.
2.publicclassInteresting{
3.//dosth
4.}A、importjava.awt.*;B、packagemypackage;C、classOtherClass{}D、publicclassMyClass{}15.在编写JavaApplet程序时,需在程序的开头写上B语句A、importjava.awt.*;B、import;C、、import;16.类Parent、Child定义如下1.publicclassParent2.{publicfloataFunfloatafloatbthrows3.IOException{}4.}5.publicclassChildextendsParent{6.7.}将以下哪种方法插入行6是不合法的(A)A、floataFunfloatafloatb{}B、publicintaFunintaintbthrowsException{}C、publicfloataFunfloatpfloatq{}D、publicintaFunintaintbthrowsIOException{}17.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口A、privateB、protectedC、privateprotectedD、public
18、有以下方法的定义,请选择该方法的返回类型(D)ReturnTypemethodbytexdoubley{returnshortx/y*2;}A、byteB、shortC、intD、double三.程序阅读题1.以下程序的输出结果为相等classStringTest1{publicstaticvoidmainString[]args{Strings1=hello;Strings2=newStringhello;ifs
1.equalss2{相等;}else{不相等;}}}2.以下程序段的输出结果为56789publicclassTestArray{publicstaticvoidmainStringargs[]{intij;inta[]={59687};fori=0;ia.length-1;i++{intk=i;forj=i;ja.length;j++ifa[j]a[k]k=j;inttemp=a[i];a[i]=a[k];a[k]=temp;}fori=0;ia.length;i++a[i]+;;}}4.阅读以下程序,写出输出结果classAnimal{Animal{Animal;}}publicclassDogextendsAnimal{Dog{Dog;}publicstaticvoidmainString[]args{Dogsnoppy=newDog;}}AnimalDog填空题
1、如果将类MyClass声明为public,它的文件名称必须是(MyClass.java)才能正常编译
2、Java程序中的单行注释符是(//),多行注释符是(/**/)
3、Java中布尔类型的常量有两种,它们是(true)和(false)
4、Java中用于定义小数的关键字有两个(float)和(double),后者精度高于前者
5、Java中用于两个数相等比较的运算符是(==),用于不相等比较的运算符是()
6、在Java中定义一个字符串类型的变量str的语句是(Stringstr;),定义一个具有10个元素的整型数组a的语句是(int[]arr=newint
[10];)
7、导入mypackage包中的所类的命令是(importmypackage.*;)
8、当声明一个数组intarr[]=newint
[5];时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为
(5),数组元素下标的使用范围是(0到4)
9、假设x=13,y=4,则表达式x%y!=0的值是(true),其数据类型是(boolean)
10、异常处理是由(try)、(catch)和finally块三个关键所组成的程序块
11、以下程序段的输出结果是(三角形)intx=5y=6z=4;ifx+yzx+zyz+yx三角形;else不是三角形;
12、下面程序段的执行结果是
(65432)inta[]={23456};forinti=a.length-1;i=0;i--a[i]+;
三、程序阅读题
1、以下程序的输出结果为_Peteris17yearsold!__PublicclassPerson{Stringname;intage;publicPersonStringnameintage{this.name=name;this.age=age;}PublicstaticvoidmainString[]args{Personc=newPersonPeter17;c.name+is+c.age+yearsold!;}}
2、以下程序的输出结果为_课程号:101课程名:ASP学分:3__PublicclassCourse{privateStringcNumber;privateStringcName;privateintcUnit;publicCourseStringnumberStringnameintunit{cNumber=number;cName=name;cUnit=unit;}PublicvoidprintCourseInfo{课程号:+cNumber+课程名:+cName+学分:+cUnit;}}classCourseTest{publicstaticvoidmainString[]args{Coursec;c=newCourse101ASP3;c.printCourseInfo;}}
5、下列程序的运行结果是__12345____publicclassMyClass{inta[]={12345};voidout{forintj=0;ja.length;j++a[j]+;}publicstaticvoidmainString[]args{MyClassmy=newMyClass;my.out;}}
四、简答题
1、简述Java中异常处理的机制?答首先Java的异常是面向对象的一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了并放到异常的成员函数里Java的异常处理是通过5个关键词来实现的trycatchthrowthrows和finally
1.异常处理在Java语言的错误处理结构由try,catch,finally三个块组成其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在try块后面,用来激发被捕获的异常;finally块包含清除程序没有释放的资源,句柄等不管try块中的代码如何退出,都将执行finally块
2.抛出异常Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个
2、什么是继承?答通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系
3、请简述重载和重写的区别?答方法的重写Overriding和重载Overloading是Java多态性的不同表现重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写Overriding子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载OverloadingOverloaded的方法是可以改变返回值的类型
1.创建类的对象时,使用运算符______new_____给对象分配内存空间
2.定义类的构造方法不能有返回值类型,其名称与___类__名相同
3.Java语言中关键字__double___表示双精度类型
4.若有定义floatb={
1.1f
3.5f
6.8f};,则b.length的值是___3____5.若有如下类定义,则类B是类A的__子类____classBextendsA{…}6.接口中的成员只有静态常量和__抽象方法____
7.在子类中使用关键字__super_____做前缀可调用被子类覆盖的父类中的方法
8.关键字__import____用于导入包中的类到程序中,供程序中使用
9.Java语言中通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的__catch___块来捕获和处理异常阅读程序,回答问题
1.1:publicclassOutput1{2:publicstaticvoidmainStringarge[]{3:inti=0;4:forcharch=97;ch113;ch++i++{5:ifi%8==06:;7:\t+ch;8:}9:}10:}程序第
5、6行的if语句的功能是什么?2程序输出的结果有几行?
(1)每打印8个字符,则换行
(2)输出的结果有2行
2.1:import;2:3:publicclassSortArray{4:publicstaticvoidmainStringargs[]{5:String[]str={sizeabslengthclass};6:Arrays.sortstr;7:forinti=0;istr.length;i++8:str[i]+;9:}10:}1写出程序运行后的结果2方法调用str
[0].length的返回结果是多少?1 abs class length size 2
41.定义类A和类B如下.classA{inta=1;doubled=
2.0;voidshow{ClassA:a=+a+\td=+d;}}classBextendsA{floata=
3.0f;Stringd=Javaprogram.;voidshow{super.show;ClassB:a=+a+\td=+d;}}1若在应用程序的main方法中有以下语句Aa=newA;a.show;则输出的结果如何?2若在应用程序的main方法中定义类B的对象b Ab=newB;b.show;则输出的结果如何?答输出结果为1)ClassA:a=1d=
2.02)ClassA:a=1d=
2.0ClassB:a=
3.0d=Javaprogramimportjava.util.*;publicclassW{staticString[]s={甲乙丙丁};publicstaticvoidmainString[]args{Stackstk=newStack;forinti=0;is.length;i++{stk.pushs[i]+;}intk=0;whilek3{stk.pop;k++;}}}堆栈的操作规则如何?写出程序运行后的结果【答案】1先进后出 2丁丙乙。