7.给出下面的代码:
if(x>0){System.out.println("first");}
elseif(x>-3){System.out.println("second");}
else{System.out.println("third");}
x的取值在什么范围内时将打印字符串"second"。
A.x>0
B.x>-3
C.x<=-3
D.x<=0&;x>-3
答案D
解析:x>0时打印"first",x>-3&;&;x<=0时打印"second",x<=-3时打印"third"。这个题目没有什么难的,只要理解if语句的语法就可以了。
8.给定如下代码段:
1)classPerson{
2)publicvoidprintValue(inti,intj){/*…*/}
3)publicvoidprintValue(inti){/*...*/}
4)}
5)publicclassTeacherextendsPerson{
6)publicvoidprintValue(){/*...*/}
7)publicvoidprintValue(inti){/*...*/}
8)publicstaticvoidmain(Stringargs[]){
9)Persont=newTeacher();
10)t.printValue(10);
11)}
12)}
第十行的语句将调用哪些方法?
A.online2
B.online3
C.online6
D.online7
答案D
解析:
变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。
9.作为程序入口的main()方法的返回类型是什么?
A.int
B.void
C.boolean
D.static
答案B
解析:
在java中,程序运行的入口就是main()方法,它必须是这样的形式:publicstaticvoidmain(Stringargs[])。但是严格来讲这个题目的答案还可以加上a和c,因为并没有限定是程序入口的main()方法,而main()方法是可以重载的。一般意义上的main()当然就是指我们刚开始所说的main()方法了。
10.int的取值范围是哪个?
A.-27--27-1
B.0--232-1
C.-215--215-1
D.-231--231-1
答案D
解析:
int型是32位的。参看第一题的论述。
二、多选题: