




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计训练大纲一、程序设计训练目的和教学要求“C程序设计训练”是在学习“C语言程序设计”课程之后进行的一个实践教学环节,程序设计训练的目的是:1进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;2针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3掌握C语言的编程技巧和上机调试程序的方法。4掌握程序设计的常用算法。本程序设计训练是利用C语言理论和实验课中学到的编程知识和编程技巧,通过布置具有一定难度、一定编程量的程序设计训练题目,使学生通过程序设计训练掌握高级编程语言的知识和编程技术,掌握程序设计的思想和方法,具备利用计算机求解实际问题的能力。二、程序设计训练的基本要求 设计步骤的规范不但可以培养学生科学的工作方法和作风,而且还能有效地减少错误,提高工作效率。因此必须严格执行良好的实验步骤规范(包括上级操作规范)。本程序设计训练的基本步骤与要求是: 1问题分析及解决方案框架确定l 充分地分析和理解问题本身,弄清要求做什么(What to do?)。l 在确定解决方案框架过程中(How to do?),考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。 2详细设计和编码 确定算法的主要流程,再此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 3上机前编写程序与检查 上机前程序检查可有效提高调试效率,减少上机调试程序时的无谓错误。 程序检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑,把程序中的明显错误事先排除。 4上机调试程序 5完成程序设计训练报告 问题描述:题目要解决的问题是什么。 设计l 设计算法:主要算法思想,用流程图表示。l 实现注释:各项功能的实现程度。l 调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等。 附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。三、程序设计训练的内容 1、日历问题 问题描述在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000年1月1日开始逝去的天数,你的任务是给出这一天是哪年哪月哪日星期几。输入数据输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。输入最后一行是1, 不必处理。可以假设结果的年份不会超过9999。输出要求对每个测试样例,输出一行,该行包含对应的日期和星期几。格式为“YYYY-MM-DD DayOfWeek”, 其中 “DayOfWeek” 必须是下面中的一个: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday and Saturday“。输入样例1730 1740 1750 1751 -1输出样例2004-09-26 Sunday 2004-10-06 Wednesday 2004-10-16 Saturday 2004-10-17 Sunday2、生理周期问题描述人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23 天、28 天和33 天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高峰出现的时间)。你的任务是给定一个从当年第一天开始数的天数,输出从给定时间开始(不包括给定时间)下一次三个高峰落在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现三个高峰同天的时间是12,则输出2(注意这里不是3)。输入数据输入四个整数:p, e, i 和d。 p, e, i 分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d 是给定的时间,可能小于p, e, 或 i。 所有给定时间是非负的并且小于365, 所求的时间小于等于21252。输出要求从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)。输入样例0 0 0 00 0 0 1005 20 34 3254 5 6 7283 102 23 320203 301 203 40-1 -1 -1 -1输出样例Case 1: the next triple peak occurs in 21252 days.Case 2: the next triple peak occurs in 21152 days.Case 3: the next triple peak occurs in 19575 days.Case 4: the next triple peak occurs in 16994 days.Case 5: the next triple peak occurs in 8910 days.Case 6: the next triple peak occurs in 10789 days.3、约瑟夫问题问题描述约瑟夫问题:有只猴子,按顺时针方向围成一圈选大王(编号从到),从第号开始报数,一直数到,数到的猴子退出圈外,剩下的猴子再接着从1 开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入,后,输出最后猴王的编号。输入数据每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 m, n 300)。最后一行是:0 0输出要求对于每行输入数据(最后一行除外),输出数据也是一行,即最后猴王的编号输入样例:6 212 48 30 0输出样例:5174、恺撒Caesar密码题目描述 Julius Caesar 生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F),其他字符不 变,并且消息原文的所有字母都是大写的。 密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U输入数据 最多不超过100个数据集组成。每个数据集由3部分组成:起始行:START 密码消息:由1到200个字符组成一行,表示Caesar发出的一条消息结束行:END 在最后一个数据集之后,是另一行:ENDOFINPUT 输出要求 每个数据集对应一行,是Caesar 的原始消息。 输入样例 STARTNS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJXENDSTARTN BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJENDSTARTIFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJENDENDOFINPUT输出样例 IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSESI WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROMEDANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE5、身份证校验题目描述 我国国标GB 11643-1999中规定:公民身份号码是18位特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。其校验码(最后一位)计算方法和步骤为:(1)十七位数字本体码加权求和公式S = Sum(Ai * Wi), i = 0, . , 16 ,先对前17位数字的权求和其中Ai:表示第i位置上的身份证号码数字值Wi:表示第i位置上的加权因子,前17位加权因子从左到右分别为Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2(2)计算模Y = mod(S, 11)(3)通过模Y查下表得到对应的校验码Y012345678910校验码10X98765432例如:某身份证前17位为11010519491231002i1234567891011121314151617wi791058421637910584211010519491231002积7905020292427718305004得到和为:167;则模为y=167%11=2查(3)得校验码为x请按上面所述步骤编程,输入一个二代身份证号,检查该身份证是否正确。6学生成绩管理学生信息包括:学号、姓名、年龄、性别、出生年月。主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改。(2能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序。(3)能查询学生成绩。(4)能按班级输出学生的成绩单。7、学生成绩的文件管理(1)先用记事本编辑文件stu1.dat存储一个班学习成绩。然后在C环境下,建立一个学生信息的结构体,用r方式打开上述文件,再用fscanf读入、用printf在屏幕上显示文件内容。(2)利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。接着用冒泡法利用平均分的高低排出名次。最后用fprintf将每个学生的信息写入到stu2.dat文件。四、程序设计训练的安排程序设计训练安排在本学期下半学期,在计算机基础实验室,每人一台机器。程序设计训练完成后提交程序设计训练报告。五、考核方式与评分办法通过程序实现、总结报告和学习态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神。成绩分优、良、中、及格和不及格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山东省邹城市中考数学模拟题库含答案详解【突破训练】
- 2023年度咨询工程师通关题库含完整答案详解【名师系列】
- 医学检验(中级)模拟试题附参考答案详解(预热题)
- 2024-2025学年度电工考前冲刺测试卷附参考答案详解(培优B卷)
- 2024烟草职业技能鉴定考试综合练习含答案详解(研优卷)
- 2025云南省开远市中考数学考试黑钻押题附参考答案详解【研优卷】
- 自考专业(会计)考试历年机考真题集【轻巧夺冠】附答案详解
- 高校教师资格证之《高等教育法规》练习题库带答案详解(轻巧夺冠)
- 2024自考专业(金融)全真模拟模拟题及完整答案详解【夺冠系列】
- 2025年临床执业医师预测复习含答案详解【基础题】
- 蜂鸟众包培训知识课件
- 新转型九年一贯制学校三年发展规划(2025年-2028年)
- 维护秩序靠规则(课件) 2025-2026学年八年级道德与法治上册(统编版2024)
- 期神丁鹏期货交易课件
- 反走私课件教学课件
- 大货车闯红灯安全培训课件
- 变电站SVG培训课件
- 2025秋教科版(2024)科学三年级上册教学设计(附目录)
- (2025秋新版)苏教版科学三年级上册全册教案
- 三年级作文指导暑假趣事(课堂PPT)
- 处方及处方调配管理制度.doc
评论
0/150
提交评论