)
A) n-i B) n-i+1 C) i D) n+i-1
(3)若串S='NjnuGisc',其子串的数目是( )
A) 8 B) 37 C) 36 D) 9
(4)下列程序段的运行结构是( )
int n=0;
while(n++<=2);
printf("%d",n);
A) 2 B) 3 C) 4 D)有语法错误
三、 程序设计(共计110分,请书写整洁,卷面有分)
(1) 利用串的基本运算,编写一个算法删除串S1中所有S2子串。(本题15分)
(2) 编写一程序,判断一个字符串是不是“回文数”。所谓回文数是从左至右或从右至左读起来都是一样的字符串。(本题15分)
(3) 设计一个统计选票的算法,输出每个候选人的得票结果(假定采用单链表存放选票,候选人编号依次为1,2,3,……N,且每张选票选且只选一人)(本题15分)
(4) 有几个人围成一圈,顺序排号。从第一个开始报数,凡报到4的人退出圈子,问最后留下的是几号。(本题15分)
(5) 假设一个算术表达式中包含圆括号、方括号和花括号三种类型的括号,编写一个
算法判断其中的括号是否匹配。(本题15分)
(6) 已知R[0……n-1]为整型数组,试设计实现下列运算的递归算法(本题15分)
<1> 求数组R中的最大整数
<2> 求n个整数之和
<3> 求n各整数的平均值
(7) 分别写出下图树的先序遍历、中序遍历和后序遍历的结果。写出中序遍历算法,算法中root指向二叉树的根。(本题20分)
南京师范大学2006年GIS专业研究生入学《C语言程序设计》考试试题(含数据结构)
1.设计一个程序,将任何输入的字符串中的最长单词输出,并计算出其在字符串中的位置。( 15 分)
2. 试采用递归函数实现将任意位数的整数转换为字符串输出,要求在主函数中输入整数并调用递归函数实现转换并输出结果,对于负数也能处理( 15 分)
3. 以顺序存储结构表示串,设计算法,求串 S 中出现的第一个最长重复子串及其位置并分析算法的时间复杂度。( 20 分)
4.利用2个栈S1和S2 模拟一个队列,写出入队和出队的算法(可用栈的基本操作)( 20 分)
5 .编写一算法,以完成在带头节点单链表M中第n个位置前插入元素 X 的操作。( 20 分)
6 .编写一个利用二分法查找某值 X 是否存在于一组已知数据 X1 、 X2 、 X3 、…… Xn 中的程序。( 20 分)
7 .试设计一个算法解决地图着色判断问题。设一地图有 n 个区域,用不多于 4 种颜色对这些区域进行着色,着色应满足的要求是相邻的区域颜色不可以相同。你的算法以一种着色方案(即哪一个区域着什么颜色)为输入,算法对该着色方案进行考察,若满足着色要求,则输出
|