新员工考试
一、选择题共30题,每题2分
1.下面哪些是合法的标识符多选题
A. $persons
B. TwoUsers
C. point
D. this
E. _endline
答案 A,B,E
分析 Java的标识符可以以一个Unicode字符,下滑线_,美元符$开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字this保留字;
2.哪些是将一个十六进制值赋值给一个long型变量单选题
java重写和重载的区别 A. long number = 345L;
B. long number = 0345;
C. long number = 0345L;
D. long number = 0x345L
答案 D
分析 十六进制数以0x开头,long型数以L大小写均可,一般使用大写,因为小写的l和数字1不易区分;
3.下面的哪些程序片断可能导致错误 多选题
A. String s = "Gone with the wind";
String t = " good ";
String k = s + t;
B. String s = "Gone with the wind";
String t;
t = s3 + "one";
C. String s = "Gone with the wind";
String standard = ;
D. String s = "home directory";
String t = s - "directory";
答案 B,D
分析
A:String类型可以直接使用+进行连接运算;
B:String是一种Object,而不是简单的字符数组,不能使用下标运算符取其值的某个元素,错误;
C:toUpperCase方法是String对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果String类型;
D:String类型不能进行减-运算,错误;
4.point x处的哪些声明是句法上合法的 多选题
class Person {
private int a;
public int changeint m{ return m; }
}
public class Teacher extends Person {
public int b;
public static void mainString arg{
Person p = new Person;
Teacher t = new Teacher;
int i;
i = m;
B. i = b;
C. i = ;
D. i = 30;
E. i = .
答案 D,E
分析
A:m没有被声明过,不能使用;
B:虽然b是类Teacher的public成员变量,但是在静态方法中不能使用类中的非静态成员;
C:a是类Person的private成员,在类外不能直接引用;
D:changeint m方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量;
E:b是类Teacher的public成员变量,且是int型,可以通过类的实例变量t引用并赋值给一个int型变量;
5.下面的代码片断多选题:
1 public void create {
2 Vector myVect;
3 myVect = new Vector;
4 }
下面的哪些陈述正确
A. 第二行的声明不会为变量myVect分配内存空间;
B. 第二行的声明分配一个到Vector对象的引用的内存空间;
C. 第二行语句创建一个Vector类对象;
D. 第三行语句创建一个Vector类对象;
E. 第三行语句为一个Vector类对象分配内存空间;
答案 A,D,E
分析
要为一个新对象分配空间必须执行new Xxx调用,new调用执行以下的操作:
1.为新对象分配空间并将其成员初始化为0或者null;
2.执行类体中的初始化;例如在类中有一个成员声明int a=10;在第一步后a=0 ,执行到第二步后a=10
3.执行构造函数;
4.变量被分配为一个到内存堆中的新对象的引用;
6.下面的哪些答案可以用以表示八进制值8 单选题
A. 010
B. 0x10
C. 08
D. 0x8
答案 A
分析 八进制值以0开头,以0x开头的为十六进制值,八进制中不能出现数字8,最大只有7;
1 class Person {
2 public void printValueint i, int j {/…/ }
3 public void printValueint i{/.../ }
4 }
5 public class Teacher extends Person {
6 public void printValue {/.../ }
7 public void printValueint i {/.../}
8 public static void mainString args{
9 Person t = new Teacher;
10 10;
11 }
12 }
第十行的声明将调用哪些方法 单选题
A. on line 2
B. on line 3
C. on line 6
D. on line 7
答案 D
分析 变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要
进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象,如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,10将调用t实际指向的Teacher类的对应方法;在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例;
7.给出下面的代码:单选题
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.下面的哪些赋值语句是不正确的单选题
A. float f = ;
B. double d = ;
C. double d = ;
D. double d = .
答案 A
题目:;
浮点数的赋值是带有小数点的数字缺省是double型的,如果在浮点数后面加f或者F则是float,后面加d或者D则是double,科学计数法形式的浮点数也是double型的,而double的精度
比float高,将一个高精度的double赋值给一个低精度的float时需要进行强制类型转换,反之则不需要;
9.给出下面的不完整的类代码: 单选题
class Person {
String name, department;
int age;
public PersonString n{ name = n; }
public PersonString n, int a{ name = n; age = a; }
public PersonString n, String d, int a {
."处
A. Personn,a;
B. thisPersonn,a;
C. thisn,a;
D. thisname,age.
答案 C
分析:
在同一个类的不同构造方法中调用该类的其它构造方法需要使用this…的形式,而且必须是在构造方法的第一行调用,这个和普通的方法重载调用的方式不同,普通的方法可以直接使用方法名加参数来调用,而且调用位置没有限制,因此答案A是不行的,B的语法就是错误的,D的错误在于在父类型的构造函数被调用前不能引用类的成员;构造方法是一个类对象实例化的起点虽然严格来说首先执行的并不是构造方法的第一个语句,而是内存的分配,因此在构造方法中不能将成员作为参数引用;
public void test {condition 1
B. condition 2
C. condition 3
D. finally
答案 ad
分析:
如果try块中的语句在执行时发生异常,则执行从该处中断而进入catch块,根据异常的类型进行匹配,最前面的优先进行匹配比较,只要该异常是catch中指定的异常的子类就匹配成功进而执行相应的catch中的内容,而finally块中的内容无论是否发生异常都将被执行;
10.给出下面的代码:单选题
public class Test {
void printValueint m{
while --m > 10
}
public static void mainString arg {
int i=10;
Test t= new Test;
i;
}
}
输出将是什么
A. The value is 8
B. The value is 9
C. The value is 10
D. The value is 11
答案:c
此题考察的是do… while循环和 -- 操作符的知识,do…while最少被执行一次,在执行完do中的内容后判断while中的条件是否为true,如果为true的话就再执行do中的内容,然后再进行判断,以此类推直到while的判断为false时退出循环执行循环后面的内容,而—操作符的规则是在变量右边的-- 将先进行运算,然后才是使变量的值减一,而在变量左边的是先将变量的值减一再运算;
11.给出下面的代码:单选题
1 public void modify {
2 int i, j, k;
3 i = 100;
4 while i > 0 {
5 j = i 2;
7 k = k + 1;
8 i--;
9 }
10 }
哪些行在编译时可能产生错误;
A. line 4
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论