中兴公司招聘计算机专业应届生笔试试卷第一套
本试卷分三部分,公共部分、C++部分和 JAVA 部分,其中公共部分为必考部分,C++与 JAV
部分,两者选一完成。试卷满分 100 分。
公共部分(40 分)
1:操作系统的主要组成部分?(8 分,每点 2 分)
进程和线程的管理,存储管理,设备管理,文件管理
2:Internet 采用哪种网络协议?该协议的主要层次结构?(10 分)
Internet 采用 TCP/IP 协议(2 分)
物理层,(2 分)数据链路层,(2 分)网络层(IP) (2 分),应用层(2 分)
3:解释文件系统为什么会存在数据冗余?这种数据冗余会导致哪两类典型的问题?(8 分)
由于文件系统难于实现数据共享,因此,相同的数据可能会在多个文件中重复出现,即产生
数据冗余。(4 分)
数据冗余会导致数据(或更新)异常(2 分)和数据不一致性(2 分)
4:简述中断装置的主要职能。(6 分)
中断装置的职能主要有三点:
1)检查是否有中断事件发生。(2 分)
2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复运行。
(2 分)
3)启动操作系统的中断处理程序。(2 分)
5:什么是虚拟设备?为什么在操作系统中引入虚拟设备?(8 分)
虚拟设备是通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使
用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。(4 分)
在操作系统设备管理中,引入虚拟设备是为了克服独占设备速度较慢、降低设备资源利用率
的缺点,从而提高设备的利用率。(4 分)
C++部分(60 分)
1. 定义一个类模板与定义一个类函数模板的格式相同,必须以关键字_________开始。
template(3 分)
1. 16 位计算机中整型占__________个字节存储空间。2(3 分)
3. 下列各种函数中,(
)不是类的成员函数。C(4 分)
A 构造函数
B 析构函数
C 友元函数
D 拷贝构造函数
4.假定 DD 为一个类,则执行“DD a[10],*P”语句时,系统自动调用该类构造函数的次数为
(
)B(4 分)
A、11
B、10
C、1
D、0
5.循环 while(int i=0) i–;执行次数是(
)。A(4 分)
A
0
B
1
C
5
D 无限
6.若类 A 和类 B 没有继承关系,对于函数 void func(A&) ,请至少用两种不同方法说明如何
才能传递一个非常量的 B 类对象给 func 函数。(10 分)
可在 A 类中定义一个构造函数:A(const B&); (5 分)
或在 B 类中定义一个自动转换函数: operator A( ) const; (5 分)
7.static 全局变量与普通的全局变量有什么区别?static 局部变量和普通局部变量有什么
区别?static 函数与普通函数有什么区别?(20 分)
static 全局变量与普通全局变量的区别:前者在主函数之前就要被初始化,(2 分)后者无要
求。(2 分)
static 局部变量和普通局部变量的区别:static 全句变量是所有函数共享的变量,在一个
函数使用完它后它的值会保持到下一个函数来改变它(2 分)。后者,本函数所声明的局部变
量在本函数运行完之后会被销毁。(2 分)
static 函数与普通函数的区别:static 的可以用类来访问(就是不用初始化一个类就直接
使用这个类的这个 static 方法);(2 分)非 static 的只能通过对象来访问(2 分)。static
的定义里不能用到类内部非 static 变量值。(3 分)static 在循环中定义并赋值时,定义过
程只进行一次,而不是每个循环 1 次。(3 分)
8.写出此函数的功能(12 分)
struct StrNode {
char name[15];
// 字符串域
StrNode * next;
// 指针域
};
void QB(StrNode * & f ,int n) {
if (n==0) { f=NULL; return; }
f=new StrNode;
cin >>f->name;
StrNode * p=f;
while (–n) {
p=p->next=new StrNode;
cin >>p->name;
}
p->next=NULL;
}
建立一个具有 n 个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变
量 f 带回。
JAVA 部分(60 分)
1.给出下面代码: (4 分)
public class test{
static int a[] = new a[10];
public static void main(String args[]) {
System.out.println(arr[10]);
}
}
那个选项是正确的?()A
A、编译时将产生错误;
B、编译时正确,运行时将产生错误;
C、输出零;
D、输出空。
2. 哪个关键字可以对对象加互斥锁?()B(4 分)
A、transient
B、synchronized;
C、serialize
D、static
3. MAX_LENGTH 是 int 型 public 成员变量, 变量值保持为常量 100,用简短语句定义这个变
量()D(4 分)
A、public int MAX_LENGTH=100;
B、final int MAX_LENGTH=100;
C、final public int MAX_LENGTH=100;
D、public final int MAX_LENGTH=100.
4、关于垃圾收集的哪些叙述是对的()B(4 分)
A、程序开发者必须自己创建一个线程进行内存释放的工作。
B、垃圾收集将检查并释放不再使用的内存。
C、垃圾收集允许程序开发者明确指定并立即释放该内存。
D、垃圾收集能够在期望的时间释放被 java 对象使用的内存
5. 内部类的实现方式? C(4 分)
public class OuterClass {
private double d1 = 1.0;
//insert code here
}
A、class InnerOne{
public static double methoda() {return d1;}
}
B、public class InnerOne{
static double methoda() {return d1;}
}
C、private class InnerOne{
double methoda() {return d1;}
}
D、static class InnerOne{
protected double methoda() {return d1;}
}
6. abstract class 和 interface 有什么区别? (20 分)
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体
现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建
abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类
的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所
有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行
为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实
现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义
static final 成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行
为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以
在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为
引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,
instanceof 运算符可以用来决定某对象的类是否实现了接口。
7. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变
化后的结果,那么这里到底是值传递还是引用传递?为什么? (8 分)
是值传递。(2 分)Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到
方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象
的引用是永远不会改变的。(6 分)
8. 写出此函数的功能(12 分)
public
class
Sum
{
public
static
void
main( String
args[ ])
{
double
sum = 0.0 ;
for
( int
i = 1 ;
i <= 100 ; i + + )
sum += 1.0/(double) i ;
System.out.println( “sum=”+sum );
}
}
计算 1/1+1/2+1/3+…+1/100 的值。