清华大学2008年计算机专业考研试卷(回忆)
[b]《数据结构》[/b][b]一、选择题[/b]
1
2
3 给了一序列比如6.7.4.8.9.3.散列函数是H(key)=key%11.一问成功时的平均搜索长度 二问不成功的平均搜索长度
4 哪种数据结构,从某一个结点到根结点的路径序列组成一个降序排列
a. b.最大堆 c.最小堆 d
5 还有一个题是关于关键路径的,答案选项是49
/B -C \
A /F\ \
\D-E H
\G/
6 什么是数据结构? A B C定义在一个数据集合上的属性和操作 D
7 高度为h的完全二叉树,一共有多少种?A B 2^(h-1) C D
[b]二、证明题[/b]
1. 什么样的有向无环图有唯一的拓扑有序序列,并证明。
[b]三、计算题[/b]
1 有n个结点的二叉树最大高度,最小高度分别是多少?
2 一棵有n个结点的树有m个叶节点,如果用做兄弟-右子女表示法,则有多少个结点的右指针域为空?
3 霍夫曼树中,有n个叶结点,问一共有多少个结点?
4 有n个结点的树的不同排列形式有多少种。
[b]四、[/b]给定一个文件有1,000,000个记录,每个200B,记录中关键码大小50B,页面大小为4kB,现以B+树(最大关键码复刻)方式组织该文件,尽量使每结点拥有尽可能多的关键码,已知每个指针占用5B。
[b] 问1.该B+树有多少个叶结点,共有多少层;2.该B+树共有多少个索引结点;3.每次搜索要读盘多少次?[/b]
[b]五、算法设计题[/b]
1.给定A[n],设计一个算法,重排数组,使得奇数都在数组前半部分,偶数都在后半部分。要求时间复杂度O(n)。
函数头:void exstorage(int A[], int n)
2.重新设计一个直接选择算法函数,采用递归方式。
函数头:void selectsort(int A[],int left, int right)
[b]《操作系统》[/b]
[b]一、简答题[/b]
1. 磁盘I/O操作的时间组成部分,阐述优化磁盘调度策略的目标。
2. 什么是内碎片, 外碎片.
3. 内核线程和用户线程的区别?各自有什么特点。
3. 什么内核模式和用户模式?为什么系统要设置这两种模式
[b]二、计算题[/b]
已知系统为32位实地址,采用48位虚拟地址,页面大小4kB,页表项大小为8个字节;每段最大为4G。
1. 系统将采用多少级页表,页内偏移多少位?
2. 假设系统采用一级页表,TLB命中率为98%,TLB访问时间10ns,内存访问时间100ns,并假设当TLB访问失败时才开始访问内存,问平均页面访问时间多少?
3. 如果是二级页表,页面平均访问时间是多少?
4. 每用户最多可以有多少个段?段内采用几级页表?
5.如果要满足访问时间<=120ns, 那么命中率需要至少多少?
[b]三、pv操作题[/b]
给定一个全局数组a[n] b[n],然后是T1~Tn-1 共n-1个线程,线程为代码如下
Ti(){
a[i]=g(a[i],a[i-1]);
b[i]=f(a[i]);
}
其中g和f函数的作用是通过输入参数,进行一系列运算后返回。相当于Ti 以a[i]和a[i-1]为输入参数,a[i]和b[i]为输出。
要求使用pv原语,实现T1~Tn-1的并发互斥,尽量保证最大限度的并发。
(a[i-1]为Ti-1线程的结果,)
[b]四、进程同步问题[/b]
假设当前处于非抢占调度策略,进程只有两种方式可以放弃cpu,一个是主动调用系统调度函数sysnc(),此时进程主动放弃cpu;另一个方式是当进程执行I/O操作时,系统将调度下一个进程。试分析如下三种进程对,何时会出现不符合下列原则,并说明原因:1)空闲则入 2)有限等待 3)保证互斥。
第一种:
Thread1(){
sysnc();
----critical section-----
g=g+b;
f=g-a; //这部分确切的语句想不起来了,但不影响。只要记得临界区不能被打断。
----critical section-----
}
Thread2(){
----critical section-----
g=g+b;
f=g-a;
----critical section-----
}
第二种:
Thread1(){
sysnc();
----critical section-----
g=g+b;
f=g-a;
----critical section-----
}
Thread2(){
----critical section-----
g=g+b;
f=g-a;
----critical section-----
sysnc();
}
第三种:
Thread1(){
sysnc();
----critical section-----
g=g+b;
fstring=printf(……) ; // 调用I/O;
f=g-a;
----critical section-----
}
Thread2(){
sysnc();
----critical section-----
g=g+b;
f=g-a;
----critical section-----
}
[b]五 文件操作[/b]
题很长,大意如下
给定两种文件系统,分别采用FAT方式和索引方式组织文件结构。然后给出缓冲区,并假设所有操作均不涉及内存或cache,只考虑缓冲区。
并声明只有如下两种状态才会刷新缓冲区:a)缓冲区冲突 b)系统主动调用一个同步函数,同步缓冲区。然后给出当前根目录文件共有10块,分别分布在缓冲区的位置,缓冲区一个24个数据块。用一个表格把它们对应起来了。
然后就是一个超大的表格,给出一些列操作,例如读第几个数据块,并偏移多少字节之类的,然后让填写在fat和索引方式下读盘次数,写盘次数和当前缓冲区内容。
[color=#ff0000]ps:本题实在记不清了,光读题都要十分钟
[/color]
file表存放在第23块
(第一列都是类似一下的语句)
从偏移量100字节处读入50字节
从偏移量1000字节处读入20字节
从偏移量***字节处读入**字节
[align=center][table=98%,#ffffff][tr] [tr][td=1,1,14%]
[/td][td=1,1,14%]
[/td][td=1,1,14%]FAT
[/td][td=1,1,14%]
[/td][td=1,1,14%]
[/td][td=1,1,14%]索引方式
[/td][td=1,1,14%]
[/td][/tr][tr][td=1,1,14%]
[/td][td=1,1,14%][b]读次数[/b][/td][td=1,1,14%][b]写次数[/b][/td][td=1,1,14%][b]缓存内容[/b][/td][td=1,1,14%][b]读次数 [/b][/td][td=1,1,14%][b]写次数 [/b][/td][td=1,1,14%][b]缓存内容[/b][/td][/tr][tr][td=1,1,14%][b]从偏移量100字节处读入50字节[/b][/td][td=1,1,14%]
[/td][td=1,1,14%]
[/td][td=1,1,14%]
[/td][td=1,1,14%]
[/td][td=1,1,14%]
[/td][td=1,1,14%]
[/td][/tr][/tr][/table][/align]
[b]《计算机原理》[/b]
一、填空题
1. 写出-1.125的IEEE754 32位标准的浮点数。
2.控制器部件由哪五部分组成____ _____ _____ ______ ______;
3.五级指令流水线哪五部分组成 IF, _____ ______ ______ ______;
二、下列指令能否用单字指令(字长为12位)实现:a 4条三寄存器指令 b 255条单寄存器指令 c 16条0寄存器指令
三、cache和虚拟地址相关的计算题
一个标记位Tag, 一个有效位, 一个脏位(Dirty), 块号(Offset), 采用全相连方式,
为什么要采用全相连方式? 1 画图表示标记,块号,块内地址。
2.cache的存储效率 (即除掉标记位,access位,dirty位)。
四、输入输出方式都有哪几种?请简要叙述各自特点。
五、1在虚拟页式系统中,给了虚拟地址的位数大概48位,可用的最大主存空间位128GB,每页大小4KB 。问了四个问题,大概有涉及的多级页表,访存的平均时间,命中率等等。
(不要假设有TLB存在)
2. 系统中为什么要设计TLB
画图表示出虚拟地址到真实地址的转化
[/i][/i][/i][/i][/i][/i][/i] 楼主是不是回忆的不很准确?数据结构中那道B+树题应该是两问呀,第一问没有明确问有多少层,只问了有多少个索引节点;操作系统中那道线程同步题中没有synch()函数,是yield()函数;计算机原理的最后一题似乎没明确强调是多级页表,且画图应该是第一问吧,第一问中也没有问命中率,倒是问了虚地址和实地址各有多少页。
如有不对,敬请指正!谢谢!
清华2008cs考研真题回忆版
有点累,不想写了,谁想写就写吧,我多少写点,以后补充数据结构
选择题 10分
有一个散列表,问陈宫搜索和不成功搜索的概率各是多少,采用key%11,在0~11之间
选项有1.55,1.99,2.00
还有一个是AOV的,问路线和关键路径
还有什么简答题,分值2分一个,但是超多
高度h的二叉树最多有多少个顶点什么的
3。 n个顶点的树有m个叶节点,采用左子女右兄弟表示法右边空有多少个点
一共四个 全是关于树的
下面有两个编程
一个是告诉你一个数组,让你实现奇数都在前面,偶数都在后面,尽量少用中间量,复杂度O(n)
第二个是直接选择排序的编程实现
操作系统
待写……
最后是一个大大的表格,写什么偏移和访问次数等等的, 32个空,10分
组成原理
填空
用IEE什么的精确表示一个数-1.25=
控制器包括那五部分
指令什么流包括IF,什么也一共五个(以后补充,好好复习应该知道什么意思)
问答题
常用的输入输出方式及特点
最后是个虚地址,实地址转化的
好累,不写了,以后再写吧,基本全用来记题了,结果发现还给忘记了
题量还算比较大吧
给点鼓励好不好?以后想到再写
没有
我看上面的到是有好多是准的,但是操作系统还有一个大表格的题,可能没有人记得起了吧关于IF那个,是05年的一个真题
那个是书上的一个基本题。但是系统结构上只讲了4个页:
[1]
