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

2018年西安交通大学软件学院814计算机基础综合之数据结构考研核心题库

  摘要

一、单项选择题

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

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

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 协议将自己的邮件从接收端邮件服务器的用户邮箱中取回(如果邮箱中有来信的话) 。

SMTP 因此题中1, 2, 3阶段分别使用的应用层协议可以是SMTP , SMTP , POP3, 因此答案是D 。

采用“推”的通信方式, 用于用户代理向邮件服务器发送邮件、以及邮件服务器之间发送邮件。POP3采用“拉”的通信方式, 用于用户从目的邮件服务器上读取邮件。

2. 已知字符串S 为“abaabaabacacaabaabcc ”, 模式串t 为“abaabc ”, 采用KMP 算法进行匹配, 第一次出现“失配”(

A.i=l, j=0

B.i=5, j=0

C.i=5, j=2 ) 时, i=j=5, 则下次开始匹配时, i 和j 的值分别是( )。

D.i=6, j=2

【答案】C

【解析】模式匹配(KMP)算法对普通的暴力匹配的改进在于:每当匹配过程中匹配失败时, 主串(本题为S) 的指针(i)不需要回溯, 而是利用已经得到的“部分匹配”的结果将模式串(t)向右“滑动”尽可能远的一段距离后, 继续进行比较。模式串“滑动”的距离是由模式串(t)本身决定的, 即t

的子串

中前缀串和后缀串相等的最长长度。本题中第一次失配i=5, 字串为“abaab”, 其相等且最长的前后缀为“ab”, 一次下一个j=2。

3. 为实现快速排序算法, 待排序序列宜采用的存储方式是( )。

A. 顺序存储

B. 散列存储

C. 链式存储

D. 索引存储

【答案】A

【解析】对绝大部分内部排序而言, 只适用于顺序存储结构, 快速排序在排序过程中, 既要从后向前查找, 也要从前向后查找, 因此宜采用顺序存储。

4. 单链表中,增加一个头结点的目的是为了( )。

A. 使单链表至少有一个结点

B. 标识表结点中首结点的位置

C. 方便运算的实现

D. 说明单链表是线性表的链式存储

【答案】C

【解析】单链表中增加一个头结点的目的是为了方便运算的实现,使得对第一个元素的操作与其它元素的操作相同。

5. 若一个用户进程通过read 系统调用读取一个磁盘文件中的数据, 则下列关于此过程的叙述中, 正确的是( )。

Ⅰ. 若该文件的数据不在内存, 则该进程进入睡眠等待状态;

Ⅱ. 请求read 系统调用会导致CPU 从用户态切换到核心态;

Ⅲ.read 系统调用的参数应包含文件的名称

A. 仅Ⅰ、Ⅱ

B. 仅Ⅰ、Ⅲ

C. 仅Ⅱ、Ⅲ

D. Ⅰ、Ⅱ和Ⅲ

【答案】A

【解析】对于Ⅰ, 当所读文件的数据不再内存时, 产生中断(缺页中断、缺段中断) , 原进程进入睡眠等待状态(阻塞状态) , 直到所需数据从外村调入内存后, 将该进程唤醒, 使其变为就绪状态。对于Ⅱ, read 系统调用cpu 将从用户态切换到核心态, 从而获取操作系统提供的服务。对于Ⅲ, 在操作

Open 系统调用的参数需要包含文件的系统中, 要读一个文件首先要open 系统调用将该文件打开。

路径名与文件名, 而read 系统调用只需使用open 返回的文件描述符, 并不使用文件名作为参数。Read 系统调用要求用户提供三个输入参数:

①文件描述符; ②buf 缓冲区首址; ③传送的字节数n 。

read 系统调用的功能是试图从fd 所指示的文件中读入n 个字节的数据, 并将它们送至由指针buf 所指示的缓冲区中。

6. 下列叙述中,不符合m 阶B 树定义要求的是( ).

A. 根结点最多有m 棵子树

B. 所有叶结点都在同一层上

C. 各结点内关键字均升序或降序排列

D. 叶结点之间通过指针链接

【答案】D

【解析】B 树就是指树.

根据树的定义,m

阶树中每个结点最多有m 个分支,因此,

树根结点最多有m 棵子树,A 项正确;树中所有叶结点都在最底层,位于同一层,B 项正确;结点内各关键字互不相等且有序排列,C 项正确. 但是,所有叶子结点之间通过指针链接,是

的定义,而树中没有. 因此,D 项是错误的.

7. 将一棵树t 转换为孩子兄弟链表表示的二叉树h ,则t 的后序遍历是h 的( )。

A. 前序遍历

B. 中序遍历

C. 后序遍历

【答案】B

【解析】树的后序遍历恰好对应于二叉树的中序遍历。

8. 为提高散列(Hash)表的查找效率, 可以采用的正确措施是( )。

Ⅰ. 增大装填(载) 因子

Ⅱ. 设计冲突(碰撞) 少的散列函数

Ⅲ. 处理冲突(碰撞) 时避免产生聚集(堆积) 现象

A. 仅Ⅰ

B. 仅Ⅱ

C. 仅Ⅰ、Ⅱ

D. 仅Ⅱ、Ⅲ