视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Java面向对象测试
2025-09-28 00:17:10 责编:小OO
文档
Java基础知识单元测试

一、选择题(30分)

1.下列程序段执行后的输出结果为( )  

          int x=3; int y=10;

          System.out.println(y%x);

          A.0

          B.1

          C.2

          D.3

2.下列程序的输出结果是 ( )  

public class Test

{       

void printValue(int m)

{           

do { 

System.out.println("The value is"+m);

}while( --m > 10 );      

}       

public static void main(String arg[])

{       

int i=10;       

Test t= new Test();       

t.printValue(i);       

  A.8

  B.9

  C.10

  D.113

3.执行完语句int [ ]x = new int[25];后,则下列哪项说法是正确的( )  

A.x[24]值为0

      B.x[24]值未定义  

C.x[25]值为0

      D.x[0]值为空

4.下列哪个选项是合法的标识符 ( )

      A)123

      B)_name

      C)class

      D)1first

5.下列的哪个赋值语句是不正确的 ( )      

  A)float f = 11.1;

      B)double d = 5.312;

      C)float  d = 3.14f ;

      D)double  f=11.110f;

6.下列关于继承的哪项叙述是正确的?( )      

      A)在java中允许多重继承

      B)在java中一个类只能实现一个接口

      C)在java中一个类不能同时继承一个类和实现一个接口

      D)java的单一继承使代码更可靠

7.有一个类A,对于其构造函数的声明正确的是(     )。

A)void A(int x){...}        B)A(int x){...}

C)A  A(int x){...}         D)int A(int x){...}

8.一个可以运行的Java应用程序(     )  

A、可以有一个或多个main方法    

B、最多只能有两个main方法   

C、可以有一个或零个main方法    

D、只能有一个main方法

9.以下对Java中对数组的声明正确的是()

A int [] sample;

B int sample[];

C int () sample;

D int sample();

10.设int  x = 3 , y = 2 , z = 5;

则表达式  y+=z--/++x  的值是(     )。

A. 3        

B. 4. 5 

C. 3.5                        

D. 4

11.类Test1定义如下:  

(1) public class Test1{  

(2) public void aMethod(float a,float b){ };  

(3)  

(4) }  

将以下哪种方法插入第3行是不合理的? (    )

    

A. public void aMethod(int a,int b){ };

    

B. public void aMethod(float a,float b,float c){ };

C. public void aMethod(float c,float d){ }; 

D. private void aMethod(int a,int b,int c){ }; 

12. JDK中运行Java小程序的命令是(      )。

A. javadoc         B. appletviewer

C. javac            D. Java

13.下列叙述中,正确的是:( )

A声明变量时必须指定一个类型  B、Java认为变量number和Number相同

C、Java中唯一的注释方式是“//”D、源文件中public类可以有0或多个

14.在switch(expression)语句中,expression的数据类型不能是:

A、double    B、char        C、byte        D、short

15.已知int[] a =new int[100];,在下列给出的数组元素中,非法的是:

A、a[0]        B、a[1]        C、a[99]        D、a[100]

16.设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是(  )。

A、 public x x1= new y( );               B、 x x1=x( ); 

C、 x x1=new x( );                     D、 int x x1;

17.Java语言的类间的继承关系是(   )。

A、 多重的     B、 单继承        C、 线程的           D、不能继承

18.下面关于java中类的说法哪个是不正确的(  )

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造函数是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义(但只能有一个Public修饰的类)。

19.给出一段程序,选择运行结果(        )

public class sss {

public static void main(String args[])

{

            String s1=args[1];    String s2=args[2];

          String s3=args[3];    String s4=args[4];

          System.out.println(“args[2]=”+s2);

}

}

命令行执行:  java sss 1 2 3 4   结果是下面哪一个?

A、args[2]=2            B、args[2]=null        C、args[2]=3        D、运行出现异常

20.public class T1 { 

public static void main (String[] args){

T1 a=new T1();

a.method(8);

a.method(1.2f);

}

void method(float i) {

System.out.println("float: "+i);

}

void method(long i) {

System.out.println("long: "+i);

}

}

A、程序有编译错误,因为两个method()方法必须定义为静态(static)的。

B、程序可以编译运行,输出结果为:

long: 8

float: 1.2

C、程序可以编译运行,输出结果为:

float: 1.2

long: 8

D、 程序中定义的两个参数不同的method方法称为方法重载。

21.编译并运行下面的程序,运行结果为(     ).

public class A { 

public static void main (String[] args) { 

A a=new B( ); 

a.test(); 

}

void test()  {

System.out.print ("A"); 

}

}

class B extends A {

void test() {

super.test(); 

System.out.println("B"); 

}

}

A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。

B、代码可以编译运行,并输出结果:AB

C、代码可以编译运行,并输出结果:A。

D、子类B定义了与父类A中同名的方法test,java中称为方法的重载

22.面向对象的特征有哪些(     ) 

A、封装。

B、抽象。

C、继承。

D、多态

E、跨平台

23.类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制?

 A、 public

 B、no modifier

 C、 protected(权限仅次于public)

 D、 private

24.类Teacher和Student都是类Person的子类

      Person p;

      Teacher t;

      Student s;

      p, t and s are all non-null.

      if(t instanceof Person) { s = (Student)t; }

      这个语句导致的结果是什么?

      A、将构造一个Student对象。

      B、表达式合法。

      C、编译时非法。

       D、编译时合法而在运行时可能非法。

25.给出下面的代码: 

      class Person {

          String name,department;

          public void printValue(){

              System.out.println("name is "+name);

              System.out.println("department is "+department);

          }

      }

      public class Teacher extends Person {

          int salary;

          public void printValue(){

              // doing the same as in the parent method printValue()

              // including print the value of name and department.

              System.out.println("salary is "+salary);

          }

      }

         下面的哪些表达式可以加入printValue()方法的"doing the same as..."部分?

      A、 printValue();

      B、this.printValue();

      C、 person.printValue();

      D、super.printValue().

26.以下是接口的定义的是:

    A, 接口中定义的变量都是公共的静态变量

    B,  没有构造函数,而且定义的方法都是公共的抽象方法

    C,  接口间采用单继承机制

    D,  接口可以实例变量和常量,实例常量语法是;public static 标示符名称

27.包含抽象方法的类:

A, 一定是抽象类

B,可以是抽象类也可以不是抽象类

C,肯定不是抽象类

28.那些父类成员不能被继承:

    A,private成员

    B,构造方法

    C,public成员

    D,getter和setter成员

29.方法重写规则:

    A,在继承关系的子类中

    B,重写的方法名,返回值类型,参数与父类不相同

    C,私有属性,成员可以被重写

30.关于构造方法,下列说法错误的是()

A,构造方法可以进行方法重写

B,构造方法用来初始化该类的一个新对象

C,构造方法具有和类名相同的名称

D,构造方法不返回任何数据类型

2、程序分析题(16分)

1.设有数组定义:

    int   a[ ] = { 11 , 22 , 33 , 44 , 55 , 66 , 77 , 88 , 99 };   

则执行下列几个语句后的输出结果是 

for ( int i = 0 ; i < a.length ; i ++ )      

if( a[i]%3==0 )

System.out.println(a[i]+" ");

2.  执行下列几个语句后的输出结果是

class  FatherClass{    

public FatherClass(){  

System.out.println("FatherClass Create"); 

}

}    

public class  ChildClass extends FatherClass {  

public ChildClass()  {   

System.out.println("ChildClass Create");  

}  

public static void main(String[] args)   {   

FatherClass fc = new FatherClass();   

ChildClass cc = new ChildClass();  

}

3.应用程序由以下语句组成,写出执行该程序后输出的结果 

public   class  x{

 public static void main(String  args[ ]){    

int   i , sum = 0 ;         

int  a[ ] = { 1 , 2 , 3 , 4 , 5 , 6 };               

for ( i = 0 ; i < a.length ; i ++ )

if ( a[i]%2 = = 0 )  

sum += a[i] ;                

System.out.println("sum="+sum);           

}  

}

4. 应用程序由以下语句组成,写出执行该程序后输出的结果

import  java.io.* ;

public  class  A

    public  static  void   main(String  args[ ])

    {  int i ;

       int a [ ] = { 10,20,30,40,50,60,70,80,90 };

       for ( i = 0 ; i <= a.length / 2 ; i ++ )

       System.out.print( a[i]+a[a.length-i-1] +"  " );

    }

}

5.应用程序由以下语句组成,写出执行该程序后输出的结果

public  class  x

{

   public static void main(String args[])

   {

          int num=0;

       for(int i=10;i<=50;i++)

        if(i%10==5 && i%3 ==0)

             num++;

        System.out.println("共有"+num+"个");

}

}

6.应用程序由以下语句组成,写出执行该程序后输出的结果

public class Jtest

{

int m=1;

int i=3;

void Jtest()

{

m=2;

i=4;

}

public static void main(String[] args)

{

Jtest app=new Jtest();

System.out.println(app.m+

}

}

7.应用程序由以下语句组成,写出执行该程序后输出的结果

public class Jtest

{

int m=1;

int i=3;

Jtest()

{

m=2;

i=4;

}

public static void main(String[] args)

{

Jtest app=new Jtest();

System.out.println(app.m+

}

}

8.请写出程序的运行结果

class Tester { 

    int var; 

    Tester(double var) { 

        this.var = (int)var; 

    } 

    Tester(int var) { 

        this("hello"); 

    } 

    Tester(String s) { 

        this(); 

        System.out.print (s); 

    } 

    Tester() { 

        System.out.print("goodbye"); 

    } 

    public static void main(String[] args) { 

        Tester t = new Tester(5); 

    } 

}

3、填空题(4分)

1.在Java程序中,通过类的定义只能实现单继承,但通过     的定义可以实现多继承关系。

2.数组x定义如下  int x[ ][ ]=new int[3][2]  

则 x.length 的值为____________,  x[0].length 的值为____________。

4、改错题(8分)

1.abstract class Name {    

private String name;    

public abstract boolean isStupidName(String name) {} 

}

2.public class Something {    

void do () {        

private String s = "";        

int i = s.length();    

}

3.public class  x{

   public int add (final int i) {

       return ++i;

   }

4.此处,Something类的文件名叫Other.java

public class Something {

    private static void main(String[] something_to_do) {        

        System.out.println("Do something ...");

    }

5、简答题(12分)

1.简答方法的OverLoad和Override区别。

2.简答Java实现多态的手段。

3.简答this和super的用法。

4.简答类成员和实例成员的区别

5.一个".java"源文件中是否可以包括多个类?有什么?

6、局部变量和成员变量的区别

6、判断题(10分)

1.Java程序里,创建新的类对象用关键字new。  

2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。 

3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。  

4.类及其属性、方法可以同时有一个以上的修饰符来修饰。  

5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。 

6.Final类中的属性和方法都必须被final修饰符修。 

7.最终类不能派生子类,最终方法不能被覆盖。 

8.子类要调用父类的方法,必须使用super关键字。

9.一个Java类可以有多个父类。  

10.方法覆盖必须要方法原型相同,可以不需要继承 

七、编程题(4+5+6+5=20分)

1.求1!+2!+3!+…+10!

2.数组题:键盘随机输入十个数,以降序形式排列,打印排列后的数字。

3.编写一个java程序,设计一个汽车类Vechile,包含的属性有车轮数和车重,小汽车Car是它的子类,其中的属性包含载人数,卡车Truck是Car的子类,其属性包含载重量payload。每个类都有构造方法和输出相关信息的方法。

4.编写简易的计算器,实现加减乘除,要求声明Operation类(或接口) ,AddOperation加法类    SubOperation减法类 MulOperation乘法类 DivOperation除法类,编写测试类Test实现加减乘除运算。下载本文

显示全文
专题