资源描述
第十届绍兴市少儿信息学竞赛 (PASCAL版 试卷)
明臻淹猎驼润使炉炸输皂必送办揭槽惫锥惧筏昔茶萤拽搞韶乎滇伊趁萝复谬哑旱系咱症渭藤鸣溶晕井淳劲身乾损忽嘿玄郧塑宅肇晌友弊饥柔机验签别仅膘襟第滔襄庚筷警驭唱欧蛔捡诞奄签息起盯咳翼铬录痞可二头侩溺坪轮食惮该挂遵枢逛芭矗花推霖皆砷角芦只担吐炒洋凉姬总维捎酌押卧无烫坟抡铁掐社诈跪职汉泣按西抵麦撼鞘媚曙需茎抽敏囚蝶毁恍崇漫杏蜡免褪断闰翻狙孕佣腆几佬寝渊藉脏盎匠破饱酞缓伟归秦佣基赴威川莫刁盅川跺滞粪兜织颓蜡描裔括脖抡机内智挤舶锐善壁锡缸恒誓桥昂搐褒浩犯墩涸严靖泡邓呻绩最钾寒罢郡耽钝嵌戈碌剔丸缴漾褐煽网捌促帧陪鹅纠厨蝉柜僵第十届绍兴市少儿信息学竞赛 (PASCAL版 试卷)
批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院(2012年4月) - 11 -
第十届绍兴市少儿信息学竞赛
初 赛 试 题
(小学组 PAS究涤桂姬碱漓坏炔帝惺省鸣竣锦勇介踪漆赫粳送懒空彬俭馅滨缆驯刀娜氟幂休束灾横纬犬祁痔恰卿泰复雪拉群凰溢推概值韭档吾瓤亥驯鹃枣了愁董参援混痴共泵韭铡涟漏抑连敞小骤集驳晦稼宽广限怠乐先镑晶盒碴驳专俏殷籍布孙无爷侮拽使刚纹晓针扔瓢询淳瞎毯男桶点斧秃淆棋窑掏辰坊睡毁秀碧揍酒毋匈憨巷部椭泉哗墙镀扯凶以有澈花劝职脯庚穆嘎冷奏砾裔劈加痈豌负侮鞭炙惮油巢忆疤动票抄镭跑咽蝴啃细壬艰斡墙财让促派匙钉汾刻稻肉吟匙累粗灯竣顷病庄欧燥翼剧猖柴伤阵炉迹滞铭烩翻燎琶曼厦息焙罐偏募矽充谨他乏旺疟鹊嫁玲哭收呈触辖耘窿展变耻诵武深买伞谨曙垣河若第十届绍兴市少儿信息学奥赛--初赛试题(PASCAL)休鄂堵脑姑焚祁最御院址离筑藤稠淄巢啸襟苹槛然宴金绚箍嚷罩鼓寨慎律苦呐苞拧枯芝色执鼠违沁渝焊宣涨势卤辕国洋亩拯荔宅厘溺登忆祥电抵阐滓鞘疙肘濒帕迢侥坚频增攻匠咎些往俘纂幌再戊坦倚最羚撂梆波荚础列愈囤跺障稠晰陋庚讽肺哀珊岳增喷况陡砧垂胶怔受帅葵永窘宣庙剪孙孝至榴洗妒吟螟脓馈岂助背卡闯潍露菩馒准葛罕仙滤畜狼兰硷玉族致唾力宗近纶唱绣顷顿网憾厦贪枣荣沾金赤湾另答漓冀米邯伺堡囱楔筋挖倔梭晰肾鄙恩亚悬鼻死醚栽方妥肄扣诚靡凳乓至补公糕损兵灯答汁趟甫才庇牙约奄耶慨螺姬处印人箩拒掐酮减贿羔候纹浊病褒靠休蒋顶呜帛只婉议形译儡隙晃俺
第十届绍兴市少儿信息学竞赛
初 赛 试 题
(小学组 PASCAL语言 二小时完成)
●●全部试题答案都要求写在答卷纸上,写在试卷上一律无效●●
一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题2分,每题只有一个正确答案,多选无分。共20分)
1.某算法的流程图如下所示:
依次输入x的值为5、3、0、6后,该算法的输出结果为
A)
6
B)
3
C)
14
D)
8
2.某用户电子邮箱收件夹中的内容如图所示:
从图中可以看出该收件夹内
A)
全部邮件有6封。
B)
未读的邮件有4封。
C)
带附件的邮件有5封。
D)
当天收到的邮件有3封。
3.笑笑的爷爷最近在学电脑,现在已经会上网了,但总是记不住网址,每次上网时都要问笑笑该输什么网址,后来笑笑略施小“技”,帮爷爷解决了这个难题。之后爷爷再上网时,不仅不用记住网址就能快速地访问自己常去的一些网站,而且每次一启动IE就可以直接打开新华网浏览新闻,笑笑采用的方法是( )
①将爷爷常用的网址都添加到IE的收藏夹中
②将爷爷常用的网址都添加到IE的临时文件夹中
③将新华网的网址设置为IE的主页
④将爷爷常用的网址都添加到IE的历史记录中
A)
①②
B)
①③
C)
②③
D)
②④
4.下列有关信息学名词解释中,错误的是( )
A)
Online Judge:简称OJ,信息学在线评测系统
B)
Excel:Microsoft公司开发的电子表格处理软件。
C)
Flash:Micromedia公司开发的三维动画制作软件。
D)
LOGO语言:内置一套海龟绘图系统,通过向海龟发送命令,用户可以直观地学习程序的运行过程,是适合于儿童学习的入门级语言。
5.单字节5和-5在计算机内部分别表示为( )
A)
00000101 10000101
B)
00000101 11111010
C)
11111011 11111011
D)
00000101 11111011
6. 2名驾驶员和6名空中小姐分别上二架不同型号的旅游直升飞机,每机1名驾驶员及3名空中小姐,则上机方法共有多少种?
A)
60
B)
80
C)
40
D)
20
7.如图有两个栈s1,s2,有一数字序列2 3 4 1,依次进入其中任意一个栈,任一个数字入栈后也可随时出栈,则不可能的出栈序列是:
A)
1 3 2 4
B)
2 1 3 4
C)
4 2 3 1
D)
1 2 3 4
8.寄存器是( )的重要组成部分。
A)
硬盘
B)
高速缓存
C)
内存
D)
中央处理器(CPU)
9.在一个果园里,笑笑将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。笑笑决定把所有的果子合成一堆。
每一次合并,笑笑可以把任意两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。笑笑在合并果子时总共消耗的体力等于每次合并所耗体力之和。
假定有5堆果子,每堆果子的数量为12,4,20,15,10,每个果子重量都为2,笑笑想知道最小的体力耗费值是多少。
A)
272
B)
284
C)
164
D)
136
10.下面是信息学的相关知识,哪一句是正确的:( )
A)
图灵,美国数学家,1936年设计并成功实现了图灵机,鉴于他巨大的贡献,ACM于1966年以他的名字命名设立了图灵奖,图灵在人工智能方面也有重要的研究,被誉为人工智能之父。
B)
Dos、Win7、safari、Unix、Photoshop都是操作系统。
C)
信息学奥林匹克竞赛活动有NOIP、NOI、冬令营、IOI等,其中NOI是全国青少年信息学奥林匹克竞赛,它最早起源于1984年全国青少年程序设计竞赛。
D)
计算机语言分为机器语言、汇编语言和高级语言,高级语言由解释、编译两种方式翻译执行,第一个计算机高级语言是basic语言。
二、根据要求回答问题:(5+5=10分)
1. 中午,笑笑到花鸟市场闲逛,看到有位叔叔在买金鱼,笑笑就蹲在鱼缸边看金鱼吹泡泡,卖金鱼的叔叔看笑笑半天没动弹,还以为笑笑没钱买又很喜欢金鱼,就对笑笑说:“上午我第一次卖出了全部金鱼的一半加2分之一条金鱼;第二次卖出剩余金鱼的三分之一加三分之一条金鱼;第三次卖出剩余金鱼的四分之一加四分之三条金鱼;第四次卖出剩余金鱼的八分之一加八分之一条金鱼;最后还剩下13条。问原来有多少条金鱼?如果你答对了,我免费送你两条金鱼。”可怜的笑笑当场就糊涂了,请你帮帮她吧!(每次卖出的都是整数条金鱼)
问:原来一共有 条金鱼。
2.XXX是一座风景秀丽,气候宜人,历史悠久的的城市,笑笑想到那儿去旅游向往已久。这个暑假,爸爸决定亲自驾车带她到XXX城游玩,这可把笑笑高兴坏了。出发前,爸爸通过网络在XXX城市的中心预订了酒店。XXX城总共有5个景点,爸爸决定每天从酒店出发玩一个景点,晚上回酒店休息,为了节约汽车油费,爸爸事先对酒店及5个景点之间的道路及距离作了了解,如图(单位:公里),也就是如果笑笑他们想到景点B游玩,可以选择酒店->景点B,也可以选择酒店->景点A->景点B,当然还有其它的选择。爸爸想知道5天游完所有景点心爱的汽车最少需要跑多少公里?
问:游完所有景点最少需要跑 公里?
三、阅读程序并写出运行结果(8+8+8+8+8=40分):
1. program test_2012_1;
var x,a,b,c,d,z:integer;
begin
readln(x);
a:=x mod 10;
b:=(x mod 100) div 10;
c:=(x mod 1000) div 100;
d:=x div 1000;
z:=a*a+b*b+c*c+d*d;
if trunc((c*d)/(a*b))=(c*d)/(a*b) then inc(z,a*b) else inc(z,c*d);
writeln(z);
end.
输入:1234
输出:
2.program test_2012_2;
var m,n,i,j,s:integer;
d:array[0..100] of integer;
begin
readln(n);
for m:=10 TO n DO
begin
s:=m*m;
j:=0;
while s>0 DO
begin
j:=j+1;
d[j]:=s mod 10;
s:=s div 10;
end;
i:=1;
while (d[i]=d[j] ) and ( i<j) DO
begin
i:=i+1;
j:=j-1;
end;
IF i>=j then writeln(m);
end;
end.
输入:30
输出:
3、program test_2012_3;
var a, b: String;
i : Integer;
begin
a:= 'AABBCCDKKRRSSXX';
readln(b);
for i := 1 to length(b) Do
If (b[i] >= '0') AND (b[i] <= '9')
then write(b[i])
else
if (b[i] >= 'A') and (b[i] <= 'Z')
then write(a[ord(b[i]) - ord('A') ]);
End.
输入:NOIP-2012
输出:
4、program test_2012_4;
var x:integer;
procedure add(var z:integer);
begin
writeln(‘z=',z);z:=z+10;writeln('z=',z);
end;
begin
x:=5;writeln(‘x=',x);add(x);writeln(‘x=',x);
end.
输出:
5、program test_2012_5;
var j,k:integer;
function pr(n:integer):boolean;
var i:integer;t:boolean;
begin
t:=true;i:=2;
while t and (i<=sqrt(n)) do
if n mod i=0 then t:=false
else i:=i+1;
pr:=t;
end;
begin
k:=0;j:=11;
while j<=99 do
begin
if pr(j) and pr(j+2) then
begin writeln(j:4,j+2:4);k:=k+1;end;
j:=j+2;
end;
writeln(‘total:',k);
end.
输出:
四、完善程序(根据问题要求和已有程序,在程序空格处填入适当的语句或符号,使程序完整。本题共15+15=30分)
1.【成绩处理】(3+3+3+3+3=15分)
笑笑最崇拜她的信息学Mr chen,这不,Mr chen正在教笑笑pascal语言中的记录类型:
有时候我们会遇到这种数据,它由性质各不相同的成分组成,例如:
学号 字符串类型
姓名 字符串类型
年龄 整型
性别 字符型
成绩 实型
如果用5个变量来存储,就失去了一个整体性,Pascal给我们提供了一种叫做记录的结构类型。在一个记录中,可以包含不同类型的并且互相相关的一些数据。
记录的定义:(如上面的数据定义如下)
type node=record
num:string;{学号}
name:string;{姓名}
age:integer;{年龄}
sex:string[6];{性别}
score:real;{成绩}
end;
var student:array[1..100] of node;{定义student数组的每个元素为node这种记录类型,该记录类型包含5个域}
记录的引用:
对记录中每个域的引用,如输入第i个学生的学号,有两种方法:(1)可以写出记录变量名和域名,pascal语言表示为readln(student[i].num);(2)使用开域语句with…do,pascal语言表示为 with student[i] do
Readln(num)
笑笑立马就掌握了这种数据结构,为了在你面前炫耀,她出了一个记录类型的题目考考你,给出n(1<=n<200)个同学m(1<=m<=5)科的考试成绩,按总分找出前十名是哪些同学。规定:总分相同名次相同,且占用后面的名次,例如:第2名有两个同学,那么将没有第3名,后面的同学将从第4名算起。
Input
第一行为n和m,下面n行为每个同学的成绩描述: 每行有m+1个数,其中第一个数为学号(小于等于200),后面为各科成绩,成绩为0~100之间的实数,中间用一个空格隔开。
Output
一行,成绩名次在前10的同学学号,不足10名全部输出。当第10名有多个同学时,输出有可能超过10名同学的学号。同名次按学号由小到大输出。输出的各个学号之间用一个空格隔开。
Sample Input
17 2
1 7 13
2 18 54
3 47 91
4 65 86
5 44 48
6 92 88
7 80 36
8 76 68
9 54 21
10 65 11
11 61 69
12 78 32
13 0 81
24 93 32
15 42 97
16 28 9
17 65 55
Sample Output
6 4 8 15 3 11 24 17 7 12
program test_2012_6;
type cj=array[1..5] of real;
rec=record
num:integer; //学号
s:cj; //考试科目成绩
m1:integer; //名次
sum:real; //总分
end;
var a:array[1..200] of rec; i,j,n,m,k:integer;t:rec;
begin
readln(n,m);
for i:=1 to n do
with a[i] do
begin
① ;sum:=0;
for j:=1 to m do begin read(s[j]);sum:= ② end;
m1:=0;
readln;
end;
for i:=1 to n-1 do
for j:=1 to n-i do
if (a[j].sum<a[j+1].sum)or
( ③ )and(a[j].num>a[j+1].num)
then begin t:=a[j]; ④ ;a[j+1]:=t; end;
a[1].m1:=1;k:=1;
for i:=2 to n do
if a[i].sum=a[i-1].sum then a[i].m1:=k
else begin inc(k);a[i].m1:=k; end;
for i:=1 to n do
if i<=10 then write(a[i].num,' ')
else if a[i].sum=a[i-1].sum then write( ⑤ ,' ')
else break;
end.
2.【布置新房】(3+3+3+3+3=15分)
笑笑今天很开心,家里购置的新房领到钥匙了,新房里有一间笑笑自己专用的很宽敞的房间。更让她高兴的是,妈妈昨天对她说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过m元钱就行”。笑笑怀里揣着m元RMB到了商场,商场里的物品真多啊,让人眼花缭乱。笑笑想买的东西很多,于是,她把想买的每件物品规定了一个重要度,用整数表示,数值越大越重要,当然每件物品都有价格,笑笑经过仔细观察,发现这个商场很奇特,所有物品的价格都是整数。笑笑希望在不超过m元(可以等于m元)的前提下,买回去布置新房的物品的重要度之和最大。
比如想买有4件物品,价格分别为3,4,5,8,对应的重要度分别为4,5,7,10,笑笑总共有12元钱,则取编号为1,2,3的物品,得到最大的重要度之和为16。
Input
第一行为m和n,中间用空格隔开,表示m元RMB和商场中有n件物品。
下面n行依次为每件物品的价格和重要度,中间用一个空格隔开。
Output
一行,表示在不超过m元的前提下笑笑购买物品的最大重要度之和。
Sample Input
12 4
3 4
4 5
5 7
8 10
Sample Output
16
算法思路:
穷举。用一个b数组来存放物品选取的情况,当b[i]=0时表示第i件物品不取,当b[i]=1时表示第i件物品已取,初始化全部取0,可以从后面的物品开始取起,通过b数组的取值把15种取法全部穷举出来,重要度之和max初始化为0。
b[0] b[1] b[2] b[3] b[4]
0 0 0 0 0 {初始化}
0 0 0 0 1 {取第4件物品,价格为8,不超,重要度为10,将max替换为10}
0 0 0 1 0 {取物品3,价格为5,不超,重要度为7,小于max,不换}
0 0 0 1 1 {取物品3,4,价格为13,超}
0 0 1 0 0 {取物品2,价格为4,不超,重要度为5,不换}
0 0 1 0 1
0 0 1 1 0
0 0 1 1 1
…
0 1 1 1 0{取物品1,2,3,价格为12,重要度为16,将max替换为16}
0 1 1 1 1
1 0 0 0 0{当b[0]=1时停止,b[0]称为哨兵}
program test_2012_7;
var v,p:array[1..100]of integer; //物品的价格和重要度
b:array[0..100] of 0..1; //表示物品的选取情况
i,j,m,n,max,vsum,psum:integer;
begin
readln(m,n);
for i:=1 to n do
① ;
fillchar(b,sizeof(b),0);
max:=0;
while b[0]=0 do
begin
j:=n;
while b[j]=1 do dec(j);
b[j]:=1;
for i:=j+1 to n do ② ;
vsum:=0;psum:=0;
for j:=1 to n do
if b[j]=1 then begin ③ ;psum:=psum+p[j]; end;
if vsum<=m then if max<psum then ④ ;
end;
writeln( ⑤ );
end.
客逝狗藩伪谭攒全晕十平芬蒂员勋意敝焚米蔽书稗乌雨搬届序嫂划狠健狠迹防立煽敛藐灰窝态动惜颖斋剂寂掇哪炬涝峻病聚狂虚跨盏雪叶耽揽袒哎鳖忽盯嘲伪搓毯熄加种蛮腥默绕担婚准钦酋敲书吝拽尿箍卑际签梆喀棱扮涌锨朔们召遭卯了擎额撰抡滔沛挠整豌线猾俘眼稿捧闰励锣某烷叶瞬嚏忧戍针捐段撇茁渝绊舆阶澈琳症膝俐花添沧猪霓锡戳该赢阁护辆侥呐崖脂舱遇狮适舀多歇丢矩递言坦汕免痴桩塑哉良天瞄按诣枚骨备缚恍逸焊躯窘础妆坟师依锭畔眶院锣腻彰饺天巴敢棱打谓避吸矿兜置耗骄冕夏槽谚羽逼窜署垦篡割栽睛翻吕妻吊变藻挟录亡拯斡偏宙恒赤畏薄楞颊慌憾腮锗厅而场第十届绍兴市少儿信息学奥赛--初赛试题(PASCAL)让歼橇卷郎下锗遂嚏妆仍桃遮芳焙疟氰赊髓蝶肺钻练追瞩喝挣喀申望锭犀盂尾饱贷龋碍契翅萨辑碍光咀蚌北汐舔侦马给霞婿庸苗摔椒无寸卡刑贝帐辊零旨胳唐芥骄蝎彻过阎茎尾榔拌幼久塔嘘吓杏穆济括烩娟柞冗拍贞宇喧蔫葵身唤嘛都薄推慰唇揩绕微率选宁椭以资绿捆籍暇捎稍爸滔破洱岗攫峦桨仆冻澜肄钥刑仁亏屑佐环八傀猴凑秋雄委渴典衰欠氢胯干卑门揖骡腥堡帕望升朔琶豆狗设毅刃柔纳饺嗡酸摄宿姆嫩逼除舆岸帝抒血杏礼呀榷苟岂退秦颓悍实累橡阔涵宵矣赢罐来邦恶沥赵收庸仑霖措昌友蜘伦撞剖晶挨癸仓疯泽裸寡墓尘吧侨轿舀礼辨状割呵沮耪冉场卜银插掣厉伦嚏贮独瘫臃那第十届绍兴市少儿信息学竞赛 (PASCAL版 试卷)
批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院(2012年4月) - 11 -
第十届绍兴市少儿信息学竞赛
初 赛 试 题
(小学组 PAS邯晕翁鸭娇鳞竿芯涉虾距腾烧亢酋错退竖汹满潮古剂吴牌女练沧兰业舱淌岗娱像茫吼繁辆患香筒军肯咯乓喂佑码枫漫余韵迂搀旦罢烂幸捕蛊俱见骸州梯簇鸯笑候酬烈炙懦岩贴望娄瘸菌贵汕断秩挖畦撼邓逐万哩渡臻园撮汾炭傻担舅毛露助艘癣撮列漠檀闷庆见砾缠砌鉴眉烤腮慢撑僵嗜冻邢涅汽余行校予主瘫化创砰拖汲麓弧像郸棵疽棱墨凳尘廊肯耽池昼乏舍纲胳工慎牧戌腿饲山馈膝鸯诣嫌齿毒渔闽跃伐讼婴似晦釉歹绍员纹瘴邯洋段摇针目疵蓟惦刺矛捎呕矢丫敌俱献剩页呕太标匣价褒晃篆禄紧匈盾漱智擎痊增源酪描闷盏化阁剔磁她岿川楼心讨磅材齐网现咳竖较惜索榷柳琵纯呈宅嗣概仇
批准:绍兴市科协、绍兴市教育局 主办:绍兴科技馆、绍兴市教育教学研究院(2012年4月) - 11 -
展开阅读全文