ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:19.85KB ,
资源ID:4403951      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4403951.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第二届周立功杯C语言与嵌入式设计大赛C语言竞赛组第一阶段题目.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第二届周立功杯C语言与嵌入式设计大赛C语言竞赛组第一阶段题目.docx

1、第二届周立功杯C语言与嵌入式设计大赛C语言竞赛组第一阶段题目第二届周立功杯C语言与嵌入式设计大赛C语言竞赛组第一阶段题目比赛时间:2009-5-12到2009-5-27日比赛形式:竞赛选手在比赛时间内,完成10道算法设计题程序设计语言:C/C+语言程序代码要求:对每个函数进行注释(在函数之前),说明函数的作用,对主要算法代码进行注释。程序编码风格参见CodingStyle.doc。程序中,涉及到对文件的操作可以使用fopen, fscanf,fprintf等函数实现。说明:算法设计题目总共10道,不要求全做。对于每道题目,选手应该完成中题目中的要求,扩展要求或者选做部分也会展一定的分值。代码风

2、格,注释等也会影响得分。2009-05-09 题目一:(7分)1. 问题描述正整数x 的约数是能整除x 的正整数。正整数x 的约数个数记为div(x)。例如,1,2,5,10 都是正整数10 的约数,且div(10)=4。设a 和b 是2 个正整数,ab,找出a 和b之间约数个数最多的数x。2. 要求:对于给定的2 个正整数ab,编程计算a 和b 之间约数个数最多的数。3. 输入:输入数据由文件名为div.in的文本文件提供。文件的第1 行有2 个正整数a和b。4. 输出:程序运行结束时,若找到的a 和b 之间约数个数最多的数是x,将div(x)输出到文件div.out中。5. 输入输出文件样

3、例:div.indiv.out1 369题目二:(7分)1. 问题描述:给定一个整数序列,求出子段序列的最大和,也就是一段连续和元素的和,使其和最大,(如果和为负数则返回0)。2. 要求: 对于给定的n个数字的序列,编程计算最大子段和。3. 输入: 由文件num.in给出输入数据。文件第一行为n,第二行为n个整数序列。4. 输出: 将编程计算出的最大子段和输出到文件num.out。5. 输入输出文件样例:num.innum.out93 4 -3 -6 8 -3 4 -2 -3 9 题目三:(9分)1. 问题描述实现将N进制到M进制数的转换(1 N,M = 36)。对于11到36进制数,其基数使

4、用从A到Z的英文字母(全部为大写)代替。例如对于11进制,其基数10(十进制)使用A表示;对于36进制,其基数35(十进制)使用Z表示。被转换的数全部为正数且小于2147483647(long型的最大值)。下表为十进制数100对应的各进制数:进制1011162735数值10091643J2U2. 要求:(1). 实现10进制数到M进制数的转换。(2). 程序具有较强的容错能力(例如对错误的输入数字串的处理)。(3). N进制到M进制数(1 N,M 36)的转换(扩展要求,选做)。3. 输入: 输入文件名为convert.in,文件内容格式为第一列为被转换数的进制数,第二列为被转换数, 第三列为

5、转换后的进制。这三列内容均为字符串形式。每列之间使用一个空格隔开。4. 输出: 输出文件名为convert.out,文件内容为转换后的数。对于一切错误,则输出“error”字符串。5. 输入输出文件样例: 样例1convert.inconvert.out10 100 273J 样例2convert.inconvert.out3 140 27error题目四:(9分)1. 问题描述:大于1 的正整数n可以分解为:n=x1*x2*xm。例如,当n=12 时,共有8 种不同的分解式:12=12;12=6*2;12=4*3;12=3*4;12=3*2*2;12=2*6;12=2*3*2;12=2*2*

6、3。2. 要求: 对于给定的正整数n,编程计算n共有多少种不同的分解式。3. 输入:由文件count.in给出输入数据。第一行有1 个正整数n (1n2000000000)。4. 输出:将计算出的不同的分解式数输出到文件count.out。5. 输入输出文件样例: count.incount.out128题目五:(9分)1. 问题描述:设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti (1in)。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n个顾客等待服务时间的总和除以n。2. 要求: 对于给定的n个顾客需要的服务时间,编程计算最优服务次序。3. 输入:由文

7、件service.in给出输入数据。第一行是正整数n,表示有n 个顾客。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间。4. 输出: 将编程计算出的最小平均等待时间输出到文件service.out。5. 输入输出文件样例:service.inservice.out1056 12 1 99 1000 234 33 55 99 812532.00题目六:(9分)1. 问题描述: 在实际应用中,常常会出现对两个大数进行操作的情况,比如对其进行加减运算。请设计一个算法实现对两个大数m和n的运算(m和n的位数不大于128位)。2. 要求:(1). 实现对两个大数的相加运算。(2). 实现对两个

8、大数的相减运算(扩展要求)。3. 输入: 输入文件名为ogol.in,文件内容有两列,分别为两个大数。4. 输出: 输出文件名为ogol.out,文件内容有两行,第一行为两个大数的和,第二行为两个大数的差(如果没有实现两个大数相减,则此行没有)。5. 输入输出文件样例: ogol.inogol.out9999999999999999999 110000000000000000000题目七:(11分)1. 问题描述:设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。试设计一个算法,为每一个人都分配1 件不同的工作,并使总费用达到最小。2. 要求:设计一个算法,对于给定的工作费

9、用,计算最佳工作分配方案,使总费用达到最小。3. 输入:由文件work.in给出输入数据。第一行有1 个正整数n (1n20)。接下来的n行,每行n个数,表示工作费用。4. 输出:将计算出的最小总费用输出到文件work.out。5. 输入输出文件样例: work.inwork.out310 2 32 3 43 4 59题目八:(11分)1. 问题描述: 对一个序列进行的“无序”测量指的是:计算出序列中未按照字母顺序进行排列的字母对的个数。举例来说,在字母序列“DAABEC”中,经过“无序”测量的值是 5 ,因为字母D比它右边的4个字母(A,A,B,C)大,而字母E比它右边的1个字母(C)要大,

10、所以本字符序列中的倒置的无序字符对个数为5。而这种测量值被称作序列倒置对个数。序列“AACEDGG”仅有一对倒置(E和D) 它差不多已经按序排列了然而 序列“ZWQM”有六对倒置(它是毫无秩序的完全的颠倒秩序)。2. 要求:编一个针对 “DNA链序列” 的目录(序列中只能包含A,C,G,T 四个字母),依据每个序列中倒置对的个数,从“倒置对数”最少的到“倒置对数”最多的序列,依次编排目录,要求所有的字符串序列的长度相同。3. 输入:第一行包含两个整数,一个正整数n(0 n 50),它给出了字符串的长度另一个正整数m(0 m = 100)给出了字符串的个数。下面的输入由m行组成,每行为一个长度为

11、n的字符串。4. 输出: 输出已输入字符串的列表,从“最多排序数”到“最少排序数”依次安排,因为两个字符串可能会有相同的排序数,所以他们的输出依照最初的排列顺序进行。5. 输入输出文件样例: dna.indna.out10 6AACATGAAGGTTTTGGCCAATTTGGCCAAAGATCAGATTTCCCGGGGGGAATCGATGCATCCCGGGGGGAAACATGAAGGGATCAGATTTATCGATGCATTTTTGGCCAATTTGGCCAAA题目九:(12分)1. 问题描述: 8x8的国际象棋棋盘上的一匹马,恰好走过出起点外的其他63个位置各一次,最后回到起点。这条路线称为

12、一条马的Hamilton周游路线。2. 要求: 对于给定的m x n的国际象棋棋盘,m和n均为大于5的偶数,且|m-n|=2 。编程找出一条马的Hamilton周游路线。3. 输入: 输入数据由文件名为hamilton.in的文本文件提供。文件的第1 行是2 个正整数m和n。第二行为马的初始坐标编号(坐标原点:为0,左下角)。4. 输出:输出文件名为hamilton.out,文件内容为马走过的路线,其中第一个为起始位置,依次为第二,第三个位置,每行最多8个数据。例如对于8x8棋盘,对其规定如下:每个位置使用一个数字代表,左下角为起始编号,从0开始。56575859606060634849505

13、152535455404142434445464732333435363738392425262728293031161718192021222389101112131415012345675. 输入输出文件样例:hamilton.inhamilton.out8 800 10 4 13 31 21 6 23 29 12 题目十:(16分)系统用户管理是许多应用软件里不可缺少的部分,请使用C语言为某软件开发一个简单的用户管理子系统,具体功能要求如下:(1). 添加新用户 在系统中为新用户创建一个访问系统的帐户,其中用户名的长度限制在16个字符之间且不区分大小写;用户密码的长度限制在610个字符之

14、间,注意密码区分大小写。在输入新用户名时,需要判定输入的用户名是否已经存在,若已经存在则提示用户重新输入;在输入用户密码时,需要分别输入“用户密码”和“确认密码”,若两者不一致则提示用户并让用户全部重新输入;用户在输入密码时,不允许直接在屏幕上显示用户键盘敲入的字符,必须用“*”号代替(下面输入密码时,与此要求相同);系统中所有用户的帐户存储在一个数据文件里。(2). 系统登录 在用户登录时对用户身份进行确认。当输入了用户名和密码后,判断输入的用户是否存在且密码相同,若用户合法,则提示“登陆成功”;否则,提示“用户名或密码错误”,让用户重新输入;注意,只允许用户尝试3次,超过3次则显示“非法用

15、户”并退出模块。(3). 密码修改 在修改用户密码时,需要输入用户名和原始密码,以及新密码和确认密码;当用户名和原始密码正确以及新密码和确认密码一致时,更新用户的密码,否则提示用户错误原因,即“用户名或密码错误”或“新密码和确认密码不一致”。(4). 用户查询 为用户管理提供模糊查询功能。当输入检索词后,查询出所有用户名中包含该检索词的用户。例如:假设当前系统中包含的用户包括abc,bab,cab,cba,如果用户输入的检索词是ab或AB,则检索出来的用户应该包括abc、bab和cab。 为了验证上述模块是否开发正确,可在main函数中编写一个菜单完成对上述功能模块的选择调用。另外,以上任务在字符模式底下完成就可以了,不需要采用图形界面模式。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1