2017 江苏南京航空航天大学计算机专业基础考研真题
数据结构部分(50 分)
1.(10 分)为一个家谱管理程序设计一种数据结构,以一个四代人,11 个家庭成员为例,
(A 有 3 个孩子 A1、A2、A3;A1 有 2 个孩子 A11、A12;A2 无子,A3 有 3 个孩子 A31、
A32、A33;A11 有 1 个孩子 A111;A32 有 1 个孩子 A321;其余尚无子),画出家谱示意
图,给出所设计的存储结构示意图,并给出在该存储结构上输出第 k 代所有人员的算法思
想。
2.(10 分)已知输入数据序列为 (58,68,42,10,88,32,70,52,55,46 ),给出建立 3 阶 B-
树示意图,再给出删除 55,70 后的 B-树。
3.(10 分)试用 Dijkstra 算法,求下图中从 V1 到其余各顶点的最短路径,给出实现算
法所用的数据结构和求解过程中每一步的状态。
4.(10 分)设 A、B 为递减有序(元素值为整型)的单链表,编写函数,利用原结点将它
们合并成一个递增有序的单链表,相同元素值只保留一个结点。先给出算法思想,再写出
相应代码。
5.(10 分)设有 n 个学生成绩(0-100 整数)的顺序结构线性表 L,编写函数,将该线性
表中调整为成绩及格(大于等于 60)在不及格之前,要求 T(n)=O(n), S(n)=O(1)。先给出
算法思想,再写出相应代码。操作系统部分(50 分)
6. (16 分) 简答(4 分/题)
(1) 系统型线程和用户型线程有何区别?
(2)分段式系统和分页式系统有何区别?
(3)引入缓冲的目的是什么,有哪些常见的缓冲模式?
(4)SPOOLING 技术如何实现,在操作系统中起何作用?
7. (7 分) 设有三道作业,它们的提交时间及执行时间由下表给出:
试计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周
转时间
8. (9 分) 某系统有 A、B、C、D 四类资源可供五个进程 P1、P2、P3、P4、P5 共享。系统
共有这四类资源为:A 类 3 个、B 类 14 个、C 类 12 个、D 类 12 个。进程对资源的需求
和分
配情况如下:
(1)现在系统是否处于安全状态?(4 分)
(2)如果进程 P2 提出需要 A 类资源 0 个、B 类资源 4 个、C 类资源 2 个和 D 类资源
0 个,系统能否去满足它的请求?(5 分)
9.(9 分) 某分页系统,每个页面长为 1KB,某时刻该用户进程的页表如下:
(1) 请写出分页系统的地址转换过程(3 分)
(2)计算两个逻辑地址:0AC5H、1AC5H 对应的物理地址(16 进制表示)。(3 分)
(3)已知主存的一次存取为 2us,对于快表的查询时间可以忽略,则访问上述两个逻辑地
址分别耗费多少时间?(3 分)
10. (9 分) 一家四口人,儿子喜欢吃苹果,由父亲负责购买, 女儿喜欢吃橘子,由母亲负
责购买。父亲和母亲购买水果后放到家中的抽屉里,儿子和女儿从抽屉里取出水果。假设抽
屉只能容纳 20 个水果,同时只能一人开关, 用纪录型信号量同步父母子女四个进程。
组成原理部分(50 分)
11.(10 分)简答题(5 分/题)
(1)计算机内部的指令和数据均以二进制信息的形式存放在存储器中,请问计算机如何从
时间和空间上区别它们?
(2)为什么用算逻部件 ALU 和移位器能够实现定点数和浮点数的加减乘除运算?
12.(10 分) 下面一段 C 程序用于计算数组 a 中各元素之和。当参数 len 为 0 时,返
回值应该为 0。但计算机执行该程序时,却发生了存储器访问异常。这是什么原因造成的?
应该如何修改?
1 float sum_elements (float a[], unsigned len)
2 {
3 int i;
4 float result = 0;
5
6 for (i = 0; i <= len–1; i++)
7 result += a[i];
8 return result;
9 }
13.(15 分)高级语言语句“for (i=0;i
14.(15 分)假定一个计算机系统中有一个 TLB 和一个 L1 data cache。该系统按字节编
址,虚拟地址 16 位,物理地址 13 位;页大小为 256B,TLB 为四路组相联,共有 16 个
页表项;L1 data cache 采用直接映射方式,块大小为 4B,共 16 行。在系统运行到某一
时刻时,TLB、页表和 L1 data cache 中的部分内容(用十六进制表示)如下表(a),(b),
(c)所示:
组号/标记/页框号/有效位/标记/页框号/有效位/标记/页框号/有效位/标记/页框号/有效
位
(b) 部分页表(开始的 16 项) (c) L1 data cache:直接映射,共 16 行,块大小为 4B
(1)虚拟地址中哪几位表示虚拟页号?哪几位表示页内偏移量?虚拟页号中哪几位表示
TLB 标记?哪几位表示 TLB 索引?
(2)物理地址中哪几位表示物理页号?哪几位表示页内偏移量?
(3)主存(物理)地址如何划分成标记字段、行索引字段和块内地址字段?
(4)CPU 从地址 067AH 中取出的 short 型值(16bit-大端方式)为多少?说明 CPU 读取
地址 067AH 中内容的过程。