考研论坛

 
查看: 4760|回复: 7
打印 上一主题 下一主题

发几套THU CS题目

[复制链接]

2

主题

36

帖子

299

积分

一般战友

Rank: 2

精华
1
威望
97
K币
202 元
注册时间
2006-1-22
跳转到指定楼层
楼主
发表于 2007-8-26 22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
呵呵,我要消失一段时间了,在这个版混了很久,得到了大家很多的帮助。
现在把自己攒的2004,2005,2006版的THU CS真题贴出来。
以前网上也都有过,稍稍说明一下:
2004年的题目:都是回忆版,有两份,大家参照着看;
2005年的题目:我发的这份要比网上流传的详细一些些,尤其是数据
结构部分,可以说就是原题;另外硬件部分也基本接近原题;
2006年的题目:这个版本的静海斑斑以前貌似发过,比现在版上的稍微详细一些些,
但是现在版上好像找不到了-_-!!!,我结合一下自己的再发一遍。
PS:07年的题目网上有回忆版,大家一搜便有,嘿嘿,祝大家考研顺利,马到成功!!![qq:39]
    回复

    使用道具 举报

    2

    主题

    36

    帖子

    299

    积分

    一般战友

    Rank: 2

    精华
    1
    威望
    97
    K币
    202 元
    注册时间
    2006-1-22
    沙发
     楼主| 发表于 2007-8-26 23:00 | 只看该作者

    回复 #1 xjMatrix 的帖子

    2004 cs1
    选择18个36分
    冯诺伊曼处理机以(运算器)为中心
    通道达到最大通量是(字节通道(R?)/选择通道/数组)
    字节通道的吞吐率(1/(Ts+Td))
    去年那个不是CISC缺点(多指令编译困难)
    RISC核心技术哪些(多寄存器窗口/延迟转移/指令取消/?指令调度)
    去年那个浮点数补码减法计算(-0.875*2....)
    去年那个主存要多少位
    去年那个变址寻址和间接寻址从下列角度哪个好1)程序复杂度2)硬件复杂度3)向量运算 3分
    写出两种数据相关,程序段说明 4分
    评价流水线的三个量 3分
    某程序I/O占 10%, cpu提高十倍后系统有什么变化 7分
    a处理器每秒可处理1000个i/o,b处理器每秒可处理750个i/o,现有任务,每个任务要5个i/o操作,每个io操作要2个时钟周期,cpu频率10KHZ 问两个处理机的处理任务速度(具体数计不清了) 7分
    2M*8位的存储器组成8M*16位,要多少个,地址分别多少位,画出逻辑图(10分)
    1)用一个栈将一个队列逆置,2)比较两个队列是否相等,3)清空一个队列
    一个O(n^2)排序程序,排序数的个数为200,用时间为XX, 个数增为400,时间为多少,个数为40000,时间为多少
    一个已中序线索化二叉数,写出获得前序的第一个节点的函数,写出一已知节点的前序下一个节点的函数,写出前序遍历的函数
    给出程序段的一Shell排序第一个循环中数据变化情况与交换次数
    程序角度与软件工程角度判断正悟
    1)
    int a(int* p)
    {
      if (p!=NULL)
         return *p;
    }
    2)
    class A
    {
      void funtion(int a=0);
    }
    void A::function(int a)
    {
    }
    3)
    class LinkedListNode
    {
       ... data;
       LinkedNode* p;
    }
    class LinkedList:: public LinkedListNode
    {
       LinkedNode* head;
    }
    4)
    for (int i=0; i<..;i++)
    {
    if (some condition)
        i=...;
    }
    5)
    class A
    {
      int static function();
    }
    A* b = new A();
    b->function();
    判断
    两个LIFO可组成FIFO,反之两个FIFO可组成LIFO  (W)
    二维数组非线性结构 (W)
    广义表线性结构(W)
    有向图矩阵下半为0一定可以拓扑排序(R)
    h层中序满二叉树有n个节点,n,h互相表示(  ),
    从0开始对中序排列编号,根节点序号,根结点左儿女序号,右儿女序号

    --
                                           2004 cs2
    数据结构:
    一. 判断
        总共十小题,隔的太久,详细的内容记不清了,好像第一题是说线性表的各项类
    型必须相同?还考了几道关于图的概念题(整张卷子就这里提到了图),不是很难
    ,比较基础的说。
    二.从C++语法和软件工程的角度判断程序片断的对错,有则改之。
        这个题型以前没有出现过,我自己也做的糊里糊涂,总共5题,只有一道记得比
    较深刻(大概意思如下)
        type retvalue (type *p) //时间长了,有可能有些地方不对
        {  if(p  == null ) return 0;
           return *p;
    }
    这个函数的意思是根据返回值自动判断指针p是否为空,我觉得应该是错的,如
    果p指向的值为0 ,那么就判断的有问题了
    三.关于树的遍历的填空题。应该是03年或者02的第一大题的最后一道小题,由根结
    点的中序遍历的序号,填写根结点左子树和右子树根节点的中序遍历序号。
    四.关于线索树遍历的程序题,共两小题。具体的题目记不太清了,好像是由中序线
    索树推倒前序遍历的next()函数?第二个是接着第一题问的,由next函数写出全部
    的前序遍历?
    五.关于排序的问答题。那段程序是shell排序(缩减增量排序?)的一个变种,第
    一小题回答是什么排序,第二小题根据一个实际的排序例子写出排序过程中一趟的
    详细情况,比较简单吧。
    六.关于程序复杂度的计算题。大意是一个O(n2)的排序算法,20个数据时时间是t1
    ,那么200个数据时时间是多少?我感觉这道题要么出得很弱,要么难得没人能做得
    出来,hiahia
    七.算法题。根据一个实现队列功能的类提供的操作模拟一个栈,好像是书上的一个
    习题吧?

    操作系统:
    一.名词解释,还算比较基本吧,如果把清华出的那本操作系统书上的习题部分看一
    遍就没什么大问题了,好像考了一道“进程和线程的区别”?
    二.有关进程调度的问题,也是比较基本吧,像轮转,先来先服务,优先级,最短时
    间优先等算法都考到了,并且结合了一个具体的例子,写出每种算法情况下的cpu执
    行过程.
    三.一个有关磁盘读写次数的问题,它是和文件系统的索引部分和起来考的,大意是
    考察不建索引和建了索引的访问过程与访问次数(好像清华以前没考过类似的问题,不过
    北大考过)
    四.pv操作。标准的写者优先前提下的读者写者问题。第四版上有详细的说明。
    五.关于存储系统的访问的一个问答题,和分页的知识混在了一起。大意是描述怎样
    通过页表,cache,磁盘 进行寻址?

    评分

    参与人数 1威望 +30 收起 理由
    静海听风 + 30 精品文章

    查看全部评分

    回复

    使用道具 举报

    2

    主题

    36

    帖子

    299

    积分

    一般战友

    Rank: 2

    精华
    1
    威望
    97
    K币
    202 元
    注册时间
    2006-1-22
    板凳
     楼主| 发表于 2007-8-26 23:02 | 只看该作者

    回复 #1 xjMatrix 的帖子

    2005 cs
    数据结构:
    第一题:(15分)
    1、什麽是线性表,线性表的每一个表元素是否必须类型相同?为什么?
    2、线性表有两种存储形式:顺序表和单链表。
    线性表(Class LinearList): Class SeqList: Public LinearList(顺序表)
        (抽象基类)                     (派生类)
                               Class LinkedList: Public Linearlist(单链表)   
    如果需要定义和使用一个线性表对象,试问在程序中如何选用某种存储表示?
    3、二叉树给定前序和中序序列,求后序序列。其中前序序列为ABDEGCFHIJ,中序序列为DBGEAHFIJC。
    4、利用B树做文件索引时,设磁盘页块的大小是4,000字节(实际也许是4096字节,为了计算方便,就取成4000字节),指示磁盘地址的指针需要5个字节。现在有20,000,000个记录构成的文件,每个记录为200字节,其中包括关键码5个字节。试问在此采用B树作索引的文件中,B树的阶数应为多少?假定文件数据部分未按关键码有序排列,则索引部分需要占用多少磁盘页块。
    5、把关键码key散列到有n个表项(从0到n-1编址)的散列表中。对于下面函数H(key)(key为整数),
    1) H(Key)=Key/n;
    2) H(Key)=1;
    3) H(Key)=(Key+random(n))%n;
    4) H(Key)=Key%p(n),其中p(n)是不大于n的最大整数,而random(n)函数返回一个0到n-1之间的随机整数(包括0与n-1)。
    问:这些函数能够做散列函数吗?(即对于插入和查找,散列程序能正常进行吗?)若能,它是一个好的散列函数吗?请讲明理由。
    第2题:(5分)
    试证明:在同一棵二叉树的前序序列、中序序列和后序序列中所有叶结点都按相同的(先后)相对位置出现。
    第3题:(15分)
       在AVL树的插入和删除过程中,每插入一个结点都要判断从插入结点到树根的路径上是否有失去平衡的结点,如果有,就要做平衡化旋转。平衡化旋转有四种类型:左单旋转、右单旋转、先左后右双旋转、先右后左双旋转。
    1) 若关键码的输入序列为20,9,3,12,13,27,22,16,17,15,18,10,试从空树开始顺序输入各关键码建立AVL树。画出每次插入时树的形态。若需要平衡化旋转则做旋转并注明旋转的类型。
    2) 基于上面建树的结果,画出从树中删除22,删除10与9后树的形态和旋转的类型。要求以被删关键码的中序下的直接前驱替补该被删关键码。
    第4题:(15分)
       设Graph是一个带权有向图,可以直接使用的操作有
      int Number of Vertices(); ||函数返回图中顶点个数
      int Number of Edges();    ||函数返回图中边数
       T  GetValue( int i );    ||函数返回第i个顶点上的数据值
    Float GetWeight( int u, int v );  ||函数返回边<u,v>上的权值
      int GetFirstNeighbour(int v);    ||函数返回顶点v的第一个邻接顶点
      int GetNextNeighbour(int v, int w);  || 函数返回顶点v的相对于邻接顶点w的下一邻接顶点
    (1)下面是一个函数,利用Dijkstra算法在图G中求从顶点v到图中其它各顶点的最短路径和最短路径长度。函数中有5条语句缺失,请阅读程序并将它们补上。(5分)
            template <class T>
    void ShortestPath( Graph <class T> G, int v, float dist[],int path[])
    {//数组dist[]存放求到的从顶点v到各顶点的最短路径长度,数组path[]存放求到的最短路径。
    //其中,常量maxWeight是float类型数据在机器中能够表示的最大数,代表无穷边 。
      int n=G.NumberOfVertices();
      int *S=new int[n];
      int i,j;
        float w;
        for(j=0;j<n;j++){
    dist[j]=G.Getweight(v,j);
    S[j]=0;
    if( j!=v && dist[j]<maxWeight ) __1___; ||记路径上顶点j的前一顶点
        else path[j]=-1; } /* end of for */
    S[v]=1;
    dist[v]=0;
    for( i=1;i<n;i++){ float min = maxWeight; int u=v;
        for( j=0;j<n;j++ ) if( ___2____ && dist[j]<min )
          { u=j; min=dist[j];}
           ____3____;
        for(j=0;j<n;j++){ w=G.GetWeight(v,j);
             if(____4____ && w<maxWeight && dist+w<dist[j])
              {dist[j]=dist+w;___5___;} /* end of if */
    }/* end of for */
    }/* end of for */
    delete []s;
                 }/* end of ShortestPath */
    (2) 设有一个带权有向图G=(V,E),w是G的一个顶点,w的偏心距定义为   
           max{从u到w的最短路径长度|u V}.
        其中的路径长度指的是路径上各边权值的和。
        将G中偏心距最小的顶点移为G的中心,试设计一个函数返回带权有向图的中心(如有多个中心,可任取其中之一)。函数的首部为
    template <class T>  int centre( Graph<T> G, float & biasdist )
    参数表中的引用型参数biasdist返回最小偏心距的值,函数返回该中心的顶点号。(10分)
    操作系统:
    第一题:(15分)
    1) TLB快表的结构、原理、作用
    2) 内存能放1024页,CPU访问一个页表项用100ns,TLB有32个页表项,CPU访问TLB里
    的一个页表项需要5ns,现在CPU访问一个页表项的时间是25ns,求快表的命中率.
    第二题:(10分)
    1) 反置页表(Inverted Page Table)的工作原理,同样的逻辑地址空间,主存空间,用一般的页表和反置页表各需要多少项.(反置的表项是以主存空间来分的;比一般页表项少得多.) (这个题的表述记不太清了,大概是这样的吧.把反置页表的结构作用弄明白就没有问题了)
    2) 外存有2^64字节存储空间,主存有256MB(2^28字节),一个页面有4KB(2^12字节
    ),计算一个进程可能的最大页表项数(用2^*表示),如果用反置页表表示,最大有多
    少页表项.
    第三题:(10分)
    1) 写出unix(UFS)文件系统的结构
    2) 计算一个包含10个直接索引、一个一级间接索引、一个二级间接索引的最大文
    件大小,要写出计算过程
    (UNIX的文件组织方式,磁块地址4BYTE,索引结点前10个直接,一个一级,二个二级的最大文件长度.)
    第四题:(15分)
    学生选课最多可以选3们,但是如果王同学选了3门C1C2C3后,想把C3换成C4,王同
    学就得先退选C3再申请选修C4.但是这个时候可能C4已经选满了,而王同学想再选回
    C3的时候可能已经被人选满,不能再选了.为了解决这个问题,使用一个函数
    TradeCourse(user,course1,course2)将课程course1换成course2.下面给出一种实
    现.如果有不正确,给出所有错误的执行情况,并给出你认为正确的实现.要有适当注
    释.15分.
    TradeCourse(user,course1,course2){
       course1->p();        //申请课程course1数据结构的互斥信号量
       course1->drop(user); //退选课程course1
       course2->p();        //申请课程course2数据结构的互斥信号量
       if(course2->isFull()==false){//课程course2没有选满
         course2->add(user);//申请选修课程course2
         course2->v();      //释放课程course2数据结构的互斥信号量
         course1->v();      //释放课程course1数据结构的互斥信号量
       }
    }
    (答案是错误.若课程2选满,即c2-full==1,会死锁)
    计算机原理:
    第一题:填空,每空1.5分,共18分
    1、举出构成网络存储系统的两种方式:_____和_____
    2、举出3种用于构建并行集群系统的高速互联网________________________  
    3、举出硬盘接口的两种类型_________和___________
    4、举出两种显卡与计算机主板相联所使用的总线类型___________和_________
    5、举出两种利用程序局部性原理构建的系统_______________和__________________
    6、IA32系统中单个进程所能访问的最大内存空间的大小__________
    第二题:20分
    1、什么叫Disk Array,它的原理和目标。(3分)
    2、什么叫SMP,它和Cluster(集群系统)比较有什么区别和联系。(6分)
    3、什么叫Cache,它的原理和作用。(3分)
    4、嵌入式cpu和通用cpu相比有哪些特点?(3分)
    5、写出RISC、CISC、VLIW的基本思想。(5分)
    第三题:选择,每个3分,共12分。选择题基本上都是历年出过的真题,去核对一
    下就知道了。
    1、浮点数的尾数3位,符号为1位,用补码表示;阶数2位,符号1位。x的尾数是
    -0.875,阶数为1。y的尾数是0.625,阶数是2。则z=x-y规格化后的结果是:
    A、1011011      B、*******      C、*******      D以上均不对
    2、cache用组相联映射,一块大小为128字节,cache共64块,4块分一组。主存有
    4096块。地址共需多少位:
    A、19   B、18   C、17   D、****
    3、指令的执行分为取指令用时△t,译址用时2△t,执行用时3△t。当流水执行的
    时,指令执行所需最短时间为:
    A 1n△t    B、2n△t     C、3n△t        D、6n△t
    4、总线分同步总线和异步总线,其中同步总线具备的性质是:
    ①成本高、②成本低、③逻辑复杂、④逻辑简单、⑤适应设备类型广泛、⑥对设备要求严格
    A、2、3、6      B、1、3、5      C、1、4、5      D、2、4、6

    [ 本帖最后由 xjMatrix 于 2007-8-27 20:45 编辑 ]
    回复

    使用道具 举报

    2

    主题

    36

    帖子

    299

    积分

    一般战友

    Rank: 2

    精华
    1
    威望
    97
    K币
    202 元
    注册时间
    2006-1-22
    地板
     楼主| 发表于 2007-8-26 23:07 | 只看该作者

    回复 #1 xjMatrix 的帖子

    2006年清华CS硕士入学试题DS,OS,CA(回忆版)
    DS
    一.  证明题:10分,每题5分
       1.证明在一棵满二叉树中分支B与叶子节点n0满足关系 B=2(n0-1)
       2.证明,完全无向图中,两个顶点之间简单路径数目为:
        1 + A(n-2,1) + A(n-2,2) + ... + A(n-2,n-2)
           其中A(m,n)是m取n的排列数。
    二. 作图题(手工画图)10分
        给了一个Dijkstra无向连通图的最小生成树算法描述,就是山大的“破圈法”,和习题解析185页8---14一个模样,要你根据该描述画出加入各边之后最小生成树的形态和并查集的变化情况。
       为了使答案唯一,题目给定了加入边的顺序,比如(0,3,6),(0,2,15)。。。。边的格式是(tail,head,weight)
    三. 画图并求搜索长度 10分
    一个数组大小为8*N,下标从0到8N - 1,现在这样搜索:
    A[7],A[15],A[23]......A[8*N-1] 用顺序搜索
    在A[0]到A[6]之间,在A[8]到A[14]之间,,,A[8*(N-1)]到A[8*N-2]之间采用折半搜索.
       1. 画出判定树  5分
       2. 求ASL(succ) 3分
       3. 求ASL(unsucc) 2分
    四.  程序填空 10分
    先给出了一个算法,用静态链表描述的.中间缺了4个空.原题的函数名是selectsort
      1. 这是什么排序算法? 2分
      2. 填上挖去的4个空 8分
    注:就是习题解析上210页9---11上的那个基于静态链表的简单选择排序,
      挖去的空我就不写了,你应该能把整个算法写出来才是
    五. 算法设计  10分
    1.让我们用C++语言设计一个多项式类。3分
      在此问之前先给了一大段话,大意是要求用单链表实现,每个结点包括3个域:coef,exp,link;结点按exp递减排列。原题给出了简单的结点类和多项式类的格式,用了template来描述的,
    2. 根据题目给出的类声明,和我们自己刚才定义的那个类,来写一个Insert()函数.
    要求是:顺序搜索链表,当找到与已知exp相等的结点时,将它们合并,否则插入。 2分
    1 写类的描述
    3. 写出两个多项式相乘的算法。 5分
    OS
    一. 信号量 8分
      给出一个并发程序的描述:
    semaphore X1=X2=Y=1;
    int c1=c2=0;
    procedure f1:
      p(X1)
      if (++c1 = 1) p(Y)
      v(X1)
      ......compute A........
      p(X1)
      if (--c1 = 0) v(Y)
      v(X1)
    procedure f2:
      p(X2)
      if (++c2 = 1) p(Y)
      v(X2)
      ......compute B.......
      p(X2)
      if (--c2 = 0) v(Y)
      v(X2)
    问: 1.最多有多少个进程来并发执行  ....computeA.... 和 ....computeB.....?
        2.是否会造成饥饿?
    二. 4分
      一个CPU的性能是10MIPS,现在编写了一个Scheduler,用RR实现调度,
    每轮转1次要1us,让我们评价调度的效率和响应时间。
    三. 10分
      1. 简述多级页表的实现原理。
      2. 虚地址空间为64bit,实存地址空间为36bit,页块大小为4KB,每个页表项占8B,
       问: (1)页表要分几级?
          (2)页表占多少内存?
    四. 8分 一个三级存储系统,Cache命中率为95%,Cache存取要20ns,内存命中率为80%,内存存取时间为60ns,外存存取要12ms,问:
         此系统的平均存取时间,要求写出计算过程。
    五.10分  把一个UNIX文件卷复制到另一个磁盘上,问:
      a) UNIX文件卷由哪几部分组成?
      b) 只复制文件数据,包括目录之后,不能访问,为什么?
      c) .....忘了。
      d) 终于搞好了之后,发现有重复的hardlink,为什么?
    六.10分  给出一个使用pthread的程序代码,里面系统调用有fork(),thread(),join()等,中间穿插print HELLO。问共打印了多少个HELLO。只是记得主进程用了2个fork()创建了2个子进程,又有一个thread(),其中那个thread()自己又用fork()创建了一个子进程。(和02年那个题目差不多,可惜我不会,记不住了。)
        CA
    一、填空
       1. a,b为两个1位2进制数,Carryin为低位进位,Carryout为高位进位,用and,or写出带进位的1位加法器的Carryout并化简,Carryout=____
       2. 一条流水线一般分为IF,__,EX,__,WB 5级.
       3. 一个串行程序可并行部分占%90,规模不变的情况下,串行程序并行化后加速比不超过_______
       4. 已知 1111 1111 1111 1111 1111 1111 1111 1100 是一个二进制数的补码,则这个数对应的十进制数是_______
    二、判断 15分
      1.CISC计算机比RISC计算机指令多。
      2.速度为10MIPS的计算机一定比速度为5MIPS的计算机快。
      3.SRAM比DRAM的速度快,成本高。
      4.SCSI硬盘与SATA硬盘的速度快
      5.PCI-Express与AGP都可用于显卡接口
      6.SPECCPU 2000基准测试程序可用于测I/O性能。
      7.IEEE 754是计算机中的二进制整数算术标准。
      8.直接映象的Cache比全相联地址映像的开销大。
      9.当前Intel P4 CPU的功率小于10w。
      10.同频率的64位CPU一般比32位CPU快一倍
      11.增加流水线段数可提高CPU频率
      12.VHDL是一种硬件描述语言。
      13.EPIC是VLIW技术的发展。
    三. 简答
      试说明为何编译程序要进行如下优化
       for (j = 0; j < 200; j++){
         for (i = 0; i < 20; i++){
          A[j] = A[j] + 1;
         }
       }
       编译优化后
       for (i = 0; i < 20; i++){
         for (j = 0; j < 200; j++){
          A[j] = A[j] + 1;
         }
        }
    四. 硬盘平均寻道时间为12ms,传输速率为10MB/s,磁盘控制器延迟为2ms,则一个转速为7200r/min的硬盘写1KB数据时间为多少?
    五. 1. 什么是分支预测?
        2. 画出2bit转移预测的状态图。

    [ 本帖最后由 xjMatrix 于 2007-8-27 20:44 编辑 ]
    回复

    使用道具 举报

    2

    主题

    36

    帖子

    299

    积分

    一般战友

    Rank: 2

    精华
    1
    威望
    97
    K币
    202 元
    注册时间
    2006-1-22
    5
     楼主| 发表于 2007-8-26 23:11 | 只看该作者

    回复 #1 xjMatrix 的帖子

    唉,本来在Word文档里还好好的,贴出来有的地方字体就变了。。。
    不好意思[em:18]
    回复

    使用道具 举报

    0

    主题

    1

    帖子

    14

    积分

    新手上路

    Rank: 1

    精华
    0
    威望
    0
    K币
    14 元
    注册时间
    2005-9-30
    6
    发表于 2007-8-27 23:15 | 只看该作者

    回复 #5 xjMatrix 的帖子

    呵呵,谢谢lz共享
    回复

    使用道具 举报

    1

    主题

    22

    帖子

    50

    积分

    新手上路

    Rank: 1

    精华
    0
    威望
    0
    K币
    50 元
    注册时间
    2007-6-2
    7
    发表于 2007-8-28 18:47 | 只看该作者
    Thank you very much !
    回复

    使用道具 举报

    0

    主题

    33

    帖子

    65

    积分

    新手上路

    Rank: 1

    精华
    0
    威望
    0
    K币
    65 元
    注册时间
    2005-12-24
    8
    发表于 2007-10-7 11:44 | 只看该作者
    非常感谢
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册 人人连接登陆

    本版积分规则   

    关闭

    您还剩5次免费下载资料的机会哦~

    扫描二维码下载资料

    使用手机端考研帮,进入扫一扫
    在“我”中打开扫一扫,
    扫描二维码下载资料

    关于我们|商务合作|小黑屋|手机版|联系我们|服务条款|隐私保护|帮学堂| 网站地图|院校地图|漏洞提交|考研帮

    GMT+8, 2025-12-9 00:50 , Processed in 0.087387 second(s), Total 24, Slave 22(Usage:7M, Links:[2]1,1_1) queries , Redis On.

    Powered by Discuz!

    © 2001-2017 考研 Inc.

    快速回复 返回顶部 返回列表
    × 关闭