已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文档鉴赏 NOIP 普及组初赛历年试题及答案阅读题篇普及组初赛历年试题及答案阅读题篇 阅读程序写结果 共 4 题 每题 8 分 共计 32 分 阅读程序题是得分的关键 因为不是让你上机去运行程序 所以要一步步地读 程序 记录相关变量值的变化情况 因为程序的运行结果只有输出语句才有输 出 所以只写出输出语句的结果 有时要找出规律才能写出结果 特别是循环 次数多的情况 另外要注意边界值 不能多算一步也不能少算一步 解决这类问题的关键在于能够分析程序的结构以及程序段的功能 常见的有列 表法 画流程图法等 完成这类题目的方法和步骤如下 1 从头到尾通读程序 大致把握程序的算法 找出这个题目的即这个程序想干 什么 抓住了它 不仅得出答案变得较容易 而且对自己的结果也会比较有信 心 2 通过给程序分段 理清程序的结构和层次 达到读懂程序的目的 3 阅读程序中特别注意跟踪主要变量的值的变化 可以用列表的方法 了解变 量变化和程序的运行结果 注意发现规律 所谓列表法 就是将各变量名作为 表头 在程序的执行过程中 将各变量值的变化记录在相应变量的下方 4 按照程序中输出格式的要求 写出运行结果 并带着结果回到程序进行检查 在阅读程序时 要特别注意过程 函数所完成的子任务以及和主程序之间的参 数传递关系 在阅读程序中 比较好的方法是首先阅读主程序 看其需要调用 的过程或函数是什么 最后要求输出变量是什么 其次在阅读程序中 将较长 的程序分成几个程序段 特别注意循环结构 判断结构 阅读理解各程序段 的功能以及各程序之间的关联 NOIP2011 1 include using namespace std int main 文档鉴赏 int i n m ans cin n m i n ans 0 while i m 从 i 10 20 共循环计数 11 次 ans i 每次循环 ans 累加一次 i 值 i cout ans endl 此时 ans 值应为 10 20 11 2 即 165 return 0 输入 10 20 输出 165 NOIP2011 2 include include using namespace std 文档鉴赏 int main string map 2223334445556667778889999 数组中元素位置是从 0 开始计数的 string tel int i cin tel for i 0 i 0 如果输入的 tel 是 A Z 则输出一个 map 数组中对应的元素 输出元素在 map 数组中位置为 输入字母与 A 的 ASCII 码的差值 如果输入的是其他字符 比如 则不符合循环条件 无输出 cout endl return 0 输入 CCF NOIP 2011 输出 22366472011 文档鉴赏 NOIP2011 3 include include using namespace std const int SIZE 100 int main int n i sum x a SIZE cin n memset a 0 sizeof a for i 1 i x a x 循环结束时数组中的值为 a 1 1 a 2 2 a 3 3 a 4 2 a 5 1 a 6 2 i 0 sum 0 while sum 6 的时候 循环结束 i sum a i cout i endl 文档鉴赏 输出循环结束时 i 的值 不是 sum 的值 return 0 输入 11 4 5 6 6 4 3 32 3 2 1 输出 3 NOIP2011 4 include using namespace std int solve int n int m int i sum if m 1 return 1 递归函数 solve i m 中 m 1 时返回函数值为 1 sum 0 for i 1 i n m cout solve n m endl 输出函数值 即 sum 值 return 0 输入 7 4 输出 20 NOIP2012 1 include using namespace std int a b c d e ans int main cin a b c d a b e b c ans d e 文档鉴赏 ans a b b c cout ans endl return 0 输入 1 2 5 输出 10 NOIP2012 2 include using namespace std int n i ans int main cin n ans 0 for i 1 i n i if n i 0 ans 统计 1 18 中 18 的因数个数 cout ans endl return 0 文档鉴赏 输入 18 输出 6 NOIP2012 3 include using namespace std int n i j a 100 100 int solve int x int y int u v if x n return a x y 递归边界 当 x 5 时 solve 5 y a 5 y u solve x 1 y v solve x 1 y 1 if u v return a x y u else return a x y v 用递归最终求得 solve 1 1 a 1 1 solve 2 2 2 12 14 int main 文档鉴赏 cin n for i 1 i n i for j 1 j a i j cout solve 1 1 endl return 0 输入 5 2 1 4 2 1 2 1 6 4 0 3 2 1 5 8 输出 14 NOIP2012 4 include include using namespace std int n ans i j 文档鉴赏 string s char get int i if i n return s i else return s i n i 8 时 get i 返回 s i 8 从第一个开始返回 int main cin s n s size ans 0 for i 1 i n 1 i for j 0 j n 1 j if get i j get ans j break 此循环执行完毕 ans 7 for j 0 j n 1 j cout get ans j 1 ans j 8 输出 s 7 0 2 ans j 8 输出 s 8 8 3 ans j 9 输出 s 9 8 cout endl return 0 输入 CBBADADA 输出 ACBBADAD NOIP2013 1 include using namespace std int main inta b cin a b cout a b a b endl return 0 文档鉴赏 输出 3 5 8 输入 3 5 输出 3 5 8 NOIP2013 2 include using namespace std int main int a b u i num cin a b u num 0 for i a i b i if i u 0 num 1 100 之间有多少数是 15 的倍数 cout num endl return 0 输入 1 100 15 输出 6 文档鉴赏 NOIP2013 3 include using namespace std int main const int SIZE 100 int n f i left right middle a SIZE cin n f for i 1 i a i left 1 right n do middle left right 2 if f a middle right middle else left middle 1 while left a 6 则 left 7 middle 9 17 a 9 则 right 9 middle 8 17 a 8 则 right 8 文档鉴赏 middle 7 17 a 7 则 right 7 left right 直接输出 left cout left endl return 0 输入 12 17 2 4 6 9 11 15 1718 19 20 21 25 输出 7 NOIP2013 4 include using namespace std int main constint SIZE 100 intheight SIZE num SIZE n ans cin n for int i 0 i height i num i 1 for int j 0 j i j 文档鉴赏 if height j num i num i num j 1 两两相比 得出 num 0 num 1 num 2 num 3 num 4 num 5 ans 0 for int i 0 i ans ans num i 得出 num 中最大值 即在数组 height 中第几位数值最大 cout ans endl return 0 输入 6 2 5 3 11 12 4 输出 4 不懂算法 跟踪变量 列表模拟 遇到递归 画树形图 注意边界 找到规律不懂算法 跟踪变量 列表模拟 遇到递归 画树形图 注意边界 找到规律 了 还会流程图 恭喜你 了 还会流程图 恭喜你 32 分到手了 分到手了 文档鉴赏 NOIP2014 1 include using namespace std int main int a b c d ans cin a b c d a b 将 a b 1 赋值给 d a d c 将 d c 3 赋值给 a ans a b ans a b 3 3 9 cout Ans ans endl return 0 输入 2 3 4 输出 Ans 9 NOIP2014 2 include using namespace std int fun int n if n 1 文档鉴赏 return 1 边界 fun 1 1 if n 2 return 2 边界 fun 2 2 return fun n 2 fun n 1 fun n fun n 2 fun n 1 int main int n cin n cout fun n endl fun 7 fun 5 fun 6 11 return 0 输入 7 输出 11 NOIP2014 3 include include using namespace std int main 文档鉴赏 string st int i len getline cin st len st size for i 0 i a 如果字符串 st 中字母小写 则替换成大写 cout st endl return 0 输入 Hello my name is Lostmonkey 输出 HELLO MY NAME IS LOSTMONKEY NOIP2014 4 include using namespace std const int SIZE 100 int main int p SIZE int n tot i cn 文档鉴赏 tot 0 cin n for i 1 i n i p i 1 p 1 p 30 中所有元素赋值 1 for i 2 i n i if p i 1 tot 计数 cn i 2 找出 2 30 中所有 2i while cn n p cn 0 cn i 找出 2 30 中所有 3i 对 2 30 中素数计数 并输出个数 cout tot endl return 0 输入 30 输出 10 NOIP2015 1 include using namespace std 文档鉴赏 int main int a b c a 1 b 2 c 3 if a b 不符合循环条件 不执行 if a c cout a else cout b cout c endl return 0 输出 3 NOIP2015 2 include using namespace std struct point int x 文档鉴赏 int y 声明结构体类型 point int main int a b c struct EX int a int b point c e 声明结构体类型 EX e a 1 结构体变量 e 中变量 a e b 2 结构体变量 e 中变量 b e c x e a e b 结构体变量 e 中的结构体变量 c 中的变量 x e c y e a e b 结构体变量 e 中的结构体变量 c 中的变量 y cout e c x e c y endl return 0 输出 3 2 文档鉴赏 NOIP2015 3 include include using namespace std int main string str int i int count count 0 getline cin str for i 0 i a 统计字符串中小写字母数量 cout It has count lowercases endl return 0 输入 NOI2016will be held in Mian Yang 输出 It has 18 lowercases NOIP2015 4 include 文档鉴赏 include using namespace std void fun char a char b a b a 指针题 int main char c1 c2 p1 p2 c1 A c2 a p1 p2 fun p1 p2 p1 p2 return 0 输出 Ab 文档鉴赏 NOIP2016 1 include using namespace std int main int max min sum count 0 int tmp cin tmp if tmp 0 return0 如果输入的数字是 0 程序退出 max min sum tmp count while tmp 0 cin tmp if tmp 0 sum tmp 求和 count 计数 if tmp max max tmp 找出最大值 if tmp min min tmp 找出最小值 文档鉴赏 cout max min sum count endl 输出 最大值 最小值 平均值 return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- UWB定位算法仿真开发课程设计
- 博物馆奇妙夜课程设计
- 磨床研发工程师考试试卷及答案
- 搜索引擎元宇宙引擎课程设计
- FPGA实现UART通信技巧课程设计
- 毛绒玩具充棉工岗位操作考试试卷及答案
- 2026年小学四个引路人要求学习课件
- ETC门架接地防腐蚀措施方案
- 幼儿园:颜色变变变
- 2026年中秋节假期高中假期错题计划
- 第七章糖代谢与生物氧化
- 医院传染病防控
- 《养老机构服务合同》 GF-2016-2001
- 喷砂房安全规程
- 第六章 地理信息系统的应用模型
- 麻风病皮肤查菌技术课件
- 教育学 第四章 学生与教师
- 民航客舱服务与管理高职PPT完整全套教学课件
- 第二章教师专业发展的内容
- 运动人体科学《背诵篇》
- 2023全国结核病竞赛试卷3病例分析(彭)
评论
0/150
提交评论