《Java面向对象编程练习题精品资料.doc》由会员分享,可在线阅读,更多相关《Java面向对象编程练习题精品资料.doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java面向对象编程 练习题专题1 初识Java一、填空题1自从Sun推出Java以来,按应用范围可分为三个版本,分别是( JAVA SE )、( JAVA EE )、( JAVA ME )。2环境变量的设置,若JDK安装在“D:JDK”,则应设置Path为(D:JDKbin )、classpath为( D:JDKlib )。3Java源文件的扩展名为( .java ),用Javac编译Java源文件,得到的字节码文件的扩展名为(.class )。4如果Java源文件中有多个类,那么只能有一个类是(public class )类。5Java程序可以分成两类,即(Java Application
2、 )和(java Applet)。二、选择题1作为Java应用程序入口的main方法,其声明格式是(b )Apublic static int main(String args) Bpublic static void main(String args) Cpublic void main(String args) Dpublic int main(String args) 2下面命令正确的是(B)Ajava AppFirst.java Bjava AppFirstCjava appfirst.class Djavac AppFirst3设有一个Java小程序,源程序名为FirstApplet
3、.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为(D)Ajava FirstApplet Bjavac FirstApplet.javaCappletviewer FirstApplet.java Dappletviewer FirstApplet.html4JDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下。Abin Bjre Cinclude Ddoc5Java语言是一种 D 语言。A机器B汇编C面向过程的D面向对象的6、Java程序的最基本组成单位是 D 。A函数B过程C变量D类三、简答题1Java语言有哪些特点?2J
4、DK安装完成后,如何设置环境变量?3简述Java应用程序和小应用程序的区别。4简述Java应用程序的开发过程专题2 标识符、表达式、数据类型一、填空题1Java逻辑常量有两个:(ture )和(flase )。2写出下列表达式的运算结果,设a=2,b=-4,c=true。(1)-a%b+ -2(2)a=1 & a b)false(4)(-a)a-8(5)(double)(a+b)/5+a/b-0.43、比较两个数相等的运算符是: = = 。4、Java中的八种基本数据类型分别是:char、 int 、 long 、 shore 、 flaot、 double 、 byte 和 boolean
5、。二、选择题1下面这些标识符哪个是错误的(C )AJavaworld B_sum C2Java Program D$abc2下列哪一组运算符的优先级顺序是从高到低排列的( B)A|、&、! B&、| C!、%、+ D、3 ? +a : b+);Aa的值为2,b的值为3,c的值为1 Ba的值为2,b的值为4,c的值为2Ca的值为2,b的值为4,c的值为1 Da的值为2,b的值为3,c的值为26设各个变量的定义如下,哪些选项的值为true ( C ) int a=3, b=3; boolean flag=true;A+a = = b B+a= = b+ C(+a = = b) | flag D(+
6、a= =b) & flag7表达式(int)6.5/7.5*3的值的类型为(C )Ashort Bint Cdouble Dfloat8设a, b, x, y, z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是( D)Axy & bx-y Cy = = +x Dy+x*x+9下面语句输出的结果为( B) Syste.out.println(52); A6 B7 C10 D2510对下面的语句执行完后正确的说法是:( D)int c=c/3;System.out.println(c); A输出结果为21 B输出结果为22 C输出结果为32 D输出结果为3311以下选项中变量a已定义
7、类型,合法的赋值语句为( D)Aa = int(y); Ba= =1; Ca = a+1=3; D+a;12执行下列程序段后,ch,x,y的值正确的是:( A)int x=3, y=4;boolean ch;ch=xy&+x=-y;Atrue , 6, 8Bfalse , 6, 8Ce, 7, 7Dfalse, 7, 7 19、下列程序运行的结果是 D 。 public class A public static void main(String args) int x = 7%3;while(x)x-;System.out.println(x);A0B1CtrueD编译错误三、编程题1使用M
8、ath.pow()方法,求出2的32次方的值。专题3 流程控制语句一、填空题1在switch语句中的表达式的类型必须是( int型 )或者(与int相容的类型byte,char,long,short )。2break在循环语句中的作用是(跳出当前循环 )。3分支语句包括( if)和( switch)。4while循环语句的循环次数(0或者不限 ),do-while语句的循环次数( 至少一次 ),for语句的循环次数(0或者不限 )。二、选择题1下面程序片段输出的是什么( C) int a=3, b=1; if(a=b) Syste.out.println(“a=”+a);Aa=1 Ba=3 C
9、编译错误,没有输出 D正常运行,但没有输出2下面语句执行后,x的值为(C ) int a=4, b=5, x=3; if(+a=b) x=x*a;A3 B12 C15 D203请看下面的程序代码: if(x0) Syste.out.println(“first”); else if(x20) Syste.out.println(“second”); else Syste.out.println(“third”);当程序输出“second”时,x的范围是( B)Ax=0 Bx=0 Cx0 Dx=204请看下面的程序代码: switch(n) case 0: Syste.out.println(“
10、first”); case 1: case 2: Syste.out.println(“second”); break; default: Syste.out.println(“end”);当n为何值时,程序段将输出字符串”second”( D )A 0 B1 C2 D以上都可以5下列语句执行后,j的值是(D ) int j=3, i=3; while(-i!=i/j) j=j+2;A 4 B5 C6 D76下列语句执行后,x的值是(D) int x=2 ; dox+=x ; while(x-j) continue; while(i4);A i=4, j=5 Bi=5,j=4 Ci=5,j=5
11、 Di=5,j=68下列语句执行后,k的值是( B ) int j=4, i, k=10; for(i=2; i!=j; i+) k=k-i;A 4 B5 C6 D79下列语句执行后,c的值是(C ) char c=0; for(c=a; c=e) break; A e Bf Cg Dh10若变量都已经正确说明,则以下程序段输出为( A ) a=10; b=50; c=30; if(ab) a=b;b=c; c=a; System.out.println(“a=”+a+” b=”+b+” c=”+c);Aa=10 b=50 c=10 Ba=10 b=30 c=10 Ca=50 b=30 c=1
12、0 Da=50 b=30 c=3011以下程序段输出是(D ) int x=1,y=0,a=0,b=0; i=(-a=b+)? - -a : +b; j=a+; k=b; System.out.println(“i=”+i+” ,j=”+j+” ,k=”+k); 2 -1 2Ai=2,j=1,k=3 Bi=1,j=1,k=2 Ci=4,j=2,k=4 Di=2,j=-1,k=212以下程序的输出是( B ) int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; case 1: b+;break; case 2: a
13、+;break; case 3: a+;b+; System.out.println(“a=”+a+”,b=”+b); 2 0Aa=1, b=0 Ba=2,b=0 Ca=1, b=1 Da=2, b=213以下程序段输出是( C ) int i=0,j=0,a=6; if (+i0) | (+j0 ) a+ :System.out.println(“i=”+i+” ,j=”+j+” ,a=”+a);Ai=0,j=0,a=6 Bi=1,j=1,a=7 Ci=1,j=0,a=7 Di=0,j=1,a=714、下列程序运行的结果是 C 。public class A public static vo
14、id main(String args)char c = d;for (int i = 1; i = 4; i+) switch (i)case 1:c = a;System.out.print(c);break;case 2:c = b;System.out.print(c);break;case 3:c = c;System.out.print(c);default:System.out.print(!); A!Bdbc!Cabc!Dabc!三、编程题1输入4个数,将这4个数按从小到大输出。2输入一个年份值,判断是否是闰年,输出相应的信息。3输入一元二次方程系数,若有实数根,求根并输出,否
15、则输出“不是二次方程或没有实数根”的信息。4编写程序,计算邮局汇款的汇费:如果汇款金额小于100元,汇费为1元,如果金额在100元与500元之间,按1%收取汇费,如果金额大于500元,汇费为50元。5求某年某月的天数.6求从1到100之间所有奇数的平方和(用for、while和dowhile编写程序)。7求S=1+2+3+n之和,S1000的最大n的值。8. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项之和。9猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都
16、吃了前一天剩下的一半零一个,到第十天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?10输出九九乘法表。11输出1000之内的所有完数。所谓完数指的是:如果一个数恰好等于它的所有因子之和,这个数就称为完数。12输出100以内的全部素数。13求1!+2!+3!+10!14求2+22+222+2222+22222。专题4 数组一、填空题1定义一个整型数组y,它有5个元素分别是1,2,3,4,5用一个语句实现对数组的声明、创建和赋值:(int y =1,2,3,4,5 )。2设有整型数组的定义:“int x=12,34,-5,3,2,6;”则x.length的值为(9 )3求取二维数组a的第行
17、元素个数的表达式是( )。4、一个一维数组有10个元素,则该数组可用的下标范围是 0-9 。5、String S=“安徽”, “江苏”, “山东”;则S1的值是: 江苏 。6、当声明一个数据组int arr=new int5;时,这代表这个数组所保存的变量类型是 整形 ,数组元素下标的使用范围是 0-4 。二选择题设有定义语句“int a=66,88,99;”,则以下对此语句的叙述错误的是( C)A定义了一个名为a的一维数组 Ba数组有3个元素Ca数组的元素的下标为13 D数组中的每个元素是整数2设有定义“int a=new int4;”则数组a的所有元素是(B )Aa0、a1、a2、a3 B
18、a0、a1、a2、a3 Ca1、a2、a3、a4 Da0、a1、a2、a3、a43下面哪个选项正确地声明了一个字符串数组 (C )Achar str Bchar str CString str DString10 str4、假设有这样的数组创建:int a=1,2,3,4,5,6,7;则该数组长度为 D 。A4 B5 C6 D75、下列二维数组的创建中错误的是 A 。Aint a=new int3 ; Bint a=new int34 ;Cint a=1,2,3,4 ;Dint a=new int;三、编程题1编写一个程序,计算一维数组中的最大值、最小值及其差值。2将一个数组中的数逆序重新存放
19、。3已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。4输出杨辉三角形。如:1 1 1 1 2 11 3 3 11 4 6 4 11 5 10 10 5 15求一个二维数组的每行最大数。*专题5 面向对象一、填空题1 如果一个方法不返回任何值,则该方法的返回值类型为 void 。2 如果子类中的某个方法名、返回值类型和_传递参数_与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法。3 接口中所有的属性均为_公有_、_静态_和_常量_的4 方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在 类之中定义
20、。5 在Java程序中,通过类的定义只能实现 重继承,但通过 的定义可以实现多重继承关系。6 一般Java程序的类主体由两部分组成:一部分是 成员变量 ,另一部分是 成员方法 。7 分别用 class 关键字来定义类,用 关键字来分配实例存储空间。8 当一个类的修饰符为 private 时,说明该类不能被继承,即不能有子类。9 在Java中,能实现多重继承效果的方式是 。二、选择题1 方法内定义的变量( )。A一定在方法内所有位置可见 B可能在方法的局部位置可见C在方法外可以使用 D在方法外可见2 方法的形参( D)。A可以没有B至少有一个C必须定义多个形参 D只能是简单变量3 return语
21、句(D)。A不能用来返回对象 B只可以返回数值C方法都必须含有 D一个方法中可以有多个4 main()方法的返回值类型是(C。AbooleanBintCvoid Dstatic5 编译并运行下面的程序,运行结果是( )。public class A public static void main(String args) A a=new A(); a.method(8); void method(int i) System.out.println(“int: ”+i); void method(long i) System.out.println(“long: ”+i); A程序可以编译运行,
22、输出结果为:“int: 8” B程序可以编译运行,输出结果为:“long: 8” C程序有编译错误,因为两个method()方法必须定义为静态(static)的D程序可以编译运行,但是没有输出6 能作为类及其成员的修饰符是( )。AinterfaceBclassCprotected Dpublic7 下列方法定义中,方法头不正确的是( )。Apublic static x(double a) Bpublic static int x(double y)Cvoid x(double d) Dpublic int x()8 构造方法在( )时被调用。A类定义时B使用对象的变量时C调用对象方法时 D
23、创建对象时9 下列哪个类声明是正确的( )。Apublic abstract class CarBabstract private move()Cprotected private number; Dabstract final class H110 下列不属于面向对象程序设计的基本特征的是( )。A抽象 B封装C继承 D静态11 请看下面的程序段class Person String name,department;int age;public Person(String n)name=n;public Person(String n,int a)name=n; age=a;public P
24、erson(String n, String d, int a )/doing the same as two arguments version if constructer下面那个选项可以添加到/ doing the same处( )APerson(n,a) Bthis(Person(n,a)Cthis(n,a) Dthis(name.age)12 请看下面的程序段class Test private int m;public static void fun() /some code方法fun()如何来访问变量m( )A将private int m 改成protected int m B将
25、private int m 改成public int mC将private int m 改成static int m D将private int m 改成int m 13 有一个类A,对于其构造函数的声明正确的是( )。Avoid A(int x)Bpublic A(int x)CA A(int x)Dint A(int x)14 请看下面的程序段public class Test long a=new long10; pubic static void main(String args)System.out.println(a6);哪一个选项是正确的( )。A不输出任何内容B输出0C当编译时
26、有错误出现 D当运行时有错误出现15 关键字( )表明一个对象或变量在初始化后不能修改。Aextends BfinalCthis Dfinalize16 声明为static的方法不能访问( )类成员。A超类 B子类C非static D用户自定义类17 定义类A如下:class A int a,b,c; public void B(int x,int y, int z) a=x;b=y;c=z;下面对方法B的重载哪些是正确的( )。Apublic void A(int x1,int y1, int z1) a=x1;b=y1;c=z1;Bpublic void B(int x1,int y1,
27、int z1) a=x1;b=y1;c=z1;Cpublic void B(int x,int y) a=x;b=y;c=0; Dpublic B(int x,int y, int z) a=x;b=y;c=z;18 编译运行下面的程序,结果是( )。public class A public static void main(String args)B b=new B();b.test(); void test()System.out.print(“A”); class B extends A void test()super.test();System.out.print(“B”); A产
28、生编译错误 B代码可以编译运行,并输出结果:ABC代码可以编译运行,但没有输出 D编译没有错误,但会产生运行时异常19 已知类关系如下:Class EmployeeClass Manager extends EmployeeClass Director extends Employee则下列语句正确的是:( )。AEmployee e=new Manager(); BDirector d=new Manager();CDirector d =new Employee (); DManager m=new Director ();20 接口是Java面向对象的实现机制之一,以下说法正确的是( )
29、。AJava支持多重继承,一个类可以实现多个接口BJava只支持单重继承,一个类可以实现多个接口CJava只支持单重继承,一个类可以实现一个接口 DJava支持多重继承,但一个类只可以实现一个接口21下列方法的声明中不合法的是 。Afloat area( )Bvoid area( ) CareaDint area(int r)22、下面哪个包是编程时不需要导入就可以直接使用的 。ABjava.langCjava.sqlDjava.util23、调用构造方法是在 。A类定义时B创建对象时C调用对象的方法时D使用对象的变量时24、在子类构造方法的哪个地方可以调用其父类的构造方法 。A任何地方B构造
30、方法的第一条语句 C构造方法的最后一条语句 D无法在子类构造方法中调用父类的构造方法25、关于Java中的继承,下列说法错误的是 。A继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。B继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。C每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。D继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。26、当方法中的局部变量与成员变量同名时,必须使用下列哪一
31、个关键字指出成员变量 。AstaticBsuperCthisDnew27、什么样的方法不能被重写 。A私有(private)方法B最终(final)方法C受保护(protected)的方法D以上都不对28、下列有关抽象类与接口的叙述中正确的是哪一个 。A抽象类中必须有抽象方法,接口中也必须有抽象方法B抽象类中可以有非抽象方法,接口中也可以有非抽象方法C含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法D抽象类中的变量定义时必须初始化,而接口中不是29、从下列程序中你发现了几处错误 。abstract class Aabstract void f(); public abstract vo
32、id k(); class B extends Aprotected void f() void k()System.out.print(I am subclass);public static void main(String args) A a=new A();a.f(); a.k();A1B2C3D430、下列程序运行的结果是 。interface InterfaceAString s=good ;void f();class ClassA implements InterfaceA public void f()System.out.print(s);class ClassBvoid
33、g(InterfaceA a)a.f();public class E public static void main(String args) ClassB b=new ClassB();b.g(new ClassA();AgoodB编译正确,但无运行结果C编译错误:b.g(new ClassA()D以上都不对31、下列类的声明中不合法的是 。Aclass People()Bclass 植物 Cclass ADpublic class 共有类32、能作为类的修饰符, 也能作为类成员的修饰符的是 。ApublicBextendsCFloatDstatic33、试完成下述程序片段 。public
34、 class Pointint x,y;public Point(int x,int y)( )=x; ( )=y; . APoint.x Point.yBthis.x this.yCsuper.x super.yD无解34、在JAVA 中,下列说法正确的是: 。A一个子类可以有多个父类,一个父类也可以有多个子类B一个子类可以有多个父类,但一个父类只可以有一个子类C一个子类只可以有一个父类,但一个父类可以有多个子类D上述说法都不对35、Father和Son是两个java类,下列哪一选项正确的标识出Father是Son的父类? Aclass Son implements FatherBclass Father implements SonCclass Father extends SonDclass Son extends Father 36、重载指的是方法具有相同的名字,但这些方法