《2022年数据结构C语言综合训练习题集2.docx》由会员分享,可在线阅读,更多相关《2022年数据结构C语言综合训练习题集2.docx(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 序工程名称任务描述个人资料整理仅限学习使用设计要求号1身份证治理程序该程序应当具有以下功能:供应一些统计各类信息的功能;例如1 通过键盘可以输入身份证信息,大量信息可存放在文件中;身份证包含的信息男女的人数、比例;以及哪年、哪请参看自己的身份证;月、哪日诞生的人数等;界面要合2 给定身份证号码,显示其身份证信息;理;3 给定省份的编号,显示该省的人数;4 给定某区的编号,显示该区的人数;5 给定身份证号码,可以修改该身份证信息;6 给定身份证号码,可以删除该身份证信息;2期刊论文治理程该程序应当具有以下功能:供应一些统计各类信息的功能;例如序1
2、 通过键盘输入某期刊论文的信息,也可以把大量期刊论文信息放在文件中;某人发表论文的个数,某期刊出版论2 给定期刊论文的论文名称,显示该论文的作者信息,作者单位,发表期刊的名文的个数等;称;3 给定作者姓名,显示全部该作者发表的期刊论文情形;4 给定期刊名称,显示该期刊的全部论文信息;3哈夫曼编码问题描述:利用哈夫曼编码,实现压缩和解压缩;完成任务描述中的各种功能,自己可基本要求:以适当增加必要的功能;对于给定的一组字符,可以依据其权值进行哈夫曼编码,并能输出对应的哈夫曼树和哈夫曼编码;实现哈夫曼解码;提高要求:1 能够分析文件,统计文件中显现的字符,统计字符显现的概率,再对文件进行 编码,实现
3、文件的压缩和解压缩;2 能够对于文件的压缩比例进行统计;4运动会分数统计任务:参与运动会有n 个学校,学校编号为1 n;竞赛分成m个男子工程,和w输出形式:有合理的提示,各学校分个女子工程;工程编号为男子1 m,女子m+1 m+w;不同的工程取前五名或5、数为整形前三名积分;取前五名的积分分别为:7、 5、3、2、1,前三名的积分分别为:界面要求:有合理的提示,每个功能3、2;哪些取前五名或前三名由同学自己设定;m=20,n可以输入各个工程的前三名或前五名的成果;储备结构:同学自己依据系统功能要2能统计各学校总分,求自己设计,但是要求运动会的相关3可以按学校编号或名称、学校总分、男女团体总分排
4、序输出;数据要储备在数据文件中;可以按学校编号查询学校某个工程的情形;可以按工程编号查询取得前三或前五 件的数据读写方法等相关内容在 c 语名的学校;言程序设计的书上,请自学解决)请5数据存入文件并能随时查询 在最终的上交资料中指明你用到的存6规定:输入数据形式和范畴:可以输入学校的名称,运动工程的名称 储结构;测试数据:要求使用 1、全部合法数据; 2、整体非法数据;3、局部非法数据;进行程序测试,以保证程序的稳固;测试数据及测试结果请在上交的资料中写明;5背包问题的求解假设有一个能装入总体积为T 的背包和n 件体积分别为w1 , w2 , , wn 的物品,能否从n 件物品中选择如干件恰好
5、装满背包,即使w1 +w2 + + wn=T ,要求找出全部满意上述条件的解;例如:当T=10,各件物品的体积1 ,8, 4,3,5,2时,可找到以下4 组解:1,4,3,2)1,4,5)8,2)- 输入;3、通过程序,实现图的建立;4、联系人之间的关系浏览功能- 输出;计与实现系统5、查询和排序功能: 至少一种查询方式算法1按与某个人的亲热程度升序或者降序排序2按亲热值的大小范畴查询6、联系人信息的删除、修改功能 任选项 ;要求:设计合理的储备结构,设计界面,设计程序完胜利能;11通过此系统可以实现如下功能:1、系统以菜单的方式工作;工作人员被拜访 频率统计系统2、第一从文件“ 原始数据”
6、中读入“ 人员” 信息;3、运算拜访频率,并输出频率值,以他们的拜访频率为权重建立赫夫曼树;4、通过系统查询相关人员的信息,每次查询后都从新修正拜访次数和拜访频率;5、系统依据第 4)步得到的值对赫夫曼树进行修正;6、层序遍历赫夫曼树,并将拜访结果写入“ 层序遍历” 下“ 层序遍历 .csv ” ;3 / 29 名师归纳总结 - - - - - - -第 3 页,共 29 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用要求: 1、设计合理的储备结构,设计界面,设计程序完胜利能;12订票系统 2、人员信息包括:姓名,拜访次数,拜访频率;完成任务描述中的各种功能,自
7、己可 3、通过窗体界面实现全部的功能录入:可以录入航班情形数据可以储备在一个数据文件中,数据结构、详细数据自定)以适当增加必要的功能;查询:可以查询某个航线的情形 能够正确处理加减乘除这四种运算;2 能够正确处理括号运算;14失物招领系统通过此系统可以实现如下功能:1、系统以菜单的方式工作;2、系统内部保护“ 寻物.CSV” 、“ 捡到物品.CSV” 、“ 已归仍物品.CSV” 三张表;3、捡到物品时先在“ 寻物.CSV” 中查询,如存在,删除该物品的信息;如不存在,把它记录到“ 捡到物品 .CSV” 文件中;4、已经被领走的物品,先把该物品的信息记录到“ 已归仍物品 .CSV” 文件中,再从
8、文件“ 捡到物品 .CSV” 中删除该物品的信息;5、当有人来认领时,先在“ 捡到物品.CSV” 表里查询,如没有找到,就在文件“ 寻物 .CSV” 中记录下该物品的信息;要求: 1、设计合理的储备结构,设计界面,设计程序完胜利能;2、通过窗体界面实现全部的功能;3、“ 捡到物品 .CSV” 表里每条记录包括:物品名称,捡到者的联系方式,捡拾时间、地点,值班人;4、已归仍物品 .CSV” 表里的每条记录包括:物品名称,捡到者的联系方 式,捡拾时间、地点,招领者的学号,联系方式,所在学院,专业,班级,招领时 间,值班人;5、“ 寻物 .CSV” 表里的每条记录包括:物品名称,丢失者的联系方式,丢
9、 失时间、地点,值班人;4 / 29 名师归纳总结 - - - - - - -第 4 页,共 29 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用6、自己建立所需的表;15集合操作用单链表模拟有序集合,实现集合的加入一个元素、删除一个元素、集合的交、完成任务描述中的各种功能,自己可并、差运算;以适当增加必要的功能;1 用单链表存放集合中的元素,链表中的元素按大小存放;2 实现集合加入一个元素删除一个元素的元素操作;3 实现集合的交、并、差集合操作;16C 语言源程序代编写程序,统计C语言源程序的代码;码 行 统 计 工 具1. /* */ 和 / 的都认为是注释
10、行2. 统计空行3. 非空非注释行, 基本上可以认codeCounter 为是有效的代码行假如同一行中有注释和代码的认为是代码行4, 统计总代码行数、注释行数、空行数17实现链表按节点5 输入: codeCounter filename/filepath 输出列表: filename 总代码行数、注释行、空行通过此系统可以实现如下功能:的数值域值升序1、系统以菜单方式工作;排序的系统2、每个节点包括三个域:next 、prior 、data ;3、依据输入的值构造出节点,并以头插的方式储备在链表里;4、输入完毕后,用相关菜单能实现将全部节点按数值域值升序排序,用prior指针域连接;5、能分别
11、打印输出沿next 指向和沿prior指向的全部节点信息;要求:设计合理的储备结构,设计界面,设计程序完胜利能;储备空间有伸缩性;18一个简洁的栈和通过此系统可以实现如下功能:要求: 1、设计合理的储备结构,设队列的演示系统1、 系统以菜单的方式工作;计界面,设计程序完胜利能;2、全部功能均通过窗体界面实现,2、 从窗体上输入相应的信息,能够生成对应的节点,分别储存到栈和队列里面;输出的内容显示在窗体上;3、 通过相应的菜单实现,输出栈和队列里面的内容;4、 实现将栈置空、判空、弹栈、压栈基本操作;实现队列的置空、判空、入队、出队基本操作;19二叉树的重构和通过此系统可以实现如下功能:要求:设
12、计合理的储备结构,设计界遍历系统1、系统以菜单的方式工作;面,设计程序完胜利能;2、能实现从已有文件中读入原二叉树的后序遍历结果和中序遍历结果;5 / 29 名师归纳总结 - - - - - - -第 5 页,共 29 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用3、依据第 2 步的信息,重构出原先的二叉树,并将树的先序遍历结果输出到Output 目录的“ 先序遍历 .CSV” 文件中;4、可以将 Output 里的数据显示到窗体上;20多项式的加法和通过此系统可以实现如下功能:乘法实现系统1、从指定的 .csv文件读入多项式fx 和 gx 的系数和相应的指数
13、信息;2、将多项式fx 依据指数递增的次序排列,并将结果写入fx 排序结果 .csv 文件中;3、将多项式gx 依据指数递减的次序排列,并将结果写入gx 排序结果 .csv文件中;4、将两个多项式相加,结果写入多项式相加结果 .csv 文件中;5、将两个多项式相乘,将结果写入多项式相乘结果 .csv 文件中;要求:设计合理的储备结构,设计界面,设计程序完胜利能;将最终的相加结果和相乘结果,以多项式的形式显示在自己设定的窗体界面上;21万 年 历 查 询 程实现万年历程序1940-2040 年之间;序;功能要求:1)供应菜单方式选择,假定输入的年份在2)输入一个年份,输出是在屏幕上显示该年的日历
14、;3)输入年月,输出该月的日历;如:4)输入年份、月份、日期,运算得到的是这一天据今日有多少天,星期几;5)输入公历的年月日,输出农历年月日;6)输入农历节气,输出当年农历的年月日及公历年月日;可以假定只涉及年份是1940 年到 2040 年;22同学成果治理实现功能:输入、输出、插入、删除、查找、追加、读入、显示、储存、拷贝、排序、索引、分类合计、退出;23散列法的试验研散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也究可以不同;两者是影响查询算法性能的关键因素;对于几种典型的散列函数构造方6 / 29 名师归纳总结 - - - - - - -第 6 页,共 29 页
15、精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用法,做试验观看,不同的解决冲突方法对查询性能的影响;24利用栈求表达式建立试卷库文件,随机产生n 个题目;题目涉及加减乘除,带括弧的混合运算;随的值,可供学校时可以退出;保留历史分数,能回忆历史,给出与历史分数比较后的评判生作业,并能给出分数;25个人电话号码查实现简洁的个人电话号码查询系统,依据用户输入的信息如姓名,身份证号,电询系统话号码、邮件地址等)进行快速查询;基本要求:1 插入:实现将用户的信息插入到系统中;2 删除:删除某个用户的信息;3 修改:修改某个用户的信息;4 查询:依据姓名、身份证号等查询用户信息
16、 询、模糊查询等); 在内存中,设计数据结构储备电话号码的信息;在外存中,利用文件的形式来 储存电话号码信息,系统运行时,将电话号码信息从文件调入内存来进行插入、查 找等操作;2 假如数据的插入删除频繁,可以考虑实行二叉排序树组织电话号码信息 选择不同的排序和查找算法,尽可能提高查找和保护性能;26单源最短路径求给定一个带权有向图G=V,E,其中每条边的权是一个非负实数;另外,仍给定V解中的一个顶点,成为源;现在运算从源到其他各顶点的最短路径;路径的长度是指路上各边权值之和;27散列表的设计与【问题描述】实现设计散列表实现电话号码查找系统;【基本要求】1设每个记录有以下数据项:电话号码、用户名
17、、地址;2从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3采纳肯定的方法解决冲突;7 / 29 名师归纳总结 - - - - - - -第 7 页,共 29 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用4查找并显示给定电话号码的记录;5查找并显示给定用户名的记录;【进一步完成内容】1系统功能的完善;2设计不同的散列函数,比较冲突率;3在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长 度的变化;28数组编码和解码设有一个数组A: array0.N-1;存放的元素为0-N-11N 之间的整数,且问题的求解设计码定义如下 : ;例
18、如当N=6时,有: A=4,3,0,5,1,2;此时,数组A 的编与实现A0 编码为 0;Ai编码为:在A0,A1, ,Ai-1中比 Ai 的值小的个数 i=1,2, ,N-1 上面数组 A 的编码为: B=0,0,0,3,1,2 要求如下:29通讯录的制作(1)给出数组A, 利用 C 求解 A 的编码 . 几方面的功能:给出数组 A 的编码后,求出A 中原数据;本系统应完成一下输入信息:调用此函数用以输入数据到内存中,此过程包括建立相应的链表或相应的数组,便于读取 显 示 信 息 : 用 以 显 示 输 入 的 数 据 , 包 括 从 内 存 中 读 出 和 从 磁 盘 中 读 出查找:以姓
19、名作为关键字查找要找的信息 删 除 信 息 : 用 以 删 除 选 定 的 输 入 信 息 能比较快速地找到储户的帐户,以实现存款、取款记账;8 / 29 名师归纳总结 - - - - - - -第 8 页,共 29 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用2能比较简洁,快速地实现插入和删除,以实现开户和销户的需要;31排序方法的比较利用随机函数产生N个随机整数 至少采纳三种方法实现上述问题求解统计每一种排序方法的性能 出其中两种较快的方法;假如采纳 4 种或 4 种以上的方法者,可适当加分;32同学成果治理系现有同学成果信息文件11.txt),内容如下统
20、姓名学号 语文 数学 英语张明明 01 67 78 82 李成友 02 78 91 88 张辉灿 03 68 82 56 王露 04 56 45 77 陈东明 05 67 38 47 . . . . . 同学成果信息文件 2 实 现 对 两 个 文 件 数 据 的 合 并 , 生 成 新 文 件 3.txt 2 抽 取 出 三 科 成 绩 中 有 补 考 的 学 生 并 保 存 在 一 个 新 文 件 4.txt 3对合并后的文件 3.txt 中的数据按总分降序排序 至少采纳两种排序方法实现 4输入一个同学姓名后 , 能查找到此同学的信息并输出结果 至少采纳两种查找方法实 现 5要求使用结构体
21、 , 链表实现上述要求 . 9 / 29 名师归纳总结 - - - - - - -第 9 页,共 29 页精选学习资料 - - - - - - - - - 33字符串操作个人资料整理仅限学习使用编写程序,不使用标准库函数,实现字符串的拷贝、拼接、字串查找、长度运算等函数;1 在不使用相关的标准库函数的情形下,完成本任务;34集合操作2 实现两个字符串拼接的函数strcatstr1, str2;3 实现字符串拷贝的函数strcpystr1,str2;4 实现字符串查找的函数strcstrstr1,str2;5 实现字符串长度运算的函数strlenstr1;6 实现字符串查找字符的函数strcch
22、arstr1,c;7 实现字符串替换的函数strcreplacestrstr1,str2,str3;8 实现字符串替换字符的函数strcreplacecharstr1,str2,c;用单链表模拟有序集合,实现集合的加入一个元素、删除一个元素、集合的交、并、差运算;1 用单链表存放集合中的元素,链表中的元素按大小存放;2 实现集合加入一个元素删除一个元素的元素操作;3 实现集合的交、并、差集合操作;35找数字对输入 N2=N, 然后统计出这组数种相邻两数字组成的链环数字对显现的次数;例如:输入: N=20 表示要输入数的数目 0 1 5 9 8 7 2 2 2 3 2 7 8 7 8 7 9 6
23、 5 9 36二叉树遍历算法输出 7,8=2 8,7=3指 7,8 、8,7 数字对显现次数分别为2 次、 3 次 四种算法都是前序、中序、后序三种算法要求递归和非递归实现,层遍历用非递归37的实现实现;哈夫曼编码依据输入文本中每个字符的权重,构建哈夫曼树,并生成对应的哈夫曼编码38Prim算 法 的 实输入一个含有十个结点的无向图,用prim 算法生成一颗最小生成树并显示;现39克鲁斯卡尔算法任务:用邻接矩阵实现图的遍历,并用克鲁斯卡尔算法求图的最小生成树求图的最小生成 树40n 元多项式乘法1 界面友好,函数功能要划分好2 总体设计应画一流程图 3 程序要加必要的注释10 / 29 名师归
24、纳总结 - - - - - - -第 10 页,共 29 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用4 要供应程序测试方案 5 程序肯定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序 是没有价值的;41同学成果治理程设计一个简洁的同学成果治理程序,要求依据菜单处理相应功能;序1)治理功能包括列表、求平均成果、查找最高分等;2)可按指定的性别或高于指定的个人平均分来选择列表;3)可按平均成果排序;4)平均成果可按个人或科目进行;5)查找可按最高个人平均分进行,或按指定科目的最高分进行;6)每个同学的信息包括:序号、学号、性别、成果1、成果 2、成
25、果 3、成果 4;7)基本功能为:建立文件、增加同学记录、新建同学信息文件、删除 / 修改同学记录;42数组操作设计菜单处理程序,对一维数组进行不同的操作;二分查找、1)操作工程包括求数组最大值、最小值、求和、求平均值、排序、有序插入;2)设计并利用字符菜单进行操作工程的选择,程序一次运行可依据选择完成一项或多项操作;通过菜单“ 退出” 来终止程序的运行;每种书的登记内容包括书号、书名、著作者、现存量和库存量;2对书号建立索引表 系统主要功能如下:* 采编入库:新购一种书,确定书号后,登记到图书帐目表中,假如表中已有,就只将库存量增加;* 借阅:假如一种书的现存量大于0,就借出一本,登记借阅者
26、的书证号和归仍期限归仍,销改者变登 记现改存的量量;*: 注对借 阅的,变 该 书现 存;【进一步完成内容】11 / 29 名师归纳总结 - - - - - - -第 11 页,共 29 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用1系统功能的进一步完善;2索引表采纳树表;44同学搭配问题一班有m 个女生 , 有 n 个男生 m 不等于 n, 现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上. 每曲开头时 , 依次从男生和女生中各出一人配对跳舞, 本曲没胜利配对者坐着等待下一曲找舞伴. 请设计一系统模拟动态地显示出上述过程, 要求如下 : 1输出每曲配对
27、情形2运算出任何一个男生 编号为X和任意女生 编号为Y, 在第K 曲配对跳舞的情况. 至少求出 K的两个值 . 45图书登记治理程3尽量设计出多种算法及程序, 可视情形适当加分提示 : 用队列来解决比较便利.该程序应当具有以下功能:序1 通过键盘输入某本图书的信息;2 给定图书编号,显示该本图书的信息;3 给定作者姓名,显示全部该作者编写的图书信息;4 给定出版社,显示该出版社的全部图书信息;5 给定图书编号,删除该本图书的信息;6 供应一些统计各类信息的功能;46同学学分治理程假设每位同学必需完成基础课50 学分、专业课50 学分、选修课24 学分、人文类序课程8 学分、试验性课程20 学分
28、才能够毕业;因此在治理学分时,要考虑每个学分所属于的课程类别;该程序应当具有以下功能:1 通过键盘输入某位同学的学分;2 给定学号,显示某位同学的学分完成情形;3 给定某个班级的班号,显示该班全部同学学分完成情形;4 给定某位同学的学号,修改该同学的学分信息;5 依据某类课程的学分高低进行排序;6 供应一些统计各类信息的功能;47作业完成情形管假设某门课程一学期要留10 次作业,每次老师要进行批改,给出分数后仍要进行理程序登记;学期期末要依据每次作业的成果运算出最终的平常成果 通过键盘输入某位同学某次作业的分数;2 给定学号,显示某位同学作业完成情形;3 给定某个班级的班号,显示该班全部同学的
29、作业完成情形;4 给定某位同学的学号,修改该同学的作业完成信息;5 给定某位同学的学号,删除该同学的信息;6 供应一些统计各类信息的功能;48旅店 POS机治理旅店收款 POS机治理系统的简洁实现;系统1)前台治理:包括空房分等级显示、入住登记、退房结算、洗衣房治理、消遣工程治理;2)后台治理包括客房预定分析、营业额统计、日报表、月报表、年报表);3)设计数据结构文件来实现数据库治理,包括数据录入、查询、删除、修改、更 新;49同学通讯录治理用链表方式来实现同学通讯录治理系统;系统1)通过定义一个包含同学通讯录主要包括:学号、姓名、系别、专业、籍贯、家庭住址、联系电话等)的结构体类型,实现增加
30、同学通讯录的内容、删除某个学 生通讯录、输出全部同学通讯录内容、依据用户需求查找某个或某些同学的通讯录内容 如:按系别、专业、学号、姓名等内容进行查找);2)能够实现以上给定的各项功能,具有便利简洁的操作界面,具有肯定的容错 性;50超长正整数的加利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序;要求输法入和输出每四位一组,组间用逗号隔开;如:1,0000,0000, 0000,0000;提高要求:完成两个超长正整数的乘法;51个人电话号码查问题描述:实现简洁的个人电话号码查询系统,依据用户输入的信息 插入:实现将用户的信息插入到系统中;2 删除:删除某个用户的信息; 3 修改
31、:修改某个用户的信息;4 查询:依据姓名、身份证号等查询用户信息 排序:对于 用户信息进行排序,提高查询速度;6 输出:输出用户信息;提示:1 在内存中,设计数据结构储备电话号码的信息;在外存中,利用文件的形式来 储存电话号码信息,系统运行时,将电话号码信息从文件调入内存来进行插入、查 找等操作;13 / 29 名师归纳总结 - - - - - - -第 13 页,共 29 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用2 假如数据的插入删除频繁,可以考虑实行二叉排序树组织电话号码信息 选择不同的排序和查找算法,尽可能提高查找和保护性能;52哈夫曼编码问题描述:
32、利用哈夫曼编码,实现压缩和解压缩;基本要求:对于给定的一组字符,可以依据其权值进行哈夫曼编码,并能输出对应的哈夫曼树和哈夫曼编码;实现哈夫曼解码;提高要求:1 能够分析文件,统计文件中显现的字符,再对文件进行编码,实现文件的压缩 和解压缩;2 能够对于文件的压缩比例进行统计;3 能够打印文件;53订票系统基本要求:1 录入:可以录入航班情形 据自定) 查询:可以查询某个航线的情形 可以输入起飞抵达城市,查询飞机航班情形;4 订票: 修改航班信息:当航班信息转变可以修改航班数据文件;54学籍治理系统问题描述:建立学籍治理系统,实现对于同学信息的添加和保护治理;基本要求:完成学籍登记表中的下面功能登记表中包括学号、姓名、性别、诞生日期、政治面貌、联系方式、家庭住址等信息);插入:将某同学的基本信息插入到登记表中;删除:将满意条件的基本信息删除;修改:对基本信息的数据项进行修改;查询:查找满意条件的同学;输出:将登记表中的全部 或满意条件)基本信息输出;提高要求:可以添加课程信息 如开课学期、上课时间、上课地点等信息),同学选课信 息,实现同学的选课功能;14 / 29 名师归纳总结 - - - - - - -第 14 页,共 29 页