中兴公司招聘计算机专业应届生笔试试卷第十一套
本试卷分三部分,公共部分、C++部分和 JAVA 部分,其中公共部分为必考部分,C++与 JAV
部分,两者选一完成。试卷满分 100 分。
公共部分(50 分)
5、在 TCP/IP 层次模型中与 OSI 参考模型第四层相对应的主要协议有
____________
传输服。TCP(传输控制协议)和 UDP(用户数据报协议) (顺序可交换) (4 分)
和
,其中后者提供无连接的不可靠
6、在 OSI 中,完成相邻节点间流量控制功能的层次是
链路层(2 分)
。数据
5、IP 地址为 140.111.0.0 的 B 类网络,若要切割为 9 个子网,而且都要 连上 Internet,
请问子网掩码设为(D )。(4 分)
A. 255.0.0.0
B. 255.255.0.0
C. 255.255.128.0
D. 255.255.240.0
6、以下哪一个不是关于千兆位以太网的正确描述( C )。(4 分)
A. 数据传输速率为 1000MBit/S
B. 支持全双工传送方式
C. 只能基于光纤实现
D. 帧格式与以太网帧格式相同
3. 设有 98 个已排序元素,采用二分法查找时,最大比较次数是( D )(4 分)
1. 49
2. 15
3. 20
4. 7
4. 高度为 h 的完全二叉树结点数最多有( A )(4 分)
1. 2h-1
2. 2h+1
3. 2h-1
4. 2h+1
5. Hash 表是用于数据存储的一种有效的数据结构,Hash 表的查找复杂度依赖于 Hash 值算
法的有效性,在最好的情况下,Hash 表的查找复杂度为( A );在最坏的情况下,Hsah
表的查找复杂度为( C )(4 分)
1. O(1)
2. O(logn)
3. O(n)
4. O(nlogn)
1. 写出进程的主要状态。(12 分)
运行态(running)(2 分),就绪态(ready)(2 分),等待态(blocked)(2 分),挂
起(suspend)(2 分),新建态(new)(2 分),终止态(exit)(2 分)
1. TCP 为何采用三次握手来建立连接,若采用二次握手可以吗?为什么?(12 分)
三次握手是为了防止已失效的连接请求再次传送到服务器端。 (4 分)
二次握手不可行,(2 分)
因为:如果由于网络不稳定,虽然客户端以前发送的连接请求以到达服务方,但服务方的同
意连接的应答未能到达客户端。则客户方要重新发送连接请求,若采用二次握手,服务方收
到重传的请求连接后,会以为是新的请求,就会发送同意连接报文,并新开进程提供服务,
这样会造成服务方资源的无谓浪费。(6 分)
C++部分(50 分)
1. 设一维整型数组 data 已进行了初始化,则其元素个数可由操作符 sizeof 通过表达
式__________________________计算出来。sizeof(data/data[0]) (2 分)
2. 在继承机制下,当对象消亡时,编译系统先执行________的析构函数,然后再执行
_______的析构函数。子类(2 分)
父类(2 分)
3. 设有“int w[3][4];”,pw 是与数组名 w 等价的数组指针,则 pw 的初始化语句为
____________________ int (* pw)[4]=w; (2 分)
4. 要使引用 pr 代表变量“char * p;”,则 pr 的初始化语句为
_______________
。char * &pr=p;(2 分)
5. 引用与指针有什么区别?(12 分)
1) 当引用被创建时,它必须被初始化。(指针则可以在任何时候被初始化。)(4 分)
2) 一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。(指
针则可以在任何时候指向另一个对象。)(4 分)
3) 不可能有 N U L L 引用。必须确保引用是和一块合法的存储单元关连。(4 分)
6. 请问以下程序将输出什么结果?(16 分)
char *RetMemory(void)
{
char p[] = “hello world”;
return p;
}
void Test(void)
{
char *str = NULL;
str = RetMemory ();
printf(str);
}
可能是乱码。
因为 GetMemory 返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内
容已经被清除,新内容不可知。
7. 程序员规范中要求不要写出类似(++i)+(i++) 或 f(++i,i++)这样的代码,请说明原因。
(12 分)
计算子表达式的顺序由编译器决定的,虽然参数的压栈顺序在给定的调用方式下式固定的,
但参数表达式的计算顺序也由编译器决定的。不同的编译器或不同的表达式计算的顺序可能
不一致。
JAVA 部分(50 分)
1.
方法,该方法必须在抽象类之中定义。
类重新定义的方法。
方法是一种仅有方法头,没有具体方法体和操作实现的
方法是不能被当前类的子
抽象(abstract)方法(2 分)、最终(final)方法(2 分)
2. 以下那个方法声明能够被加入到 Child 类中,编译正确?( )B(4 分)
public class Parent {
public int addValue( int a, int b) { return a+b; }
}
class Child extends Parent {
}
1. int addValue( int a, int b ){// do something…}
2. public void addValue (){// do something…}
3. public void addValue( int b, int a ){// do something…}
D.
public int addValue( int a, int b )throws MyException {//do something…}
3. 设 float x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是(
A(4 分)
)。
A.
C.
3.5
4
B.
D.
3
5
4、在 Java
方法来完成一些画图操作。D(4 分)
Applet 程序用户自定义的 Applet 子类中,一般需要重载父类的(
)
A.
C.
start( )
init( )
E. 以上都不对
B.
stop( )
D.
paint( )
5. 如果一个对象仅仅声明实现了 cloneable 接口,但是不声明 clone 方法,外部能够调用
其 clone 方法吗?( )B(4 分)
1. 能
2. 不能
C. 不确定
6. 方法重载 Overload 和方法的重写 Overriding 的区别。Overloaded 的方法是否可以改变
返回值的类型? (12 分)
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。(2 分)
重写 Overriding 是父类与子类之间多态性的一种表现,(3 分)
重载 Overloading 是一个类中多态性的一种表现。(3 分)
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写
(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定
义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或
有不同的参数类型,则称为方法的重载(Overloading)。Overloaded 的方法是可以改变返回
值的类型。(4 分)
7. 写个程序,要求创建一个文件,写入从键盘输入的一串字符,然后再读该文件并将文件
内容显示在屏幕上。(18 分)
import java.io.*;
class MyFileIo{
public static void main(String args[]){
FileInputStream fin;
FileOutputStream fout;
char ch;
int data;
try{
fin = new FileInputStream(FileDescriptor.in);
fout = new FileOutputStream(“myfile1”);
System.out.println(“请输入一串字符以#结束:”);
while((ch = (char)fin.read()) != ‘#’)
Fout.write(ch);
fin.close();
fou.close();
System.out.print(“”);
fin = new FileInputStream(“myfile1”);
fout = new FileOutpurStream(FileDescriptor.out);
while(fin.available() > 0){
data = fin.read();
fou.write(data);
}
fin.close();
fout.close();
}catch(FileNotFoundException e){
System.out.println(“File not found!”);
}carch(IOException e){}
}
}