2015 考研计算机学科专业基础综合真题及答案
一、单项选择题:1
40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项
中,只有一个选项符合题目要求。请在答题卡上将所选项的字母涂黑。
1.已知程序如下:
int s(int n)
{
return (n<=0) ? 0 : s(n-1) +n;
}
void main()
{
cout<< s(1);
}
程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是
A.main()->S(1)->S(0)
B.S(0)->S(1)->main()
C. main()->S(0)->S(1)
D.S(1)->S(0)->main()
【参考答案】D
【考查知识点】栈的基本概念和函数调用的原理。
2. 先序序列为 a,b,c,d 的不同二叉树的个数是
A.13
B.14
C.15
D.16
【参考答案】C
【考查知识点】二叉树的基本概念。
3.下列选项给出的是从根分别到达两个叶节点路径上的权值序列,能属于同一棵哈夫
曼树的是
A.24,10,5 和 24,10,7
B.24,10,5 和 24,12,7
C.24,10,10 和 24,14,11
D.24,10,5 和 24,14,6
【参考答案】C
【考查知识点】哈夫曼树的原理。
4.现在有一颗无重复关键字的平衡二叉树(AVL 树),对其进行中序遍历可得到一个降
序序列。下列关于该平衡二叉树的叙述中,正确的是
A.根节点的度一定为 2
B.树中最小元素一定是叶节点
C.最后插入的元素一定是叶节点
D.树中最大元素一定是无左子树
【参考答案】B
【考查知识点】树的中序遍历和 AVL 树的基本概念。
5.设有向图 G=(V,E),顶点集 V={V0,V1,V2,V3},边集 E={,,,},
若从顶点 V0 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是
A.2
B.3
C.4
D.5
【参考答案】D
【考查知识点】图的深度优先遍历。
6.求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(kruskal)算法第二次选
中但不是普里姆(Prim)算法(从 V4 开始)第 2 次选中的边是
A.(V1,V3)
B.(V1,V4)
C.(V2,V3)
D.(V3,V4)
【参考答案】A
【考查知识点】最小生成树算法的 Prim 算法和 Kruskal 算法。
7.下列选项中,不能构成折半查找中关键字比较序列的是
A.500,200,450,180
B.500,450,200,180
C.180,500,200,450
D.180,200,500,450
【参考答案】A
【考查知识点】二分查找算法。
8.已知字符串 S 为“abaabaabacacaabaabcc”. 模式串 t 为“abaabc”, 采用 KMP 算
法进行匹配,第一次出现“失配”(s[i] != t[i]) 时,i=j=5,则下次开始匹配时,i 和 j
的值分别是
A.i=1,j=0
B.i=5,j=0
C.i=5,j=2
D.i=6,j=2
【参考答案】C
【考查知识点】模式匹配(KMP)算法。
9.下列排序算法中元素的移动次数和关键字的初始排列次序无关的是
A.直接插入排序
B.起泡排序
C.基数排序
D.快速排序
【参考答案】B
【考查知识点】几种排序算法的比较。
10.已知小根堆为 8,15,10,21,34,16,12,删除关键字 8 之后需重建堆,在此过
程中,关键字之间的比较数是
A.1
B.2
C.3
D.4
【参考答案】B
【考查知识点】最小堆的概念和最小堆的重建。
11.希尔排序的组内排序采用的是()
A.直接插入排序
B.折半插入排序 C.快速排序
D.归并排序
【参考答案】A
【考查知识点】希尔排序基本思想是:先将整个待排元素序列分割成若干个子序列(由
相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,
待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。
12.计算机硬件能够直接执行的是()
Ⅰ.机器语言程序 Ⅱ.汇编语言程序
Ⅲ.硬件描述语言程序
A.仅Ⅰ
B.仅Ⅰ Ⅱ
C.仅Ⅰ Ⅲ
D.ⅠⅡ Ⅲ
【参考答案】A
【考查知识点】用汇编语言等非机器语言书写好的符号程序称源程序,运行时汇编程序
要
将源程序翻译成目标程序,目标程序是机器语言程序。
13.由 3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数是()
A.-126
B.-125
C.-32
D.-3
【参考答案】B
【考查知识点】二进制的补码表示。
14.下列有关浮点数加减运算的叙述中,正确的是()
Ⅰ. 对阶操作不会引起阶码上溢或下溢
Ⅱ. 右规和尾数舍入都可能引起阶码上溢
Ⅲ. 左规时可能引起阶码下溢
Ⅳ. 尾数溢出时结果不一定溢出
A.仅Ⅱ Ⅲ
B.仅ⅠⅡⅣ
C.仅ⅠⅢ Ⅳ
D.ⅠⅡ Ⅲ Ⅳ
【参考答案】B
【考查知识点】浮点数的加减运算。
15.假定主存地址为 32 位,按字节编址,主存和 Cache 之间采用直接映射方式,主存
块大小为 4 个字,每字 32 位,采用回写(Write Back)方式,则能存放 4K 字数据的 Cache
的总容量的位数至少是()
A.146k
B.147K
C.148K
D.158K
【参考答案】 B
【考查知识点】Cache 和主存的映射方式。直接映射方式地址映象规则: 主存储器中
一块只能映象到 Cache 的一个特定的块中。(1) 主存与缓存分成相同大小的数据块。(2)
主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块
数与缓存的总块数相等。(3) 主存中某区的一块存入缓存时只能存入缓存中块号相同的
位置。
16.假定编译器将赋值语句“x=x+3;”转换为指令”add xaddt, 3”,其中 xaddt 是 x 对
应的存储单元地址,若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的 TLB,
且 Cache 使用直写(Write Through)方式,则完成该指令功能需要访问主存的次数至少是
()
A.0
B.1
C.2
D.3
【参考答案】 C
【考查知识点】 考察了页式虚拟存储器及 TLB 快表。
17.下列存储器中,在工作期间需要周期性刷新的是()
A.SRAM
B.SDRAM
C.ROM
D.FLASH
【参考答案】B
【考查知识点】DRAM 使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果
存储单元没有被刷新,存储的信息就会丢失。
18.某计算机使用 4 体交叉存储器,假定在存储器总线上出现的主存地址(十进制)序
列为 8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生发生缓存冲
突的地址对是()
A.8004、8008
B.8002、8007
C.8001、8008
D.8000、8004
【参考答案】 C
【考查知识点】 考察了存储器中的多模块存储器,多体并行系统。
19.下列有关总线定时的叙述中,错误的是()
A.异步通信方式中,全互锁协议最慢
B.异步通信方式中,非互锁协议的可靠性最差
C.同步通信方式中,同步时钟信号可由多设备提供
D.半同步通信方式中,握手信号的采样由同步时钟控制
【参考答案】 B
【考查知识点】考察了总线操作和定时,主要是同步定时与异步定时的定义及其特点。
20.若磁盘转速为 7200 转/分,平均寻道时间为 8ms,每个磁道包含 1000 个扇区,则访
问一个扇区的平均存取时间大约是( )
A.8.1ms
B.12.2ms
C.16.3ms
D.20.5ms
【参考答案】B
【考查知识点】磁盘访问时间计算。
21.在采用中断 I/O 方式控制打印输出的情况下,CPU 和打印控制接口中的 I/O 端口之
间交换的信息不可能是( )
A.打印字符
B.主存地址
C.设备状态
D.控制命令
【参考答案】A
【考查知识点】程序中断 I/O 方式。
22.内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关
内部异常的叙述中,错误的( )
A.内部异常的产生与当前执行指令相关
B.内部异常的检测由 CPU 内部逻辑实现
C.内部异常的响应发生在指令执行过程中
D.内部异常处理的返回到发生异常的指令继续执行
【参考答案】A
【考查知识点】内部异常概念。
23.处理外部中断时,应该由操作系统保存的是( )
A.程序计数器(PC)的内容
B.通用寄存器的内容
C.块表(TLB)的内容
D.Cache 中的内容
【参考答案】A
【考查知识点】外部中断处理过程。
24.假定下列指令已装入指令寄存器。则执行时不可能导致 CPU 从用户态变为内核态(系
统态)的是( )
A.DIV R0,R1;(R0)/(R1)→R0
B.INT n;产生软中断
C.NOT R0;寄存器 R0 的内容取非
D.MOV R0,addr;把地址处的内存数据放入寄存器 R0 中
【参考答案】C
【考查知识点】CPU 用户态和内核态概念。
25.下列选项中会导致进程从执行态变为就绪态的事件是()
A.执行 P(wait)操作
B.申请内存失败
C.启动 I/O 设备
D.被高优先级进程抢占
【参考答案】D
【考查知识点】进程间各状态的转化。
26.若系统 S1 采用死锁避免方法,S2 采用死锁检测方法,下列叙述中正确的是()
Ⅰ.S1 会限制用户申请资源的顺序
Ⅱ.S1 需要进行所需资源总量信息,而 S2 不需要
Ⅲ.S1 不会给可能导致死锁的进程分配资源,S2 会
A.仅Ⅰ Ⅱ
B.仅Ⅱ Ⅲ
C.仅Ⅰ Ⅲ
D.Ⅰ Ⅱ Ⅲ
【参考答案】C
【考查知识点】死锁相关概念。
27 . 系 统 为 某 进 程 分 配 了 4 个 页 框 , 该 进 程 已 访 问 的 页 号 序 列 为
2,0,2,9,3,4,2,8,2,3,8,4,5,若进程要访问的下一页的页号为 7,依据 LRU 算法,应淘汰
页的页号是()
A.2
B.3
C.4
D.8
【参考答案】C
【考查知识点】LRU 算法。
28.在系统内存中设置磁盘缓冲区的主要目的是()
A.减少磁盘 I/O 次数
B.减少平均寻道时间
C.提高磁盘数据可靠性
D.实现设备无关性
【参考答案】A
【考查知识点】磁盘和内存速度的差异。
29.在文件的索引节点中存放直接索引指针 10 个,一级二级索引指针各 1 个,磁盘块
大小为 1KB。每个索引指针占 4 个字节。若某个文件的索引节点已在内存中,到把该文件的
偏移量(按字节编址)为 1234 和 307400 处所在的磁盘块读入内存。需访问的磁盘块个数分
别是()
A.1,2
B.1,3
C.2,3
D.2,4
【参考答案】D
【考查知识点】文件索引相关概念。
30.在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是()
A.可变分配,全局置换
B.可变分配,局部置换
C.固定分配,全局置换
D.固定分配,局部置换
【参考答案】D
【考查知识点】页面分配策略和页面置换策略的概念和相应的方法。
二、综合应用题:41~47 小题,共 70 分。
41. 用单链表保存 m 个整数,节点的结构为(data,link),且|data|
(2) 使用 c 或 c++语言,给出单链表节点的数据类型定义。
(3) 根据设计思想,采用 c 或 c++语言描述算法,关键之处给出注释。
(4) 说明所涉及算法的时间复杂度和空间复杂度。
【参考答案】
(1) 算法思想:
定义一个大小为 N 的数组,初始化为 0.在遍历链表的同时将数组中索引值为节点的值
的绝对值的元素置 1.如果此元素已经为 1,说明此节点之前已经有与此节点的值的绝对值相
等的节点,需将此节点删除。
(2) 节点的数据结构定义如下:
typedef struct Node
{
Int data;
Struct Node * next;
}Node;
(3)
int a[n]; // 全局数组 标志节点的绝对值的值是否出现过
void DeleteABSEqualNode(Node * head)
{
memset(a,0,n);
// 初始化为 0
if (head == NULL)
{
}
return NULL;
Node * p = head;
Node * r = head;
while (p != NULL)
{
过
if (a[abs(p->data)] == 1)
//如果此绝对值已经在节点值的绝对值中出现