1面向对象编程练习题专题1初识Java一、填空题1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。4.如果Java源文件中有多个类,那么只能有一个类是()类。5.Java程序可以分成两类,即()和()。二、选择题1.作为Java应用程序入口的main方法,其声明格式是()A.publicstaticintmain(Stringargs[])B.publicstaticvoidmain(Stringargs[])C.publicvoidmain(Stringargs[])D.publicintmain(Stringargs[])2.下面命令正确的是()A.javaAppFirst.javaB.javaAppFirstC.javaappfirst.classD.javacAppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为()A.javaFirstAppletB.javacFirstApplet.javaC.appletviewerFirstApplet.javaD.appletviewerFirstApplet.html4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。A.binB.jreC.includeD.doc5.Java语言是一种语言。A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是()。A.函数B.过程C.变量D.类7.main()方法的返回值类型是()。A.booleanB.intC.voidD.static8.下面哪个单词是Java语言的关键字()A.FalseB.FORC.ForD.for9.、线程是Java的()机制。A.检查B.解释执行C.并行D.并发2三、简答题1.Java语言有哪些特点?2.JDK安装完成后,如何设置环境变量?3.简述Java应用程序和小应用程序的区别。4.简述Java应用程序的开发过程专题2标识符、表达式、数据类型一、填空题1.Java逻辑常量有两个:()和()。2.比较两个数相等的运算符是:。4、Java中的八种基本数据类型分别是:char、、、、、、和。二、选择题1.下面这些标识符哪个是错误的()A.JavaworldB._sumC.2JavaProgramD.$abc2、下面哪个赋值语句不会产生编译错误()A.chara=’abc’;B.byteb=152;C.floatc=2.0;D.doubled=2.0;3.下面哪个单词是Java语言的关键字()A.FalseB.FORC.ForD.for4.若变量都已经正确说明,则以下程序段输出为()a=10;b=50;c=30;if(ab)a=b;b=c;c=a;System.out.println(“a=”+a+”b=”+b+”c=”+c);A.a=10b=50c=10B.a=10b=30c=10C.a=50b=30c=10D.a=50b=30c=305.下列标识符中,正确的是。A、1_BackB、$_MoneyC、$-moneyD、2-Forward6.现有一个int类型的整数和一个double类型的浮点数,当它们之间做了加法运算之后,得到的3结果类型应该是。A、int类型B、double类型C、float类型D、long类型7、对下面的语句执行完后正确的说法是:()intc=’c’/3;System.out.println(c);A.输出结果为21B.输出结果为22C.输出结果为32D.输出结果为338、设有定义inta=12;则执行a*=12;语句后,a的值为:()。A.144B.12C.24D.0专题3流程控制语句一、填空题1.在switch语句中的表达式的类型必须是()或者()。2.break在循环语句中的作用是()。3.分支语句包括()和()。4.while循环语句的循环次数(),do-while语句的循环次数(),for语句的循环次数()。5.continue在循环语句中的作用是()。专题4面向对象一、填空题1.如果一个方法不返回任何值,则该方法的返回值类型为。2.如果子类中的某个方法名、返回值类型和_______与父类中的某个方法完全一致,则称子类中的这个方法了父类的同名方法。3.接口中所有的属性均为__、_______和______的4.方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在类之中定义。5.在Java程序中,通过类的定义只能实现重继承,但通过的定义可以实现多重继承关系。6.一般Java程序的类主体由两部分组成:一部分是,另一部分是。7.分别用关键字来定义类,用关键字来分配实例存储空间。8.当一个类的修饰符为时,说明该类不能被继承,即不能有子类。49.在Java中,能实现多重继承效果的方式是。二、选择题1..有一个类A,对于其构造方法的声明正确的是()。A.voidA(intx){…}B.publicA(intx){…}C.AA(intx){…}D.intA(intx){…}2.方法的形参()。A.可以没有B.至少有一个C.必须定义多个形参D.只能是简单变量3.return语句()A.不能用来返回对象B.只可以返回数值C.方法都必须含有D.一个方法中可以有多个4.main()方法的返回值类型是()A.booleanB.intC.voidD.static5.编译并运行下面的程序,运行结果是()。publicclassA{publicstaticvoidmain(Stringargs[]){Aa=newA();a.method(8);}voidmethod(inti){System.out.println(“int:”+i);}voidmethod(longi){System.out.println(“long:”+i);}A.程序可以编译运行,输出结果为:“int:8”B.程序可以编译运行,输出结果为:“long:8”C.程序有编译错误,因为两个method()方法必须定义为静态(static)的D.程序可以编译运行,但是没有输出6.能作为类及其成员的修饰符是()。A.interfaceB.classC.protectedD.public7.下列方法定义中,方法头不正确的是()。A.publicstaticx(doublea){…}B.publicstaticintx(doubley){…}C.voidx(doubled){…}D.publicintx(){…}58.构造方法在()时被调用。A.类定义时B.使用对象的变量时C.调用对象方法时D.创建对象时9.下列哪个类声明是正确的()。A.publicabstractclassCar{…}B.abstractprivatemove(){…}C.protectedprivatenumber;D.abstractfinalclassH1{…}10.下列不属于面向对象程序设计的基本特征的是()。A.抽象B.封装C.继承D.多态11.有一个类A,对于其构造函数的声明正确的是()。A.voidA(intx){…}B.publicA(intx){…}C.AA(intx){…}D.intA(intx){…}12.关键字()表明一个对象或变量在初始化后不能修改。A.extendsB.finalC.thisD.finalize13.声明为static的方法不能访问()类成员。A.超类B.子类C.非staticD.用户自定义类14.定义类A如下:classA{inta,b,c;publicvoidB(intx,inty,intz){a=x;b=y;c=z;}}下面对方法B的重载哪些是正确的()。A.publicvoidA(intx1,inty1,intz1){a=x1;b=y1;c=z1;}B.publicvoidB(intx1,inty1,intz1){a=x1;b=y1;c=z1;}C.publicvoidB(intx,inty){a=x;b=y;c=0;}D.publicB(intx,inty,intz){a=x;b=y;c=z;}15.编译运行下面的程序,结果是()。publicclassA{publicstaticvoidmain(Stringargs[]){Bb=newB();b.test();}voidtest(){System.out.print(“A”);}}classBextendsA{voidtest(){super.test();System.out.print(“B”);6}}A.产生编译错误B.代码可以编译运行,并输出结果:ABC.代码可以编译运行,但没有输出D.编译没有错误,但会产生运行时异常16.已知类关系如下:ClassEmployee{}ClassManagerextendsEmployee{}ClassDirectorextendsEmployee{}则下列语句正确的是:()。A.Employeee=newManager();B.Directord=newManager();C.Directord=newEmployee();D.Managerm=newDirector();17.接口是Java面向对象的实现机制之一,以下说法正确的是()。A.Java支持多重继承,一个类可以实现多个接口B.Java只支持单重继承,一个类可以实现多个接口C.Java只支持单重继承,一个类可以实现一个接口D.Java支持多重继承,但一个类只可以实现一个接口21.下列方法的声明中不合法的是。A.floatarea(){…}B.voidarea(){…}C.area{…}D.intarea(intr){…}22、下面哪个包是编程时不需要导入就可以直接使用的。A.java.netB.java.langC.java.sqlD.java.util23、调用构造方法是在。A.类定义时B.创建对象时C.调用对象的方法时D.使用对象的变量时24、在子类构造方法的哪个地方可以调用其父类的构造方法。A.任何地方B.构造方法的第一条语句C.构造方法的最后一条语句D.无法在子类构造方法中调用父类的构造方法25、关于Java中的继承,下列说法错误的是。A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。7D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量。A.staticB.superC.thisD.new27、什么样的方法不能被重写。A.私有(private)方法B.最终(final)方法C.受保护(protected)的方法D.以上都不对28、下列有关抽象类与接口的叙述中正确的是哪一个。A.抽象类中必须有抽象方法,接口中也必须有抽象方法B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法D.抽象类中的变量定义时必须初始化,而接口中不是29、以下程序的输出是intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;break;case3:a++;b++;}System.out.print