浪潮笔试题目.docx
《浪潮笔试题目.docx》由会员分享,可在线阅读,更多相关《浪潮笔试题目.docx(13页珍藏版)》请在冰豆网上搜索。
浪潮笔试题目
浪潮软件研发B卷(60分钟)
注:
对于有C和JAVA选择的试题,考生可以选择其中一种解答,请在答题卡中标明。
即选择
C语言试题解答,则解答的JAVA试题不计分;选择JAVA语言,解答的C语言试题不计分。
一、填空题,共52分,每空2分
1.在计算机中,最适合进行数字加减运算的数字编码是,最适合表示浮点数阶码的数字编
码是。
2.如果主存容量为16M字节,且按字节编址,表示该主存地址至少应需要—位。
3.中断响应时间是指。
4.表达式a*(b+c)-d的后缀表达形式为。
5.若二叉树的先序遍历序列为ABDECF中序遍历序列DBEAFC则其后序遍历序列为
6.以比较为基础的排序算法在最坏情况下的计算时间下界为。
7.若广义表L=((1,2,3)),则L的深度为。
8.某双向链表中的结点如下图所示,删除t所指结点的操作为
prior
data
next
9.在存储结构中,数据结构中元素的存储地址与其关键字之间存在某种映射关系。
10.在TCP/IP网络中,为各种公共服务保留的端口号范围是。
传统7层指的是:
物理层、数据链路层、、传输层、话路层、和应用层。
12.关系模式R(U,F),其中U=(W,X,Y,Z),F={WX「Y,W-X,XZ,yVw}。
关系模式R的候选
码是,是无损连接并保持函数依赖的分解。
13.软件设计的主要任务是设计软件的结构、过程和模块,其中软件结构设计的主要任务是要
确定。
14.常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。
其中模型适
用于需求明确或很少变更的项目,模型主要用来描述面向对象的软件开发过程。
15.在UML提供的图中,用于描述系统与外部系统及用户之间的交互;用于按时
间顺序描述对象间的交互。
【C语言】:
16.设有定义语句int(*f)(int);则f是。
17.函数调用语句:
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)))中func函数
的实参个数是。
18.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式
是,若要求将a的高4位取反,低4位不变,所要执行运算是。
19.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为
。
20.已有定义:
double*p;请写出完整的语句,利用malloc函数使p指向一个双精度型的动态
存储单元。
程序经过编译、步骤之后才能形成一个真正可执行的二进制机器指令文件。
【JAVA】:
是字节流;BufferedWriter是字符流;ObjectOutputStream是。
17•保证JAVA语言可移植性的特征是。
18.如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,请写出该类的声明
头:
。
19.在java中,用package语句说明一个包时,该包的层次结构必须与相同。
20.在java中,能实现多重继承效果的方式是。
21.线程在生命周期中要经历5状态,分别是新建状态、可运行状态、运行状态、状态
和终止状态。
二、选择题,共8分,每空1分
1.采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为。
2.在C++中,下列函数不能重载。
3.下面程序段的时间复杂度为。
For(inti=0;iFor(intj=0;j(m2)(n2)(m*n)(m+n)
4.如果事务T获得了数据项Q上的排它锁,则T对Q。
A.只能读不能写B.只能写不能读
C.既可读又可写D.不能读不能写
5.一进程刚获得三个主存块的使用权,若该进程访问页面的次序是訂,采用LRU算法时,缺
页数是次。
在下面的两个关系中,职工号和部门号分别为职工关系和部门关系的主键(或称主码)职工(职工号、职工名、部门号、职务、工资)
部门(部门号、部门名、部门人数、工资总额)在这两个关系的属性中,只有一个属性是外键(或称外来键、外码、外来码),它是
A.职工关系的“职工号”B.职工关系的“部门号”
C•部门关系的“职工号”D.部门关系的“部门号”
7.某二叉树的前序和后序序列正好相反,则该二叉树一定是的二叉树。
A.空或只有一个节点B.高度等于其节点数
C.任一结点无左孩子D.任意节点无右孩子
8.有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼数,它的带权路径长度为。
三、问答题(共10分)
1.接口是否可继承接口抽象类是否可实现接口抽象类是否可继承实体类(共3分)
和UDP的区别(共2分)
3.列举面向对象的特征,并介绍主流面向对象语言中数据类型的分类及该类型存储位置之间区
别(共5分)
四、程序题,共30分
1•阅读以下说明和C程序,将应填入_(n)_处的字句写在答题纸对应栏内。
(共10分、每空2
分)
说明:
假设需要将N个任务分配给N个工人同时去完成,每个人都能承担这N个任务,但费用
不同。
下面的程序用回溯法计算总费用最小的一种工作分配方案,在该方案中,为每个人
分配1个不同的任务。
程序中,N个任务从0开始依次编号,N个工人也从0开始依次编号,主要的变量说明如下:
C[i][j]:
将任务i分配给工人j的费用;
task[i]:
值为0表示任务i未分配,值为j表示任务i分配给工人j;
worker[k]:
值为0表示工人k未分配任务,值为1表示工人k已分配任务;mincost:
最小总费用。
【C程序】
#include<>
#defineN8/*N表示任务数和工人数*/
Intc[N][N];
unsignedintmincost=65535;/*设置的初始值,大于可能的费用*/
inttask[N],temp[N],worker[N];
voidplan(intk,unsignedintcost)
{intI;
if(__
(1)__&&costmincost=cost;
for(i=0;ielse{
for(i=0;iif(worker[i]==0&&___
(2)__){
worker[i]=1;task[k]=__(3)__;
Plan(__(4)__,cost+c[k][i]);
__(5)__;task[k]=0;
}/*if*/
}
}/*Plan*/
voinmain()
{intI,j;
for(i=0;ifor(j=0;jscanf(“%d”,&c[i][j]);
}
Plan(0,0)/*从任务0开始分配*/
printf(“\n最小差用=%d\n”,mincost);
for(i=0;iprintf(“Task%isassignedtoWorker%d\n”,I,temp[i])
}/*main*/
2.阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
(共10分)说明:
某宾馆需要建立一个住房管理系统,部分的需求分析结果如下:
(1)一个房间有多个床位,同一房间内的床位具有相同的收费标准。
不同房间的床位收费标准可能不同。
(2)每个房间有房间号(如201、202等)、收费标准、床位数目等信息。
(3)每位客人有身份证号码、姓名、性别、出生日期和地址等信息。
(4)对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额日期。
(5)管理系统可查询出客人所住房间号。
根据以上的需求分析结果,设计一种关系模型如图2-1所示:
房间
客人
1)根据上述说明和实体-联系图,得到该住房管理系统的关系模式如下所示,请补充住宿关系。
(2分)
房间(房间号,收费标准,床位数目)
客人(身份证号,姓名,性别,出生日期,地址)
住宿(、,入住日期,退房日期,预付款额)
2)请给出问题1住宿关系的主键和外键。
(2分)
3)若将上述关系直接实现为对应的物理表,现需查询在2005年1月1日到2005年12月31日
期间,在该宾馆住宿次数大于5次的客人身份证号,并且按照入住次数进行降序排列。
下面
是实现该功能的SQL语句,请填补语句中的空缺。
(3分)
SELECT主宿•身份证号,count(入住日期)FROMf主宿,客人
WHER入住日期>=AND入住日期<=
AND主宿•身份证号=客人•身份证号
GROUPBY_
(2)_
_(3)_count(入住日期)>5
_(4)_
4)为加快SQL语句的执行效率,可在相应的表上创建索引。
根据问题3中的SQL语句,除主键
和外键外,还需在那个表的的哪些属性上创建索引,应该创建什么类型的索引,请说明原因。
(3分)
3.完成下列的快速排序算法,可以选择C或JAVA部分解答。
(10分)
【C]:
intpartitions(inta[],intlow,inthigh)voidquicksort(inta[],intn)
{intpivotkey=a[low];{(5);
计算机中,最适合进行数字加减运算的数字编码是_补码—,最适合表示浮点数阶码的数字编
码是移码。
浮点数是属于中某特定的数的数字表示,在计算机中用以近似表示任意某个。
具体的说,这个实数由一个或(即)乘以某个基数(计算机中通常是2)的整数次幕得到,这种表示方法类似于基数为10的。
2.如果主存容量为16M字节,且按字节编址,表示该主存地址至少应需要_24_位。
■中断响应时间是指计算机接收到中断信号到操作系统做出响应,并完成切换进入中
断服务程序的时间。
[数据结构]4.表达式a*(b+c)-d的后缀表达形式为abc+*d-。
[数据结构]5.若二叉树的先序遍历序列为ABDECF中序遍历序列DBEAFC则其后序遍历序列
为DEBFCAq
6.以比较为基础的排序算法在最坏情况下的计算时间下界为_
屮广义表L=((1,2,3)),则L的深度为。
8.某双向链表中的结点如下图所示,删除t所指结点的操作为
t
prior
next
data
[数据结构】9!
在存储结构中,数据结构中元素的存储地址与其关键字之间存在某种映射
关系。
10.在tcp/ip网络中,为各种公共服务保留的端口号范围是_1~1023__。
传统7层指的是:
物理层、数据链路层、—网络层_、传输层、话路层、_表示层和应用
层。
12.关系模式R(U,F),其中U=(W,X,Y,Z),F={WX「Y,W-X,XZ,yVw}。
关系模式R的候选
码是,是无损连接并保持函数依赖的分解。
13.软件设计的主要任务是设计软件的结构、过程和模块,其中软件结构设计的主要任务是要
确定。
14.常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。
其中模型适
用于需求明确或很少变更的项目,模型主要用来描述面向对象的软件开发过程。
15.在UML提供的图中,用于描述系统与外部系统及用户之间的交互;用于按时
间顺序描述对象间的交互。
【C语言】:
16.|设有定义语句int(*f)(int);则f是。
17.|函数调用语句:
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)))中func函数
的实参个数是。
18.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式
是,若要求将a的高4位取反,低4位不变,所要执行运算是。
19.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为
20.已有定义:
double*p;请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元。
程序经过编译、步骤之后才能形成一个真正可执行的二进制机器指令文件。
二、选择题,共8分,每空1分
1|采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为。
■C++中,下列函数不能重载。
3^面程序段的时间复杂度为。
For(inti=0;iFor(intj=0;ja[i][j]=i*j;
(m2)(n2)(m*n)(m+n)
4|如果事务T获得了数据项Q上的排它锁,则T对Q。
A.只能读不能写B.只能写不能读
C.既可读又可写D.不能读不能写
5.一进程刚获得三个主存块的使用权,若该进程访问页面的次序是訂,采用LRU算法时,缺
页数是次。
在下面的两个关系中,职工号和部门号分别为职工关系和部门关系的主键(或称主码)职工
(职工号、职工名、部门号、职务、工资)
部门(部门号、部门名、部门人数、工资总额)
在这两个关系的属性中,只有一个属性是外键(或称外来键、外码、外来码),它是
A.职工关系的“职工号”B.职工关系的“部门号”
C•部门关系的“职工号”D.部门关系的“部门号”
■二叉树的前序和后序序列正好相反,则该二叉树一定是的二叉树。
A.空或只有一个节点B.高度等于其节点数
C.任一结点无左孩子D.任意节点无右孩子
8.有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼数,它的带权路径长度为
。
三、问答题(共10分)
1.接口是否可继承接口抽象类是否可实现接口抽象类是否可继承实体类(共3分)
和UDP的区别(共2分)
3.列举面向对象的特征,并介绍主流面向对象语言中数据类型的分类及该类型存储位置之间区别(共5分)
四、程序题,共30分
1.|阅读以下说明和C程序,将应填入_(n)_处的字句写在答题纸对应栏内。
(共10分、每空2
分)
说明:
假设需要将N个任务分配给N个工人同时去完成,每个人都能承担这N个任务,但费用
不同。
下面的程序用回溯法计算总费用最小的一种工作分配方案,在该方案中,为每个人
分配1个不同的任务。
程序中,N个任务从0开始依次编号,N个工人也从0开始依次编号,主要的变量说明如下:
C[i][j]:
将任务i分配给工人j的费用;
task[i]:
值为0表示任务i未分配,值为j表示任务i分配给工人j;
worker[k]:
值为0表示工人k未分配任务,值为1表示工人k已分配任务;
mincost:
最小总费用。
【C程序】
#include<>
#defineN8/*N表示任务数和工人数*/Intc[N][N];
unsignedintmincost=65535;/*设置的初始值,大于可能的费用*/inttask[N],temp[N],worker[N];
voidplan(intk,unsignedintcost)
{intI;
if(__
(1)__&&costmincost=cost;
for(i=0;ielse{
for(i=0;iif(worker[i]==0&&___
(2)__){
worker[i]=1;task[k]=__(3)__;
Plan(__(4)__,cost+c[k][i]);
__(5)__;task[k]=0;
}/*if*/
}
}/*Plan*/
voinmain()
{intI,j;
for(i=0;ifor(j=0;jscanf(“%d”,&c[i][j]);
}
Plan(0,0)/*从任务0开始分配*/
printf(“\n最小差用=%d\n”,mincost);
for(i=0;iprintf(“Task%isassignedtoWorker%d\n”,I,temp[i])
}/*main*/
2•阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
(共10分)
说明:
某宾馆需要建立一个住房管理系统,部分的需求分析结果如下:
(1)一个房间有多个床位,同一房间内的床位具有相同的收费标准。
不同房间的床位收费标准可能不同。
(2)每个房间有房间号(如201、202等)、收费标准、床位数目等信息。
(3)每位客人有身份证号码、姓名、性别、出生日期和地址等信息。
(4)对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额日期。
(5)管理系统可查询出客人所住房间号。
根据以上的需求分析结果,设计一种关系模型如图2-1所示:
1)根据上述说明和实体-联系图,得到该住房管理系统的关系模式如下所示,请补充住宿关系。
(2分)
房间(房间号,收费标准,床位数目)客人(身份证号,姓名,性别,出生日期,地址)
住宿(、,入住日期,退房日期,预付款额)
2)请给出问题1住宿关系的主键和外键。
(2分)
3)若将上述关系直接实现为对应的物理表,现需查询在2005年1月1日到2005年12月31日
期间,在该宾馆住宿次数大于5次的客人身份证号,并且按照入住次数进行降序排列。
下面
是实现该功能的SQL语句,请填补语句中的空缺。
(3分)
SELECT主宿•身份证号,count(入住日期)FROMf主宿,客人
WHER入住日期>=AND入住日期<=
AND主宿.身份证号=客人.身份证号
GROUPBY_
(2)_
_(3)_count(入住日期)>5
_(4)_
4)为加快SQL语句的执行效率,可在相应的表上创建索引。
根据问题3中的SQL语句,除主键
和外键外,还需在那个表的的哪些属性上创建索引,应该创建什么类型的索引,请说明原因。
(3分)
3.完成下列的快速排序算法,可以选择C或JAVA部分解答。
(10分)
【C]:
intpartitions(inta[],intlow,inthigh)voidquicksort(inta[],intn)
{intpivotkey=a[low];{(5);
〃a[0]=a[low];}
While(low
{while(___
(1)___)//#include<>
--high;#include””//存放于个人函
a[low]=a[high];数库中
while(___
(2)___)main()
++low;{inta[high]=a[low];i,a[11]={0,11,12,5,6,13,8,9,14,7,10};
}for(i=0;i<11;printf(“%3d”,a[i]),++i);
//a[low]=a[0];printf(“\n”);
a[low]=pivotkey;quicksort(a,10);
returnlow;for(i=0;i<11;printf(“%3d”,a[i]),++i);
}printf(“\n”);
voidqsort(inta[],intlow,inthigh)}
{intpivottag;
if(___(3)___)
{//递归调用
pivottag=___(4)___;
qsort(a,low,pivottag-1);
qsort(a,pivottag+1,high);
}
}