2011 年 数据结构和程序设计
-
设线性表 L 以顺序存储结构存储,请编程实现在表 L 中的第 i 个元素前插入一个新的数据元素 e。 (1 <= i <= n+1)(10分)
-
在存储一组递增的整形数的单链表中,要求删除所有元素 x (min < x < max)。请编程实现。
-
编程实现,求二叉树的叶节点个数。(10分)
-
设有一个带头节点的单链表,请编程实现,若表不为空,将一新的值为 K 的节点插入到该单链表结尾之前(作尾节点的直接前驱),否则,新街点做表尾节点。(15分)
-
设有两个动态实现的顺序表 L1, L2 各存储递增有序的一组整形数。现要求将 L2 合并到 L1 ,且合并后的 L1 仍然保持递增有序。请编程实现。(15分)
2012 年
-
输入一个合理的年、月、日,计算日期距离 1970.1.1 的天数(20分)
-
编写程序实现大整数的加法和减法运算。(25分)(大整数为 40 到 100 位之间的十进制数)
-
输出所有同时符合下列条件的整数(15分)
- 该数是4位整数;
- 该数是完全平方根;
- 该数减去 1111 后,结果仍是一个完全平方数。
(完全平方是一个整数,它数另一个数的平方,例如 15、36 等)
-
输入 M 个字符串,输出重复 1 到 M 次 的字符串的个数、(25分)
例如:输入 BBA BBA BEA DEC CCF
输出 1 3; 2 1; 3 0; 4 0; 5 0
表示重复次数一次的字符串有 3 个,重复两次的字符串有 1 个,重复三次、四次、五次的字符串有 0 个。 -
编写程序求斐波那契额数列的前 40 项之和。要求用递归函数实现计算斐波那契额数列的第某项的值。(15分)
(斐波那契额数列的第一项和第二项为 1,其余每项都等于前两项之和) -
编写函数实现利用链表对 20 个单词降序排列。(25分)
-
打开带有注视的 C 语言源程序文件,显示过滤掉注释后的文件内容。(25分)
注释有两种方式: ”//“ 和 “ /* ” 开始 “ */ ” 结束
2013 年
-
输入一个字符串,分别统计并输出其中大写字母的个数、小写字母的个数、数字字符的个数和其他字符的个数。(15分)
-
输入 10 个整数,对这组数进行由小到大排序,输出排序结果并统计其中交换的次数。(20分)
-
输出 100 - 200 之内所有素数。要求:利用自定义函数识别一个数是否为素数(温馨提示:素数是指能被 1 和自身整除的数)(20分)
-
已知有两个整数链表(两个链表都是无序链表),完成链表的合并,保证合并后的链表升序排列(25分)
-
从键盘输入 20 个学生信息(学号、姓名、年龄、身高、体重),计算全部学生的平均身高和体重,并统计输出平均体重以上的学生的人数,以及这些学生的学号、姓名、年龄、体重等信息。(25分)
-
实现两个 5*5 矩阵的加分、减法和乘法。(25分)
-
实现从磁盘文件 “d:\stu.dat” 中读出全部学生信息(学号、姓名、性别、成绩),分别统计高于平均成绩和低于平均成绩的人数,并将结果写入到 “d:\Result.dat” 文件中。(20分)
2014 年
-
利用递归算法求两个整数的最小公倍数。(20分)
-
输入一元二次方程的三个系数 a, b, c 输出该方程的根。需要考虑 delta < 0 的情况。
-
用字符串数组(数组长度为20)表示大整数,完成两个大整数的加、减法计算。(25分)
-
输入 5*5 的矩阵 A, 并计算矩阵 A 的平方(25分)
-
从键盘输入一组学生信息(学号、姓名、高考英语成绩、高考数学成绩、高考语文成绩),计算每个学生 3 门 课程的平均成绩,并按照平均成绩由高到低排序。(输入以 3 门成绩都为 0 结束)(30分)
-
输入 m,n 其中 n 表示有 n 个人,围城一圈,顺序排好(编号为 n 的人的下一个人编号为 1)。从第一个人开始循环报数(从 1 到 m 报数),凡报到 m 的人退出圈子,要求输出所有人出圈的次序。(用链表方式实现)。
2015 年
1.输入一元二次方程的三个系数,输出该方程的根。(15分)
2.输入20个数,将它们按照从小到大的次序输出。(20分)
3.编程实现将9*9矩阵按照顺时针方向旋转90度,要求不允许使用临时矩阵作为转换的内存单元。(20分)
4.输入一个正整数N,利用递归实现求N的阶乘。(20分)
5.计算两个整数的最大公约数。(20分)
6.现有两个学生信息文件“studentA.dat”和“studentB.dat”,每个文件中各有10名学生信息(学号,姓名,性别,年龄,住址),将两个文件中的学生信息按照学号由小到大顺序合并,合并结果写入到“studentC.dat”中。(30分)
7.定义一个函数实现两个集合的相加运算。(用链表的方式实现) (25分)
2017 年
-
计算一百以内所有完数,输出个数及累加和
-
给定任意正整数n,计算n以内素数个数
-
输入十个数排序并输出结果(选择,起泡)
-
输入年月日,计算是这一年的第几天
-
链表操作,增删改查与合并
-
输入一个3×3矩阵,输出最大值及其行列号
-
文件操作,从文件中读取数据,处理过后再写回文件
2020年
-
输入正数 m 和 n,输出 m 和 n 之间的所有素数(m < n,包括 m 和 n)。
-
自定义函数,判断该数是否是完全数(如果一个数恰好等于它的因子之和,则称该数为“完全数”)
-
数组元素去重。假设某数组有 10 个整数,要求对于相同的元素,仅保留第一次出的元素,删除其余的重复元素。保持数组的整体顺序不变。
-
给定同一年当中的任意两个日期,计算间隔的天数(模块接收 5 个参数:year-年、month1-月份1、day1-日期1、month2-月份2、day2-日期2)
-
输入一个 3 x 3 的矩阵,将每行中最大的数字放到该行的第一的位置上,然后输出该矩阵。
-
输入 5 名学生的信息(学号、成绩、年龄)、按照学生的成绩进行排序,然后输出这 5 名学生的信息(用结构体来存储学生信息)。
-
在一个升序的链表中插入一个元素,要求插入任意元素后使得链表依然保存升序(假设链表有 5 个元素)。