2020-03-03 06:45:28 来源:范文大全收藏下载本文
龙通科技有限公司笔试题
软件开发工程师试题A卷(Java方向)
考试说明:
1.总分:100分;考试时间:100分钟;
2.选择题为不定项选择,不全对没分,2分/题,总分50分;
3、请将答案写在答题纸上;
4、请尽可能充分的给出你的理由与思路,将有利于我们对你的考评。
一、选择题(25 x 2’ = 50’)
1、一个Java程序运行从上到下的环境次序是( C )
A. 操作系统、Java程序、JRE/JVM、硬件
B. JRE/JVM、Java程序、硬件、操作系统
C. Java程序、JRE/JVM、操作系统、硬件
D. Java程序、操作系统、JRE/JVM、硬件
2、下面代码中的第2行可以插入一行代码 ( AB )保证程序编译通过。
1、public interface A{
2、
3、}
A.void method();
B.public void method();
C.static void method();
D.private void method();
E.protected void method();
3、关于异常下列描述中,错误的是(ABC )
A.异常机制可以用于流程控制
B.finally代码段在发生异常时不一定必须执行
C.在catch代码段中可以使用return语句来返回到异常抛出点
D.可以把catch到的异常对象再次抛出,使上层try—catch结构继续处理该异常事件
4、关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C )
A. 可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B. 可以被两种类访问和引用:该类本身、该类的所有子类
C. 只能被该类自身所访问和修改
D. 只能被同一个包中的类访问
5、某类Example的main()方法参数为args,当命令行中输入Java Example cat时,args[0]的值为( A )。
A. catB. JavaC. exampleD. null
6、下面关于Thread类提供的线程控制方法的说法中,错误的是(D )
A. 在线程A中执行现成B的join方法,则线程A等待直到线程B执行完成。
B. 线程A通过调用iterrupt方法来中断其阻塞状态
C. 若线程A调用方法isAlive返回值为true,则说明A正在执行中
1/10
D. currentThread方法返回当前线程的引用
7、类Test1定义如下:
1.publicclaTest1{
2.
3.
4.}
将以下哪种方法插入行3是不合法的。( B )
A. publicfloataMethod(floata, floatb,floatc){}
B. publicfloataMethod(floatc,float d){}
C. publicintaMethod(inta, int b){}
D. private float aMethod(int a,int b,int c){}
8、下面程序的输出结果是(C )
private static void foo() {
try {
System.out.println(\"try\");
foo();
} catch (Throwable e) {
System.out.println(\"catch\");
foo();
} finally {
System.out.println(\"finally\");
foo();
}
}
public static void main(String[] args) {
foo();
}
A.执行一段时间后报栈溢出。B.会一直输出“try”。
C.会一直输出“try”和“finally”。D.会一直输出“try”、“catch”和“finally”
9、下面的哪些程序片断可能导致错误?(BD)
A.String s = \"Gone with the wind\";
String t = \" good \";
String k = s + t;
B.String s = \"Gone with the wind\";
String t;
t = s[3] + \"one\";
C.String s = \"Gone with the wind\";
String standard = s.toUpperCase();
2/10publicfloataMethod(floata,floatb){}
D.String s = \"home directory\";
String t = s - \"directory\";
10、已知如下代码:
1: cla Example{
2:String str;
3:public Example(){
4:str= \"example\";
5:}
6:public Example(String s){
7:str=s;
8:}
9:}
10: cla Demo extends Example{
11: }
12: public cla Test{
13: public void f () {
14:Example ex = new Example(\"Good\");
15:Demo d = new Demo(\"Good\");
16: } }
哪句语句会导致错误?(E)
A、line 3
B、line 6
C、line 10
D、line 14
E、line 1
511、下面的代码中第4行创建的对象在什么时候符合垃圾回收的条件(
1、cla Bar { }
2、cla Test {
3、Bar doBar() {
4、Bar b = new Bar();
5、return b;
6、}
7、public static void main (String args[]) {
8、Test t = new Test();
9、Bar newBar = t.doBar();
10、newBar = new Bar();
11、}
12、}
A.程序运行第9行之后。
B.程序运行第10行之后。
C.doBar方法运行结束之后。
3/10
)B
D.main方法运行结束之后。
12、下列关于for循环和while循环的说法中哪个是正确的?(A )
A.while循环能实现的操作,for循环也都能实现
B. while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
C. 两种循环任何时候都可替换
D. 两种循环结构中都必须有循环体,循环体不能为空
13、下述说法中,错误的是(D )
A.Java中,方法的重载是指多个方法可以共享同一个名字
B.Java中,用abstract修饰的类称为抽象类,它不能实例化
C.Java中,接口不包含成员变量和方法实现
D.Java中,构造方法可以有返回值
14、下面哪些是正确的(AEF)
11.cla ClaA {}
22.ClaB p1 = new ClaB(); 23.ClaC p2 = new ClaC(); 24.ClaA p3 = new ClaB(); 25.ClaA p4 = new ClaC(); 12.cla ClaB extends ClaA {} 13.cla ClaC extends ClaA {} and:21.ClaA p0 = new ClaA(); A.p0 = p1;
15、以下代码片段,正确的结果是:( D )
11.claA {
12.public void proce() { System.out.print(”A,”); } } 13.cla B extends A {
15.super.proce();
16.System.out.print(”B,”);
17.throw new IOException();
18.} }
19.public static void main(String[] args) {
20.try { new B().proce(); }
21.catch (IOException e) {
22.System.out.println(”Exception”); } }
A.Exception
B.A,B,Exception
C.Compilation fails because of an error in line 20.
D.Compilation fails because of an error in line 14.
E.A NullPointerException is thrown at runtime.4/1014.public void proce() throws IOException {B.p1 =p2;C.p2 = p4;F.p2 = (ClaC)p4; D.p2 = (ClaC)p1; E.p1 = (ClaB)p3;
16、设栈最大长度为3,入栈顺序为1,2,3,4,5,6,则不可能的出栈序列是( C)
A.1,2,3,4,5,6
B.2,1,3,4,5,6
C.3,4,2,1,5,6
D.4,3,2,1,5,6
17、设有98个已排序列元素,采用二分法查找时,最大比较次数是(D )
A.49B.15C.20D.7
18、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B )
A.9B.11C.15D.不确定
19、若一个栈的输入序列为1,2,3,„,n,输出序列的第一个元素是i,则第j个输出元素是(D )。
A.i-j-1B.i-jC.j-i+1D.不确定的
二、程序改错(5 * 2’ = 10’)
1.----
public cla Unbelievable {
static Integer i;
public static void main(String[] args) {
}
}
if (i == 42)System.out.println(\"Unbelievable\");
答:此题会出NullPointException,原因是i是Integer类型,没有给i赋值
2.——————————————————————————————————
cla Animal {
}
cla Dog extends Animal {
}
cla Cat extends Animal {
public String noise() {return \"meow\"; 5/10public String noise() {} return \"bark\"; public String noise() {} return \"peep\";
}
public cla Test {
}
答:此题会出ClaCastException 原因是Cat cat = (Cat) animal;强制转换出错,animal指向的是Dog()而Dog并不是Cat的父子类关系,好比方说猫和狗都是动物类型,在这里你是想将狗转换成猫肯定是行不通的.public static void main(String[] args) {} Animal animal = new Dog(); Cat cat = (Cat) animal; cat.noise(); }
3.—————————————————————————————————————— abstract cla Something {
}
答:抽象类中的抽象方法不能是private修饰的,因为抽象方法必须要被实现
public cla Something {
}
cla Other {
}
答:没有错 public int i; public static void main(String[] args) {} public void addOne(final Other o) {} o.i++; Other o = new Other(); new Something().addOne(o); private abstract String doSomething();4.——————————————————————————————————————
5.—————————————————————————————————————— cla Something {
}
答:该题错误在final int i ,final修饰的变量一定要在声明的时候初始化,可以改成 final int i = 1;final int i; public void doSomething() {} System.out.println(\"i = \" + i);
6
人人范文网 m.inrrp.com.cn 手机版