NOIP普及组初赛历年试题及答案阅读题篇.docx

上传人:h**** 文档编号:879726 上传时间:2018-11-04 格式:DOCX 页数:28 大小:21.22KB
下载 相关 举报
NOIP普及组初赛历年试题及答案阅读题篇.docx_第1页
第1页 / 共28页
NOIP普及组初赛历年试题及答案阅读题篇.docx_第2页
第2页 / 共28页
NOIP普及组初赛历年试题及答案阅读题篇.docx_第3页
第3页 / 共28页
NOIP普及组初赛历年试题及答案阅读题篇.docx_第4页
第4页 / 共28页
NOIP普及组初赛历年试题及答案阅读题篇.docx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、NOIP 普及组初赛历年试题及答案阅读题篇阅读程序写结果(共 4 题,每题 8 分,共计 32 分)阅读程序题是得分的关键,因为不是让你上机去运行程序,所以要一步步地读程序,记录相关变量值的变化情况。因为程序的运行结果只有输出语句才有输出,所以只写出输出语句的结果。有时要找出规律才能写出结果,特别是循环次数多的情况,另外要注意边界值,不能多算一步也不能少算一步。解决这类问题的关键在于能够分析程序的结构以及程序段的功能。常见的有列表法、画流程图法等。完成这类题目的方法和步骤如下:1、从头到尾通读程序,大致把握程序的算法、找出这个题目的即这个程序想干什么。抓住了它,不仅得出答案变得较容易,而且对自

2、己的结果也会比较有信心。2、通过给程序分段、理清程序的结构和层次,达到读懂程序的目的。3、阅读程序中特别注意跟踪主要变量的值的变化,可以用列表的方法,了解变量变化和程序的运行结果,注意发现规律。所谓列表法,就是将各变量名作为表头,在程序的执行过程中,将各变量值的变化记录在相应变量的下方。4、按照程序中输出格式的要求,写出运行结果,并带着结果回到程序进行检查。在阅读程序时,要特别注意过程、函数所完成的子任务以及和主程序之间的参数传递关系。在阅读程序中,比较好的方法是首先阅读主程序,看其需要调用的过程或函数是什么,最后要求输出变量是什么;其次在阅读程序中,将较长的程序分成几个程序段(特别注意循环结

3、构、判断结构),阅读理解各程序段的功能以及各程序之间的关联。NOIP2011-1.#includeusing namespace std;int main()int i,n,m,ans;cinnm;i=n;ans=0;while(i#includeusing namespace std;int main()string map= “2223334445556667778889999“;/数组 中元素位置是从 0 开始计数的string tel;int i;cintel;for(i=0;i=0) const int SIZE= 100;int main()int n,i,sum,x,aSIZE;

4、cinn;memset(a,0,sizeof(a);for(i=1;ix;ax+;/循环结 束时 数组中的值为: a1=1,a2=2,a3=3,a4=2 ,a5=1 ,a6=2i=0;sum=0;while(sum=6 的时候,循环结束i+;sum+=ai;coutusing namespace std;int solve(int n,int m)int i,sum;if(m=1) return 1;/递归 函数 solve(i,m)中 m=1 时返回函数值为 1sum=0;for(i=1;inm;coutusing namespace std;int a, b, c, d, e, ans;i

5、nt main()cinabc;d = a+b;e = b+c;ans = d+e;/ans=a+b+b+ccoutusing namespace std;int n, i, ans;int main()cinn;ans = 0;for (i = 1; i using namespace std;int n, i, j,a100100;int solve(int x,int y)int u, v;if(x = n)return axy;/递归边 界:当 x=5 时,solve(5,y)=a5yu= solve(x + 1, y);v= solve(x + 1, y + 1);if(u v)re

6、turn axy + u;elsereturn axy + v;/用递归 最终 求得 solve(1,1)=a11+solve(2,2)=2+12=14int main()cinn;for(i = 1; i aij;cout#includeusing namespace std;int n, ans, i, j;string s;char get(int i)if(i =8 时,get(i) 返回 si-8,从第一个开始返回int main()cins;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)ans = i;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。