Java面向对象编程

下列运算符合法的是( )

A.&&

B.<>

C.if

D.:=

答案:A

下面代码运行结果是()

public class Test{	
    public int add(int a,int b){	
         try {	
             return a+b;		
         } 
        catch (Exception e) {	
            System.out.println("catch语句块");	
         }	
         finally{	
             System.out.println("finally语句块");	
         }	
         return 0;	
    } 
     public static void main(String argv[]){ 
         Test test =new Test(); 
         System.out.println("和是:"+test.add(9, 34)); 
     }
}

A.catch语句块 和是:43

B.编译异常

C.finally语句块 和是:43

D.和是:43 finally语句块

答案:C

下列Java代码中的变量a、b、c分别在内存的____存储区存放。

class A {
    private String a = “aa”;
    public boolean methodB() {
        String b = “bb”;
        final String c = “cc”;
    }
}

A.堆区、堆区、堆区

B.堆区、栈区、堆区

C.堆区、栈区、栈区

D.堆区、堆区、栈区

E.静态区、栈区、堆区

F.静态区、栈区、栈区

答案:C

以下声明合法的是

A.default String s

B.public final static native int w( )

C.abstract double d

D.abstract final double hyperbolicCosine( )

答案:B

在使用super 和this关键字时,以下描述正确的是

A.在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过

B.super()和this()不一定要放在构造方法内第一行

C.this()和super()可以同时出现在一个构造函数中

D.this()和super()可以在static环境中使用,包括static方法和static语句块

答案:A

下面代码的输出结果是什么?

public class ZeroTest {
    public static void main(String[] args) {
     try{
       int i = 100 / 0;
       System.out.print(i);
  }catch(Exception e){
       System.out.print(1);
       throw new RuntimeException();
  }finally{
       System.out.print(2);
  }
      System.out.print(3);
 }
 }

A.3

B.123

C.1

D.12

答案:D

有代码片段如下:

byte b1=1,b2=2,b3,b6;  
final byte b4=4,b5=6;  
b6=b4+b5;  
b3=(b1+b2);  
System.out.println(b3+b6);

关于上面代码片段叙述正确的是()

A.输出结果:13

B.语句:b6=b4+b5编译出错

C.语句:b3=b1+b2编译出错

D.运行期抛出异常

答案:C

以下java程序代码,执行后的结果是()

public class Test {	
    public static void main(String[] args) {	
        Object o = new Object() {	
             public boolean equals(Object obj) {	
                 return true;	
         }	
     };	
     System.out.println(o.equals("Fred"));
     }
}

A.Fred

B.true

C.编译错误

D.运行时抛出异常

答案:B

执行以下程序后的输出结果是()

public class Test {
    public static void main(String[] args) {
        StringBuffer a = new StringBuffer("A"); 
        StringBuffer b = new StringBuffer("B"); 
        operator(a, b); 
        System.out.println(a + "," + b); 
    } 
    public static void operator(StringBuffer x, StringBuffer y) { 
        x.append(y); y = x; 
    }
}

A.A,A

B.A,B

C.B,B

D.AB,B

答案:D

下面所示的java代码,运行时,会产生()类型的异常

int Arry_a[] = new int[10];
System.out.println(Arry_a[10]);

A.ArithmeticException

B.NullPointException

C.IOException

D.ArrayIndexOutOfBoundsException

答案:D

#字棋

给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没

有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成的及获胜(及井

字棋规则),返回当前玩家是否胜出。<

输入:[ [1,0,11,[1,-1,-1],[1,-1,0]]

输出  : true

思路:

3*3的井字棋

  1. 判断行,如果某一行元素和为3,说明当前玩家胜出,直接返回true
  2. 判断列,如果某一列元素和为3,说明当前玩家胜出,直接返回true
  3. 判断主对角线,如果主对角线元素和为3,说明当前玩家胜出,直接返回true
  4. 判断副对角线,如果副对角线元素和为3,说明当前玩家胜出,直接返回true
  5. 其余情况直接,return false;

对于N*N的井字棋而言,判断方式跟这个一样,唯一的区别就是数字不一样罢了!!

public class Main5 {

    public static Boolean checkWon(int[][] board){

        int N=board.length;

        int sum=0;

        int i=0;

        int j=0;


        //先检查行的元素的和

        for ( i = 0; i < N; i++) {

            sum=0;//每次循环都得将sum变为0

            for ( j = 0; j < N; j++) {

                //求每一行元素的和,行号不变,变的是列号

                sum+=board[i][j];//注意这里是board[i][j]

            }

            if (sum==N){

                return true;

            }

        }

        //检查列的元素的和

        for ( i = 0; i < N; i++) {

            sum=0;//每次循环都得将sum变为0

            for ( j = 0; j < N; j++) {

                //求每一列元素的和,列号不变,变的是行号

                sum+=board[j][i];//注意这里是board[j][i]

            }

            if (sum==N){

                return true;

            }

        }



        //检查主对角线

        //sum不等于0,我们需要手动将sum置为0

        sum=0;

        for ( i = 0; i < N; i++) {

            sum+=board[i][i];

        }

        if (sum==N){

            return true;

        }



        //检查副对角线

        //sum不等于0,我们需要手动将sum置为0

        sum=0;

        for ( i = 0; i < N; i++) {

            sum+=board[i][N-1-i];

        }

        if (sum==N){

            return true;

        }

        return false;

    }



    public static void main(String[] args) {

        int[][] board={{1,0,1},{1,-1,-1},{1,0,1}};

        System.out.println(checkWon(board));

    }

}

你可能感兴趣的:(java要笑着学,java,python,开发语言)