程序员笔试题浪潮软件研发B卷Word文档格式.docx

上传人:b****3 文档编号:16447079 上传时间:2022-11-23 格式:DOCX 页数:9 大小:28.66KB
下载 相关 举报
程序员笔试题浪潮软件研发B卷Word文档格式.docx_第1页
第1页 / 共9页
程序员笔试题浪潮软件研发B卷Word文档格式.docx_第2页
第2页 / 共9页
程序员笔试题浪潮软件研发B卷Word文档格式.docx_第3页
第3页 / 共9页
程序员笔试题浪潮软件研发B卷Word文档格式.docx_第4页
第4页 / 共9页
程序员笔试题浪潮软件研发B卷Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

程序员笔试题浪潮软件研发B卷Word文档格式.docx

《程序员笔试题浪潮软件研发B卷Word文档格式.docx》由会员分享,可在线阅读,更多相关《程序员笔试题浪潮软件研发B卷Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

程序员笔试题浪潮软件研发B卷Word文档格式.docx

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中的数据用二进制表示的形式是11110000,若要求将a的高4位取反,低4位不变,所要执行运算是______。

19.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为____________。

20.已有定义:

double*p;

请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。

21.C程序经过编译、______步骤之后才能形成一个真正可执行的二进制机器指令文件。

【JAVA】:

16.FileInputStream是字节流;

BufferedWriter是字符流;

ObjectOutputStream是____________。

17.保证JAVA语言可移植性的特征是____________。

18.如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,请写出该类的声明头:

______。

19.在java中,用package语句说明一个包时,该包的层次结构必须与______相同。

20.在java中,能实现多重继承效果的方式是______。

21.线程在生命周期中要经历5状态,分别是新建状态、可运行状态、运行状态、______状态和终止状态。

二、选择题,共8分,每空1分

1.采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为______。

2.在C++中,下列函数______不能重载。

3.下面程序段的时间复杂度为______。

For(inti=0;

i<

m;

i++)

For(intj=0;

j<

n;

j++)

a[i][j]=i*j;

A.O(m2)B.O(n2)C.O(m*n)D.O(m+n)

4.如果事务T获得了数据项Q上的排它锁,则T对Q______。

A.只能读不能写B.只能写不能读

C.既可读又可写D.不能读不能写

5.一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数是______次。

A.3B.4C.5D.6

6.在下面的两个关系中,职工号和部门号分别为职工关系和部门关系的主键(或称主码)职工(职工号、职工名、部门号、职务、工资)

部门(部门号、部门名、部门人数、工资总额)

在这两个关系的属性中,只有一个属性是外键(或称外来键、外码、外来码),它是______

A.职工关系的“职工号”B.职工关系的“部门号”

C.部门关系的“职工号”D.部门关系的“部门号”

7.某二叉树的前序和后序序列正好相反,则该二叉树一定是_______的二叉树。

A.空或只有一个节点B.高度等于其节点数

C.任一结点无左孩子D.任意节点无右孩子

8.有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼数,它的带权路径长度为_______。

A.24B.71C.48D.53

三、问答题(共10分)

1.接口是否可继承接口?

抽象类是否可实现接口?

抽象类是否可继承实体类?

(共3分)

2.TCP和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<

stdio.h>

#defineN8/*N表示任务数和工人数*/

Intc[N][N];

unsignedintmincost=65535;

/*设置的初始值,大于可能的费用*/

inttask[N],temp[N],worker[N];

voidplan(intk,unsignedintcost)

{intI;

if(__

(1)__&

&

cost<

mincost){

mincost=cost;

for(i=0;

i<

N;

i++)temp[i]=task[i];

}

else{

i++)/*分配任务k*/

if(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;

i++){/*设置每个人任务由不同工人承担时的费用及全局数组的初值*/

worker[i]=0;

task[i]=0;

temp[i]=0;

for(j=0;

j<

j++)

scanf(“%d”,&

c[i][j]);

Plan(0,0)/*从任务0开始分配*/

printf(“\n最小差用=%d\n”,mincost);

i++)

printf(“Task%isassignedtoWorker%d\n”,I,temp[i])

}/*main*/

2.阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。

(共10分)

说明:

某宾馆需要建立一个住房管理系统,部分的需求分析结果如下:

(1)一个房间有多个床位,同一房间内的床位具有相同的收费标准。

不同房间的床位收费标准可能不同。

(2)每个房间有房间号(如201、202等)、收费标准、床位数目等信息。

(3)每位客人有身份证号码、姓名、性别、出生日期和地址等信息。

(4)对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额日期。

(5)管理系统可查询出客人所住房间号。

根据以上的需求分析结果,设计一种关系模型如图2-1所示:

mn

图2-1住房管理系统的实体联系图

1)根据上述说明和实体-联系图,得到该住房管理系统的关系模式如下所示,请补充住宿关系。

(2分)

房间(房间号,收费标准,床位数目)

客人(身份证号,姓名,性别,出生日期,地址)

住宿(______、_______,入住日期,退房日期,预付款额)

2)请给出问题1住宿关系的主键和外键。

3)若将上述关系直接实现为对应的物理表,现需查询在2005年1月1日到2005年12月31日期间,在该宾馆住宿次数大于5次的客人身份证号,并且按照入住次数进行降序排列。

下面是实现该功能的SQL语句,请填补语句中的空缺。

(3分)

SELECT住宿.身份证号,count(入住日期)FROM住宿,客人

WHERE入住日期>

=‘20050101’AND入住日期<

=‘20051231’

AND住宿.身份证号=客人.身份证号

GROUPBY_

(2)_

_(3)_count(入住日期)>

5

_(4)_

4)为加快SQL语句的执行效率,可在相应的表上创建索引。

根据问题3中的SQL语句,除主键和外键外,还需在那个表的的哪些属性上创建索引,应该创建什么类型的索引,请说明原因。

3.完成下列的快速排序算法,可以选择C或JAVA部分解答。

(10分)

【C】:

intpartitions(inta[],intlow,inthigh)voidquicksort(inta[],intn)

{intpivotkey=a[low];

{___(5)___;

//a[0]=a[low];

While(low<

high)#include<

{while(___

(1)___)//#include<

math.h>

--high;

#include”myfunc.h”//存放于个人函

a[low]=a[high];

数库中

while(___

(2)___)main()

++low;

{int

a[high]=a[low];

i,a[11]={0,11,12,5,6,13,8,9,14,7,10};

}for(i=0;

11;

printf(“%3d”,a[i]),++i);

//a[low]=a[0];

printf(“\n”);

a[low]=pivotkey;

quicksort(a,10);

returnlow;

}printf(“\n”);

voidqsort(inta[],intlow,inthigh)}

{intpivottag;

if(___(3)___)

{//递归调用

pivottag=___(4)___;

qsort(a,low,pivottag-1);

qsort(a,pivottag+1,high);

}

【JAVA】:

/**

*快速排序

*/

Publicstaticvoidmain(String[]args){

Randomrandom=newRandom();

Int[]pDtat=newint[10];

For(inti=0;

pData.length;

i++){//随即生产10个随机数

Integera=random.nextInt(100);

pData[i]=a;

System.out.print(pData[i]+””);

System.out.print();

Intleft=0;

Intright=pData.length-1;

(1)

for(inti=0;

i++){

System.out.println();

Publicstaticint[]Sort(int[]pData,intleft,intright){

Intmiddle,strTemp;

Inti=left;

Intj=right;

Middle=

(2);

do{

While((3))

I++;

While((4))

j--;

if(i<

=j){

strTemp=pData[i];

pData[i]=pData[j];

pData[j]=strTemp;

i++;

For(intk=0;

k<

k++){

System.out.print(pData[k]+””);

}while((5));

//如果两边扫描的下标交错,完成一次排序

If(left<

j)

Sort(pData,left,j);

//递归调用

If(right>

i)

Sort(pData,i,right);

ReturnpData;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1