Java面向对象编程练习题_第1页
Java面向对象编程练习题_第2页
Java面向对象编程练习题_第3页
Java面向对象编程练习题_第4页
Java面向对象编程练习题_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、专题1 初识Java一、填空题1自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、( )。2环境变量的设置,若JDK安装在“D:JDK”,则应设置Path为( )、classpath为( )。3Java源文件的扩展名为( ),用Javac编译Java源文件,得到的字节码文件的扩展名为( )。4如果Java源文件中有多个类,那么只能有一个类是()类。二、选择题1作为Java应用程序入口的main方法,其声明格式是()Apublic static int main(String args) Bpublic static void main(String args) Cpubl

2、ic void main(String args) Dpublic int main(String args) 2下面命令正确的是()Ajava AppFirst.java Bjava AppFirstCjava appfirst.class Djavac AppFirst3设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为()Ajava FirstApplet Bjavac FirstApplet.javaCappletviewer FirstApplet.java Dappletviewer Firs

3、tApplet.html4JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。Abin Bjre Cinclude Ddoc5Java语言是一种 _语言。A机器B汇编C面向过程的D面向对象的6、Java程序的最基本组成单位是 _。A函数B过程C变量D类三、简答题(十分重要)1Java语言有哪些特点?2JDK安装完成后,如何设置环境变量?4简述Java应用程序的开发过程专题2 标识符、表达式、数据类型一、填空题1Java逻辑常量有两个:()和()。2写出下列表达式的运算结果,设a=2,b=-4,c=true。(1)-a%b+ ()(2)a>=1 &&

4、amp; a <= 10 ? a : b ()(3)c(a>b)()(4)(-a)<<a()(5)(double)(a+b)/5+a/b()3、比较两个数相等的运算符是: 。4、Java中的八种基本数据类型分别是:char、 、 、 、 、 、 和 。二、选择题1下面这些标识符哪个是错误的( )AJavaworld B_sum C2Java Program D$abc2下列哪一组运算符的优先级顺序是从高到低排列的( )A|、&、! B&、| C!、%、+ D<、<<、+3、下面哪个赋值语句不会产生编译错误( )Achar a=abc;

5、Bbyte b=152; Cfloat c=2.0; Ddouble d=2.0;4下面哪个单词是Java语言的关键字()AFalse BFOR CFor Dfor5执行下面程序后,哪个结论是正确的( ) int a, b, c; a=1; b=3; c=(a+b>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 ( ) int a=3, b=3; boolean flag=true;A+a = = b B+a= =

6、b+ C(+a = = b) | flag D(+a= =b) & flag7表达式(int)6.5/7.5*3的值的类型为()?Ashort Bint Cdouble Dfloat8设a, b, x, y, z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是( )Ax>y && b<a B-z>x-y Cy = = +x Dy+x*x+9下面语句输出的结果为( ) Syste.out.println(52); A6 B7 C10 D2510对下面的语句执行完后正确的说法是:( )int c=c/3;System.out.println(c

7、); A输出结果为21 B输出结果为22 C输出结果为32 D输出结果为3311以下选项中变量a已定义类型,合法的赋值语句为( )Aa = int(y); Ba= =1; Ca = a+1=3; D+a;12执行下列程序段后,ch,x,y的值正确的是:( )int x=3, y=4;boolean ch;ch=x<y | +x = = -y;Atrue,3,4 Btrue,4,3 Cfalse,3,4 Dfalse,4,313下列标识符中,正确的是 。 A、1_Back B、$_MoneyC、$-money D、2-Forward14现有一个int类型的整数和一个double类型的浮点数

8、,当它们之间做了加法运算之后,得到的结果类型应该是 。A、int类型B、double类型C、float类型D、long类型15、以下程序的运行结果为 。public class A public static void main(String a) int x = 2, y = 5; String z = "5" System.out.println(x + y); System.out.println(x + z + "x+z"); System.out.println("x+y=" + x + y); System.out.pri

9、ntln("x+z=" + (x + z); A7 B7 C25 D7 25x+z 7x+z25x+z 25x+z x+y=25 x+y=25 x+y=7 x+y=25 x+z=25 x+z=7 x+z=25 x+z=716、设有定义int a=12;则执行a*=12;语句后,a的值为: 。A144B12C24D017、下列标识符中,合法的一个是 。A$#!$B$我们$C$22$D2$218、执行下列程序段后,b, x, y的值分别是 。int x=6,y=8;boolean b;b=x>y&&+x=-y;Atrue , 6, 8Bfalse , 6,

10、 8Ce, 7, 7Dfalse, 7, 7 19、下列程序运行的结果是 。 public class A public static void main(String args) int x = 7%3;while(x)x-;System.out.println(x);A0B1CtrueD编译错误三、编程题1使用Math.pow()方法,求出2的32次方的值。专题3 流程控制语句一、填空题1在switch语句中的表达式的类型必须是( )或者( )。2break在循环语句中的作用是()。3分支语句包括()和()。4while循环语句的循环次数( ),do-while语句的循环次数( ),for

11、语句的循环次数( )。二、选择题1下面程序片段输出的是什么() int a=3, b=1; if(a=b) Syste.out.println(“a=”+a);Aa=1 Ba=3 C编译错误,没有输出 D正常运行,但没有输出2下面语句执行后,x的值为( ) int a=4, b=5, x=3; if(+a=b) x=x*a;A3 B12 C15 D203请看下面的程序代码: if(x<0) Syste.out.println(“first”); else if(x<20) Syste.out.println(“second”); else Syste.out.println(“th

12、ird”);当程序输出“second”时,x的范围是( B)Ax<=0 Bx<20 && x>=0 Cx>0 Dx>=204请看下面的程序代码: switch(n) case 0: Syste.out.println(“first”); case 1: case 2: Syste.out.println(“second”); break; default: Syste.out.println(“end”);当n为何值时,程序段将输出字符串”second”( )A 0 B1 C2 D以上都可以5下列语句执行后,j的值是() int j=3, i=3;

13、 while(-i!=i/j) j=j+2;A 4 B5 C6 D76下列语句执行后,x的值是() int x=2 ; dox+=x ; while(x<17); A 4 B16 C32 D2567执行下列语句后,i、j的值是( ) int i=1, j=8; do if(i+>-j) continue; while(i<4);A i=4, j=5 Bi=5,j=4 Ci=5,j=5 Di=5,j=68下列语句执行后,k的值是( ) int j=4, i, k=10; for(i=2; i!=j; i+) k=k-i;A 4 B5 C6 D79下列语句执行后,c的值是() c

14、har c=0; for(c=a; c<z; c+=3)if(c>=e) break; A e Bf Cg Dh10若变量都已经正确说明,则以下程序段输出为( ) a=10; b=50; c=30; if(a>b) 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=10 Da=50 b=30 c=3011以下程序段输出是(D ) int x=1,y=0,a=0,b=0; i=(-a=b+)? - -a : +b; j=a+;

15、 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+;break; case 3: a+;b+; (“a=”+a+”,b=”+b); 2 0Aa=1, b=0 Ba=2,b=0 Ca=1, b=1 Da=2,

16、b=213以下程序段输出是( ) int i=0,j=0,a=6; if (+i>0) | (+j>0 ) 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、下列程序运行的结果是 。public class A public static void main(String args)char c = 'd'for (int i = 1; i <= 4; i+) switch (i)case 1:c = &#

17、39;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输入一个年份值,判断是否是闰年,输出相应的信息。2编写程序,计算邮局汇款的汇费:如果汇款金额小于100元,汇费为1元,如果金额在100元与500元之间,按1%收取汇费,如果金额大于500元,汇费为50元。3求某年某月的天数

18、.4求从1到100之间所有奇数的平方和(用for、while和dowhile编写程序)。5求S=1+2+3+n之和,S1000的最大n的值。专题4 数组一、填空题1定义一个整型数组y,它有5个元素分别是1,2,3,4,5用一个语句实现对数组的声明、创建和赋值:()。2设有整型数组的定义:“int x=12,34,-5,3,2,6;”则x.length的值为( )3求取二维数组a的第行元素个数的表达式是( )。4、一个一维数组有10个元素,则该数组可用的下标范围是 。5、String S=“安徽”, “江苏”, “山东”;则S1的值是: 。6、当声明一个数据组int arr=new int5;时

19、,这代表这个数组所保存的变量类型是 ,数组元素下标的使用范围是 。二选择题设有定义语句“int a=66,88,99;”,则以下对此语句的叙述错误的是( )A定义了一个名为a的一维数组 Ba数组有3个元素Ca数组的元素的下标为13 D数组中的每个元素是整数2设有定义“int a=new int4;”则数组a的所有元素是()Aa0、a1、a2、a3 Ba0、a1、a2、a3 Ca1、a2、a3、a4 Da0、a1、a2、a3、a43下面哪个选项正确地声明了一个字符串数组 ( )Achar str Bchar str CString str DString10 str4、假设有这样的数组创建:in

20、t a=1,2,3,4,5,6,7;则该数组长度为_ 。A4 B5 C6 D75、下列二维数组的创建中错误的是 _。Aint a=new int3 ; Bint a=new int34 ;Cint a=1,2,3,4 ;Dint a=new int;三、编程题1将一个数组中的数逆序重新存放。2已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。3求一个二维数组的每行最大数。*专题5 面向对象一、填空题1 如果一个方法不返回任何值,则该方法的返回值类型为 。2 如果子类中的某个方法名、返回值类型和_与父类中的某个方法完全一致,则称子类中的

21、这个方法覆盖了父类的同名方法。3 接口中所有的属性均为_、_和_的4  方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在 类之中定义。5 一般Java程序的类主体由两部分组成:一部分是 ,另一部分是 。6 分别用 关键字来定义类,用 关键字来分配实例存储空间。7 当一个类的修饰符为 时,说明该类不能被继承,即不能有子类。8 在Java中,能实现多重继承效果的方式是 。二、选择题1 方法内定义的变量( )。A一定在方法内所有位置可见 B可能在方法的局部位置可见C在方法外可以使用 D在方法外可见2 方法的形参( )。A可以没有B至少有一个C必须定义多个形参 D只能是简

22、单变量3 return语句()。A不能用来返回对象 B只可以返回数值C方法都必须含有 D一个方法中可以有多个4 main()方法的返回值类型是()。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);

23、 A程序可以编译运行,输出结果为:“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使用对象的变量

24、时C调用对象方法时 D创建对象时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

25、=a;public Person(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 改成protect

26、ed int m B将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不输出任何

27、内容B输出0C当编译时有错误出现 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(

28、int x1,int y1, 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

29、.out.print(“B”); A产生编译错误 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面向对象

30、的实现机制之一,以下说法正确的是( )。AJava支持多重继承,一个类可以实现多个接口BJava只支持单重继承,一个类可以实现多个接口CJava只支持单重继承,一个类可以实现一个接口 DJava支持多重继承,但一个类只可以实现一个接口21下列方法的声明中不合法的是 。Afloat area( )Bvoid area( ) CareaDint area(int r)22、下面哪个包是编程时不需要导入就可以直接使用的 。ABjava.langCjava.sqlDjava.util23、调用构造方法是在 。A类定义时B创建对象时C调用对象的方法时D使用对象的变量时24、在子类构造方法的哪个地方可以调

31、用其父类的构造方法 。A任何地方B构造方法的第一条语句 C构造方法的最后一条语句 D无法在子类构造方法中调用父类的构造方法25、关于Java中的继承,下列说法错误的是 。A继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。B继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。C每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。D继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。26、当方法中的局部

32、变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量 。AstaticBsuperCthisDnew29、从下列程序中你发现了几处错误 。abstract class Aabstract void f(); public abstract void 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、下列程序运行

33、的结果是 。interface InterfaceAString s="good "void f();class ClassA implements InterfaceA public void f()System.out.print(s);class ClassBvoid 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

34、以上都不对31、下列类的声明中不合法的是 。Aclass People()Bclass 植物 Cclass ADpublic class 共有类32、能作为类的修饰符, 也能作为类成员的修饰符的是 。ApublicBextendsCFloatDstatic33、试完成下述程序片段 。public class Pointint x,y;public Point(int x,int y)( )=x; ( )=y; . APoint.x Point.yBthis.x this.yCsuper.x super.yD无解34、Father和Son是两个java类,下列哪一选项正确的标识出Father是S

35、on的父类? Aclass Son implements FatherBclass Father implements SonCclass Father extends SonDclass Son extends Father 35、重载指的是方法具有相同的名字,但这些方法的参数必须不同。下列哪种说法不属于方法参数的不同 。A形式参数的个数不同。B形式参数的类型不同。C形式参数的名字不同。D形式参数类型的排列顺序不同。36、关于接口的定义和实现,以下描述正确的是 。A接口定义的方法只有定义没有实现B接口定义中的变量都必须写明final和staticC如果一个接口由多个类来实现,则这些类在实现该

36、接口中的方法时采用统一的代码D如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public三、阅读程序题1、写出运行结果: 。public class ComputerString mainbord,cpu;public Computer(String s1,String s2)mainbord=s1;cpu=s2;public static void main(Stringargs)Computer c=new Computer("华硕","Intel");System.out.println("mainbord:"

37、;+c.mainbord+",cpu:"+c.cpu);2、写出运行结果: 。public class ExamA private static int arr = new int5; public static void main(String args) for(int i=arr.length-1;i>=0;i-) arri = 2*i+1; String output = "0" int sum = 0; for(int i=0;i<arr.length;i+) sum += arri; output += " + &quo

38、t; + arri; output += " = "+sum; System.out.println(output); System.exit(0); 3、写出运行结果: 。public class PersonString name;int age;public Person(String name,int age)=name;this.age=age;public static void main(Stringargs)Person c=new Person("Peter",17);System.out.println(

39、+" is "+c.age+" years old!");4、写出运行结果: 。public   class   abcpublic   static   void    main(String   args ) SubSubClass   x = new   SubSubClass(10 , 20 , 30);x.show();class   SuperClass&

40、#160;   int   a,b;SuperClass(int aa , int   bb)   a=aa;   b=bb;   void   show( )   System.out.println("a="+a+" b="+b);   class    SubClass    extends    SuperClass   int c;SubClass(int   aa,int   bb,in

温馨提示

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

评论

0/150

提交评论