2007 年山东科技大学数据结构与计算机组成原理考研真题
一、解答下列问题[每小题 4 分,共 16 分]:
1、[4 分]为什么要分析算法的时间复杂度?
2、[4 分]简述代码区、全局数据区、栈区、堆区在程序运行时的作用。
3、[4 分]求模式串 s=’aaaabc’的 next 及 nextval 函数。
4、[4 分]证明根据森林的先序序列与中序序列可以唯一确定一个森林。
二、综合应用题[每小题 8 分,共 24 分]:
1、[8 分]推导满 k 叉树上的叶子结点数 n0 和非叶子结点数 n1 之间的关系(即用 k 和 n1 表
示 n0)。
2、[8 分]设有正文 AADBAACACCDACACAAD,字符集为 A、B、C、D,设计一套二进制编码,
使得上述正文的编码最短。
3、[8 分]画出对长度为 10 的有序表进行二分查找时的判定树,并计算在等概率情况下查找
成功的平均查找长度。
三、[15 分]某超市有一批水果,按其价格从低到高的顺序构成一个单链表,每个结点有价格、
数量和指针三个域,现新进 m 公斤价格为 h 的水果,编写一个函数修改原单链表。
四、[15 分]采用链表作存储结构,编写一个采用选择排序方法进行升序排序的函数。
五、[15 分]采用二叉链表存储树,试写一算法,实现对树的层次遍历。
六、[15 分]设计一个算法,判断无向图 G 是否一棵树。
计算机组成原理部分(50 分)
一、假定用 n+1 位表示定点整数,其中一位用于表示数的符号,并且已知原码定义为
说明原码与补码表示的整数个数是否一样多。若不一样多,说明哪一个表示的多?多几个?
为什么?(10 分)
二、假设某存储器地址寄存器长度为 22 位,存储全字长为 16 位(2 个字节),试问∶
1.此存储器按字寻址情况下,最多存储多少字节信息?(3 分)
2.若用 64K×4 位的 DRAM 芯片组成该存储器,则需多少芯片?(3 分)
3.在 22 位地址中,多少位用于选片?多少位用于芯片内寻址?(3 分)
4.用 2.中给定的芯片组成此存储器并画出示意图。(6 分)
三、1.某机使用寄存器直接寻址和寄存器间接寻址方式,若寄存器 A 中值为 1000H,主存地
址为 1000H 的单元中存放的数是 1234H。若指令以 A 为寄存器直接寻址方式,则操作数值
是多少?若指令以 A 为寄存器间接寻址方式,则操作数是多少?(5 分)
2.某机指令字长 16 位,每个操作数的地址码长 6 位,指令分为单地址指令、双地址指令和
零地址指令。若双地址指令有 12 条,单地址指令有 254 条,则最多有多少条零地址指令?
画出指令格式并给出操作码编码。(10 分)
四、按下图的数据通路画出取数指令"LDA(R3),RO"的指令周期流程图。该指令含义是将
(R3)为主存地址单元的内容取出送入寄存器 RO 中,在流程图中标明各微操作控制信号序
列。(10 分)