中兴公司招聘计算机专业应届生笔试试卷第七套
本试卷分三部分,公共部分、C++部分和 JAVA 部分,其中公共部分为必考部分,C++与 JAV
部分,两者选一完成。试卷满分 100 分。
公共部分(50 分)
1:当数据库损坏时可以利用_____和______有效的恢复数据库
转储,日志(4 分)
2:数据库系统的核心是_______数据库管理系统或 DBMS(2 分)
3:#include
和 #include “filename.h” 有什么区别?(6 分)
对于#include
,编译器从标准库路径开始搜索 filename.h
对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
4:编写一个宏,输入 2 个参数,输出结果为两个参数的积(6 分)
考察定义宏时,是否添加 括号,分号等。
#define
TIMES(a,b)
((a)*(b))
5:写出进程的主要状态。(12 分,每点 2 分)
运行态(running),就绪态(ready),等待态(blocked),挂起(suspend),新建态(new),
终止态(exit)
6:简要说明电路交换和存储器转发交换这两面种交换方式,并加以比较。(12 分,每点 6 分)
电路交换是一种直接的交换方式,它为一对需要进行通信的装置(站)之间提供一条临时的
专用通道,即提供一条专用的传输通道,即可是物理通道又可是逻辑通道(使用时分或频分
复用技术)。这条通道是由节点内部电路对节点间传输路径经过适当选择、连接而完成的,
由多个节点和多条节点间传输路径组成的链路,例如,目前公用电话网广泛使用的交换方式
是电路交换。
存储转发交换方式又可以分为报文存储转发交换与报文分组存储转发交换,报文分组存储转
发交换方式又可以分为数据报与虚电路方式。分组交换属于“存储转发”交换方式,但它不
像报文交换那样以报文为单位进行交换、传输,而是以更短的、标准的“报文分组”(packet)
为单位进行交换传输。分组经过通信网络到达终点有 2 种方法:虚电路和数据报。
与电路交换相比,报文交换方式不要求交换网为通信双方预先建立,条专用的数据通路,因
此就不存在建立电路和拆除电路的过程。
7:主键和唯一索引的区别(8 分,每点 2 分)
A 主键顺序为数据的物理顺序
B 主键不能空,唯一索引可以为空
C 主键每个表只能有一个,唯一索引可以多个
D 主键:默认将是聚簇索引 唯一索引: 默认将是非聚簇索引
C++部分(50 分)
1. 下列程序执行后的输出结果是 B(4 分)
main()
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=0; i<9; i++) p[i]=i+1;
printf(“%d \n”,a[1][2]);
}
A) 3
B)6
C) 9
D) 随机数
2. 设有以下说明语句 B(4 分)
struct ex
{ int x ; float y; char z ;} example;
则下面的叙述中不正确的是
A) struct 是结构体类型的关键字
C) x,y,z 都是结构体成员名
B) example 是结构体类型名
D) struct ex 是结构体类型
3.以下程序运行后,输出结果是 C(4 分)
main()
{ char *s=”abcde”;
s+=2;
printf(“%ld\n”,s);
}
A) cde
出错
B) 字符 c 的 ASCII 码值
C) 字符 c 的地址
D)
4. 软件能力成熟度模型 CMM 共分为(
)成熟度等级 C(4 分)
1. 3
2. 4
3. 5
D.
6
5. 析构函数什么时候运行,它主要作什么工作?(8 分)
在对象被释放的时候运行,主要是清楚对象占用的资源
6. 请问以下程序将输出什么结果?(18 分)
char *RetMemory(void)
{
char p[] = “hello world”;
return p;
}
void Test(void)
{
char *str = NULL;
str = RetMemory ();
printf(str);
}
可能是乱码。
因为 GetMemory 返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内
容已经被清除,新内容不可知。
7. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?(8 分)
有(2 分),全局变量存放在数据区(3 分),局部变量保存在堆栈区(3 分)
JAVA 部分(共 50 分)
1. 如果需要把一个对象添加到 HashMap 中,那么该对象至少需要重载 Object 的哪些方法( )
B(4 分)
1. clone 和 equals
2. hashCode 和 equals
3. hashCode 和 clone
4. finalize 和 clone
2. 请判断下面的代码片段的执行结果:()C(4 分)
void func(int a, String b, String c) {
a = a + 1;
b.trim();
c = b;
}
public static void main(String[] args) {
int a = 0;
String b = “Hello
World”;
String c = “OK”;
func(a, b, c);
System.out.println(“” + a + “, ” + b + “, ” + c);
}
World, OK
1. 0, Hello
2. 1, HelloWorld, HelloWorld
3. 0,HelloWorld,OK
4. 1, Hello
World, Hello World
3. 请问以下陈述那项是正确的( )A(4 分)
1. 当一个对象不可到达时,该对象可以被垃圾回收器回收
2. 只有当没有任何引用指向一个对象时,该对象才能够被回收
3. 一个对象的 finalize 方法可能被垃圾回收器多次调用
4. finalize 方法只能够被垃圾回收器调用
4、以下哪项陈述是正确的( )E(4 分)
1. 垃圾回收线程的优先级很高,以保证不再使用的内存将被及时回收
2. 垃圾收集允许程序开发者明确指定释放哪一个对象
3. 垃圾回收机制保证了 JAVA 程序不会出现内存溢出
4. 进入”Dead”状态的线程将被垃圾回收器回收
5. 以上都不对
5. 以下程序的执行结果是( ) D(4 分)
class A
{
public int n;
public String str;
}
class B
{
public A[] a;
public B()
{
a = new A[10];
}
}
class Test
{
public static void main( String[] args )
{
B b = new B();
b.a[0].n = 1;
b.a[0].str = “2″;
System.out.println( b.a[0].str + b.a[0].n );
}
}
A. 编译错误
B. 21
C. 3
D. 产生 NullPointerException
E. 产生 ClassCastException
6. 谈谈作用域 public,private,protected,以及不写时的区别?(12 分)
当前类 同一 package 子孙类 其他 package
√
作用域
public
protected √
friendly
private
不写时默认为 friendly
√
√
√
√
√
×
√
√
×
×
×
√
×
×
7. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的
字符串。 但是要保证汉字不被截半个,如“我 ABC”4,应该截为“我 AB”,输入“我 ABC
汉 DEF”,6,应该输出为“我 ABC”而不是“我 ABC+汉的半个”。(18 分)
package test;
class SplitString {
String SplitStr;
int SplitByte;
public SplitString(String str,int bytes){
SplitStr=str;
SplitByte=bytes;
System.out.println(“The String is:′”+SplitStr+”′;SplitBytes=”+SplitByte);
}
public void SplitIt() {
int loopCount;
loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(Split
Str.length()/SplitByte+1);
System.out.println(“Will Split into “+loopCount);
for (int i=1;i<=loopCount ;i++ ) {
if (i==loopCount){
System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));
}
else {
System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));
}
}
}
public static void main(String[] args) {
SplitString ss = new SplitString(“test 中 dd 文 dsaf 中男大 3443n 中国 43 中国人
0ewldfls=103″,4);
ss.SplitIt();
}
}