1.执行语句int a = ‘2’后,a的值是() 2 Points
○A.2
○B.50
○C.49
●D.0
/**
*这个题 int类型转为char类型 根据unicode码规定为 a=50
*错题原因:当时误选
*/
//============================================================================//
2.在Java中下列关于自动类型转换说法正确的是()【多选题】 2 Points
●A. 基本数据类型和String相加结果一定是字符串型
●B. char类型和int类型相加结果一定是字符
○C. double类型可以自动转换为int
●D. char + int + double结果一定是double
/**
*这个题 多选了一个B选项,自己之前没有测试过这种,感觉是字符的权重高一些,测试后发现结果一定会是整数
*
*/
//============================================================================//
3.public static void main(String [] args){
int x = 5;
boolean b1 = true;
boolean b2 = false;
if((x == 4) && !b2)
System.out.print(“1 “);
System.out.print(“2 “);
if((b2 = true) && b1)
System.out.print(“3 “);
}上述程序的执行结果是() 2 Points
●2
○3
○1 2
○2 3
/
*这个题 不应该错,怪自己粗心了,先给自己一个大嘴巴子
*分析:if没有大括号括的时候应该输出下一行程序结束,第一个判断条件不满足,所以1没有输出
*再下一行输出不属于任何判断所以2是肯定输出的
*然后又走到了第二个判断分支
*这里被绕了一下==号和=号的区别
*=号说明是复制给了boolean类型一个true值所以他没有短路,这条语句肯定会输出下一行的3
*所以结果是 输出 2 & 3
*/**
//============================================================================//
**
4.下列代码输出结果是()
int i = 10;
while(i > 0){
i = i++;
if(i == 10){
break;
}
} 2 Points
○A.while循环执行10次
●B.死循环
○C.循环一次都不执行
○D.循环执行一次
/**
*这个题 自己根本就不应该错!!!!!太粗心太大意了,感觉自己学了后面的就飘了,没有好好看题
*我看完判断条件就选了死循环,就没有看到后面break跳出循环了
*这个题的正确大难应该是虽然是死循环,但是他执行了,然后跳出了,说明是执行了一次跳出循环了,没有第二次循环
*/
**
//============================================================================//
5.代码如下,选项说法正确的是()
public class ArrayTest {
public static void main(String[] args) {
int fl[], f2[];
fl = new int[10];
f2 = fl;
System.out.println(“f2[0]=” + f2[0]);
}
} 2 Points
○A.打印f2[0]=0
○B.打印f2[0]=NaN
●C.第3行会产生编译时异常
○D.第5行会产生编译时异常
/**
*这个题 我也感觉自己根本不应该错!!!啊,确实是自己的问题,之前我听拓哥说是 最好不要这样写,我以为不能写
*结果这种定义数组的方法是可以的,只是自己没有去尝试过这样写
*错题分析:
*定义了两个数组 f1[] f2[]
*第一次给f1初始化了 给了个10的长度,并没有赋值,说明10长度的f1数组为默认值全是0
*然后把f1[]的值赋给了f2[] f2[]此时也是10个0
*所以f2[0]他的0号索引也是0 所以选A
*/
**
//============================================================================//
6.代码如下,输出结果是()public static void main(String[] args) {
int[][] array = new int[3][2];
array[0][0]=1;
array[0][1]=2;
array[1]=array[0];
array[0]=new int[4];
array[0][0]=10;
System.out.println(array[1][0]);
} 2 Points
○A.1
○B.10
○C.0
●D.产生异常
/**
*这个题 自己没有好好去分析 我下面写分析原因
*错题分析:
*这个题先定义了一个二维数组 长度是[3][2]
*然后给[0][0] [0][1] 分别赋值了 1,2
*然后把array[0]中的1,2全部初始化给了array[1]
*然后后两行代码 干扰了一下我们 哈哈哈~~~可以看出来
*最后array[1]中有两个值 分别是 0号索引的1和1号索引的2
*输出array[1]的0号索引肯定就是1了 所以选A
*/
//============================================================================//
7.以下程序编译运行后的输出结果为()public class Test{
public int x,y;
Test(int x,int y){
this.x = x;
this.y = y;
}
public static void main(String[] args){
Test t1,t2;
t1 = new Test(3,3);
t2 = t1;
t2.x = 5;
t2 = new Test(4,4);
System.out.print(t1.x + t2.x);
}
} 2 Points
●A.3 4
○B.5 4
○C.7
○D.9
/**
*这个题因为自己后面学习永远是操作一个Socket或者用单例设计模式去操作一个对象所以我一开始就觉得是指向两个地址
*这里确实该区补一下面向对象的地址创建和执行过程了
*错题原因:我分析为:他创建了两个对象t1&t2,他们指向同一个地址,指向通一个x,y
*后面t2把属性给修改为了5,所以他们的地址一样t1的也成了5,最后把t2给他生成了一个新的地址的x,y
*t1指向旧地址 因为他没有new 所以t1的x,y分别是5,3,t2的值初始化为了4,4
*最后给他们的x属性进行了相加5+4所以等于9应该选D
*/
**
//============================================================================//
8.以下代码的输出结果是?()public class B{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println(“构造块”);
}
static{
System.out.println(“静态块”);
}
public static void main(String[] args){
B t = new B();
}
} 2 Points
●A.静态块 构造块 构造块 构造块
○B.构造块 静态块 构造块 构造块
○C.构造块 构造块 静态块 构造块
○D.构造块 构造块 构造块 静态块
Wrong Answer(+0 Points)
Correct Answer:
C.构造块 构造块 静态块 构造块
/**
*根据我一开始记得概念,我认为是答案错了,我再怎么想也是静态区的先执行,静态块在类模板映射的时候就加载了
*构造块在new对象的时候先执行,希望老师可以帮我解答一下
*/
//============================================================================//
9.正确描述如下类和类关系的选项是()
“Man has a best friend who is a Dog” 2 Points
○A.class Man extends Dog { }
○B.class Man implements Dog { }
○C.class Man { private BestFriend dog; }
○D.class Man { private Dog bestFriend; }
○E.class Man { private Dog; }
●F.class Man { private BestFriend; }
/**
这个题我有争议,我不认为答案就是对的,我有自己的想法是 人有最好的朋友是狗
但是我认为人最好的朋友不止是只有动物,我觉得应该封装一个最好的朋友的类
*然后用实体的类去继承这个类 只可以说明他们只是人最好的朋友之一~~~
*/
//============================================================================//
10.关于类中static修饰的元素,说法正确的是() 2 Points
○A.静态属性不能再次赋值
●B.方法中声明的静态变量在被调用的过程中保持值不变
○C.静态属性被该类的所有实例对象共享
○D.静态属性只能使用初始值
Wrong Answer(+0 Points)
Correct Answer:
C.静态属性被该类的所有实例对象共享
/**
*回去看静态属性视频回顾!!!!!!!和自己理解的突然不一样。。。。
*/
**
//============================================================================//
11.Given:
class Mammal{ }
class Raccoon extends Mammal{
Mammal m = new Mammal();
}
class BabyRaccoon extends Mammal{}
Which four statements are true(Choose four) 2 Points
○A.Raccoon is-a Mammal.
●B.Raccoon has-a Mammal.
●C.BabyRaccoon is-a Mammal.
○D.BabyRaccoon is-a Raccoon.
○E.BabyRaccoon has-a Mammal.
○F.BabyRaccoon is-a BabyRaccoon.
Wrong Answer(+0 Points)
Correct Answer:
A.Raccoon is-a Mammal.┋B.Raccoon has-a Mammal.┋C.BabyRaccoon is-a Mammal.┋F.BabyRaccoon is-a BabyRaccoon.
/**
*这个题有一些抽象,总感觉选多了不对劲,感觉有一个就对了,不能再是一个,后来一想确实可以既是一个又有一个
*错题分析:
*因为Raccoon继承了Mammal又在里面new 了一个Mammal,说明既是一个Mammal又有一个Mammal
*BabyRaccoon继承了Mammal说明他是一个Mammal 他自己肯定是一个自己,自己好呆,这都能错!!!
*/
**
//============================================================================//
12.下面选项可以在interface中合法定义的是() 2 Points
○A.public static void main(String[] args);
○B.boolean setFlags(Boolean[] results);
○C.private float get(int x);
●D.static int getCount();
Wrong Answer(+0 Points)
Correct Answer:
B.boolean setFlags(Boolean[] results);
/
*错题分析:
*A接口中是抽象的规则,不能有main方法测试
*B可以定义一个规则setFlags
*C接口中的方法需要去实现,不能写私有属性
*Dstatic修饰的为对象共享,但是他是定义规则的不可以写static静态方法
*/
//============================================================================//
13.Given:
interface DeclareStuff{
public static final int EASY = 3;
void doStuff(int t);
}
public class TestDeclare implements DeclareStuff{
public static void main(String [] args){
int x = 5;
new TestDeclare().doStuff(++x);
}
void doStuff(int s){
s += EASY + ++s;
System.out.println(“s “ + s);
}
} 2 Points
○A.s 14
●B.s 16
○C.s 10
○D.Compilation fails.
○E.An exception is thrown at runtime.
Wrong Answer(+0 Points)
Correct Answer:
D.Compilation fails.
/
*错题分析:
这个题没有见过D选项出现的情况,希望老师可以讲解一下!
/**