2010江苏省“信息与未来”小学生夏令营常州市选拔赛

更新时间:2023-11-17 17:24:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

江苏省 “信息与未来”小学生夏令营选拔试卷

? 在D盘根目录下建一个以自己的中文名字命名的文件夹如丁宁,考试结束前

将你编的程序(扩展名为pas)放到该文件夹中等待监考老师上传到教师机。 ? 友情提醒:整数类型一律用longint,字符串类型一律用string,输出一行

一定要用writeln,程序名即为题目的英文名,所有样例都在D盘上。

? 所有题目均使用文件输入和文件输出,你的程序请按样题格式编写

判断质数(prime)本题为样题不用做,请认真阅读

质数也叫素数,是指除了1和本身之外没有其他约数的数,如7和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3。输入一个正整数,判断它是否为质数,如果是质数则输出“Yes”,否则输出这个数的大于1的最小的约数。 输入格式:

输入文件仅有一行包含一个正整数n,其中1

输出格式:

输出文件仅有一行,如果从输入文件读入的数是质数则输出“Yes”,否则输出这个数的大于1的最小的约数。 输出样例:(prime.out) 7

输入样例2:(prime.in) 97

输出样例2:(prime.out) Yes

以下是程序清单,程序名为prime.pas var i,n:longint; begin

assign(input,'prime.in'); reset(input);

assign(output,'prime.out'); rewrite(output); read(n); i:=2;

while (i*i<=n) and (n mod i<>0) do i:=i+1; if i*i>n then writeln('Yes') else writeln(i); close(input); close(output) end.

第一题:小高考(apt)

懒羊羊在前一阵准备羊村的小高考复习时表现出了罕见的勤奋,现在他得知了小高考四门必修课的成绩,他想知道根据羊村的高考政策,他在羊村高考中能加几分。

羊村高考政策如下: 分数段 等级 成绩>=90 A 90>成绩>=75 B 75>成绩>=60 C 成绩<60 D 每得一个A,可在羊村高考中加1分,若得4A,则可以加5分。当然,只要有一门功课得D,那么就将失去羊村高考资格。

输入格式:

输入文件仅有一行,4个不大于100的非负整数,相邻两数之间用空格隔开。

输出格式:

输出文件仅有一行,若有D级存在,则输出“Poor LanYangYang”(引号不输出,注意大小写);否则输出懒羊羊在羊村高考中的加分。

输入样例1:(apt.in) 100 95 89 94

输出样例1:(apt.out) 3

输入样例2:(apt.in) 0 0 0 0

输出样例2:(apt.out) Poor LanYangYang

第二题:级数求和(sum)

已知:Sn= 1+1/2+1/3+?+1/n,如S2= 1+1/2=1.5。显然对于任意一个整数K,当n足够大的时候,Sn大于K。

现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。

输入格式:

输入文件仅有一行包含一个整数K。

输出格式:

输出文件仅有一行包含一个整数n。

输入样例:(sum.in) 1

输出样例:(sum.out) 2

第三题:约分(fraction)

用形如“a/b”的字符串表示一个分数,其中a,b为整数(0<=a<=1000000000,1<=b<=1000000000);要求对a/b进行约分,求出最简分数。

输入格式:

输入文件仅有一行包含两个用空格隔开的整数a和b,表示分数a/b。

输出格式:

若a/b结果为整数,则输出一行,一个整数;

若a/b结果为真分数,则输出一行,为a/b约分后的最简分数,形如c/d; 若a/b结果为假分数,则输出一行,为a/b约分后的最简带分数,形如c+d/e。

输入样例1:(fraction.in): 6 3

输出样例1:(fraction.out): 2

输入样例2:(fraction.in): 4 6

输出样例2:(fraction.out): 2/3

输入样例3:(fraction.in): 6 4

输出样例3:(fraction.out): 1+1/2

第四题:幸运数(lucky)

我们将一个正整数分解质因数,即分解成若干个质数的乘积,若得到的质因数的个数为素数个(素数即质数),则我们称这个整数为幸运数。例如12=2*2*3,它有3个质因数,分别是2、2、3,而3为素数,所以12是一个幸运数;相反210不是一个幸运数,因为210=2*3*5*7,它有4个质因数,分别是2、3、5、7,而4不是素数。现在我们要求出不大于n的所有幸运数(2<=n<=100000)。

输入格式:

输入文件仅有一行包含一个整数n。

输出格式:

若干行,每行一个幸运数。要求按从小到大的顺序输出。

输入样例:(lucky.in) 12

输出样例:(lucky.out) 4 6 8 9 10 12

数据规模:

对于50%的数据,n<=1000; 对于80%的数据,n<=10000; 对于100%的数据,n<=100000。

第五题:字符串展开(expand)

如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字符子串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即将上面两个子串分别输出为“defgh”和“45678”。具体约定如下: (1) 遇到下面的情况需要对字符串进行展开:在输入的字符串中,出现了减号“-”,减号两侧同为小写字母或同为数字,且按照ASCII码的顺序,减号右边的字符严格大于左边的字符。

(2) 如果减号右边的字符恰好是左边字符的后继,只删除中间的减号,例如:“d-e”应输出为“de”,“3-4”应输出为“34”。如果减号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,要保留中间的减号,例如:“d-d”应输出为“d-d”,“3-1”应输出为“3-1”。

输入格式:

输入文件仅有一行包含一个长度不超过200的字符串,仅由数字、小写字母和减号“-”组成。行首和行末均无空格。

输出格式:

输出文件仅有一行,为展开后的字符串。

输入样例:(expand.in) abcs-w-y1234-9s-4zz

输出样例:(expand.out) abcstuvwxy123456789s-4zz

第六题:懒羊羊吃草(number)

众所周知,懒羊羊是所有小羊里最贪吃的一只。然而,鲜为人知的是,懒羊羊也有存储粮食的习惯。而更让大家吃惊的事实是,我们的懒羊羊做事很有条理,每当他存储一份粮食时,他会专门拿出一个筐来存放。因此,他的仓库里有很多很多筐的青草。而我们的懒羊羊又是一个经常馋嘴的小羊,每当他想吃草时,就会从仓库里找出数量最少的一筐草,把它吃掉。可是懒羊羊因为草吃得太多了导致大脑运转缓慢,所以他不得不向你请求支援,帮他找出他应该吃数量为多少的青草。

输入格式:

第一行为一个正整数n,表示懒羊羊一共进行了n次操作(2<=n<=1000000) 第二行至第n+1行每行表示一个懒羊羊的操作,当这行形式为 单独一个字符‘q’ 时,表示懒羊羊肚子饿了,要吃掉仓库里当前数量最少的那份青草;当这行形式为一个字符‘ i’ 和一个整数k时,表示懒羊羊将一份数量为k(1<=k<=maxlongint=2-1=2147483647,maxlongint是pascal语言中最大的长整型数,长整型数即longint)的青草存入了仓库,‘ i’和k之间用空格隔开。 输入数据保证每次询问时仓库里都有草可吃且所有操作中懒羊羊至少会吃一次草。

输出格式:

每当输入为‘q’ 时, 输出懒羊羊当前吃掉的那份青草的数量是多少。

输入样例:(number.in) 5 i 5 i 2 q i 9 q

输出样例:(number.out) 2 5

样例解释:

共有5次操作,分别为懒羊羊存入数量为5的青草,存入数量为2的青草,吃掉当前数量最少的青草(2),存入数量为9的青草,吃掉当前数量最少的青草(5)。

数据规模:

30%数据满足1<=p<=3000;

31

60%数据满足1<=p<=40000; 100%数据满足1<=p<=1000000

友情提醒:

对于中级班的同学建议针对1<=p<=3000的情况编程。对于使用turbo pascal的同学p太大时内存会不够,此时你可以用free pascal编译运行或在提交时修改定义数组范围的常量值。评测时使用free pascal编译。

第七题:平方后缀(sqrfix)

读入一个长度为K(1<=K<=9)的数字字符串(由0~9的数字组成,允许存在前导0如001),这个字符串是某个大数M的平方(即M*M)的末尾K位(M的位数大于K位),例如25是605=605*605=366025的末尾2位,现在我们就来求这个大数。

当然满足条件的大数有很多,我们只要输出这个大数的末尾K位。输出时按照字符串的字典顺序从小到大输出。

输入格式:

第一行,一个整数K,表示字符串的长度。 第二行,一个长度为K的数字字符串。

输出格式:

若无解,则输出“No Answer”(引号不输出,注意大小写); 否则输出若干行,每行一个长度为K的字符串,按照字典顺序从小到大排列。测试数据保证输出的行数不会超过1000行。

输入样例1:(sqrfix.in) 3 001

输出样例1:(sqrfix.out) 001 249 251 499 501 749 751 999

输入样例2:(sqrfix.in) 2 15

输出样例2:(sqrfix.out) No Answer

数据规模:

对于30%的数据,K<=4; 对于60%的数据,K<=6; 对于100%的数据,K<=9。

2

本文来源:https://www.bwwdw.com/article/182v.html

Top