南师大c语言设计真题
2009 年硕士研究生招生入学考试初试试题
C 语言程序设计(含数据结构)
程序设计(共 150 分,请书写整洁,卷面有分)
(1)、设计一个程序,找出 1~200 之间的所有水仙花数。所谓水仙花数是指一个数的各位
3 3 3
数字的立方和恰好等于该数本身。例如:153=1 +3 +5 。(本题 15 分)
(2)、设计一个程序,实现输入一个给定的正整数 N,打印出所有不超过 N 的,其平方为回
文(回文是指字符串两半的字符左右对称,例如 1,22,121,4224 等均是回文)的数。(本
题 15 分)
(3)、编写程序用于统计字符串中最长单词的长度和在字符串中的位置,其中单词全有字母
组成。(本题 20 分)
(4)、编写算法输出从n 个自然数中取 k 个(k<=n)的所有组合。例如,当n=5,k=3 时,
你的算法应该输出:543,542,541,532,531,521,432,431,421,321。(本题20 分)
(5)、试采用递归函数实现将任意位数的整数转换成字符串输出,要求在主函数中输入整数
并调用递归函数实现转换并输出结果,对于负数也能处理。(本题 20 分)
(6)、假设有两个按元素值递增有序排列的线性表A 和 B,均以单链表作存储结构,请编写
算法将表 A 和 B 归并成一个按元素值非递减有序(允许相同)排列的线性表 C,并要求利用
原表(即表 A 和表 B)的节点空间存放表。(本题20 分)
(7)、如果一颗Huffman 树 T 有 n 个叶子结点,那么树 T 有多少个结点,要求给出详细的算
法,然后再写出程序。(本题 20 分)
(8)、对于二叉树T 的两个结点N1 和 N2,我们应该选择树 T 结点的前序、中序和后序中哪
两个序列来判定结点 N1 必定是结点 N2 的祖先,并给出判断的方法。要求给出详细的算法,
然后再写出程序。(本题 20 分)
南师大 C 语言(含数据结构)试卷2008
1.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6 的因子是 1,2,3,
而 6=1+2+3,因此 6 是“完数”。编写程序找出 1000 之内的所有“完数”。
2.采用顺序结构存储串,编写一个函数Substring(s1,s2),用于判定 s2 是否是 s1 的字串
3.请用链表编程实现:从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那
些整数。
4.将一个 5*5 的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(按从左到右,
从上到下的顺序依次从小到大存放),写一个函数实现之。
5.设 A 是有 n 个元素的整型数组(n>=1),试写一个求 A 中n 个整数的平均值的递归程序。
6.假设由终端输入集合元素,先建立表示集合 X 的静态链表 P1,而后在输入集合 Y 的元素
同时查找P1 表,若存在和 Y 相同的元素,则从 P1 表中删除之,否则将此元素插入 P1。
7.请写出用二叉树计算英文文献中单词使用频度的算法。
单词的频度=该单词的使用次数 / 文献中单词的总数
8.请写出如图所示的树向二叉树转换的算法,并用中序遍历给出转换后二叉树的节点序列和
树的深度。(图是一棵树,我给描述下吧,自己画出来看吧,呵呵)
A 的孩子:B,C,D B 的孩子:E,F C 的孩子:G,H,I D 的孩子:J
F 的孩子:K,L H 的孩子:M,N
南师大 C 语言(含数据结构)试卷2007
(1)设S 为一个长度为 n 的字符串,其中串的字符各不相同,写出具体程序并计算出 S 中
互异的非平凡子串,非空且不同于 S 本身的个数。(本题 15 分)。
(2)编写一个程序,对输入的任意正整数 n,打印出集合{0,1,2,3,...,n-1}的所有
子集。(本题 15 分)。
(3)已知非空线性链表第一个节点由 list 指出,请写一个算法交换 P 所指的节点与其下一
个节点在链表中的位置 (设 P 指向的不是链表最后那个结点)。(本题 20 分)。
(4)对给定的 n (n≤10)计算并输出 K !(K=1,2,3,...,n)的全部有效数字。(本题 20
分)。
(5)用递归算法和栈实现m 个相异元素构成的有序序列的二分查找,并计算出该栈的最小
容量。(本题 20 分)。
(6)已知平面上(直角坐标系)的m 个点,请编写一个函数,求同一条直线所能通过的最
多点数