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

2017年西安交通大学机械工程学院814计算机基础综合之数据结构考研仿真模拟题

  摘要

一、选择题

1. 设被排序的结点序列共有N 个结点,在该序列中的结点已十分接近排序的情况下,用直接插入法、归并法和一般的快速排序法对其排序,这些算法的时间复杂性应为( )。

【答案】C

【解析】因为该序列中的结点已经十分接近排序的情况,对于直接插入法,大部分结点只需要直接插入后面即可,因此时间复杂度为

的时间复杂度为对于采用归并法,它是一种稳定的排序方法,它对于一般的快速排序法,序列越接近有序,所需要的比较次数越多, 此时的时间复杂度为

2. 元素a , b , c , d , e 依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d 开头的序列个数是( )。

A.3

B.4

C.5

D.6

【答案】B

【解析】d 首先出栈后的状态如下图所示。

此时可有以下4种操作:

(1)e 进找后出栈,出梭序列为decba 。

(2)c 出找,e 进找后出栈,出找序列为dceba 。

(3)cb 出找,e 进找后出栈,出找序列为dcbea 。

(4)cba 出找,e 进找后出找,出找序列为dcbae 。

3. 对同一待排序列分别进行折半插入排序和直接插入排序, 两者之间可能的不同之处是( )。

A. 排序的总趟数

B. 元素的移动次数

C. 使用辅助空间的数量

D. 元素之间的比较次数

【答案】D 。

【解析】折半插入排序所需附加存储空间和直接插入排序相同,从时间上比较,折半插入排序仅减少了关键字间的比较次数,

而记录的移动次数不变。折半插入排序的时间复杂度仍为

所以两者之间的不同只可能是元素之间的比较次数。

4. 下列选项中,降低进程优先级的合理时机是( )。

A. 进程的时间片用完

B. 进程刚完成1/0, 进入就绪队列

C. 进程长期处于就绪队列

D. 进程从就绪状态转为运行态

【答案】A

【解析】进程时间片用完可以降低其优先级,完成的进程应该提升其优先级,处于就绪队列等待调度的进程一般不会改变其优先级。进行这样的操作主要是为了改善交互式系统的响应时间,并均衡各个作业的公平性。采用时间片轮转技术主要为改善交互式用户的感受,使其觉得是

,时间片用完后降低其优独享计算机(时间片轮转可以有效地防止计算繁忙型的进程独占计算机)

先级是为了改善新进程的响应时间(新进程优先级较高,老进程降低优先级可以保证新进程具有

,对于刚进入就绪队列的新进程,往往在创建时已经根据其特点和要求确定好优先级,不优先权)

会随意改变。而对于从阻塞状态唤醒的进程,由于阻塞带来了较长时间的等待,一般会根据阻塞队列的不同适当地提高优先级,以改善用户响应时间。

5. 若用户1与用户2之间发送和接收电子邮件的过程如图所示,则图中①、②、③阶段分别使用的应用层协议可以是( )。

图 电子邮件发送接收示意图

A.SMTP 、SMTP 、SMTP

B.POP3、SMTP 、POP3

C.POP3、SMTP 、SMTP

D.SMTP 、SMTP 、POP3

【答案】D 。

【解析】题中电子邮件的工作过程如下:

①用户1调用用户代理来编辑要发送的邮件,用户代理用SMTP 将邮件传送给用户1的发送端邮件服务器。

②发送端邮件服务器也就是用户1的邮件服务器将邮件放入邮件缓存队列中,等待发送。

③运行在发送端邮件服务器的SMTP 客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器也就是用户2的邮件服务器的SMTP 服务器进程发起TCP 连接建立。当TCP 连接建立后,SMTP 客户进程开始向远程的SMTP 服务器发送邮件。当所有的待发邮件发完了,SMTP 就关闭所建立的TCP 连接。

④运行在接收端邮件服务器中的SMTP 服务器进程收到邮件后,将邮件放人收信人的用户邮箱中,等待收信人在他方便时进行读取。收信人在打算收信时,调用用户代理,使用POP 协议将自己的邮件从接收端邮件服务器的用户邮箱中取回(如果邮箱中有来信的话)。

因此题中1,2, 3阶段分别使用的应用层协议可以是SMTP ,SMTP , POP3, 因此答案是D 。SMTP 采用“推”的通信方式,用于用户代理向邮件服务器发送邮件、以及邮件服务器之间发送邮件。POP3采用“拉”的通信方式,用于用户从目的邮件服务器上读取邮件。

6. 对n 个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )。

A. 每次分区后,先处理较短的部分

B. 每次分区后,先处理较长的部分

C. 与算法每次分区后的处理顺序无关

D. 以上三者都不对

【答案】A

【解析】令递归函数为f ,第一次进行递归函数认为递归深度为1,以后从深度为n 的递归函数f 中再调用递归函数f ,此时深度为整个f 的最大深度为递归深度。

7. 已知序列25, 13, 10, 12, 9是大根堆,在序列尾部插入新元素18, 将其再调整为大根堆,调整过程 中元素之间进行的比较次数是( )。

A.1

B.2

C.4

D.5

【答案】B

【解析】对堆插入或删除一个元素,有可能不满足堆的性质,堆被破坏,需要调整为新堆。 (1)为原堆,

(2)为插入18后,

(3)比较10与18,交换后,

(4)比较25与18, 不交换,即为调整后的新的大根堆。

因此调整过程中元素之间进行的比较次数为2。