javaOO上册——考试题

JavaOO阶段性考核测试试题

注:本测试试题共计50道单项选择题,每题2分,共计100分,答题时间120分钟

              A:90~100分  B+:80~90分 B:70~80分 B-:60-70分 C:50-60分 D:50分以下

  1. 下列不属于Java运行环境要执行的工作是(   )

A. 从Java源文件编译成字节码文件

B. 字节码校验

C.解释执行

D. 类加载

  1. 在JDK1.8中,switch(expr1)中,expr1不可以是如下哪个类型(  )
    1. byte       B.  short     C.  char    D.  long    E.  int    F. String
  1. 下面哪一个是合法的自定义Java标识符(  )
    1. –hello      B. _String$123      C. return       D. 38Test

4、以下不属于Java基本数据类型的有(  )

    A. long    B. float     C. String    D. char   E. double

5、有一个Hello.java的文件,内容如下( )

class Test{

    public static void main(String[] args){

        System.out.println("abc");

    }

}

正确编译并执行的命令是()

  1. javac  Hello.java  

java   Hello

  1. javac  Hello.java  

java   Hello.class

  1. javac  Hello.java  

java   Test.class

D.  javac  Hello.java  

java   Test

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

A.  long x = 90;

     float f = x;                          

B.  int  x = 9/7;

C.  byte  b1 = 7,b2 = 8;  

 b1 = b1+b2;

D.  double  y = 4*2.3;

7. 以下代码执行结果为( )

public class A{

    public static char c = 'A';

    public static void main(String[] args){

        for(int j = 0; j<2 && test(c);){

            j++;

        }

    }

    public static boolean test(char  c){

        c += 1;

        System.out.print(c+"   ");

        return true;

    }

}

 

A.  B  C      D                           B.  B   B   B

C.  B   C                                        D.  B   B

8、以下代码执行结果是( )

public static void main(String[]  args){

    int a = 8;

    switch(a/4){

        case 1:

             System.out.print("1  ");

        case 2:

            System.out.print("2  ");

        case 3:

            System.out.print("3  ");

        default:

            System.out.print("default  ");

    }

}

A.  1   2  3  default              B.  2

C.  2   3  default                 D.  2   3

9、表达式5<6?4:3执行的结果是(    )。

A. 4       B. 3        C. true          D. false

10、以下循环,哪个是死循环(  )

       A.  boolean x = false;

while(x = true){

    System.out.println(x);

}

    B.  int x = 0;

do{

    System.out.println(x);

    x++;

}while(x>10);

C.  int  x = 8;

   while(x > 10){

              System.out.println(x);

   }

D.  for(int i=0;;i++){

              System.out.println(i);

              if(i > 5) break;

}

  

11、以下代码执行结果为(  )

int a=1,b=10;

do{

    b-=a;

    a++;

 }while (b--<0);

System.out.println(b);

  1. 0           B.  8           C.  9           D.  10

12、至少执行一次的循环是(  )

       A.  while      B.  for     C.  do……while   D.  continue

13、在java中,真和假以什么方式表示(     )。

A. true为真,false为假

B. 真只能用1表示,假用0表示;   

C. 所有的非0都表示真,假用0表示;

D. 以上都不对

14、以下代码输出结果是:(    )

public class A{

    public static void main(String[] args){

        int i = 6;

        System.out.print(test(i));

    }

   

    public static void test(int i){

        System.out.print(i++);

    }

}

A.  编译错误          B.  运行错误

C.  打印6   7        D.  打印6    6

15、下面不属于数组特点的是(  )

A. 数组是一段连续的空间

B. 数组元素通过下标进行访问。

C. 数组创建后,长度可以变化。

D. 数组元素在创建后会完成初始化。

16、以下代码输出结果是()

public class  A{

    public static void main(String[] args){

        int i = 6;

        int[] array = {1,2,3};

        test(i,array);

        System.out.print(i+"   "+array[0]);

    }

   

    public static void test(int i,int[] array){

        i += 3;

        array[0] += 3;

    }

}

A.  9   4             B.  6    4

C.  6   1             D.  9    1

17、生成doc帮助文档,需要使用什么命令(  )。

       A.  java        B.  javac          C.  jar          D.  javadoc

18、以下代码执行结果是(  ):

public class A{

    public static void main(String[] args){

        int  x = 10;

        if(> 3){

            System.out.print("***");

        }

        else if(x > 5){

            System.out.print("&&&");

        }

    }

}

  1.  *** &&&          B.  ***          C.  &&&          D.  没有输出

19、下面程序的运行结果是(  )

int[] my_Array; 

my_Array = new int[5];

for(int count = 0; count <= 5; count++) {

    System.out.println(my_Array[count]);

}

 

A. 将1,2,3,4,5输出到屏幕     

B. 将0,1,2,3,4输出到屏幕   

C. 将0,1,2,3,4,5输出到屏幕     

D. 运行错误

 

 

20.  假如方法的定义形式为:

   public static void fun(int a,char b){……}

   那么下面哪种调用是正确的(     )

A. fun(5, “A”);                                 B. fun(5,  '65');

C. fun('A',  65);                                D. fun(5.2,  65);

21、不属于面向对象特点的是(   )

A. 垃圾回收     B. 多态     C. 继承       D. 封装

22、

下面关于对象说法不正确的是(   )

A.

万物皆对象

B.

对象一定是看得见,摸得着的

C.

对象因关注产生

D.

对象包含属性和行为。

23、当编译和运行下面程序时会发生什么事情(  )。

public class Program {

    public static void main(String args[]) {

        int i;

        System.out.println(i);

    }

}

A.   通过编译并输出0          B.         产生编译错误

C.      通过编译并输出null        D.  通过编译但出现运行异常

24、 下列说法正确的是(  )

A. class中的构造方法不可省略

B. 构造方法必须与class同名,但普通方法不能与class同名

C. 构造方法在一个对象被new时执行

D. 一个class只能定义一个构造方法

25、 关于抽象类描述不正确的是(  )

A. 有abstract关键字修饰,允许包含未实现方法的类被称为抽象类

B. 在抽象类中可以不包含抽象方法

C. 抽象类可以实例化

D. 抽象类可以被继承

26、有以下代码

package pack1;

class A{

    void method1(){}

    static void method2(){}

    private void method3(){}

    protected void method4(){}

}

 

package pack2;

class B extends A{

  public B(){

    //here

  }

}

其中哪个方法可以放在here处?

A.  this.method1();                   B.  this.method2();

C.  this.method3();                   D.  this.method4();

27、给定Java代码如下,关于super的用法以下描述正确的是(  )。

      

class C extends B {

    public C() {

        super();

    }

}

       A、 用来调用类B中定义的super()方法

       B、 用来调用类C中定义的super()方法

       C、 用来调用类B中的无参数的构造方法

       D、 用来调用类B中第一个出现的构造方法

28、

给定JAVA代码,如下,编译运行后,结果是( ).

public class Test{

   static String s;

   public static void main(String args[]){

        String x = "";

        System.out.print(s.equals(x));

   }

}

A.

编译错误                    B.   运行错误

C.

正常运行,输出true          D.   正常运行,输出false

29. 以下代码执行结果是()

      

public  class MyClass {

    public void MyClass(){

        System.out.print("MyClass");

}

    public void method() {

        System.out.print("method");

    }

    public  static void main(String[] args){

        MyClass m = new MyClass();

        m.method();

    }

}

A.  编译错误                    B.  MyClass   method

C.  MyClass                    D.  method

30、以下代码,执行结果是(  )

public class Father{

    public Father(int x){

        System.out.println("XXX");

    }

}

 

class Child extends Father{

    public Child(){

        System.out.println("yyy");

    }

   public static void main(String[] args){

        new Child();

   }

}

  1.  编译错误        B.  运行错误      C.  输出XXXyyy      D.  输出yyyXXX

31、给定Java代码如下,编译运行结果是(   )。

public class Test{

    public int count(){

        return 1%9;

    }

   

    public static void main(String[] args){

        System.out.println(count());

    }

}

  1.  编译错误   B.  运行异常   C.  正常运行,输出1   D.  正常运行,输出0

32、在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用(  )关键字来声明父类的这些方法。

       A.    final             B.  static             C.  abstract             D.  void

33、  以下代码执行结果是()

public class Student {

    public int code;

}

 

public class Test {

    public static void main(String[] args) {

        int x = 4;

        Student s1 = new Student();

        s1.code = 8;

        test(s1,x);

        System.out.println(s1.code+"   "+x);

    }

    public static void test(Student s1,int x){

        s1.code = 2;

        s1 = new Student();

        s1.code = 10;

        x = 1;

    }

}

       A.    10    1                 B.        8     4  

C.  2     4                 D.  10    4

 

34、以下关于final关键字说法错误的是()

A.  final不能修饰抽象类

B.  final修饰的类不能被继承

C.  final修饰的方法不能被重载

D.  final修饰的变量不允许被再次赋值

 

35、有这样的定义 ( )

class  A{}

class  B  extends A{}

class  C  extends B{}

interface IFly{}

class D implements IFly{}

class Imp{

    public void foo(B b,IFly fly){}

    public static void main(String[] args){

        Imp  mp = new Imp();

        //here

    }

}

 

下面哪个代码能插在here处()

       A.    mp.foo(new B(), new IFly());

       B.    mp.foo(new A(), new D());

       C.    mp.foo(new C(), new IFly());

       D.   mp.foo(new C(), new D());

 

36、当试图编译并运行下面程序时会出现什么结果()。

class A {

    public int getNumber(int a) {

        return a + 1;

    }

}

 

class B extends A {

    public int getNumber(int a, int c) {

        return a + 2;

    }

    public static void main(String[] args) {

        B b = new B();

        System.out.println(b.getNumber(0));

    }

}

A.    编译错误         B.  运行异常         C.  1         D.   2

37、      当编译并运行下面程序时会出现什么结果()。

class Man{

    public int age;

}

 

public class Program {

    public static void main(String args[]){

        Man[] x = new Man[5];

        x[0].age = 2;

        System.out.println(x[0].age);

    }

}

 

  1.  编译错误         B.  运行异常        C.  输出0         D.  输出2

38、      下面关于抽象类和接口的说法哪个是正确的()。

       A.    抽象类中只能包括抽象方法,必须写abstract关键字

       B.    接口中的方法只能是抽象的,但不能写abstract关键字

       C.    接口中的方法只能是public的

       D.    抽象类不能被抽象类继承

39 、    下面关于静态初始化块和实例初始化块说法正确的是(   )。

       A、 静态初始化块只能被调用一次,是在第一次产生对象的时候

       B、 每次产生对象的时候都会执行一次实例初始化块

       C、 每次产生对象的时候都会执行一次静态初始化块

       D、 实例初始化块是在执行构造方法之后马上被执行的。

40、给定java代码,如下:

 

abstract class Shape{

    abstract public void draw( );

}

 

      要创建Shape类的子类Circle,以下代码正确的是()。

      A.  class Circle extends Shape{

                 public int draw( ){}

          }

B.  abstract class Circle extends Shape{}

C.  class Circle extends Shape{

           public void draw( );

         }

  1.  class Circle extends Shape{

           protected void draw( ){}

}

41、下面关于构造方法的说法错误的是()

A . 构造方法不能被继承

B.  构造方法不能被重写

C.  构造方法不能被重载

D.  构造方法可以被重载

42、在Java接口中,下列选项里有效的定义是(  )
    A.  public void method(){}
    B.  void method();
    C.  static void method();
    D.  protected void method();

43、使用( )修饰符时,一个类能被同一包或不同包中的其他类访问。

        A.  private     B.  pretected       C.  public      D.  friendly

44、有以下定义:

class  MyClass{

    public  int  x;

    public  static  void test(){}

    public  static  void  main(String[] args){

        MyClass  a = new  MyClass();

        //here

    }

}

下面哪个代码不能插在here处?(    )

A.  MyClass.test();           B.  MyClass.x = 2;   

C.  a.x = 2;                  D.  a.test();

45、在Java语言中,下面关于构造器的描述正确的是()。

       A.    类必须有显式构造器

       B.    它的返回类型是void

       C.    它和类有相同的名称,但它不能带任何参数

       D.    以上皆非

46、下面哪行代码进行了垃圾回收()

class  MyObj{

    public String name;

    public static  MyObj m;

    public static void main(String[]  args){

        MyObj  x = new MyObj();   //1

        MyObj  a = x;               //2

        x = m;                       //3

        a = new MyObj();           //4

        a.name = "mike";             //5

    }

}

  1.  1         B.  2           C.  3         D.   4        E.   5

47、下面的Java代码编译后生成的类文件的文件名不包括( )。

public class One {

   public class Three {}

}

 

class Two {

}

       A.    One.class                 B.      Two.class

       C.  One$Three.class           D.   One$Two.class

 48、  以下代码执行结果是()

     

class Man{

    private int age;

    public Man(int age){

        this.age = age;

    }

}

public class Test{

    public static void main(String[] args){

        Man m1 = new Man(5);

        Man m2 = new Man(5);

 

        System.out.print(m1 == m2);

        System.out.print(m1.equals(m2));

    }

}

       A.    true    true             B.   false   false

       C.    true    false            D.   false   true

49、在Java语言中,下面关于类的描述正确的是()。

       A.    一个子类可以有多个父类

       B.    一个超类可以有多个子类

       C.    子类可以使用超类的所有方法

       D.    子类一定比超类有更多的成员方法

50、执行以下代码结果是()

public class Father{

    public int age;

    public void test(){

        System.out.println(this.age);

    }

}

 

class Child extends Father{

    public String s;

    public void speak(){

        System.out.println(s);

    }

}

 

class Test{

   public static void main(String[] args){

    Father f = new Child();

    f.speak();

   }

}

       A.       0                     B.    null

       C.    编译错误               D.          运行错误

猜你喜欢

转载自www.cnblogs.com/libobo22/p/11656095.html