NOIP2011普及组复赛精彩试卷试题源程序.doc

NOIP2011普及组复赛精彩试卷试题源程序.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
标准文案 NOIP2011 普及组 复赛 1 .数字反转( reverse.cpp/c/pas ) 【问题描述】 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给 定的原数为零,否则反转后得到的新数的最高位数字不应为零。 (参见样例 2 ) 【输入】 输入文件名为 reverse.in 。 输入共一行,一个整数 N 。 【输出】 输出文件名为 reverse.out 。 输出共 1 行,一个整数,表示反转后的新数。 【输入输出样例 1 】 reverse.in reverse.out 123 321 【输入输出样例 2 】 reverse.in reverse.out -380 -83 【数据范围】 -1,000,000,000 ≤N ≤1,000,000,000 。 【解题】 这道题非常简单,可以读字符串处理,也可以读数字来处理,只不过要注意符号问题(以及 -0 , 但测试数据没出) 。 【法一】字符串处理 Var i,l,k:integer; s:string; p:boolean; begin assign(input, 'reverse.in'); reset(input); assign(output, 'reverse.out'); rewrite(output); readln(s); l:=length(s); k:=1; if s[1]='-' then begin write('-'); k:=2; end; p:=true;; for i:=l downto k do 大全 标准文案 begin if(p)and((s[i]='0')) then continue else begin write(s[i]); p:=false;; end; end; close(input); close(output); end. 【法二】数字处理 Var f:integer; n,ans:longint; begin assign(input, 'reverse.in'); reset(input); assign(output, 'reverse.out'); rewrite(output); readln(n); if n<0 then begin f:=-1; n:=-n; end else f:=1; ans:=0; while n<>0 do begin ans:=ans*10+n mod 10; n:=n div 10; end; ans:=ans*f; writeln(ans); close(input); close(output); end. 2. 统计单词数 (stat.pas/c/cpp) 【问题描述】 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统 计出特定单词在文章中出现的次数。 大全 标准文案 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。 注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的 某一独立单词在不区分大小写的情况下完全相同 (参见样例 1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例 2) 【输入】 输入文件名为 stat.in , 2 行。 1 行为一个字符串,其中只含字母,表示给定单词; 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。【输出】 输出文件名为 stat.out 。 只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字 母在文章中的位置,位置从 0 开始);如果单词在文章中没有出现,则直接输出一个整数 -1 。 【输入输出样例 1 】 stat.in stat.out To 2 0 to be or not to be is a question 【输入输出样例 1 解释】 输出结果表示给定的单词 To 在文章中出现两次,第一次出现的位置为 0 。 【输入输出样例 2 】 stat.in stat.out to -1 Did the Ottoman Empire lose its power at that time 【输入输出样例 2 解释】 表示给定的单词 to 在文章中没有出现,输出整数 -1 。 【数据范围】 1≤单词长度≤ 10 。 1≤文章长度≤ 1,000,000 。 【解题】这道题也不是很难, program stat; var I,n,p:longint; s,s1:string; c:char; begin assign(i

文档评论(0)

135****9629 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档