下列运算符合法的是( )
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的井字棋
- 判断行,如果某一行元素和为3,说明当前玩家胜出,直接返回true
- 判断列,如果某一列元素和为3,说明当前玩家胜出,直接返回true
- 判断主对角线,如果主对角线元素和为3,说明当前玩家胜出,直接返回true
- 判断副对角线,如果副对角线元素和为3,说明当前玩家胜出,直接返回true
- 其余情况直接,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)); } }