=a[j];
fori:
=1tolength(st)do
ifpos(st[i],b)=0thenb:
=b+st[i];
fori:
=1tolength(b)do
forj:
='A'to'Z'do
if(B[i]=j)and(A[j]=t) thenbeginwrite(output,j);end;
close(input);
close(output);
end.
第5题 酗酒的狱警(程序文件名a5.pas,20分)
某监狱里有个很长的走廊,走廊中一个接一个有n个房间。
每个房间中锁着一个犯人。
一天夜里,狱警决定玩一个无聊游戏。
第1轮中,他喝了一口威士忌,然后打开每个房间。
第 2轮,他喝了一口威士忌,然后按照2的倍数遍历每个房间。
第3轮,他又喝了一口威士忌,遍历所有3倍数的房间,依此类推。
在遍历中,如果房间是锁着的,则打开;否则锁上。
他这样重复n轮,最终醉酒。
这时有些囚犯看到自己房间的锁被打开了,他们立即逃跑。
对于有n个房间的走廊,最终会有多少囚犯逃脱?
输入a5.in:
一行,一个整数,走廊中房间的个数n。
输出a5.out:
一行,一个整数,最终逃走的囚犯人数。
样例:
输入:
5输出:
2
参考答案:
program a5;
var
a:
array[1..100]ofinteger;
i,j,s,n:
integer;
begin
assign(input,'a5.in');
assign(output,'a5.out');
reset(input);
rewrite(output);
readln(input,n);
fori:
=1tondo
a[i]:
=0;
fori:
=1tondo
forj:
=1to ndo
ifjmodi=0thena[j]:
=1-a[j];
s:
=0;
fori:
=1tondo
ifa[i]<>0thens:
=s+1;
writeln(output,'zouchu',s,'ren');
close(input);
close(output);
end.
ftp上传使用说明:
第一步:
打开ie浏览器,在地址栏内ftp网址,考场1和考场2:
ftp:
//192.137.1.201,出现登录窗口。
第二步:
点击鼠标右键,选择登陆输入准考证上的用户名、密码进行登陆。
第三步:
登陆后,将本人编写的程序拖放(复制粘贴)到浏览器窗口,拖放过程中会出现传送进度条,进度条结束即上传完毕。
(一旦发现问题及时咨询监考老师)。
第四步:
确认自己上传成功后,安静离开考场。
2012年青岛市程序设计竞赛试题(小学组)
说明:
1、必须以题目中规定的文件名进行保存,并用FTP上传到指定文件夹中,FTP上传在试题最后。
请选手没做完一道题及时上传一次,以确保因机器故障引起的文件丢失。
2、比赛时间为:
60分钟,试题100分。
3、使用竞赛规定的文件格式输入、输出。
第一题 火柴盒(程序文件名a1.pas,25分)
小林今年刚上一年级,最近开始学数学的加法。
老师给他出了这样一道题:
火柴盒长为L,宽为W(1<=L,W<=100)。
高度有一层楼这么高,火柴只能按长或宽的方式放进去,给小林了N(1<=N<=50)根火柴,知道一根火柴的长度,问有多少跟火柴可以放进该火柴盒。
你能用计算器帮小林解决这个问题吗?
输入(a1.in):
第一行,三整数N,L和W用空格隔开;
接下来N行每行输入一个1到1000范围内的一个整数,表示火柴的长度。
输出(a1.out):
一行整数,能够装进火柴盒的火柴数量。
样例1:
输入:
534
8
4
2
1
9
输出:
3
第二题 数据统计(程序文件名a2.pas,25分)
小林最近想研究末尾有0的整数的性质。
小林给出任一整数N,请你帮小林算出这个整数末尾共有多少个连续的0?
输入(a2.in):
一行,一个整数N(1<=N<=1000000000)。
输出(a2.out):
一行统计出N的末尾连续0 的个数。
样例1:
输入:
50100
输出:
2
样例2:
输入:
102304
输出:
0
第3题 购文具(程序文件名a3.pas,25分)
“六一”儿童节“文具套装”优惠销售,三种购买方式如下:
1、现购:
10元/套,超过2套以为的,9元/套,超过10套以外的,则7.5元/套;
2、网购:
9元/套,超过10套,全部按网购每套的价钱打8折;超过5套,
则全部按网购每套的价钱六折;
3、团购:
10元起团购,6元/套,达到或超过50套,则5元/套,达到或超过100套,则4元/套。
小林想用其中一种方式购n套文具,请你帮他计算应付多少元钱?
输入(a3.in):
一行,两个用空格隔开的整数,分别表示购买方式号(1,2,3)和套数n(n<=200)
输出(a3.out):
一行,一个整数,应付饭钱(小数部分四舍五入)。
样例:
输入:
111
输出:
100
第四题 分发糖果(程序文件名a4.pas,25分)
一些学生围绕教师坐着,每人手里都有偶数个糖果。
现在老师吹一声哨子,所有学生同时将自己的一半糖果给他右面的同学,如果某个同学的手里的糖果个数是奇数,则老师给他一个糖果。
重复这个过程直到多有同学手中的糖果数一致,并给出结束后没人手里的糖果数。
输入(a4.in):
第一行,一个整数n,表示学生人数(n<=100);
接下来的n行,每行一个偶数(不超过100),表示每个学生手里的糖果(按逆时针次序)。
输出(a4.out):
一行,两个空格隔开的整数,即老师吹哨子的次数和学生最后平均的糖果数。
样例:
输入:
6
36
2
2
2
2
2
输出:
1514
ftp上传使用说明
第一步:
打开IE浏览器,在地址栏内输入ftp地址(由监考老师),出现登录窗口。
第二步:
用户名为参赛选手本人的考试号,输入密码。
第三步:
登录后,将本人编写的程序拖放(复制粘贴)到浏览器窗口。
拖放过程中会出现传送进度条,进度条结束即上传完毕(一旦发现问题请及时资讯监考老师)。
参考答案:
1. program a1;
var
n,l,w:
integer;
x,count:
integer;
i:
integer;
f1,f2:
text;
begin
assign(f1,'a1.in');
assign(f2,'a1.out');
reset(f1);
rewrite(f2);
readln(f1,n,l,w);
ifl=w;
fori:
=1tondo
begin
readln(f1,x);
ifx<=lthencount:
=count+1;
end;
writeln(f2,count);
close(f1);
close(f2);
end.
2. vara,b,c,d:
longint;
f1,f2:
text;
begin
assign(f1,'a2.in');
assign(f2,'a2.out');
reset(f1);
rewrite(f2);
read(f1,a);
repeat
ifamod10=0thenbegin
a:
=adiv10;
d:
=d+1;end;
until(amod10<>0);
writeln(f2,d);
close(f1);
close(f2);
end.
3. programdd;
vara,b:
longint;
c:
real;
f1,f2:
text;
begin
assign(f1,'a3.in');
assign(f2,'a3.out');
reset(f1);
rewrite(f2);
readln(f1,a,b);
ifa=1then
ifb<=2thenc:
=b*10
elseifb<=10thenc:
=20+9*(b-2)
elsec:
=20+72+7.5*(b-10);
ifa=2then
ifb<=10thenc:
=b*9
elseifb<=50thenc:
=b*9*0.8
elsec:
=b*9*0.6;
ifa=3then
ifb<50thenc:
=6*b
elseifb<100thenc:
=5*b
elsec:
=4*b;
writeln(f2,round(c));
close(f1);
close(f2);
end.
4. programa4;
var
a:
array[1..100]oflongint;
n,x:
integer;
i:
integer;
cnt:
integer;
b:
Boolean;
f1,f2:
text;
begin
assign(f1,'a4.in');
assign(f2,'a4.out');
reset(f1);
rewrite(f2);
readln(f1,n);
fori:
=1tondoreadln(f1,a[i]);
b:
=false;
whilenotbdo
begin
cnt:
=cnt+1;
ifa[n]mod2=0then
begin
a[n]:
=a[n]div2;
x:
=a[n];
end
else
begin
a[n]:
=a[n]+1;
a[n]:
=a[n]div2;
x:
=a[n];
end;
fori:
=n-1downto1do
ifa[i]mod2=0 then
begin
a[i]:
=a[i]div2;
a[i+1]:
=a[i+1]+a[i];endelsebegin
a[i]:
=a[i]+1;a[i]:
=a[i]div2;a[i+1]:
=a[i+1]+a[i];end;
a[1]:
=a[1]+x;b:
=true;
fori:
=1ton-1do
ifa[i]<>a[i+1]thenb:
=false;
end;
writeln(f2,cnt-1,'',a[1]);
close(f1);
close(f2);
end.
2012年青岛市程序设计竞赛试题(小学组)
说明:
1、必须以题目中规定的文件名进行保存,并用FTP上传到指定文件夹中,FTP上传在试题最后。
请选手没做完一道题及时上传一次,以确保因机器故障引起的文件丢失。
2、比赛时间为:
60分钟,试题100分。
3、使用竞赛规定的文件格式输入、输出。
第一题 火柴盒(程序文件名a1.pas,25分)
小林今年刚上一年级,最近开始学数学的加法。
老师给他出了这样一道题:
火柴盒长为L,宽为W(1<=L,W<=100)。
高度有一层楼这么高,火柴只能按长或宽的方式放进去,给小林了N(1<=N<=50)根火柴,知道一根火柴的长度,问有多少跟火柴可以放进该火柴盒。
你能用计算器帮小林解决这个问题吗?
输入(a1.in):
第一行,三整数N,L和W用空格隔开;
接下来N行每行输入一个1到1000