2015 年上海海事大学数据结构及程序设计考研真题
一、填空题(本题共 20 个空,每空 1 分,共 20 分)
二、单项选择题(本题共 10 小题,每小题 2 分,共 20 分)
1.以下语句循环次数是()
for(int i=3;i==0;) printf("?i--);
A.0
B.1
C.2
D.3
2. 下面叙述中,()是结构化程序设计中的三种基本结构。
A. 数据结构 顺序结构 选择结构
B. 函数结构 嵌套结构 平行结构
C. 函数结构 选择结构 循环结构
D.顺序结构 分支结构 循环结构
3.关于 C 语言函数的描述中,正确的是()
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和函数的调用都可以嵌套
D. 函数的定义和函数的调用都不可以嵌套
4.若有以下类型说明,叙述正确的是()
A. node 是变量名
B.klist 是变量名
C、Iklist 是指向结构体类型 node 的指针类型名
D、类型说明语句有错误
5.下面程序的输出结果是()
三.程序与算法分析题(本题共 6 小题,每小题 10 分,共 60 分)
1.设一个二叉树的顺序存储结构如下图,0 表示此节点不存在。请给出它的二叉链表及前序、
中序、后序序列。
2.给出下图所示有向图的邻接表及所有拓扑序列。
3.给定关键字序列{36,61,18,95,81,32,88,48}使用快速排序方法进行排序(结果
为非递减),请写出每一趟排序结果。
4.假设用于通讯的电文由 8 个字母(a、b、c、d、e、f、g、h)组成,字母出现的频率为 0.19,
0.21,0.05,0.06,0.29,0.10,0.07,0.03。试为这 8 个字母构造赫夫曼树并设计赫夫曼
编码。
5.已知关键字序列{29,15,25,02,28,10,65,18,94,27,24,59}。
(1)要求将此序列散列到长度为 15 的表中,哈希函数为 H(key)=key ,并用线性探 测
再散列法解决地址冲突;
(2)在等概率情况下,求查找成功时的平均查找长度
6.对于下图所示的带权连通图,从 A 开始求其最小生成树,并计算该最小生成树的代价。
四、程序与算法填空题(本题共 10 个空,每空 2 分,共 20 分)
1. 以下函数完成输出 100--1000 之间的素数,并计算素数个数。
2.以下程序完成将 p 字符串中的小写字母移入字符数组 a 中。
3. 以下函数完成将字符串 s2 连接到字符串 s1 尾部形成一个新字符串并输出
4. 以下函数是冒泡排序算法,完成对 a 数组中 m 个整数进行排序。
五、程序与算法设计题(本题共 3 小题,每小题 10 分,共 30 分)
1.编写一个程序求 1-1000 之间所有除以 5 余 3 的数值之和。
2. 有一个递增有序的单链表 UA,编写将这个单链表逆置成一个递减有序单链表的算法。
3.若用二叉链表作为二叉树的存储表示,编写算法∶求二叉树中叶子结点数。二叉链表定义
如下∶