2015-01
已知程序如下:
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()
答案:A
2015 全国硕士研究生入学统一考试
当前显示 47 道题
已知程序如下:
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()
答案:A
先序序列为a,b,c,d的不同二叉树的个数是__。
A. 13
B. 14
C. 15
D. 16
答案:B
下列选项给出的是从根分别到达两个叶结点路径上的权值序列,能属于同一棵哈夫曼树的是__。
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
答案:D
现有一棵无重复关键字的平衡二叉树(AVL树),对其进行中序遍历可得到一个降序序列。下列关于该平衡二叉树的叙述中,正确的是__。
A. 根结点的度一定为2
B. 树中最小元素一定是叶结点
C. 最后插入的元素一定是叶结点
D. 树中最大元素一定是无左子树
答案:D
设有向图G = (V, E),顶点集V = {v0,v1,v2,v3},边集E = {<v0,v1>, <v0,v2>, <v0,v3>, <v1,v3>}。若从顶点v0开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是__。
A. 2
B. 3
C. 4
D. 5
答案:D
求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(Kruskal)算法第2次选中但不是普里姆(Prim)算法(从V4开始)第2次选中的边是__。

A. (V1,V3)
B. (V1,V4)
C. (V2,V3)
D. (V3,V4)
答案:C
下列选项中,不能构成折半查找中关键字比较序列的是__。
A. 500, 200, 450, 180
B. 500, 450, 200, 180
C. 180, 500, 200, 450
D. 180, 200, 500, 450
答案:A
已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”。采用KMP算法进行匹配,第一次出现“失配”(s[i]≠t[j])时,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
下列排序算法中,元素的移动次数与关键字的初始排列次序无关的是__。
A. 直接插入排序
B. 起泡排序
C. 基数排序
D. 快速排序
答案:C
已知小根堆为8, 15, 10, 21, 34, 16, 12, 删除关键字8之后需重建堆,在此过程中,关键字之间的比较次数是__。
A. 1
B. 2
C. 3
D. 4
答案:C
希尔排序的组内排序采用的是__。
A. 直接插入排序
B. 折半插入排序
C. 快速排序
D. 归并排序
答案:A
计算机硬件能够直接执行的是__。
I. 机器语言程序
II. 汇编语言程序
III. 硬件描述语言程序
A. 仅I
B. 仅I、II
C. 仅I、III
D. I、II、III
答案:A
由3个“1”和5个“0”组成的8位二进制补码,能表示的最小整数是__。
A. -126
B. -125
C. -32
D. -3
答案:B
下列有关浮点数加减运算的叙述中,正确的是__。
I. 对阶操作不会引起阶码上溢或下溢
II. 右规和尾数舍入都可能引起阶码上溢
III. 左规时可能引起阶码下溢
IV. 尾数溢出时,结果不一定溢出
A. 仅II、III
B. 仅I、II、IV
C. 仅I、III、IV
D. I、II、III、IV
答案:D
假定主存地址为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为4个字,每字32位,采用回写(Write Back)方式,则能存放4K字数据的Cache的总容量的位数至少是__。
A. 146k
B. 147K
C. 148K
D. 158K
答案:C
假定编译器将赋值语句“x = x + 3;”转换为指令“add xaddr, 3”,其中xaddr是x对应的存储单元地址。若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的TLB,且Cache使用直写(Write Through)方式,则完成该指令功能需要访问主存的次数至少是__。
A. 0
B. 1
C. 2
D. 3
答案:B
下列存储器中,在工作期间需要周期性刷新的是__。
A. SRAM
B. SDRAM
C. ROM
D. FLASH
答案:B
某计算机使用4体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005, 8006, 8007, 8008, 8001, 8002, 8003, 8004, 8000,则可能发生访存冲突的地址对是__。
A. 8004 和 8008
B. 8002 和 8007
C. 8001 和 8008
D. 8000 和 8004
答案:D
下列有关总线定时的叙述中,错误的是__。
A. 异步通信方式中,全互锁协议最慢
B. 异步通信方式中,非互锁协议的可靠性最差
C. 同步通信方式中,同步时钟信号可由各设备提供
D. 半同步通信方式中,握手信号的采样由同步时钟控制
答案:C
若磁盘转速为7200rpm,平均寻道时间为8ms,每个磁道包含1000个扇区,则访问一个扇区的平均存取时间大约是__。
A. 8.1ms
B. 12.2ms
C. 16.3ms
D. 20.5ms
答案:B
在采用中断I/O方式控制打印输出的情况下,CPU和打印控制接口中的I/O端口之间交换的信息不可能是__。
A. 打印字符
B. 主存地址
C. 设备状态
D. 控制命令
答案:B
内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中,错误的是__。
A. 内部异常的产生与当前执行指令相关
B. 内部异常的检测由CPU内部逻辑实现
C. 内部异常的响应发生在指令执行过程中
D. 内部异常处理后返回到发生异常的指令继续执行
答案:D
处理外部中断时,应该由操作系统保存的是__。
A. 程序计数器(PC)的内容
B. 通用寄存器的内容
C. 块表(TLB)中的内容
D. Cache中的内容
答案:B
假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用户态变为内核态(系统态)的是__。
A. DIV R0, R1 ;(R0)/(R1)→R0
B. INT n ;产生软中断
C. NOT R0 ;寄存器R0的内容取非
D. MOV R0, addr ;把地址addr处的内存数据放入寄存器R0中
答案:C
下列选项中,会导致进程从执行态变为就绪态的事件是。
A. 执行P(wait)操作
B. 申请内存失败
C. 启动I/O设备
D. 被高优先级进程抢占
答案:D
若系统S1采用死锁避免方法,S2采用死锁检测方法。下列叙述中,正确的是__。
I. S1会限制用户申请资源的顺序,而S2不会
II. S1需要进程运行所需资源总量信息,而S2不需要
III. S1不会给可能导致死锁的进程分配资源,而S2会
A. 仅I、II
B. 仅II、III
C. 仅I、III
D. I、II、III
答案:B
系统为某进程分配了4个页框,该进程已访问的页号序列为2,0,2,9,3,4,2,8,2,4,8,4,5。若进程要访问的下一页的页号为7,依据LRU算法,应淘汰页的页号是__。
A. 2
B. 3
C. 4
D. 8
答案:A
在系统内存中设置磁盘缓冲区的主要目的是__。
A. 减少磁盘I/O次数
B. 减少平均寻道时间
C. 提高磁盘数据可靠性
D. 实现设备无关性
答案:A
在文件的索引结点中存放直接索引指针10个,一级和二级索引指针各1个。磁盘块大小为1KB,每个索引指针占4字节。若某文件的索引结点已在内存中,则把该文件偏移量(按字节编址)为1234和307400处所在的磁盘块读入内存,需访问的磁盘块个数分别是__。
A. 1, 2
B. 1, 3
C. 2, 3
D. 2, 4
答案:B
在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是__。
A. 可变分配,全局置换
B. 可变分配,局部置换
C. 固定分配,全局置换
D. 固定分配,局部置换
答案:C
文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中,每个盘块占1024字节,盘块和块内字节均从0开始编号。假设要释放的盘块号为409612,则位图中要修改的位所在的盘块号和块内字节序号分别是__。
A. 81、1
B. 81、2
C. 82、1
D. 82、2
答案:C
某硬盘有200个磁道(最外侧磁道号为0),磁道访问请求序列为130,42,180,15,199,当前磁头位于第58号磁道并从外侧向内侧移动。按照SCAN调度方法处理完上述请求后,磁头移过的磁道数是__。
A. 208
B. 287
C. 325
D. 382
答案:C
通过POP3协议接收邮件时,使用的传输层服务类型是__。
A. 无连接不可靠的数据传输服务
B. 无连接可靠的数据传输服务
C. 有连接不可靠的数据传输服务
D. 有连接可靠的数据传输服务
答案:D
使用两种编码方案对比特流01100111进行编码的结果如下图所示,编码1和编码2分别是__。

A. NRZ和曼彻斯特编码
B. NRZ和差分曼彻斯特编码
C. NRZI和曼彻斯特编码
D. NRZI和差分曼彻斯特编码
答案:A
主机甲通过128kbps卫星链路,采用滑动窗口协议向主机乙发送数据,链路单向传播延迟为250ms,帧长为1000字节。不考虑确认帧的开销,为使链路利用率不小于80%,帧序号的比特数至少是__。
A. 3
B. 4
C. 7
D. 8
答案:B
下列关于CSMA/CD协议的叙述中,错误的是__。
A. 边发送数据帧,边检测是否发生冲突
B. 适用于无线网络,以实现无线链路共享
C. 需要根据网络跨距和数据传输速率限定最小帧长
D. 当信号传播延迟趋近0时,信道利用率趋近100%
答案:B
下列关于交换机的叙述中,正确的是__。
A. 以太网交换机本质上是一种多端口网桥
B. 通过交换机互连的一组工作站构成一个冲突域
C. 交换机每个端口所连网络构成一个独立的广播域
D. 以太网交换机可实现采用不同网络层协议的网络互联
答案:A
某路由器的路由表如下表所示。
若路由器收到一个目的地址为 169.96.40.5 的 IP 分组,则转发该 IP 分组的接口是__。

A. S1
B. S2
C. S3
D. S4
答案:C
主机甲和主机乙新建一个 TCP 连接,甲的拥塞控制初始阈值为 32KB,甲向乙始终以 MSS = 1KB 大小的段发送数据,并一直有数据发送;乙为该连接分配 16KB 接收缓存,并对每个数据段进行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发送超时的情况下,经过 4 个 RTT 后,甲的发送窗口是__。
A. 1KB
B. 8KB
C. 16KB
D. 32KB
答案:A
某浏览器发出的 HTTP 请求报文如下:

下列叙述中,错误的是__。
A. 该浏览器请求浏览 index.html
B. Index.html 存放在 www.test.edu.cn 上
C. 该浏览器请求使用持续连接
D. 该浏览器曾经浏览过 www.test.edu.cn
答案:C
用单链表保存 m 个整数,结点的结构为[data][link],且 |data| ≤ n(n 为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中 data 的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。例如,若给定的单链表 HEAD 如下:

则删除结点后的 HEAD 为

要求:
(1)算法的基本设计思想:
使用一个辅助数组记录链表中已出现的绝对值,数组大小为 n+1,初始化为 0。遍历链表,对于每个结点的绝对值,若对应数组元素为 0,则保留结点并将数组元素置 1;否则删除该结点。这样只需一趟扫描,用空间换时间。
(2)单链表结点的数据类型定义:
typedef struct node {
int data;
struct node *link;
} NODE;
typedef NODE *PNODE;(3)算法描述(C语言):
void func(PNODE h, int n) {
PNODE p = h, r;
int *q, m;
q = (int *)malloc(sizeof(int) * (n + 1)); // 申请 n+1 个位置的辅助空间
for (int i = 0; i < n + 1; i++) // 数组元素初值置 0
*(q + i) = 0;
while (p->link != NULL) {
m = p->link->data > 0 ? p->link->data : -p->link->data; // 判断该结点的 data 是否已出现过
if (*(q + m) == 0) {
*(q + m) = 1; // 首次出现
p = p->link; // 保留
} else {
r = p->link; // 重复出现
p->link = r->link; // 删除
free(r);
}
}
free(q);
}(4)时间复杂度和空间复杂度:
时间复杂度为 O(m),其中 m 为链表结点数;空间复杂度为 O(n),其中 n 为给定的绝对值上限值。
已知含有 5 个顶点的图 G 如下图所示。
请回答下列问题:
1)写出图G的邻接矩阵A(行、列下标从0开始)。
2)求A²,矩阵A²中位于0行3列元素值的含义是什么?
3)若已知具有n(n≥2)个顶点的图的邻接矩阵为B,则B^m(2≤m≤n)中非零元素的含义是什么?

(1)邻接矩阵 A 为:
(2)A2 为:
A2 中位于 0 行 3 列的元素值 3 表示从顶点 0 到顶点 3 之间长度为 2 的路径共有 3 条。
(3) Bm( 2 ≤ m ≤ n )中非零元素的含义是:从顶点 i 到顶点 j 长度为 m 的路径条数。
某16位计算机的主存按字节编址,存取单位为16位;采用16位定长指令字格式;CPU采用单总线结构,主要部分如下图所示。图中R0~R3为通用寄存器;T为暂存器;SR为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3种操作,控制信号为SRop,SR的输出由信号SRout控制;ALU可实现直送A(mova)、A加B(add)、A减B(sub)、A与B(and)、A或B(or)、非A(not)和A加1(inc)7种操作,控制信号为ALUop。

请回答下列问题。
1)图中哪些寄存器是程序员可见的?为何要设置暂存器T?
2)控制信号ALUop和SRop的位数至少各是多少?
3)控制信号SRout所控制部件的名称或作用是什么?
4)端点①~⑨中,哪些端点须连接到控制部件的输出端?
5)为完善单总线数据通路,需要在端点①~⑨中相应的端点之间添加必要的连线。写出连线的起点和终点,以正确表示数据的流动方向。
6)为什么二路选择器MUX的一个输入端是2?
(1)程序员可见寄存器:通用寄存器R0~R3和PC。设置暂存器T的原因:用于暂时存放端口A的数据,以确保单总线结构下ALU的A、B端口能获得两个不同数据。
(2)ALUop至少需要3位;SRop至少需要2位。
(3)SRout控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开。
(4)端口1、2、3、5、8须连接到控制部件输出端。
(5)连线1连接⑥和⑨;连线2连接⑦和④。
(6)每条指令16位,按字节编址,顺序执行时下条指令地址为(PC)+2。MUX输入端为2,便于执行(PC)+2操作。
题43中描述的计算机,其部分指令执行过程的控制信号如题44图a所示。

该机指令格式如题 44 图 b 所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为0和1,通用寄存器 R0~R3 的编号分别为 0、1、2 和 3。

请回答下列问题。
inc R1 ; R1 + 1→R1
shl R2,R1 ; (R1) << 1→R2
sub R3, (R1),R2 ; ((R1)) - (R2) → R3
(1) 该机指令系统最多可定义 128 条指令。
(2) 机器代码:
inc R1: 0240H
shl R2,R1: 0488H
sub R3, (R1),R2: 06EAH
(3) 控制信号:
① 0
② mov
③ mova
④ left
⑤ read
⑥ sub
⑦ mov
⑧ Srout
(4) 指令“sub R1, R3, (R2)”的执行阶段至少需要 4 个时钟周期;指令“inc R1”的执行阶段至少需要 2 个时钟周期。
有 A、B 两人通过信箱进行辩论,每个人都从自己的信箱中取得对方的问题。将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中。假设 A 的信箱最多放 M 个邮件,B 的信箱最多放 N 个邮件。初始时 A 的信箱中有 x 个邮件(0 < x < M),B 的信箱中有 y 个(0 < y < N)。辩论者每取出一个邮件,邮件数减 1。A 和 B 两人的操作过程描述如下:
CoBegin
A{
while (TRUE) {
从 A 的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入 B 的信箱;
}
}B{
while (TRUE) {
从 B 的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入 A 的信箱;
}
}CoEnd
当信箱不为空时,辩论者才能从信箱中取邮件,否则需要等待。当信箱不满时,辩论者才能将新邮件放入信箱,否则需要等待。请添加必要的信号量和 P、V(或 wait、signal)操作,以实现上述过程的同步。要求写出完整过程,并说明信号量的含义和初值。
【答案】
(1)信号量定义及初值:
semaphore Full_A = x; // A信箱中的邮件数semaphore Empty_A = M - x; // A信箱中的空位数semaphore Full_B = y; // B信箱中的邮件数semaphore Empty_B = N - y; // B信箱中的空位数semaphore mutex_A = 1; // 用于A信箱的互斥访问semaphore mutex_B = 1; // 用于B信箱的互斥访问(2)A的同步过程:
A {
while (TRUE) {
P(Full_A); // 等待A信箱有邮件
P(mutex_A); // 进入A信箱临界区
从A的信箱中取出一个邮件;
V(mutex_A); // 离开A信箱临界区
V(Empty_A); // A信箱空位加1
回答问题并提出一个新问题;
P(Empty_B); // 等待B信箱有空位
P(mutex_B); // 进入B信箱临界区
将新邮件放入B的信箱;
V(mutex_B); // 离开B信箱临界区
V(Full_B); // B信箱邮件数加1
}
}(3)B的同步过程:
B {
while (TRUE) {
P(Full_B); // 等待B信箱有邮件
P(mutex_B); // 进入B信箱临界区
从B的信箱中取出一个邮件;
V(mutex_B); // 离开B信箱临界区
V(Empty_B); // B信箱空位加1
回答问题并提出一个新问题;
P(Empty_A); // 等待A信箱有空位
P(mutex_A); // 进入A信箱临界区
将新邮件放入A的信箱;
V(mutex_A); // 离开A信箱临界区
V(Full_A); // A信箱邮件数加1
}
}某计算机系统按字节编址,采用二级页表的分页存储管理方式,虚拟地址格式如下所示:

请回答下列问题。
1)页和页框的大小各为多少字节?进程的虚拟地址空间大小为多少页?
2)假定页目录项和页表项均占4字节,则进程的页目录和页表共占多少页?要求写出计算过程。
3)若某指令周期内访问的虚拟地址为 0100 0000H 和 0111 2048H,则进行地址转换时共访问多少个二级页表?要求说明理由。
1)页和页框的大小均为 212=4096 字节(4KB)。
进程的虚拟地址空间包含 220=1\,048\,576 页。
2)页目录占 1 页,页表占 1024 页,共 1025 页。
计算过程:
3)共访问 1 个二级页表。
理由:两个虚拟地址的页目录号(高 10 位)均为 4,指向同一个页目录项,因此对应同一个二级页表。
某网络拓扑如下图所示,其中路由器内网接口、DHCP服务器、WWW服务器与主机1均采用静态IP地址配置,相关地址信息见图中标注;主机2~主机N通过DHCP服务器动态获取IP地址等配置信息。
请回答下列问题。
1)DHCP 服务器可为主机2~主机N动态分配IP地址的最大范围是什么?主机2使用DHCP协议获取IP地址的过程中,发送的封装DHCP Discover报文的IP分组的源IP地址和目
的 IP 地址分别是什么?
2)若主机 2 的 ARP 表为空,则该主机访问 Internet 时,发出的第一个以太网帧的目的 MAC 地址是什么?封装主机 2 发往 Internet 的 IP 分组的以太网帧的目的 MAC 地址是什么?
3)若主机 1 的子网掩码和默认网关分别配置为 255.255.255.0 和 111.123.15.2,则该主机是否能访问 WWW 服务器?是否能访问 Internet?请说明理由。

1)DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是111.123.15.5~111.123.15.254;主机2发送的DHCP Discover报文的源IP地址是0.0.0.0,目的IP地址是255.255.255.255。
2)主机2访问Internet时,发出的第一个以太网帧的目的MAC地址是FF-FF-FF-FF-FF-FF;封装主机2发往Internet的IP分组的以太网帧的目的MAC地址是00-a1-a1-a1-a1-a1(图中标注的路由器内网接口MAC地址)。
3)主机1能访问WWW服务器,但不能访问Internet。因为默认网关配置错误(配置为111.123.15.2,正确应为111.123.15.1),所以可以访问同一子网内的服务器,但访问Internet时IP分组会被错误路由。