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

2018年电子科技大学计算机科学与工程学院820计算机专业基础之数据结构考研仿真模拟五套题

  摘要

一、填空题

1. 在单链表L 中,指针P 所指结点有后继结点的条件是_____

【答案】P ﹣>next! =NULL

【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。

2. 已知一循环队列的存储空间为,其中n >m ,队头和队尾指针分别为front 和rear ,则此循环队列判满的条件是_____ 【答案】

3. 已知链队列的头尾指针分别是f 和r ,则将值x 入队的操作序列是_____。

【答案】S =(LinkedList*)malloc(sizeof (LNode));s ﹣>data =x ;s ﹣>next =r ﹣>next ;r ﹣>next =s ;r =s ;

【解析】队列采用链式存储结构,先分配一个节点的内存,然后在队尾添加该节点。

4. 阅读下列程序说明和程序,填充程序中的_____。

【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示。

本程序采用非递归的方法,设立一个堆栈stack 存放还没有转换过的结点,它的栈顶指针为tp 。交换左、右子树的算法为:

(1)把根结点放入堆栈。

(2)当堆栈不空时,取出栈顶元素,交换它的左、右子树,并把它的左、右子树分别入栈。

(3)重复(2)直到堆栈为空时为止。

【答案】

【解析】本题主要使用堆栈完成了二叉树左右子树交换的操作。首先根结点进栈,然后判断栈是否为空,如果不为空,则取栈顶元素,交换取出结点的左右指针。并将左右指针分别进栈,重复这一操作。完成二叉树左右孩子的交换。

5. 在进行入栈运算时应先判别栈是否_____:在进行出栈运算时应先判别栈是否_____:当栈中元素为n 个,进行入栈运算时发生上溢,则说明该栈的最大容量为_____。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时,应将两栈的_____分别设在内存空间的两端,这样只有当_____时才产生溢出。

【答案】满;空;n ;栈底;两栈顶指针相邻(即值之差的绝对值为1)

二、单项选择题

6. 某字长为8位的计算机中, 已知整型变量x 、y 的机器数分别为

, A.11000000

B.00100100

C.10101010

D. 溢出

【答案】A

【解析】将x 左移一位, y 右移一位, 两个数的补码相加的机器数为11000000, 故答案选择A 。

7. 若元素a , b , c , d , e , f 依次进栈, 允许进栈、退栈操作交替进行, 但不允许连续三次进行退栈操作, 则不可能得到的出栈序列是( )。

A.d , c , e , b , f , a

B.c , b , d , a , e , f

C.b , c , a , e , f , d

D.a , f , e , d , c , b

【答案】D

【解析】4个选项所给序列的进、出栈操作序列分别为:

选项A.

选项B.

选项C.

选项D. 。若整型变量, 则z 的机器数为( )

按照题目要求, 不允许连续三次进行退栈操作, 所以选项D 所给序列为不可能得到的出栈顺序。

8. 有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是( )。

A.60

B.66

C.18000

D.33

【答案】B

【解析】如果是全部,则是需要100*90*2个字节;但是用三元组表示的话,只需要记录非零数据的X 坐标,Y 坐标,数值即可,就是每个非零数字需要占用三个整数的空间,即2*3=6字节,10个非零整数则是2*3*10=60字节;如果问有效元素占的空间大小,则选A 项,但是如果从整体来看,应该多一个用来记录矩阵宽(100)、高(90)、默认值(0)的元素,所以还应该多算6个字节。所以全部为66字节,选B 项。

9. 在系统内存中设置磁盘缓冲区的主要目的是( )。

A. 减少磁盘次数

B. 减少平均寻道时间

C. 提高磁盘数据可靠性

D. 实现设备无关性

【答案】A

【解析】访问磁盘的开销远远大于访问内存的开销。磁盘缓冲区便是利用主存中的存储空间, 来暂存从磁盘中读出(或写入) 的信息, 频繁使用的一部分磁盘数据和信息, 暂时存放在磁盘缓存中, 可减少访问磁盘的次数。

10.若用户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 服务器发送邮件。当所有的待发邮件发完