IBM Java笔试题

学人智库 时间:2018-02-10 我要投稿
【meiwen.anslib.com - 学人智库】
  如下是IBM校园招聘最常考的笔试题,下面分享给大家练习。

  1. 如下代码     class A {     A() { }     }     class B extends A {     }     哪两个说明是正确的?     A. B类的构造器应该是 public.     B. B类的构造器应该是没有参数     C. B类的构造器应该调用this().     D. B类的构造器应该调用super().     答案:BD     解析:默认构造器的修饰符只跟当前类的修饰符有关。 比如B如果是public的,则默认构造方法是public的。 如果B是默认的访问权限,则构造方法相同。 当B是内部类是,前面也可以有protected,private等,默认添加的构造方法仍然和类的修饰符一致。     2. 如下代码     public class Test {     public int aMethod() {     static int i = 0;     i ;     return i;     }     public static void main (String args[]) {     Test test = new Test();     test.aMethod();     int j = test.aMethod();     System.out.println(j);     }     }     输出结果是什么?     A. 0     B. 1     C. 2     D. 编译失败     答案:D     解析:static在Java语言中的使用有四种:(成员变量、成员方法、代码块、内部类)     3. 如下代码     int i =1,j =10;     do {     if(i > --j) {     continue;     }     } while (i <5);     System.out.println("i = " i "and j = " j);     输出结果是什么?     A. i = 6 and j = 5     B. i = 5 and j = 5     C. i = 6 and j = 5     D. i = 5 and j = 6     E. i = 6 and j = 6     答案:D     4. 如下代码:     boolean bool = true;     if(bool = false) {     System.out.println("a");     } else if (bool) {     System.out.println("c");     } else if (!bool) {     System.out.println("c");     } else {     System.out.println("d");     }     输出结果是什么?     A. a     B. b     C. c     D. d     E. 编译失败     答案:C     5. 如下代码:     public class SwitchTest {     public static void main(String[] args) {     System.out.println("value = " switchIt(4));     }     public static int switchIt(int x) {     int j = 1;     switch (x) {     case 1: j ;     case 2: j ;     case 3: j ;     case 4: j ;     case 5: j ;     default: j ;     }     return j x;     }     }     输出结果是什么?     A. value = 3     B. value = 4     C. value = 5     D. value = 6     E. value = 7     F. value = 8     答案:F     6. 以下数组的定义,哪三条是正确的?     A. public int a []     B. static int [] a     C. public [] int a     D. private int a [3]     E. private int [3] a []     F. public final int [] a     答案:A,B,F     7. 如下代码:     class Super {     public Integer getLenght() { return new Integer(4); }     }     public class Sub extends Super {     public Long GetLenght() { return new Long(5); }     public static void main(String[] args) {     Super sooper = new Super();     Sub sub = new Sub();     System.out.println(sooper.getLenght().toString() ","     sub.getLenght().toString() );     }     }     输出是什么?     A. 4,4     B. 4,5     C. 5,4     D. 5,5     E. 编译失败.     答案:A     8. 在接口中以下哪条定义是正确的? (两个答案)     A. void methoda();     B. public double methoda();     C. public final double methoda();     D. static void methoda(double d1);     E. protected void methoda(double d1);     答案:A,B     9. 如下代码:     public void test(int x) {     int odd = x%2;     if (odd) {     System.out.println("odd);     } else {     System.out.println("even");     }     }     哪个描述正确?     A. 编译失败.     B. "odd" 永远被输出.     C. "even" 永远被输出     D. "odd" 输出x的值,     E. "even" 输出x的值     答案:A     10. 如下代码:     public class X {     public X aMethod() { return this;}     }     public class Y extends X {     }     哪两个方法能加到Y类的定义中?     A. public void aMethod() {}     B. private void aMethod() {}     C. public void aMethod(String s) {}     D. private Y aMethod() { return null; }     E. public X aMethod() { return new Y(); }     答案:E,?     11. 如下代码:     public class X {     public static void main(String [] args) {     try {     badMethod();     System.out.print("A");     }     catch (Exception ex) {     System.out.print("C");     }     finally {     System.out.print("B");     }     System.out.print("D");     }     public static void badMethod() {     throw new Error();     }     }     结果是什么?     A. ABCD     B. 编译失败.     C. 显示C,退出程序.     D. 显示B,C,退出程序.     E. 显示BCD,退出程序.     答案:?     12. 如下代码:     class Exc0 extends Exception { }     class Exc1 extends Exc0 { }     public class Test {     public static void main(String args[]) {     try {     throw new Exc1();     } catch (Exc0 e0) {     System.out.println("Ex0 caught");     } catch (Exception e) {     System.out.println("exception caught");     }     }     }     结果是什么?     A. Ex0 caught     B. exception caught     C.第2行出错,编译失败.     D. 第6行出错,编译失败.     答案:A     13. 以下哪四个能使用throw抛出?     A. Error     B. Event     C. Object     D. Throwable     E. Exception     F. RuntimeException     答案:A,D,E,F     14. 如下代码:     public class X (     private static int a;     public static void main(String [] args) {     modify(a);     System.out.println(a);     }     public static void modify(int a) {     a ;     }     }     结果是什么?     A. 0     B. 1     C. 编译失败.     D. 抛出运行时异常.     答案:A     15. 如下代码:     int i = 0;     for (; i <4; i = 2) {     System.out.print(i "");     }     System.out.println(i);     输出结果是什么?     A. 0 2 4     B. 0 2 4 5     C. 0 1 2 3 4     D. 编译失败     E. 一个异常在运行时被抛出     答案:A     16. 如下代码:     public class Foo {     public static void main(String[] args) {     try {     return;     } finally {     System.out.println( "Finally" );     }     }     }     输出结果是什么?     A. Finally     B.编译失败     C. 代码正常运行但没有任何输出.     D. 运行时抛出异常     答案:A     17. 如下代码:     class Base {     Base() { System.out.print("Base"); }     }     public class Alpha extends Base {     public static void main( String[] args ) {     new Alpha();     new Base();     }     }     结果是什么?     A. Base     B. BaseBase     C. 编译失败.     D. 代码运行但没有输出.     E. 运行时抛出异常.     答案:B     18. 如下代码:     Float f = new Float("12");     switch (f) {     case 12: System.out.println("Twelve");     case 0: System.out.println("Zero");     default: System.out.println("Default");     }     结果是什么?     A. Zero     B. Twelve     C. Default     D. Twelve     Zero     Default     E. 编译失败.     答案:E     19. 下面哪三个描述是正确的?     A. 默认构造器初始化方法变量     B. 默认构造器有和它所在类相同的访问修饰词.     C. 默认构造器调用其父类的无参构造器.     D. 如果一个类没有无参构造器,编译器会为它创建一个默认构造器.     E. 只有当一个类没有任何构造器时,编译器会为它创建一个默认构造器     答案:B,C,E     20. 如下代码     10. public Object m() {     11. Object o = new Float(3.14F);     12. Object [] oa = new Object[1];     13. oa[0] = o;     14. o = null;     15. oa[0] = null;     16. print 'return 0';     17. }     当Float对象在第11行被创建后, 什么时候能够被垃圾回收?     A. 13行以后.     B. 14行以后.     C. 15行以后.     D. 16行以后.     答案:B   http://meiwen.anslib.com/