《2023年数据结构与C语言综合训练习题集.docx》由会员分享,可在线阅读,更多相关《2023年数据结构与C语言综合训练习题集.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、序号项目名称任务描述设计要求1.订票系统任务:通过此系统可以实现如下功能:录入:可以录入航班状况(数据可以存储在一个数据文件中,数据结构、详细数据自 定)查询:确定航班是否满仓);可以查询某个航线的状况(如:输入航班号,查询起降时间,起飞抵达城市, 航班票价,票价折扣)可以输入起飞抵达城市,查询K机航班状况等(可以自己设定合理的查询条件);订票:(订票状况可以存在一个数据文件中,结构自己设定)可以订票,假如该航班已经无票,可以供应相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量,航班状况,订单要有编号。修改航班信息:当航班信息变更可以修改航班数据文件依据以
2、上功能说明, 设计航班信息,订票 信息的存储结构,设 计程序完胜利能;2.用Haffman编码 压缩文件打算一个字符文件,要求:1、统计该文件中各种字符的频率;2、对各字符进行Huffman编码,显示每个字符的编码;3、以及将该文件翻译成Huffman编码文件;4、再将Huffman编码文件翻译成源文件;5、显示每个字符以一个字节进行二进制编码后的编码文件;6、以3和5的结果分析Haffman编码的优缺点。1)输入信息enter();2)显示信息display。;3)查找以姓名作为关键字search(); 4)删除信息delete();5) 存盘save (); 6) 装入load();要求:
3、(1)每条信息应包含:姓名(NAME )街道(STREET)城市(CITY) 邮编(EIP)国家(STATE)等信息。统,应具有友好的界 面和较强的容错实 力27.求任一表达式的 值主要是加减乘除的运算,利用栈的思想对表达式求值。要驾驭运算符的优先级等, 依据运算符的优先级进行推断。有进栈、出栈、推断 栈顶元素等操作。28.订票系统录入:可以录入航班状况(数据可以存储在一个数据文件中,数据结构、详细数据 自定)查询:可以查询某个航线的状况(如,输入航班号,查询起降时间,起飞抵达城市, 航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班 状况等多种查询功能。增加、删除、修
4、改航班信息等完成任务描述中的 各种功能,自己可以 适当增加必要的功 能。29.字符串操作编写程序,不运用标准库函数,实现字符串的拷贝、拼接、字串查找、长度计算等 函数。(1)在不运用相关的标准库函数的状况下,完成本任务;(2)实现两个字符串拼接的函数strcat(strl, slr2);(3)实现字符串拷贝的函数strcpy(strl,str2);(4)实现字符串查找的函数strcstr(strl,str2);(5)实现字符串长度计算的函数strlen(strl);(6)实现字符串查找字符的函数strcchar(strl,c);(7)实现字符串替换的函数 strcreplacestr(strl
5、,str2,str3);(8)实现字符串替换字符的函数strcreplacechar(str 1 ,str2,c);(9)实现字符串逆转的函数strrev (sir)。完成任务描述中的 各种功能,自己可以 适当增加必要的功 能。30.集合操作用单链表模拟有序集合,实现集合的加入一个元素、删除一个元素、集合的交、并、 差运算。(1)用单链表存放集合中的元素,链表中的元素按大小存放;(2)实现集合加入一个元素删除一个元素的元素操作;(3)实现集合的交、并、差集合操作;完成任务描述中的 各种功能,自己可以 适当增加必要的功 能。31.歌手竞赛系统设计一个简洁的歌手竞赛成果管理程序,对一次歌手竞赛的成
6、果进行管理功能要求:1 .输入每个选手的数据包括编号、姓名、十个评委的成果,依据输入计算出总成果和 平均成果(去掉最高分,去掉最低分)。2 .显示主菜单如下:1)输入选手数据(可以从文件中读取)2)评委打分3)成果 排序(按平均分)4)数据查询5)追加学生数据6)写入数据文件7)退出系统完成任务描述中的 各种功能,自己可以 适当增加必要的功 能。32.小学生测验系统面对小学12年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出上2年级的水平,只允许进行50以内的加减法,不允许两 数之和或之差超出
7、05()的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提示学生重新输入, 假如三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得1()分,其次次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成果90以上显示“SMART”,80-90 显示 “GOOD”,70-80 显示 “OK” ,60-70 显示 “PASS”,60 以下 “TRY AGAIN”33.字符串操作编写程序,不运用标准库函数,实现字符串的拷贝、拼接、字串查找、长度计算、 拆分、等函数。(1)在不运用相关的标准库函数的状况下,完成本任务;(2)实现两个字
8、符串拼接的函数strcat(strl, str2);(3)实现字符串拷贝的函数strcpy(strl,str2);(4)实现字符串查找的函数strcstr(strl,str2);(5)实现字符串长度计算的函数strlen(strl);(6)实现字符串查找字符的函数strcchar(strl,c);实现字符串替换的函数strcreplacestr(str 1 ,str2,str3);(8)实现字符串替换字符的函数strcreplacechar(strl,str2,c);(9)实现字符串拆分函数strsplit(strl,c,s叩)34.万年历查询程 序。实现万年历程序功能要求:(1)供应菜单方式
9、选择,假定输入的年份在1940-2040年之间。(2)输入一个年份,输出是在屏幕上显示该年的日历。(3)输入年月,输出该月的日历。如:1 SUN MON TUE WED THU FRI SAT12345678910111213141516171819202122232425262728293031(4)输入年份、月份、日期,计算得到的是这一天据今日有多少天,星期儿;(5)输入公历的年月日,输出农历年月日。(6)输入农历节气,输出当年农历的年月日及公历年月日。可以假定只涉及年份是1940 年至lj 2040 年。35.订票系统实现一个简洁的订票系统基本要求:(1)录入:可以录入航班状况(数据可以
10、存储在一个数据文件中,数据结构、详细数 据自定)(2)查询:可以查询某个航线的状况(如,输入航班号,查询起降时间,起飞抵达城 市,航班票价,票价折扣,确定航班是否满仓);(3)可以输入起飞抵达城市,查询飞机航班状况;(4)订票:(订票状况可以存在一个数据文件中,结构自己设定),可以订票,假如该 航班已经无票,可以供应相关可选择航班;退票:可退票,退票后修改相关数据文 件;客户资料有姓名,证件号,订票数量及航班状况,订单要有编号;(5)修改航班信息:当航班信息变更可以修改航班数据文件。36.个人电话号码查 询系统实现简洁的个人电话号码查询系统,依据用户输入的信息(如姓名,身份证号,电 话号码、邮
11、件地址等)进行快速查询。基本要求:(1)插入:实现将用户的信息插入到系统中;(2)删除:删除某个用户的信息;(3)修改:修改某个用户的信息;(4)查询:依据姓名、身份证号等查询用户信息(包括简洁条件查询,组合条件查询、 模糊查询等);(5)排序:对于用户信息进行排序,提高查询速度;(6)输出:输出用户信息。提示:(1)在内存中,设计数据结构存储电话号码的信息;在外存中,利用文件的形式来保 存电话号码信息,系统运行时,将电话号码信息从文件调入内存来进行插入、查找 等操作。(2)假如数据的插入、删除频繁,可以考虑实行二叉排序树组织电话号码信息(也可采纳较困难的平衡二叉树),可以提高查找和维护的时间
12、性能。(3)选择不同的排序和查找算法,尽可能提高查找和维护性能。37.数组编码和解码 问题的求解设计 与实现设有一个数组A: arrayO.Nl;存放的元素为0N-l(lN0)个人按顺时针方向围坐一圈,每个 人持有一个正整数密码。起先时任选一个正整数做为报数上限ni,从第一个人起先顺 时针方向自1起依次报数,报到m时停止报数,报ni的人出列,将他的密码作为新 的ni值,从他的下一个人起先重新从1报数。如此下去,直到全部人全部出列为止。 令n最大值取30。要求设计一个程序模拟此过程,求出出列编号序列。要求:用数组和链表分别实现。60.综合排序利用随机函数产生N个随机整数(2()000以上),对这
13、些数进行多种方法进行排序。基本要求:(1)至少采纳三种方法实现上述问题求解(提示,可采纳的方法有插入排序、希尔 排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不 同的文件中。(2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找 出其中两种较快的方法。61.学生成果管理系 统 试编写一管理系统,要求如下:1)实现对两个文件数据的合并,生成新文件3.txt2)抽取出三科成果中有补考的学生并保存在一个新文件4.txt3)对合并后的文件3.txt中的数据按总分降序排序(至少采纳两种排序方法实现)4)输入一个学生姓名后,能查找到此学生的信息并输出结
14、果(至少采纳两种查找方法 实现)5)要求运用结构体,链或数组等实现上述要求.62.编制一个可进行 传数据编码及接 收数据译码的编 /译系统用Huffman树给出Huffman编码;63.构造可以使n个 城市连接的最小 生成树问题描述:给定一个地区的n个城市间的距离网,用Prim算法建立最小生成树,并 计算得到的最小生成树的代价。基本要求:(1)城市间的距离网采纳邻接矩阵表示,邻接矩阵的存储结构定义采纳课本中给出 的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。 要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最 小生成树的代价。(2)表示城市间距
15、离网的邻接矩阵(要求至少6个城市,10条边)(3)最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。*借阅:假如一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限, 变更现存量;否则给出提示信息。*归还:若不过期,注销对借阅者的登记,变更该书的现存量。否则给出过期天数及 罚款数额。【进一步完成内容】1)系统功能的进一步完善;2)索引表采纳树表。3)设计内容4)程序流程图5)源程序6)软件测试报告(包括所用到的数据及结果)7.散列表的设计与 实现【问题描述】设计散列表实现电话号码查找系统。【基本要求】1)设每个记录有下列数据项:电话号码、用户名、地址等信息;2)从文件读入各
16、记录,分别以电话号码和用户名为关键字建立散列表;3)采纳肯定的方法解决冲突;4)查找并显示给定电话号码的记录;5)查找并显示给定用户名的记录。【进一步完成内容】1)系统功能的完善;2)设计不同的散列函数,比较冲突率;3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度 的变更。8.二叉平衡排序树问题描述:从一棵空树起先创建,在创建过程中,保证树的有序性,同时还要针对 树的平衡性做些调整。最终要把创建好的二叉排序树转换为二叉平衡排序树。基本要求:1).创建(插入、调整、改组)2).输出9.算术表达式的求 解问题描述:给定一个算术表达式,通过程序求出最终的结果。基本要求:1
17、 .从键盘输入要求解的算术表达式;2 .采纳栈结构进行算术表达式的求解过程;3 .能够推断算术表达式正确与否;4 .对于错误表达式给出提示;5 .对于正确的表达式给出最终的结果;10.客户消费积分 管理系统问题描述:针对客户的消费状况,进行客户管理,依据客户的消费积分对客户实行 不同程度的打折实惠。基本要求:1 .采纳肯定的存储结构进行客户信息的存储;2 .对客户的信息可以进行添加、修改、删除;3 .能够依据消费状况进行客户积分的计算;4 .依据积分状况实行不同程度的打折实惠;11.线索二叉树的应 用要求:实现线索树建立、插入、删除、复原线索的实现。12.树的应用要求:实现树与二叉树的转换的实
18、现。以及二叉树的前序、后序的递归、非递归算 法,层次序的非递归算法的实现,应包含建树的实现。13.图的遍历的实现1)先随意创建一个图;2)图的DFS,BFS的递归和非递归算法的实现3)要求用有向图和无向图分别实现4)要求用邻接矩阵、邻接表多种结构存储实现14.运动会分数统计任务:参与运动会有n个学校,学校编号为1no竞赛分成m个男子项目, 和w个女子项目。项目编号为男子1m,女子m+1in+wo不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为: 5、3、2;哪些取前五名或前三名由学生自己设定。(m=2(),n=20)功能要求:1)可以输入各个项目的前
19、三名或前五名的成果;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的状况;可以按项目编号查询取得前三或前 五名的学校。5)数据存入文件并能随时查询6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有合理的提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,依据提示,可以完成相关 的功能要求。存储结构:学生自己依据系统功能要求自己设计,但是要求运动会的相关数据 要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书 上,请自学解决)请在最终的上交资料中指明你用到的存储结
20、构;测试数据:要求运用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;15.停车场管理系统设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车 在停车场内按车辆到达时间的先后依次,依次由北向南排列(大门在最南端,最先到 达的第一辆车停放在车场的最北端),若车场内己停满n辆汽车,则后来的汽车只能 在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车 场内某辆车要离开时,在它之后进入的车辆必需先退出车场为它让路,待该辆车开 出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在
21、它离开停车场时 必需按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程 序。要求:以栈模拟停车场,以队列模拟车场外的便道,依据从终端读入的输入数据序 列进行模拟管理。每一组输入数据包括三个数据项:汽车”到达”或”离去”信息、汽车 牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若 是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出 汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以依次 结构实现,队列以链表结构实现。16.银行业务的模 拟系统问题描述:设计一个银行业务模拟系统,模拟银行的业务运行并计算一天中客户
22、在 银行逗留的平均时间。银行有N (N的取值自己定义)个窗口对外接待客户,从早晨 银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因 此在客户人数众多时需在每个窗口前顺次排队,对于刚进入银行的客户,假如某个 窗口的业务员正空闲,则可上前办理业务;反之,若N个窗口均有客户所占,他便 会排在人数最少的队伍后面。基本要求:(1)在界面上可以设定银行的对外营业时间(银行的开门时间以及银行 的关门时间)。(2)用人机交互的方式来输入客户的到达时间以及客户的离开时间,用队列来存储 客户的到达时间和客户的离开时间。(3)可以友好的显示出在某一天中整个银行系统中客户在银行逗留的平均时间。
23、17.万年历查询程 序。功能要求:(1)供应菜单方式选择(2)输入年份、月份、日期,计算得到的是这一天据今日有多少天,星期几;(3)输入公历的年月日,输出农历年月日。(4)输入农历节气,输出当年农历的年月日及公历年月日。可以假定只涉及年份是 1940年到2040年。18.文件书目管理系 统问题描述:文件是管理用户信息和应用程序的一种工具。每个文件有唯一的文 件名,可以通过文件名访问文件,同时可对文件进行生成、删除及文件名修改等操 作。文件系统对若干文件进行管理时将全部的文件书目组合在一起构成一个书目文 件。通过对书目文件的管理达到“按名存取的目的,书目文件常采纳的组织结构是树 型书目结构。基本
24、要求:函数功能要划分好,程序要有必要的注释。用户通过界面菜单选择以下操作:(留意,以下操作仅需对书目进行操作,不须 要实际生成文件)(1)生成文件,选择路径和文件名,实现对文件的生成。(2)删除文件,对指定文件进行删除操作。(3)修改文件,对指定文件进行内容修改或者文件名修改。(4)输出该书目结构。19.身份证管理程序该程序应当具有卜列功能:(1)通过键盘可以输入身份证信息,大量信息可存放在文件中。身份证包含的信息请 参看自己的身份证;(2)给定身份证号码,显示其身份证信息;(3)给定省份的编号,显示该省的人数;(4)给定某区的编号,显示该区的人数;(5)给定身份证号码,可以修改该身份证信息;
25、(6)给定身份证号码,可以删除该身份证信息;供应一些统计各类 信息的功能。例如男 女的人数、比例;以 及哪年、哪月、哪日 诞生的人数等。界面 要合理。20.期刊论文管理程序该程序应当具有下列功能:(1)通过键盘输入某期刊论文的信息,也可以把大量期刊论文信息放在文件中;(2)给定期刊论文的论文名称,显示该论文的作者信息,作者单位,发表期刊的名称;(3)给定作者姓名,显示全部该作者发表的期刊论文状况;(4)给定期刊名称,显示该期刊的全部论文信息;(5)给定时间段,显示该时间段内发表的论文供应一些统计各类 信息的功能。例如某 人发表论文的个数, 某期刊出版论文的 个数等。21.学生宿舍管理查 询软件
26、设计一个简洁的学生宿舍管理查询程序,要求依据菜单处理相应功能。(1)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(2)查询菜单:(可以用二分查找实现以下操作)A.按姓名查询B.按学号查询C.按房号查询等(3)可以打印任一查询结果(4)每个学生的信息包括:序号、学号、性别、房号、楼号等;排序方法任选。基本 功能为:建立文件、 增加学生宿舍记录、 删除/修改、查询学生 宿舍记录。具有相应一些统计 功能。22.学生成果管理系 统现有学生成果信息文件1 (l.txt),内容如下学生成果信息文件2 (2.txt),内容如下: 姓名学号语文数学英语姓名学号语文数学英语张明明 01677882
27、陈果 31576882要求运用结构体链 表或数组等实现上 述要求.李成友02789188李华明32889068张辉灿03688256张明东33484256王露 04564577李明国345()4587陈东明()5673847陈道亮35475877试编写一管理系统,要求如下:1)实现对两个文件数据的合并,生成新文件3.1x12)抽取出三科成果中有补考的学生并保存在一个新文件4.txt3)对合并后的文件3.txt中的数据按总分降序排序(至少采纳两种排序方法实现,排 序留意提高效率)4)输入一个学生姓名后,能查找到此学生的信息并输出结果5)可以查询统计每个分数段内的学生记录23.家电销售系统用链式结构建立有序表,结点的数据域应当包括家电名称、品牌型号、单价以及数 量,以结点中单价的递增依次排列。日常的维护操作应当包括初始化,创建链表