中兴公司招聘计算机专业应届生笔试试卷第五套
本试卷分三部分,公共部分、C++部分和 JAVA 部分,其中公共部分为必考部分,C++与 JAV
部分,两者选一完成。试卷满分 100 分。
公共部分(50 分)
1:从资源管理(分配)的角度出发,I/O 设备可分为______
_
_____三种类型。(6 分)
_
_、
_______和
独享,共享,虚拟 (顺序可交换)
2:文件的物理组织有顺序、
_______和索引。(2 分)
链接
3:影响局域网络的三种主要技术是
____
、
和
。(6 分)
传输介质、拓扑结构,访问控制方式 (顺序可交换)
4:在 TCP/IP 层次模型中与 OSI 参考模型第四层相对应的主要协议有
____________
传输服。(4 分)
和
,其中后者提供无连接的不可靠
TCP(传输控制协议)和 UDP(用户数据报协议) (顺序可交换)
5:恢复和并发控制的基本单位是_______
事务(2 分)
6:什么是分布式数据库? (6 分)
答:数据库分布在计算机网络的不同计算机上,
网络中的每个节点具有独立处理的能力(场地自治),可以执行局部应用,
同时,每个节点也能通过网络通信子系统执行全局应用。
7:TCP 为何采用三次握手来建立连接,若采用二次握手可以吗?(10 分)
答案:三次握手是为了防止已失效的连接请求再次传送到服务器端。 (2 分)
二次握手不可行,(2 分)
因为:如果由于网络不稳定,虽然客户端以前发送的连接请求以到达服务方,但服务方的同
意连接的应答未能到达客户端。则客户方要重新发送连接请求,若采用二次握手,服务方收
到重传的请求连接后,会以为是新的请求,就会发送同意连接报文,并新开进程提供服务,
这样会造成服务方资源的无谓浪费。(6 分)
8:有一个“职工”表,表结构如下:(14 分)
职工号
1
2
3
…..
姓名
张三
李四
王五
….
年龄 月工资 部门号 电话
办公室
25
26
23
…..
2000
1500
900
……
1
1
2
12345
54321
23456
101
102
201
……. ……
……..
问题:
假设在“职工”表中的“年龄”和“月工资”字段上创建了索引,下列的查询语句可能不会
促使查询优化器使用索引,从而降低了效率,请写出可以完成相同功能又可以提高查询效率
的 SQL 语句
SELECT 姓名,年龄,月工资 FROM 职工
WHERE 年龄 > 45 OR 月工资 <
1000;
SELECT 姓名,年龄,月工资 FROM 职工
WHERE 年龄 > 45
UNION
SELECT 姓名,年龄,月工资 FROM 职工
C++部分(50 分)
WHERE 月工资 <
1000;
1.以下程序段,(4 分)
int c1=1,c2=2,c3;
c3=1/c2*c1;
则执行后,c3 中的值是 A
A) 0
B)0.5
C) 1
D) 2
2.有如下程序(4 分)
main0
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
该程序的输出结果是 A
A) a=2,b=1
a=1,b=0
B) a=1,b=1
C)
D) a=2,b=2
3. 有如下程序(4 分)
main0
{ int x=23;
do
{ printf(“%d”,x–);}
while(!x);
}
该程序的执行结果是 B
A) 321
容
B)23
D) 陷入死循环
C) 不输出任何内
4. 请找出下面代码中的所有错误(14 分)
说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”。
#include”string.h”
main()
{
char*src=”hello,world”;
char* dest=NULL;
int len=strlen(src);
dest=(char*)malloc(len);
char* d=dest;
char* s=src[len];
while(len–!=0)
d++=s–;
printf(“%s”,dest);
return 0;
}
#include”string.h”
#include “malloc.h” //加一行这个
main()
{
char*src=”hello,world”;
char* dest=NULL;
int len=strlen(src);
dest=(char*)malloc(len);
char* d=dest;
char* s=src[len];//改成 char* s=&src[len-1];
while(len–!=0)
{ //加入大括号
*d = *s;
d++;
s–;
}//前面三行改成这样
printf(“%s”,dest);
return 0;
}
5. static 有什么用途?(请至少说明两种)(9 分,每点 3 分)
(1)使得变量或对象的存储形式变成静态存储;
(2)它会把变量的可见范围限制在编译单元中,使它成为一个内部连接;
(3)类中的 static 成员。
6. 在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?(10 分)
C++语言支持函数重载,C 语言不支持函数重载。函数被 C++编译后在库中的名字与 C 语言
的不同。假设某个函数的原型为: void foo(int x, int y);该函数被 C 编译器编译后在
库中的名字为_foo ,而 C++ 编译器则会产生像_foo_int_int 之类的名字。C++提供了 C 连
接交换指定符号 extern“C”来解决名字匹配问题。
(考察点:c 细节)
7. 头文件中的 ifndef/define/endif 干什么用(5 分)
防止该头文件被重复引用。
JAVA 部分(50 分)
1. 在 Java 的基本数据类型中,char 型采用 Unicode 编码方案,每个 Unicode 码占
用
都是占
用
2 、2
字节内存空间,这样,无论是中文字符还是英文字符,
字节内存空间。(4 分)
2.
方法,该方法必须在抽象类之中定义。
类重新定义的方法。(4 分)
方法是一种仅有方法头,没有具体方法体和操作实现的
方法是不能被当前类的子
抽象(abstract)方法、最终(final)方法
3. 设有数组定义:int
执行以下几个语句后的输出结果
是
。 120(4 分)
MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70};
则
int
s = 0 ;
for
( int
i = 0 ; i < MyIntArray.length ; i + + )
if
( i % 2 = = 1 )
s += MyIntArray[i] ;
System.out.println( s );
4、下列哪些关键字既能够被用于局部变量的修饰,也可以用做类变量的修饰()C(4 分)
A. public
B. transient
C. static
D. finally
5. 下面的哪些叙述为真( )D(4 分)
1. equals()方法判定引用值是否指向同一对象。
2. = = 操作符判定两个不同的对象的内容和类型是否一致。
3. equals()方法只有在两个对象的内容一致时返回 true。
D. 类 File 重写方法 equals()在两个不同的对象的内容和类型一致时返回 true。
6 . Java 有没有 goto? &和&&的区别。(8 分)
Goto 是 java 中的保留字,现在没有在 java 中使用。
&是位运算符。&&是布尔逻辑运算符。
7. 按照下图写出代码。(22 分)
Public class JCheckbocDemo{
Public static void main(String agrs[]){
Container con = new JFrame(“JCheckBox 演示窗口”);
Panel panel1= new Panel();
Panel panel2= new Panel();
ButtonGroup sex = new ButtonGroup(); //定义性别单选框
JRadioButton box1 = new JRadioButton(“男”,true);
JRadioButton box2 = new JRadioButton(“女”,false);
sex.add(box1);
sex.add(box2);
panel1.add(box1);
panel2.add(box2);
JCheckBox box3 = new JCheckBox(“计算机”,false); //定义系别复选框
JCheckBox box4 = new JCheckBox(“英语”,true);
panel2.add(box3);
panel2.add(box4);
myframe.setSize(300,300);
con.setLayout(new BoxLlayout(con,BoxLayout.Y_AXIS)); //设置窗体布局
con.add(new Label(“性别选择:”));
con.add(panel1);
con.add(new Label(“系别选择:”));
con.add(panel2);
myframe.show();
}
}