江苏省 “信息与未来”小学生夏令营选拔试卷
? 在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. 第一题:烤面包(bread) 题目描述 小s同学出去旅游啦~,小s同学住的宾馆每天早上都会提供丰盛的自助早餐,小s同学最爱吃的就是现烤的切片面包。但是呢,宾馆的烤面包机很差,虽然说每次最多可以同时烤k块面包,但是只能烤好这些面包的一个面。小s要想吃上好吃的面包,就需要把面包的两面都烤好。小s同学一共想吃n块烤面包,但是小s每天都有好多景点需要游览,她不能在早餐上耽误很长时间,因此,小s同学希望你能告诉她最少需要使用几次烤面包机就可以烤好n块面包。 输入 输入数据仅有一行包含两个用空格隔开的正整数n和k(n, k <=10),n表示小s同学一共要烤n块面包,k表示宾馆的烤面包机一次最多可以同时烤好k块面包的一个面。 输出 仅有一行包含一个整数,表示小s同学至少要用多少次烤面包机。 样例输入 3 2 样例输出 3 提示 样例解释: 假设面包的两面分别标记为A和B,小s同学第一次烤1号和2号面包的A面,第2次烤3号面包的A面和1号面包的B面,第3次烤2号和3号面包的B面,这是使用烤面包机次数最少的方案。 数据范围 10%的数据满足k<=1 50%的数据满足k<=4 100%的数据满足n<=10, k<=10 第二题:小黄的短信(phrase) 题目描述 老黄是个喜欢小狗的同学,路上遇到任何小狗,老黄都会伸出双臂,一脸甜蜜地对小狗说:“小狗,抱抱~”不过,大多数情况下,小狗都是不会理老黄的,这点让老黄非常郁闷。可是,就在老黄去云南旅游的路途中,碰到了一只神奇的小狗。这只小狗特别听老黄的话,而且后来一问狗的主人,才知道,这只小狗居 然叫“小黄”!这下老黄小黄都高兴坏了,感觉缘分真是件奇妙的事情!老黄经常对着小黄说话,总共对小黄说过M(1<=M<=1000)句话。后来老黄从云南回来了,小黄一直思念着老黄,就给老黄发短信。小黄只会发老黄跟他讲过的话。但是由于信号不好,短信从某一个地方开始的后面一段就全部丢失了,也就是说只剩下了前面一段,这样的短信在英语中被称为某句话的前缀。现在老黄收到了N(1<=N<=10000)条短信,老黄想知道有多少条是小黄发过来的。每句话和每条短信都不超过60个字符。 输入 第1行: 包含2个用空格隔开的整数M、N。 第2行到第M+1行: 每行描述了一句老黄对小黄说的话。第M+2行到第M+N+1行: 每行描述了一条老黄收到的短信。 输出 仅有一行只包含一个整数,表示老黄收到的短信中,是老黄对小黄说的话的前缀的短信总数。 样例输入 3 4 I will not buy this record, it is scratched. My hovercraft is full of eels. Do you want to come back to my place? Bouncy, bouncy. I will not buy this rec My helicopter is Do you want to come back I will not buy this cat. 样例输出 2 提示 样例解释: 老黄一共对小黄说过3句话,分别是I will not buy this record, it is scratched. 和My hovercraft is full of eels.和Do you want to come back to my place? Bouncy, bouncy. 老黄收到了4条短信,分别是I will not buy this rec和My helicopter is和Do you want to come back和I will not buy this cat. 其中只有I will not buy this rec和Do you want to come back这两句是小黄发给老黄的短信,因为I will not buy this rec是I will not buy this record, it is scratched.的前缀,Do you want to come back是Do you want to come back to my place? Bouncy, bouncy.的前缀,只有是老黄说的话的前缀的短信,才是小黄发给老黄的短信。 数据范围 10%的数据满足M<=5, N<=5 40%的数据满足M<=100, N<=10000 100%的数据满足M<=1000,N<=10000 第三题:美丽的黄山(mountain) 题目描述 小黄因为长久见不到老黄,天天给老黄发很多很多短信,终于有一天发着发着累死了!后来老黄很长一段时间没有收到小黄的短信,以为小黄不爱他了,很多很多年后也伤心过度去世了!再后来,小黄和老黄化成了著名的黄山,永远活在了人们的心中!这段凄美的神话传遍了大江南北,大家都想去看看美丽的黄山。众所周知,黄山是一片山(而不是一座山)。我们假设这些山排成了一排。每座山有各自的高度。现在游客们从最左边看山,有些山因为高度没有它左边的某座山高,就会被遮住,游客们就无法看到。现在想请你告诉游客,他能看到几座山。(看到山顶即可被认为是看到了,如果恰好山顶被遮住了,这座山不算被看到) 输入 第一行,一个整数N(1<=N<=100000),表示有N座山。第二行,N个用空格隔开的正整数,依次表示从左到右每座山的高度。山的高度在长整型数(longint)范围内。 输出 仅有一行包含一个正整数,表示从左端看,能看到多少座山。 样例输入 5 3 7 7 2 8 样例输出 3 提示 样例解释: 一共有5座山,从左到右山的高度分别为3 7 7 2 8。从最左边平行着地平线看过去,能看到第1,第2,第5座山,第3和第4座山都被第2座山挡住了。 数据范围 30%的数据满足N<=100,山的高度小于等于100 50%的数据满足N<=1000,山的高度小于等于1000 100%的数据满足N<=100000,山的高度在longint范围内 第四题:奖学金(prize) 题目描述 CZ中学每学期都会给学生提供丰厚的奖学金,但是要想获得这些奖学金也不是一件容易的事情。CZ中学对学生成绩的评定一共有A、B、C、D共4个等级,提供的奖学金有如下几种: A. 竞赛奖学金 提供给至少在一门学科竞赛中获得省级一等奖以上奖项并且语数英三门课的成绩被评定为A或B而且还是三好学生的同学,奖金3000元 B. 华英奖学金 提供给至少在一门学科竞赛中获得全省前20名的同学,奖金2000元 C. 优秀三好学生奖学金 提供给所有5门科目的成绩都被评定为A的三好学生,奖金1000元为了让尽量多的同学拿到奖学金,CZ中学规定,除了贫困生以外,所有的同学最多只能获得一项奖学金,如有满足多项奖学金要求的同学可以任选一个奖学金;贫困生获得的奖学金则没有任何限制,最多可以拿到全部3个奖学金。现在学期快结束了,小k同学把他的成绩单给你看,希望你能告诉他在这学期他最多可以拿到多少奖学金。 输入 一行一个字符串,按如下的方式给出信息。首先按照语文 数学 英语 选修1 选修2的顺序给出小k所有5门课的成绩评定,相邻两个成绩评定之间用一个空格隔开。然后给出一个空格,以下5个整数,相邻两个整数之间用一个空格隔开,分别表示小k参加5门学科竞赛的成绩信息。-1表示小k没有参加那一门学科竞赛;0表示小k获得了省前20的成绩;1表示小k获得了省一等奖的成绩,省前20名一定是省一等奖;2表示小k获得了省二等奖或省二等奖以下的成绩。接下来给出一个空格和一个字符,字符为Y或N,Y表示小k是三好学生,N表示小k不是三好学生。最后是一个空格和一个字符,字符为Y或N,Y表示小k是贫困生,N表示小k不是贫困生。行末没有多余空格,但会给出一个回车符。 输出