资源描述:
《pascal练习题(附答)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.测定素数(check.pas/c/cpp)*【描述】输入n个数,测定他们是不是素数【输入格式】两行,第一行为n,第二行有n个数(Xi),数与数之间用空格分开。(1≤N≤1000);(1≤Xi≤5000000)【输出格式】一行n个true或false,输出对应的数字是否是素数(TRUE和FALSE之间用空格隔开)【输入样例】59988123【输出样例】FALSEFALSEFALSETRUETRUE2.校门外的树(tree.pas/c/cpp)【描述】某校大门外长度为L的马路上有一排树,每两棵相邻的树之
2、间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。【输入格式】输入文件tree.in的第一行有两个整数L(1<=L<=10000)和M(1<=M<=100)
3、,L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。【输出格式】输出文件tree.out包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。【样例输入】5003150300100200470471【样例输出】298【数据限制】对于20%的数据,区域之间没有重合的部分;对于其它的数据,区域之间有重合的情况。1.排队接水(water.pas/c/cpp)【描述】有n个人在一个水龙头前排队接水,假如每个人
4、接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。【输入格式】输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。【输出格式】一行为最小平均等待时间(输出结果精确到小数点后两位)。【样例输入】1056121991000234335599812【样例输出】532.00提示:每人等待时间包括排队等待时间、自己打水时等待的时间。2.统计人数(count.pas/c/cpp)*【描述】数学竞赛结束后,各个班主任老
5、师都很迫切地想知道自己班级在全年段前N名的人数。于是,教务主任就请来信息学兴趣小组的同学来帮忙,要求编写一程序,只要告诉计算机要查的班级K班和名次前N名,然后再输入M个学生的成绩,计算机就统计出K班在年段前N名中的人数。(假设每个学生的总分各不相同)【输入格式】输入文件count.in共M+1行第一行三个整数依次为M,K,N,分别表示全年段共有M个学生,要统计的是K班在全年段前N名的人数。(M≤1000,K≤20,N≤M)接下来M行是M个学生的班级和成绩,中间用一个空格隔开。【输出格式】输出文件coun
6、t.out共一行,表示K班在年段前N名中的人数。【样例输入】7252653909100864266280484【样例输出】2//check.pasconstmaxN=5000000;vara:Array[1..maxN]ofboolean;//设定一个筛,根据题目要求设1~500wn,i,j,x:longint;beginfillchar(a,sizeof(a),true);//全设为truea[1]:=false;//1不是素数,直接标记为falsefori:=2totrunc(sqrt(maxN))
7、do//因为每个数据大小不定,所以2~500w的素数都必须筛出来ifa[i]thenforj:=2tomaxNdividoa[i*j]:=false;assign(input,'check.in');reset(input);assign(output,'check.out');rewrite(output);readln(n);fori:=1tondo//有了判定的素数的表(数组),下面操作直接读入-》查表-》输出即可beginread(x);write(a[x],'');end;close(inpu
8、t);close(output);end.//tree.pasvari,j,L,m,s,e,t:integer;a:array[0..10000]ofboolean;//注意起点是0,所以数组下标从0开始beginassign(input,'tree.in');reset(input);assign(output,'tree.out');rewrite(output);readln(L,m);fori:=0toLdoa[i]:=true;/