Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

北航2002数据结构

[复制链接]
跳转到指定楼层
楼主
linrunbang 发表于 07-11-20 21:24:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
北京航空航天大学程序设计与数据结构试题
(2002年)

一、        简答题
1. “数据结构”课程是计算机专业的基础课还是专业课,或者专业基础课?(2’)
2. 学习“数据结构”课程需要哪些课程作为它的基础(举例两门课程)?若没有这些知识,对学习“数据结构”课程可能会产生哪些影响?请举例说明(不超过100字)。(4’)
3. “数据结构”课程将为那些课程学习奠定必要的基础?请举例说明哪些课程(举例两门课程)用到了“数据结构”课程的哪些知识(不超过100字)。(4’)
二、        (5’)
请推导出结论:具有n0个叶结点的哈夫曼树(Huffman)的分支总数为2(n0-1)。
三、        单项选择题(2’x15)
1. 线性链表中各链接点之间的地址__________。
A)必须连续        B)部分地址必须连续
C)不一定连续        D)连续与否无所谓
2. 在非空线性链表中由p所指的链接点后面插入一个由q所致的链接点的过程是依次执行动作__________。
A) link(q)p; link(p)q;        B) link(q)link(p); link(p)q;
C) link(q)link(p); pq;        D) link(p)q; link(q)p;
3. 在非空双向循环链表中由q所指的那个链接点前插入一个p指的链接点的动作对应的语句依次为rlink(p)q, llink(p)llink(q), llink(q)p, __________。(空白处为一条赋值语句)
A) rlink(q)p        B) rlink(llink(q))p
C) rlink(llink(p))p        D) rlink(rlink(p))p
4. 在初始为空的堆栈中依次插入元素f,e,d,c,b,a以后,连续进行了三次删除操作,此时栈顶元素是__________。
A) c        B) d        C) b        D) e
5. 若某堆栈的输入序列为1,2,3,……,n,输出序列的第1个元素为n,则第i个输出元素为__________。
A) i        B) n-i        C) n-i+1        D)哪个元素无所谓
6. 求字符串T在字符串S中首次出现的位置的操作称为__________。
A)求串的长度        B)求子串        C)串的模式匹配        D)串的连接
7. 若一棵度为7的树有8个度为1的结点,有7个度为2的结点,有6个度为3的结点,有5个度为4的结点,有4个度为5的结点,有3个度为6的结点,有2个度为7的结点,该树一共有__________个叶结点。
A) 35        B) 28        C) 77        D) 78
8. 若一棵二叉树有1001个结点,且无度为1的结点,则叶结点的个数为__________。
A)498        B)499        C)500        D)501
9. 已知某完全二叉树采用顺序存储结构,结点数据信息的存放顺序依次为A、B、C、D、E、F、G、H,该完全二叉树的后序遍历序列为__________。
A)HDEBFGCA        B)HEDBFGCA        C)HDEBAFGC        D)HDEFGBCA
10.若某带权图为G=(V,E),其中V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10},E={(v1,v2)5,(v1,v3)6,(v2,v5)3,(v3,v5)6,(v3,v4)3,(v4,v5)3,(v4,v7)1,(v4,v8)4,(v5,v6)4,(v5,v7)2,(v6,v10)4,(v7,v9)5,(v8,v9)2,(v9,v10)2}(注:顶点偶对右下角的数据表示边上的权值),则G的关键路径的长度为__________。
A)19        B)20        C)21        D)22
11.顺序查找法适合于存储结构为__________的线性表。
A)顺序存储结构或链式存储结构        B)散列存储结构
C)索引存储结构        D)压缩存储结构
12.当n足够大时,在按值有序的顺序表中进行折半查找,当查找概率相等的情况下,其查找成功的平均查找长度是__________。
A)(n+1)/2        B)n/2        C)log2(n+1)-1        D)log2(n+1)
13.下述命题中,不成立的应是__________。
A)m阶B树中的每一个分支结点的子树的个数都小于或等于m
B)m阶B树中的每一个分支结点的子树的个数都大于或等于m/2
C)m阶B树中的任何一个结点的子树的高度都相等
D)m阶B树中有k个子树的分支结点包含k-1个关键字
14.已知散列范围为[0..9],散列函数(哈希函数)为H(key)=key MOD 9,处理冲突的方法为线性探测再散列法,依次插入关键字序列8,18,25,44,34,21,19,23后的哈希表为__________。
        0        1        2        3        4        5        6        7        8        9
A)        18        44        19        21                23                25        8        34
        0        1        2        3        4        5        6        7        8        9
B)        18        34        19        21                23                25        8        44
        0        1        2        3        4        5        6        7        8        9
C)        18                19        21                23        34        25        8        44
        0        1        2        3        4        5        6        7        8        9
D)        19        21                23        44        25        34                8        18
15.在下述的排序方法中,不属于内排序方法的是__________。
A)插入排序法        B)选择排序法        C)拓扑排序法        D)归并排序法

四、(15’)
请设计一个事件复杂度为O(n),空间复杂度不超过O(2)的算法,该算法将数组A[0:n-1]中所有元素循环右移k个位置。

五、(15’)
已知某二叉树采用广义表形式作为输入,请写一非递归算法,建立该二叉树的二叉链表存储结构。设该链接点构造为 ,根结点地址为T。
关于采用广义表形式表示二叉树的约定如下:
        表中的一个字母表示一个结点的数据信息;
        每个根结点作为由子树构成的表的构成的表的名字放在表的前面;
        每个结点的左子树与右子树之间用逗号分开;若只有右子树而无左子树,则逗号不能省略;
        整个广义表的末尾由一个特殊符号@作为表的结束标志。
例如:(A(B(D),C(F(,E),G))@表示某一棵二叉树,该二叉树的根结点数据信息为A。其中,数据信息为F的结点只有右子树,而无左子树。

六、(1’x10)
在下面给出的C函数实现中的__________处填上适当的内容,使其完成正确的功能。
函数说明:函数void ftoa(double f, char s[])将浮点数f转换成相应的字符串,并存放在s中,该函数最多只能转换小数点后四位,如123.45将转换成“123.45”,-123.456789将转换成“-123.4567”。

void ftoa(double f, char s[])
{
        int i,j,len,c,n;
        double sign;
        if((sign=f)<0)
                f=-f;
        n=(int)f;
        i=0;
        do{
                s[i++]=n%10+__________;
                }while(__________);
        if(sign<0)
                __________;
        len=i;
        for(i=0,j=len-1;__________;__________){
                c=s;
                __________;
                s[j]=c;
        }
        f-=(int)f;
        s[len++]=__________;
        for(i=0;i<4;i++){
                f*=10;
                s[len++]=__________;
        }
        while(s[len-1]==’0’)
                __________;
        s[len]=__________;
}


七、(15’)
命令tail用来打印文件中最后n行。命令格式为:
        tail [-n] filename
其中
-n: n表示需要打印的行数,当省略此参数时,n的缺省值为10。
filename: 给定文件名。
例如,命令tail –20 example.txt表示打印文件example.txt的最后20行。
请用C语言实现该程序,该程序应具有一定的错误处理能力,例如能处理非法命令参数和非法文件名。
提示1:使用命令行参数;
提示2:可以使用下面的C库函数:
-        int atoi(char *s)将数字串转换为相应整数;
-        fopen, fclose, printf, fprintf, exit;
-        fgets(char *s, int n, FILE *fp)从文件中读入一行;
-        void *malloc(unsigned size), free申请和释放内存;
-        strlen计算字符串长度;
-        strcpy将一个字符串拷贝到另一个字符串中。
除此之外,不允许使用其它库函数。
沙发
ymshusheng 发表于 08-2-11 16:56:52 | 只看该作者
收藏了,谢谢楼主
板凳
dengzemin 发表于 08-4-6 14:45:20 | 只看该作者
没有答案吗?
地板
zhouyutong 发表于 12-10-22 22:46:13 | 只看该作者
xiexiexieie
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 24-11-18 07:59 , Processed in 0.088376 second(s), 12 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表