当前位置:文档之家› 中软java笔试题

中软java笔试题

JA V A笔试题
(答题时间120分钟,请将答案写到答题纸上)
一、选择题(每题2分,共30分)
1.下列语句会创建几个String实例:String s = new("helloworld")( c )
A、0个;
B、1个;
C、2个;
D、3个
2.以下哪项是接口的正确定义( d )
A、interface B
{ void print() { } ;}
B、abstract interface B

{ void print() ;}
C、abstract interface B extends A1,A2 A派生出子类B,B派生出子类C,并且在Java 源代码中有如下声明:
1. A a0=new A();
2. A a1 =new B();
3. A a2=new C();
问以下哪个说法是正确的( d )
A、只有第1行能通过编译
B、第1、2行能通过编译,但第3行编译出错
C、第1、2、3行能通过编译,但第2、3行运行时出错
D、第1行、第2行和第3行的声明都是正确的
;
5. 假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的(c )class A
{ int i;
static String s;
void method1() { }
static void method2() { }
}
A、;
B、();
C、();
D、()
6. 有如下代码段:
1)

2) { if(unsafe()){Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(b )个比特位。

A、8
B、16
C、32
D、64
8.在使用interface声明一个接口时,只可以使用( d )修饰符修饰该接口。

A、private
B、protected
C、private protected
D、public
9. 有语句String s=”hello world”; ,以下操作哪个是不合法的(b)
A、int i=();
B、s>>>=3;
C、String ts=();
D、String t=s+”!”;
10.下列关于Java语言的特点,描述错误的是( c )
A.Java是跨平台的编程语言B.Java支持分布式计算
C.Java是面向过程的编程语言D.Java支持多线程
11.下述概念中不属于面向对象方法的是( d )。

A.对象、消息B.继承、多态C.类、封装D.过程调用
12. 下面哪一个循环会导致死循环(c )
A、for (int k = 0; k < 0; k++)
B、for (int k = 10; k > 0; k--)
C、for (int k = 0; k < 10; k--)
D、for (int k = 0; k > 0; k++)
13. 下列关于构造方法的叙述中,错误的是( c )
A.Java语言规定构造方法名与类名必须相同
B.Java语言规定构造方法没有返回值,但不用void声明
C.Java语言规定构造方法不可以重载
D.Java语言规定构造方法只能通过new自动调用
14. 下列哪个类的声明是正确的(d )
,
A.abstract final class HI{} B.abstract private move(){} C.protected private number; D.public abstract class Car{}
15. 关于被私有访问控制符private修饰的成员变量,以下说法正确的是(c )A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
三、问答题(共50分)
1、(6分)
public String printString(){
·
String s = "";
for(int i=0;i<numItems();i++)
s += lineForItem(i);
}
numItems 返回1000,lineForItem 返回固定长度为90字符的串。

上述代码有何不妥,该如何改进。

2、下面对象若是单例的,在多线程并发调用该对象时会出现计算错误吗若每个线程都创建一个独立的对象,在并发时会出现错误吗需要简述原因。

(6分)。

public class Sum implements Executable{
private int i;
public int sum(int[] items){
i=0;
for(int j=0;j<;j++){
i+=items[j];
}
return i;
}
}
'
3、写出下述代码的输出结果,请勿使用计算机。

(6分)
int k=0;
int ret = ++k + k++ + ++k + k;
、有序整形数组a[] ={2,5,10,11,19,50,51},用二分查找法找出整型数n在数组中的位置,找不到返回-2。

(8分)
5、进程间通信方式有哪些(6分)
6、给出计算斐波那契数的算法,分别用递归和非递归算法实现,并给出两种算法的时间复杂度。

(10分)
7、101个硬币100真、1假,真假区别在于重量。

请用无砝码天平称两次给出真币重还是假币重的结论(10分)
四、编程题(每题10分,共20分)
1、写一个算法对1,8,5,2,4,9,7进行顺序排列并给出所使用的算法,并简述算法实现原理及时间复杂度。

(10分)
}
2、
输入:
10。

该文件中无重所输入的是一个文件,至多包含n个正整数,每个正整数都小于n,n=7
复数据。

输出:
以增序形式输出经过排序的整数列表
约束:
至多有1MB的可用内存,但是磁盘空间充足,运行时间至多只允许几分钟,10分钟是最适宜的运行时间
请用伪代码实现上述排序的算法,并给出分析。

(10分)。

相关主题