2017年山东省培养单位烟台海岸带研究所866计算机原理之数据结构考研强化模拟题
● 摘要
一、选择题
1. 假定主存地址为32位,按字节编址,主存和Cache 之间采用直接映射方式,主存块大小为4个字,每字32位,采用回写(WriteBack )方式,则能存放4K 字数据的Cache 的总容量的位数至少是( )。
A.146k B.147K C.148K D.158K 【答案】B
【解析】Cache 和主存直接映射方式的规则为:主存储器分为若干区,每个区与缓存容量相同;每个区分为若干数据块,每个块和缓存块容量相同;主存中某块只能映象到Cache 的一个特定的块中。本题中,Cache 总共存放4K 字数据,块大小为4个字,因此cache 被分为4K/4 = 1K 个块,由10位表示。块内共16字节,所以由4位表示,于是标记位为32-10-14= 18位。所以,Cache 的每一行需要包含所存的数据4个字,每个字32位,18位标记位和一个有效位,因此总容量为:
2. 循环队列元素数是( )。
【答案】A
【解析】对于循环队列,需要深刻理解队头在队尾进行进队操作。
和队尾
的概念,在队头进行出队操作,
如果为负则元
可能为正也可能为负,为正时元素个数==147K。
存放其元素值,用front 和rear 分别表示队头和队尾,则当前队列中的
素的个数=所以统一的公式就是
3. 用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时( )。
A. 仅修改队头指针 B. 仅修改队尾指针
C. 队头、队尾指针都可能要修改 D. 队头、队尾指针都要修改 【答案】C
【解析】用不带头结点的单链表存储队列,一般删除操作仅修改队头指针,但当队列中只有一个结点时,进行删除操作要将队头、队尾指针都修改成NULL 。
4. 已知字符串S 为“abaabaabacacaabaabcc ”,模式串t 为“abaabc ”,采用KMP 算法进行匹配,第一次出现“失配” (
A.i=l,j=0 B.i=5,j=0 C.i=5,j=2 D.i=6,j=2
【答案】C
【解析】模式匹配(KMP )算法对普通的暴力匹配的改进在于:每当匹配过程中匹配失败时,主串(本题为S )的指针(i )不需要回溯,而是利用已经得到的“部分匹配”的结果将模式串(t )向右“滑动”尽可能远的一段距离后,继续进行比较。模式串“滑动”的距离是由模式串(t )本身决定的,即t 的子串
中前缀串和后缀串相等的最长长度。本题中第一次失配i=5, 字串为
“abaab”,其相等且最长的前后缀为“ab”,一次下一个j = 2。
5. 下列关于USB 总线特性的描述中,错误的是( )。
A. 可实现外设的即插即用和热插拔 B. 可通过级联方式连接多台外设 C. 是一种通信总线,可连接不同外设 D. 同时可传输2位数据,数据传输率高 【答案】D 。
【解析】USB 总线即通用串行总线,它的特点有:(1)即插即用;(2)热插拔;(3)有很强的链接能力能将所有外设链接起来,且不损失带宽;(4)有很好的可扩展性;(5)高速传输,速度可达480Mbps 。所有A , B, C都符合USB 总线的特点。对于选项D , USB 是串行总线,不能同时传输两位数据,所以答案为D 。
6. 已知两个长度分别为m 和n 的升序链表,若将它们合并为一个长度为m+n的降序链表,则最坏情况下的时间复杂度是( )
A. B. C. D. 【答案】D
【解析】m 和n 是两个升序链表长度分别为m 和n ,在合并过程中最坏的情况是两个链表中的元素依次进行比较,比较的次数是m 和n 中的最大值。
7. 若用一个大小为6的数组来实现循环队列,且当前rear 和front 的值分别为0和3, 当从队列中删除一个元素,再加入两个元素后,rear ,front 的值分别为多少?( )
A.1和5 B.2和4
,i=j = 5,则下次开始匹配时,i 和j 的值分别是( ))。
C.4和2 D.5和1 【答案】B
【解析】入队操作的主要步骤
:个后
,
8. 如果本地域名服务无缓存,当采用递归方法解析另一网络某主机域名时,用户主机、本地域名服务器发送的域名请求消息数分别为( )。
A.1条,1条 B.1条,多条 C. 多条,1条 D. 多条,多条 【答案】A
【解析】所谓递归查询方式就是:如果主机所询问的本地域名服务器不知道被查询域名的IP 地址,那么本地域名服务器就以DNS 客户的身份向其他服务器继续发出查询请求报文,而不是让该主机自行下一步的查询。所以主机只需向本地域名服务器发送一条域名请求,采用递归查询方法,本地域名服务器也只需向上一级的根域名服务器发送一条域名请求,然后依次递归。正确选项为A 。
9. 用数组r 存储静态链表,结点的next 域指向后继,工作指针j 指向链中结点,使j 沿链移动的操作为( )。
【答案】A
【解析】因为是用数组存储,这里所说的工作指针j 相当于数组的下标,结点是存储一个值域和next 域,next 域就是存放下一个结点的下表,所以只要将next 域中的值赋给j 就可以实现j 沿链移动。
10.某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,
把一个磁盘块读人缓冲区的时间为传送到用户区的时间是
CPU 对一块数据进行分析的时间为
构下,读人并分析完该文件的时间分别是( )。
A. B. C. D. 【答案】B
【解析】这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的,所以对单一缓冲区,
加入一个后,再加入一
删除一个后
,
出队操作的主要步骤
:
将缓冲区的数据
,在单缓冲区和双缓冲区结