ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:118KB ,
资源ID:3171321      下载积分:3 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wnwk.com/docdown/3171321.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(2005年专业课试题及参考答案.doc)为本站会员(a****2)主动上传,蜗牛文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蜗牛文库(发送邮件至admin@wnwk.com或直接QQ联系客服),我们立即给予删除!

2005年专业课试题及参考答案.doc

1、华北计算技术研究所2005年专业课试题及参考答案一、 填空题(20分)1. 算法 是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。它具有5个重要特征: 有穷性 、 确定性 、 可行性 、 输入 、 输出 。2. 一棵非空的二叉树,其第i层上最多有 2i-1 个结点。满二叉树是一棵深度为k且恰好有 2k-1 个结点的二叉树。3. 图的存储结构包括 数组(邻接矩阵) 、 邻接表 、 十字链表 和 邻接多重表 等几种。图的遍历路径包括 深度优先遍历 和 广度优先遍历 。4. 常用的构造哈希函数的方法有 直接定址法 、 数字分析法 、 平方取中法 、 折叠法 、

2、除留余数法 和 随机数法 。二、 选择题(20分)请在你认为正确的答案所对应的字母上画“”。1. 在C语言中,要存储一个8个字符的字符串,至少需要声明大小为多少的一维字符数组? C (A) 7 (B)8 (C)9 (D)102. 两个矩阵A:mn,B:np相乘,其时间复杂度为: B (A) O(n) (B)O(mnp) (C)O(n2) (D)O(n3)3. 下列程序为将一条数据插入栈上:void add(int top,element item) if (top=MAX_STACK_SIZE-1)return stack_full();stack =item;则在stack 的中括号内横线上

3、的正确内容应为: A (A)+*top (B)*top+ (C)*top- (D)*top 4. 有如下函数:void fun(struct node h1,struct node h2)struct node *t;t=h1;while(t-next!=0)t=t-next;t-next=h2;其中形参h1和h2分别指向2个不同链表的第一个结点,此函数的功能是: A (A) 将链表h2接到链表h1后(B) 将链表h1接到链表h2后(C) 找到链表h1的最后一个结点由指针返回(D) 将链表h1拆分成两个链表5. 一个栈的入栈序列是abcde,则栈的不可能输出序列是: C (A)edcba(B)

4、decba(C)dceab(D)abcde 三、 回答问题,并给出理由。(10分)1. 设在一个有关串的程序编码当中,有如下定义与赋值:const char A=a,b,c,0;char B=a,b,c,d,0; for(i=0;inext; pb=B-next;C=A;A-next=null; While( pa!=null & pb!=null)if (pa-datadata)q=pa;pa=pa-next;q-next=C-next;C-next=q;elseq=pb ;pb=pb-next;q-next=C-next;C-next=q;if (pa!=null)while(pa!=nu

5、ll)q=pa ;pa=pa-next;q-next=C-next;C-next=q;if (pb!=null)while(pb!=null)q=pb ;pb=pb-next;q-next=C-next;C-next=q;2. 编写一个算法,对于输入的十进制非负整数,将它的八进制表示打印出来。参考答案:void print_oct(int dec_number)PSeqStack pastack;int temp=dec_number;if (temp0)push_seq(pastack,temp%8);temp/=8;while(!isEmptyStack_seq(pastack)print

6、f(“%d”,top_seq(pastack);pop_seq(pastack);free(pastack);五、 回答以下问题,并给出计算或推理过程。(20分)1. 已知一棵二叉树的中序序列为cbedahgijf,后序序列为cedbhjigfa。给出其先序序列,并画出该二叉树。参考答案:abcdefghij先序序列为abcdefghij。2. 画出对长度为10的有序表进行折半查找的一棵判定树,并求其等概率时查找成功的平均查找长度。参考答案:52134867109等概率时查找成功的平均查找长度为:1/10(1*1+2*2+3*4+4*3)=29/10=2.9六、 已知如图所示的有向图,请给出该

7、图的:(1) 每个顶点的入/出度;(2) 邻接矩阵;(3) 邻接表;(4) 逆邻接表;(5) 强连通分量。(10分)参考答案:(1) 各个顶点的入/出度:顶点123456入度321122出度022313(2) 邻接矩阵000000100100010001001011100000110010(3) 邻接表12345646615125231(4) 逆邻接表12345664264343265(5) 有3个强连通分量512346七、 下图是一个有向图,其中每条弧段上的数字表示该弧段的权值。1. 请用Dijkstra算法计算v0到各点的最短路径(要求给出计算过程)。2. 给出用C语言描述的Dijkstr

8、a算法。(20分)v010010106050305V5V1V2V4V320参考答案:最短路径:始点终点最短路径路径长度v0v1无v2(v0,v2)10v3(v0,v4,v3)50v4(v0,v4)30v5(v0,v4,v3,v5)60用C语言描述的Dijkstra算法:void ShorttestPath_DIJ(MGraph G, int v0, PathMatrix &P, ShortPathTable &D)for(v=0; vG.vexnum; +v)finalv=FALSE; Dv=G.arcsv0v;for(w=0; wG.vexnum; +w)Pvw=FALSE;if(DvINF

9、INITY) pvv0=TRUE; Pvv=TRUE;Dv0=0; finalv0=TRUE;for(i=1; iG.vexnum; +i)min=INFINITY;for(w=0; wG.vexnum; +w)if(!finalw)if(Dwmin)v=w; min=Dw;finalv=TRUE;for(w=0; wG.vexnum; +w)if(!finalw&(min+G.arcsvwDw)Dw= min + G.arcsvw;Pw=Pv; Pww=TRUE;八、 请回答以下有关C+语言的问题。(16分)1. 请比较一下值调用与引用调用的相同点和不同点。参考答案:值调用是指当发生函数调用

10、时,给形参分配内存空间,并用实参来初始化形参(直接将实参的值传递给形参)。这一过程是参数值的单向传递过程,一旦形参获得了值,便与实参脱离了关系,此后无论形参发生了怎样的改变,都不会影响到实参。引用调用将引用作为形参,在执行主调函数中的调用语句时,系统自动用实参来初始化形参。这样形参就成为实参的一个别名,对形参的任何操作也就直接作用于实参。2. 什么叫作抽象类?抽象类有何作用?抽象类的派生类是否一定要给出纯虚函数的实现?参考答案:带有纯虚函数的类是抽象类。抽象类的主要作用是通过它为一个类族建立一个公共的接口,使它们能够更有效地发挥多态特性。抽象类的派生类不一定要给出纯虚函数的实现。3. 什么叫作

11、指针?指针中存储的地址和这个地址中的值有何区别?参考答案:指针是一种数据类型,具有指针类型的变量称为指针变量。指针变量存放的是另外一个对象的地址,这个地址的值就是另一个对象的内容。4. 什么叫拷贝构造函数?拷贝构造函数何时被调用?参考答案:拷贝构造函数是一种特殊的构造函数,其形参是本类的对象的引用,其作用是使用一个已经存在的对象,去初始化一个新的同类的对象。拷贝构造函数在以下三种情况下会被调用:当用类的一个对象去初始化该类的另一个对象时;如果函数的形参是类对象,调用函数进行形参和实参结合时;如果函数的返回值是类对象,函数调用完成返回时。九、 建立基类Building,用来存储一座楼房的层数、房

12、间数以及它的总平方英尺数。建立派生类Housing,继承Building,并存储下面的内容:卧室和浴室的数量。另外,建立派生类OfficeBuilding,继承Building,并存储灭火器和电话的数目。然后,用C+语言编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。(14分)参考答案:#include class Buildingpublic:Buildiing(int f, int r, double ft)floors=f;rooms=r;footage=ft;void Show()cout “ floors:”floorsendl;cout ” rooms:”rooms

13、endl;cout ” total area:”footage endl;protected:int floors;int rooms;int footage;class Housing:public Buildingpublic:Housing(int f, int r,double ft,int bd,int bth):Building(f,r,ft)bedrooms=bd;bathrooms=bth;void Show()cout ” n HOUSING:n”;Building:Show();cout ” Bedrooms:”bedroomsendl;cout ” Bathrooms:”

14、bathroomsendl;private:int bedrooms;int bathrooms;class OfficeBuilding:public BuildingOfficeBuilding(int f,int r,double ft,int ph,int ex)phones=ph;extinguishers=ex;void Show()cout ” n OFFICEBUILDING:n”;Building:Show();cout ” Phones:”phonesendl;cout ” Extinguishers:”extinguishersendl;private:int phones;int extinguishers;void main()Housing hob(5,7,140,2,2);OfficeBiulding oob(8,12,500,12,2);hob.Show();oob.Show();

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2