《算法设计综合实训》题目

更新时间:2023-10-24 15:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

算法设计综合实训题目

0.逆序数字(借助栈)

编写一个函数,接收一个4位整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367.

输入:

第一行一个正整数T(T<=10),表示有T组测试数据; 以下T行,每行一个非负的整数N。

输出:

共T行,对于每组输入数据输出一行,即数字逆序后的结果值。 样本输入: 3 7631 1018 5158 样本输出: 1367 8101 8515

1.人见人爱A+B

这个题目的A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。

输入:

输入数据有多行组成,首先是一个整数N,表示测试实例的个数,然后是N行数据,每行有6个整数AH,AM,AS,BH,BM,BS,分别表示时间A和B所对应的时分秒。题目保证所有的数据合法。

输出:

对于每个测试实例,输出A+B,每个输出结果也是由时分秒3部分组成,同时也要满足时间的规则(即:分和秒的取值范围在0-59),每个输出占一行,并且所有的部分都可以用32位整数表示。

样本输入: 2

1 2 3 4 5 6 34 45 56 12 23 34 样本输出: 5 7 9 47 9 30 2.敲七 【问题描述】

输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)

【要求】

【数据输入】一个整数N。(N不大于30000)

【数据输出】从小到大排列的不大于N的与7有关的数字,每行一个。 【样例输入】 20

【样例输出】 7 14 17

3.统计同成绩学生人数问题 【问题描述】

读入N名学生的成绩,将获得某一给定分数的学生人数输出。 【要求】

【数据输入】测试输入包含若干测试用例,每个测试用例的格式为 第1行:N

第2行:N名学生的成绩,相邻两数字用一个空格间隔。 第3行:给定分数

当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。

【数据输出】对每个测试用例,将获得给定分数的学生人数输出。 【样例输出】 3 80 60 90 60 2 85 66 0 5

60 75 90 55 75 75 0

【样例输出】 1 0 2

4.高斯日记

大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?

高斯出生于:1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。

高斯获得博士学位的那天日记上标着:8113 请你算出高斯获得博士学位的年月日。 5.牛的繁殖问题

有位科学家曾出了这样一道数学题:有一头母牛,它每年年初要生一头小母牛;每头小母牛从第四个年头起,每年年初也要生一头小母牛。按此规律,若无牛死亡,第20个年头上共有多少头母牛。

6.最少钱币数问题 【问题描述】

这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑 15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。

你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。

【要求】(代码需加注释)

【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M(1 <= M <= 2000,整数),接着的一行中,第一个整数K(1 <= K <= 10)表示币种个数,随后是K个互不相同的钱币面值Ki(1 <= Ki <= 1000)。输入M=0时结束。

【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。

【样例输入】 15

6 2 5 10 20 50 100 1 1 2 0

【样例输出】 2 Impossible

7. 运动会分数统计

【任务描述】参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的得分分别为:7、5、3、2、1,前三名的得分分别为:5、3、2;哪些

取前五名或前三名由学生自己设定。(m<=20,n<=20)

【功能要求】

1)可以输入各个项目的前三名或前五名的成绩。 2)能统计各学校总分。

3)可以按学校编号或名称、学校总分、男女团体总分排序输出。

4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

5)数据存入文件并能随时查询。

6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称。 【输出形式】有合理的提示,各学校分数为整型。

【界面要求】有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

【存储结构】学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在C /C++语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构。

【测试数据】要求使用(1)全部合法数据;(2)整体非法数据;(3)局部非法数据分别进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。

8. 飞机订票系统

任务:通过此系统可以实现如下功能:

1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。

2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。

3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班。

4)退票:可退票,退票后修改相关数据文件。

客户资料有姓名、证件号、订票数量及航班情况,订单要有编号。 5)修改航班信息:当航班信息改变时,可以修改航班数据文件。

要求:根据以上功能说明,设计航班信息、订票信息的存储结构,设计程序完成功能。

9. 文章编辑

功能:输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。

存储结构:使用线性表,分别用几个子函数实现相应的功能。

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出\全部字母数\、\数字个数\、\空格个数\、\文章总字数\;(3)输出删除某一字符串后的文章。

10. 宿舍管理查询软件

问题描述:为宿舍管理人员编写一个宿舍管理查询软件。 程序设计要求:

(1)采用交互工作方式。

(2)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)。

(3)查询菜单(用二分查找实现以下操作):按姓名查询、按学号查询、按房号查询。 (4)打印任一查询结果(可以连续操作)。

11. 学校超市选址问题(带权有向图的中心点)

设计要求:对于某一学校超市,其他各单位到其该超市的距离不同,同时各单位人员去超市的频度也不同。请为超市选址,要求实现总体最优。

12. 教学计划编制问题

针对学院的计算机系本科课程,根据课程之间的依赖关系,制定课程安排计划,并满足各学期课程数大致相同。按照用户输入的课程数、学期数、课程间的先后关系数目以及课程间两两间的先后关系,程序执行后会给出每学期应学的课程。

功能要求:

(1)输入的形式和输入值的范围:输入间用空格隔开。要求用户输入的课程数小于20,

本文来源:https://www.bwwdw.com/article/ogc2.html

Top