1、java面向对象试题OOP考试题 考试时间:120分钟 考试总分:100分一、 选择题(不定项选择)(2分/题*37 = 74分)1. 类A,B的定义如下:class A private int a = 100; A() System.out.print(A(); System.out.println(a); class B extends A private int a = 200; B() System.out.print(B(); System.out.println(a); 运行下面的代码:new B();输出的结果是:( )。A. A() 100 B() 200B. A() 200
2、B() 200C. B() 200 A() 100D. B() 200 A() 2002.程序执行的结果是:()。public class Point int y = 7; public void step(int y) y += y; System.out.println(y); public static void main(String args) Point p = new Point(); p.step(10); A.14 B.20 C.10 D.173.下面代码运行的结果是( )class F String name = “name_F”; private int age; pub
3、lic F()class C extends F String name = “name_C”; public C() public static void main(String args) F f = new C(); C c = new C(); System.out.println(f.name +” “+c.name); A.name_C name_CB.name_C name_FC.name_F name_CD.name_F name_F4.(单选题)程序的执行结果是:()。public class Question private int num; public static v
4、oid main(String args) Question q = new Question(); q.num=13; update(q); System.out.println(q.num); public static void update(Question q) q.num=9; A.13 B.9 C.0D.4 5.class Base static void test() System.out.println(“Base.test()”); public class Child extends Base static void test() System.out.println(“
5、Child.test()”); public static void main(String args) Base base = new Child(); Child child = new Child(); base.test(); child.test(); 程序运行的结果是( )A. Child.test() Child.test() B. Child.test() Base.test()C. Base.test() Child.test() D. Base.test() Base.test()6、(单选题)程序执行的结果是:()。public class Answer public s
6、tatic void main(String args) int score = 20; Answer ans= new Answer(); ans.add(score); System.out.println( main: score = + score); void add(int score) System.out.println( add: score= + score+); A.add: score=21 main: score = 21B.add: score=20 main: score = 21C.add: score=21 main: score = 20D.add: sco
7、re=20 main: score = 207. public class Foo public static void main(Stringargs) Foo1 foo1=new Foo1(); System.out.println(foo1.a); int a=10; public Foo() add(); public void add() a+; System.out.println(a); class Foo1 extends Foo int a=11; public Foo1() public void add() System.out.println(a); a+; Syste
8、m.out.println(a); 程序运行结果( )A.0 1 10B.0 1 11C.1 1 11D.1 1 108.(单选题)下列代码编译或运行的结果是:()。public class Snow public String jump(int x, int y) return jump one; public String jump(int vals) return jump two; public static void main(String args) Snow s=new Snow(); System.out.println(s.jump(4, 5); A.public Strin
9、g jump(int vals) 行,编译出错 B.System.out.println(s.jump(4, 5);行,抛出运行时异常 C.输出:jump one D.输出:jump two9.(单选题)关于下列代码说法正确的是:()。public class Storm public void find() public String find() return find; public double find(int x) return 2.0; A.无编译错误 B.代码 public String find() 行,出现编译错误 C.代码 public double find(int x
10、) 行,出现编译错误 D.代码 return find;行处出现编译错误10.下列哪些叙述是正确的( )A 在一个类中,方法不能与类名相同B abstract 可以修饰属性、方法和类C 实例方法可直接调用本类的static方法和非static方法D static方法不能调用非static方法11. (单选题)请看下列代码:class ClassA class ClassB extends ClassA class ClassC extends ClassA public class Test public static void main(String args) ClassA p0 = ne
11、w ClassA(); ClassB p1 = new ClassB(); ClassC p2 = new ClassC(); ClassA p3 = new ClassB(); ClassA p4 = new ClassC(); 下列选项中放置在处,使程序编译正确的是:()。 A.p0 = p1; B.p1 =p2; C.p2 = p4; D.p2 = (ClassC)p1;12.以下说法正确的是()A 子类不能继承父类的构造方法B 子类的构造方法可以访问父类的构造方法C 子类不可直接访问父类的私有属性 D 子类可以重写父类的所有方法13.关于接口,以下说法错误的是()A 接口中可以定义非抽
12、象方法B 接口可以继承多个接口C 接口中可以定义没有初始化的变量D 接口可以实现接口14(单选题)请看下列代码编译和运行的结果是:()。public class Teacher private String name=sun; public static void main(String args) Teacher teachers=new Teacher2; System.out.println(teachers0.name); System.out.println(teachers.length); A.sun 2 B.null 2 C.null 1 D.运行时抛出NullPointerE
13、xception异常15.class Base private int base = 10; public Base() test(base); System.out.println(base); void test(int base) + this.base; public class Child private int child = 20; public Child() test(child); System.out.println(child); void test(int child) - this.child; public static void main(String args
14、) new Child(); 程序运行的结果是()A. 19B. 11 19C. 11 20D. 10 1916、(单选题)下列代码编译和运行的结果是:()。class Person String name = ; public Person(String name) this.name = name; class Employee extends Person String empNO = 0000; public Employee(String empNO) this.empNO = empNO; public class EmployeeTest public static void m
15、ain(String args) Employee e = new Employee(1109); System.out.println(e.empNO); A.输出:0000 B.输出:1109 C.代码public Employee(String empNO) 行,出现编译错误 D.抛出运行时异常 17.在Java中,关于final关键字的说法正确的是()A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承18. (单选题)下列代码编译和运行的结果是:()。class A
16、public void start() System.out.println(A Start); public class B extends A public void start() System.out.println(B Start); public static void main(String args) (A) new B().start(); A.输出:A Start B.输出:B Start C.输出:A Start B Start D.编译错误19.1) public interface Test2) static public final int num = 10;3)
17、public static void add();4) public String test();5) public long delete();6)关于上面的代码,以下说法错误的是()A 第 2)行代码有编译错误 B 第 3)行代码没有编译错误 C 第 4)行代码有编译错误 D 第 5)行代码有编译错误 20. (单选题)关于下列代码说法正确的是:()。public interface A public void doSomething(String thing);interface B interface C extends A, B interface D public void doI
18、t(String thing);class AImpl implements C ,D public void doSomething(String msg) public void doIt(String thing) A.所有类和接口都编译成功 B.接口A编译失败 C.类AImpl编译失败 D.接口C编译失败21.关于类、抽象类和接口,以下说法正确的是( )A 接口可以继承多个接口B 抽象类不能实现接口C 一个类只能继承一个类,但可以实现多个接口D 抽象类实现接口,可以不实现接口的方法22. (单选题)关于下列代码说法正确的是:()。public class Cell private fi
19、nal int id; public Cell(int id) this.id = id; public void updateId(int id) this.id = id; public static void main(String args) Cell cell = new Cell(1001); cell.updateId(1002); System.out.println(cell.id); A.编译错误 B.运行时异常抛出 C.运行后,cell对象属性id的值没有改变,仍然是1001 D.运行后,cell对象属性id的值改变成新的值100223、(单选题)下列选项中,不属于Jav
20、a 的访问控制修饰符的是:()。 A.private B.protected C.friendly D.public24.下面关于变量的说法正确的是( )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C.Java中的参数传递都是值传递D.在不同的作用域不能定义相同的变量25. (单选题)下面关于import, class和package的声明顺序正确的是:()。 A.package, import, class B.class, import, package C.import, package, class D.package, class, import26.下列代码有编译
21、错误的是第( )行1) public class Test2) public static void main(String args)3) int arr1 = new int12;4) char arr2 = new char;5) int arr3 = ;6) Object obj = new Object4; 7) Object obj1 = new object9;8) 9) A. 5)B. 5) 7)C. 4) 7)D. 4)27. (多选题)有一个名为Product的类,下列方法中属于该类的构造方法的是:()。 A.public Product() B.public Produc
22、t(String name) C.public void Product() D.public void Product(String name)28.下列代码的运行结果是( )public class Test private int num; private static Test test; public Test(int num) this.num = + num; static int num = 16; test = new Test(num); + test.num; public static void main(String args) test = new Test(13)
23、; System.out.println(test.num); A. 14B. 15C. 16D. 1729. (多选题)请看下列代码:public class Tetromino protected int move(int x) return 0; class T extends Tetromino 在处填入选项中的代码,使T类没有编译错误的是:()。 A.public int move(int x) return 0; B.private int move(int x) return 0; C.private int move(long x) return 0; D.protected
24、long move(int x) return 0; 30.仔细分析下列代码,请指出错误的行( )。public class SomeThing private String str; public int addOne(final int x) return +x; A.public class SomeThing B. private String str; C. public int addOne(final int x) D. return +x;31(多选题)下列关于JVM的内存结构描述正确的是:()。 A.类的各种信息在堆中保存 B.栈用于存放程序运行过程当中所有的局部变量 C.堆
25、一般用于存储使用new关键字创建的对象 D.类是JVM的内存结构32.下列代码的运行结果是( ) public static void main(String args) String str = 420; str += 42; System.out.print(str); A. 42 B. 420 C. 462 D. 4204233. (多选题)请看下列代码:public class Foo static void alpha() /* more code here */ void beta() /* more code here */下列说法正确的是:()。 A.Foo.beta()是调用
26、beta方法的正确方式 B.Foo.alpha()是调用alpha方法的正确方式 C.beta方法可以直接调用alpha方法 D.alpha方法可以直接调用beta方法34.查看如下代码:public class Foo public void method(String str,int age)下列选项中,和 Foo 类中 method 方法重载的方法是()。 A. public int method(String str,int age) B. public void method(int year,String s) C. public int method(int year,Strin
27、g s) D. public int method(String str)35.下列代码的输出结果是:()。public class StaticFoo int num; static int x; public static void main(String args) StaticFoo foo1 = new StaticFoo (); foo1.num+; foo1.x+; StaticFoo foo2 = new StaticFoo (); foo2.num+; foo2.x+; StaticFoo foo3 = new StaticFoo (); foo3.num+; foo3.x+; StaticFoo.x+; System.out.print(foo3.num+,); System.out.println(foo3.x); A.3,3B.1,3C.3,4D.1,436. 下面关于interface,叙述错误的是:( )A.一个interface可以继承多个interfaceB.接口中的方法可以由private修饰C.interface中可以定义static final 常量D.interface中可以
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1