pascal练习题(附答).doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pascal练习题(附答)

测定素数(check.pas/c/cpp)* 【描述】 输入n个数,测定他们是不是素数 【输入格式】 两行,第一行为n,第二行有n个数(Xi),数与数之间用空格分开。(1≤N≤1000);(1≤Xi≤5000000) 【输出格式】 一行n个true或false,输出对应的数字是否是素数(TRUE和FALSE之间用空格隔开) 【输入样例】 5 99 88 1 2 3 【输出样例】 FALSE FALSE FALSE TRUE TRUE 校门外的树(tree.pas/c/cpp) 【描述输入格式 输出文件tree.out包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。 【样例输入】 500 3 150 300 100 200 470 471 【样例输出】 298 【数据限制】 对于20%的数据,区域之间没有重合的部分; 对于其它的数据,区域之间有重合的情况。10 56 12 1 99 1000 234 33 55 99 812 【样例输出】 532.00 提示:每人等待时间包括排队等待时间、自己打水时等待的时间。 统计人数(count.pas/c/cpp)* 【描述】 数学竞赛结束后,各个班主任老师都很迫切地想知道自己班级在全年段前N名的人数。于是,教务主任就请来信息学兴趣小组的同学来帮忙,要求编写一程序,只要告诉计算机要查的班级K班和名次前N 名,然后再输入M个学生的成绩,计算机就统计出K班在年段前N名中的人数。(假设每个学生的总分各不相同) 【输入格式】 输入文件count.in共M+1行 第一行三个整数依次为M,K,N,分别表示全年段共有M个学生,要统计的是K班在全年段前N名的人数。(M≤1000,K≤20,N≤M) 接下来M行是M个学生的班级和成绩,中间用一个空格隔开。 【输出格式】 输出文件count.out共一行,表示K 班在年段前N名中的人数。 【样例输入】 7 2 5 2 65 3 90 9 100 8 64 2 66 2 80 4 84 【样例输出】 2 //check.pas const maxN=5000000; var a:Array[1..maxN] of boolean;//设定一个筛,根据题目要求设1~500w n,i,j,x:longint; begin fillchar(a,sizeof(a),true); //全设为true a[1]:=false; //1不是素数,直接标记为false for i:=2 to trunc(sqrt(maxN)) do //因为每个数据大小不定,所以2~500w的素数都必须筛出来 if a[i] then for j:=2 to maxN div i do a[i*j]:=false; assign(input,check.in);reset(input); assign(output,check.out);rewrite(output); readln(n); for i:=1 to n do //有了判定的素数的表(数组),下面操作直接读入-》查表-》输出即可 begin read(x); write(a[x], ); end; close(input);close(output); end. //tree.pas var i,j,L,m,s,e,t:integer; a:array[0..10000] of boolean; //注意起点是0,所以数组下标从0开始 begin assign(input,tree.in);reset(input); assign(output,tree.out);rewrite(output); readln(L,m); for i:=0 to L do a[i]:=true; //首先定义这些树都在(0~L) for i:=1 to m do begin readln(s,e); for j:=s to e do a[j]:=false; //从s开始到e结束的都标记为false,即树被移走了 end; t:=0; for i:=0 to L do if a[i] then inc(t); //统计0~L之间有多少个true即可 writeln(t); close(input);close(output); end. //water.pas var a:array[1..10000] of longint; n,m,i,j,t,s:long

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档