当前位置:问答库>考研试题

2017年南京大学2307生物医学工程专业综合之数据结构(C语言版)考研复试核心题库

  摘要

一、应用题

1. 某主机的MAC 地址为00-15-C5-C1-5E-28, IP 地址为10.2.128.100 (私有地址)。题a 图是网络拓扑,题b 图是该主机进行Web 请求的1个以太网数据帧前80个字节的十六进制及ASCII 码内容。

题a 图网络拓扑

题b 图以太网数据帧(前80字节)

请参考图中的数据回答以下问题。

(1)Web 服务器的IP 地址是什么? 该主机的默认网关的MAC 地址是什么?

(2)该主机在构造题47-b 图的数据帧时,使用什么协议确定目的MAC ±也址? 封装该协议请求报文的以太网帧的目的MAC 地址是什么?

(3)假设HTTP/1.1协议以持续的非流水线方式工作,以此请求一响应时间为RTT ,rfc.html 页面引用了5个JPEG 小图像,则从发出题b 图中的Web 请求开始到浏览器收到全部内容为止,需要多少个RTT?

(4)该帧所封装的IP 分组经过路由器R 转发时,需修改IP 分组头中的哪些字段? 注:以太网数据帧结构和IP 分组头结构分别如题c 图、题d 图所示。

题c 图以太网帧结构

题d 图IP 分组头结构

【答案】(1)以太网的数据部分是IP 数据报,只要找出相应字段所在的字节即可。根据图47-c 可知以太网头部 有6+6+2=14字节,根据图47-d 可知IP 地址有16字节,从图47-b 第一个字节开始数14+16 = 30字节,得目的IP 地址为40.aa.62.20即64.170.98.32。而以太网帧的前6字节00-21-27-21-51-ee 是目的MAC 地址,即为主机的 默认网关10.2.128.1端口的MAC 地址。

(2)该主机在构造题47-b 图的数据帧时,使用ARP 协议确定目的MAC 地址。封装该协议请求报文的以太网帧的目的MAC 地址是广播地址即FF-FF-FF-FF-FF-FF 。

(3)假设HTTP/1.1协议以持续的非流水线方式工作,客户机在收到前一个请求的响应后才能发出下一个请求。第一个RTT 用于请求Web 页面,客户机收到第一个请求的响应后,每访问一次对象就需一个RTT 。rfc.html 页面引用了5个JPEG 小图像,则从发出题47-b 图中的Web 请求开始到浏览开始到浏览器受到全部内容为止,故共需1+5 = 6个RTT 后浏览器收到全部内容。

(4)私有地址要和Internet 上的主机通信时,须由NAT 路由器进行网络地址转换,转换为一

IP 数据报没经过一个路由器,个全球IP 地址。生存时间TTL 值就减少1,并重新计算首部校验和。

所以需修改的信息有源IP 地址,头部校验和,生存时间。

2010年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专此基础综合真题及详解

2. 在采用线性探测法处理冲突的哈希表中,所有同义词在表中是否一定相邻?

【答案】不一定相邻。哈希地址为的关键字,和为解决冲突形成的探测序列f 的同义词,都争夺哈希地址i 。

3. 设有正文AADBAACACCDACACAAD ,字符集为A , B , C , D , 设计一套二进制编码,使得上述正文的编码最短。

A :1, B :000,C :01,D :001。 【答案】字符A , B , C , D 出现的次数为9, 1, 5, 3。其哈夫曼编码如下:

4. 已知一个带有表头结点的单链表,结点结构为datalink , 假设该链表只给出了头指针list 。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k 个位置上的结点(k 为正整数)。若查找成功,算法输出该结点的data 域的值,并返回1; 否则,只返回0。要求:

(1)描述算法的基本设计思想;

(2)描述算法的详细实现步骤;

(3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C 或

,关键之处请给出简要注释。 现)

【答案】(1)算法的基本设计思想定义两个指针变量p 和q ,初始时均指向头结点的下一个结点。p 指针沿链表移动;当p 指针移动到第k 个结点时,q 指针开始与p 指针同步移动;当p 指针移动到链表最后一个结点时,因为p 和q 相隔k ,故q 指针所指元素为倒数第k 个结点。以上过程对链表仅进行一遍扫描。

(2)算法的详细实现步骤

①count=0, p 和q 指向链表表头结点的下一个结点;

②若p 为空,转⑤; ,

③若count 等于k ,则q 指向下一个结点;否则,count=count+l;

④p 指向下一个结点,转步骤②;

⑤若count 等于k ,则查找成功,输出该结点的data 域的值,返回1; 否则,查找失败,返回0;

⑥算法结束。

(3)算法实现

5. 对一个有t 个非零元素的矩阵,用的数组来表示,其中第0行的三个元素分或JA V A 语言实别为m ,n ,t ,从第一行开始到最后一行,每行表示一个非零元素;第一列为矩阵元素的行号,第二列为其列号,第三列为其值。对这样的表示法,如果需要经常进行该操作-确定任意一个元素

在B 中的位置并修改其值,应如何设计算法可以使时间得到改善?

【答案】题中矩阵非零元素用三元组表存储,查找某非零元素时,按常规要从第一个元素开始查找,属于顺序查找,

时间复杂度为若使查找时间得到改善,可以建立索引,将各行行号及各行第一个非零元素在数组B 中的位置(下标)放入一向量C 中。若查找非零元素,可先在数组C 中用折半查找到该非零元素的行号,并取出该行第一个非零元素在B 中的位置,再到B 中