基础语法
1、D(编译无错,只是没有正确定义main方法)
public class Hello {
// String指的是返回值的类型 s指的是变量名字
//(String[] s)
public static void main(String s){
System.out.println("Hello");
}
}
A. 编译错误
B. 运行输出 “Hello”
C. 编译无错,但运行时指示没有定义构造方法
D. 编译无错,但运行时指示没有正确定义main方法
2、D(num是局部变量,在main方法中已经定义过了,不能在重新定义)(编译会报错)
public static void main(String[] args){
int num = 100;
for(int i = 0; i <= 100 ; i++) {
int num = 10;
}
System.out.println(num);
}
A. 输出:10
B. 输出:100
C. 输出:201
D. 编译出错
3、A( / 前后都是int类型,所以除后也是int类型)(Java整型默认的是int类型)
public static void main(String[] args){
System.out.println(37 / 10); // 3
}
在Java中语句:37/10 的运算结果为:
A. 3
B. 3.70
C. 3.7
D. 3.0
4、C(x-- 先使用再减 — ++x先加再使用 )(&& 和 | | 有“短路”)
public static void main(String[] args){
int x = 1,y = 1,z = 1;
if (x-- == 1 && y++ == 1 || z++ == 1)
System.out.println("x=" + x + ",y=" + y + ",z=" + z);
}
A. x=0,y=1,z=1
B. x=0,y=2,z=2
C. x=0,y=2,z=1
D. x=1,y=2,z=1
5、D(% 前后都是int类型,所以取余后也是int类型)
public static void main(String[] args){
int a = 7;
System.out.println(a % 3); // 1
}
A. 2.0
B. 2
C. 1.0
D. 1
6、C(不能用一个变量直接作为判断条件)(编译会报错)
public static void main(String[] args){
int value = 0;
boolean setting = true;
String title = "Hello";
// vaule错误
if (value || (setting && title == "Hello")) {
System.out.println("one");
}
if (value == 1 || title.equals("Hello")) {
System.out.println("two");
}
}
A. 2
B. 1
C. 编译错误
D. 可以运行,但无输出
7、B(方法调用)(return - 返回,方法运行完毕)
public void testIfA() {
if (testIfB(1)) {
System.out.println("true");
} else {
System.out.println("Not true");
}
}
public boolean testIfB(int type) {
if (type == 1) {
return true;
}
return false;
}
调用testIfA方法,程序的结果是:
A. 输出Not true
B. 输出True
C. 代码 if (testIfB(1)) { 行,编译错误
D. 代码 return Boolean.valueOf(str); 行,编译错误
8、B(条件是true,所以循环一直进行)
for(int i = 0; true; i++) {
System.out.println(i);
}
A. 执行3 次
B. 无限次
C. 执行1 次
D. 一次也不执行
9、B
public static void main(String[] args){
int i = 0;
for(; i <= 10; i++) {
// 当 i=7 时退出循环
if (i > 6)
break;
}
System.out.println(i); // 7
}
A. 输出6
B. 输出7
C. 输出10
D. 编译错误
10、B(数组复制下标越界)(可以编译)
public static void main(String[] args){
String[] names = {
"Oscar","Edgar","Frank","Laurent","Hugo","Jacob","Aaron","Gino","Angus","Ken"};
String[] names1 = new String[5];
// names1从下标1开始,复制5个元素,下标越界了
System.arraycopy(names,3,names1,1,5);
System.out.println(Arrays.toString(names1));
}
A. 编译错误
B. 抛出运行时异常
C. 输出:[Laurent, Hugo, Jacob, Aaron, Gino]
D. 输出:[Frank, Laurent, Hugo, Jacob, Aaron]
11、递归(50个台阶问题)
public static int t(int n) {
if (n < 1) {
return -1;
} else if (n == 1)
return 1;
else if (n == 2)
return 2;
else
// 50个台阶总共 = 49个台阶总共 + 48个台阶总共
return t(n-1) + t(n-2);
}
面向对象
1、B(画内存图)
public class Example {
String str = new String("Bonnie");
char[] ch = {
'a','b','c'};
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str + " and ");
System.out.println(ex