=0;endelsebegini:
=i+1;end;end;end.
第6/7页
2005年东莞市小学生计算机程序设计竞赛
决赛试题
(一)pascal语言参考答案
一、选择题(每题1分,共10分)
二、填空题(第1小题每空2分,第2小题7分,共15分)1、
(2)右边重,则需令等于(3)左边重,则需令C1等于A,回第二步重复;2、5*7+10*5+10*7=155
3、三、写出下列程序的运行结果(共36分,每题6分)
1.2.3.4.
四、程序填空(每空3分,共39分)
第四届绍兴市少儿信息学竞赛试题;(小学组PASCAL语言二小时完成);●●全部试题答案都要求写在答卷纸上,写在试卷上一;一、选择一个正确答案代码(A/B/C/D),填入;个正确答案,多选或错选都无分;1、现有的计算机都是采用()提出的存储程序和二进;A.图灵B.冯·诺伊曼;C.爱因斯坦D.布尔;2、计算机的存储系统中,能被CPU直接存取的是(;A.内存储器B
-
第四届绍兴市少儿信息学竞赛试题
(小学组PASCAL语言二小时完成)
●●全部试题答案都要求写在答卷纸上,写在试卷上一律无效●●
一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题2分,每题只有一
个正确答案,多选或错选都无分。
共30分)
1、现有的计算机都是采用()提出的存储程序和二进制的原理制造的。
A.图灵B.冯·诺伊曼
C.爱因斯坦D.布尔
2、计算机的存储系统中,能被CPU直接存取的是()。
A.内存储器B.磁盘存储器
C.CD-ROMD.外存储器
3、下列可选项,都是硬件的是()。
A.Windows、ROM和CPUB.WPS、RAM和显示器
C.ROM、RAM和PascalD.硬盘、光盘和软盘
4、应用软件是专业人员为各种应用目的而编制的程序,以下()是应用软件。
A.操作系统B.文字处理软件
C.数据库管理系统D.语言处理程序
5、以下是关于计算机病毒的说法,不正确的是()。
A.病毒属于计算机软件
B.病毒属于硬件
C.病毒具有破坏性、传播性、可激发性、潜伏性、隐蔽性等特点
D.若软盘染上病毒,格式化软盘可以清除病毒
6、计算机网络的最大优点是()。
A.资源共享B.运算速度加快
C.计算精度提高D.内存容量增大
7、计算机网络中,互连的各种数据终端,是按()相互通信。
A.网络协议B.连线
C.以太网D.数据格式
8、电子邮件的邮箱()。
A.在ISP的服务器上B.在你申请的网站的服务器上
C.在OutlookExpress里D.在OutlookExpress里的电脑里
9、与十六进制3D相等的数是()。
A.60B.(00111110)2
C.(76)8D.(00111101)2
10.Windows中,不能在显示属性中设置的是_____。
A.屏幕刷新率B.屏幕保护程序
C.系统日期D.墙纸的设置
11、给定队列的入队顺序1,2,3,共有几种可能的出队序列()。
A.3B.2
C.1D.4
12、如果一棵满二叉树有n个叶结点,则这棵树的结点总数为()。
A.2nB.2n-1
C.2n+1D.n2-1
13、下列哪个选项不是程序设计的基本控制结构()。
A.顺序结构B.分支结构
C.循环结构D.数据结构
14、在Pascal程序设计中,我们可以利用()语句使程序终止运行。
A.haltB.end
C.breakD.quit
15、产生100至300之间的随机整数(Random),且包含100、300两个整数的表达式是()。
A.random(100)+200B.random(200)+100
C.random(201)+100D.random(300)
二、问题求解(每题5分,共10分)
1、一个栈的进栈序列为1,2,3,4,请问,出栈序列一共有多少种?
2、绍兴市信息学竞赛临近,某校要组队参加竞赛,要从12名学生中选4名参加比赛,其中少儿组2名,初中组2名,请问共有几种组队方法?
三、阅读程序,写出程序的正确运行结果(7+7+8+8=30分)
1、programtest01;
var
x,y:
integer;
begin
readln(x,y);
x:
=x+y;
y:
=x-y;
x:
=x-y;
write(x,'',y);
end.
输入:
37
输出:
2、programtest02;
var
x:
longint;
n,i:
integer;
begin
readln(n);
x:
=1;
fori:
=1tondo
x:
=x*i;
writeln(x);
end.
输入:
8
输出:
3、programtest03;
functionf(n:
integer):
integer;
begin
ifn=0thenf:
=1
elseifn<0thenf:
=f(n+1)+3
elsef:
=f(n-1)-2;
end;
begin
writeln(f(f
(2)));
end.
输出:
4、programtest04;
var
i,j,a:
longint;
s:
array[1..32]oflongint;
begin
readln(a);
j:
=0;
whilea<>0dobegin
inc(j);
s[j]:
=amod2;
a:
=adiv2;
end;
ifj=0thenwrite(0)else
fori:
=jdownto1do
write(s[i]);
end.
输入:
58
输出:
四、完善程序(根据问题要求和已有程序,在空格处填入适当的语句或符号,使程序完整。
每空3分,共30分)
1、贪心的武松
【问题描述】
曾经因打虎而闻名的武松在x年后接到了景阳岗动物园的求助信,信上说:
最近我们动物园逃跑了几只老虎,请您把它们抓回来,谢谢!
!
武松接到信之后立刻上了山。
正当他到半山腰时,突然跳出n只猛虎来。
每只老虎都有一块虎牌,牌上写的是每一只虎最大拥有的体力,当武松与老虎pk时,若老虎的体力先用完,那么老虎over,否则武松over,求武松在over之前最多能干掉几只老虎?
(注:
老虎是一只只上的)
【输入】
第一行两个数字n(老虎的只数),m(武松的体力)。
第二行n个数字,分别表示每只老虎的体力(每只虎的体力按从小到大排列)。
【输出】
一行,最多能干掉的老虎数。
【样例输入】
36
139
【样例输出】
2
请完善以下程序
programtest05;
var
n,m,i,num:
integer;
a:
array[1..100]ofinteger;
begin
fillchar(a,sizeof(a),0);
read(n,m);
fori:
=1tondo
num:
=0;i:
=1;
)do
begin
m:
=m-a[i];
ifm>=0thenbegin
num:
=num+1;
end;
end;
end.
2、合并礼物
【问题描述】
圣诞节快到了,圣诞老人又要开始忙起来了,和往年一样,圣诞老人要在礼物乐园里挑选礼物送给小朋友们。
在礼物乐园,圣诞老人挑选好礼物后,把礼物按照不同的种类分成了不同的堆,现在,圣诞老人决定把所有的礼物合成一堆。
每一次合并,圣诞老人可以把两堆礼物合并到一起,消耗的体力等于两堆礼物的重量之和。
可以看出,所有的礼物经过n-1次合并之后,就只剩下一堆了。
圣诞老人在合并礼物时总共消耗的体力等于每次合并所耗体力之和。
因为还要花大力气把这些礼物搬到他的鹿车,所以圣诞老人在合并礼物时要尽可能地节省体力。
假定每个礼物重量都为1,并且已知礼物的种类和每种礼物的数目,你的任务是设计出合并的次序方案,使圣诞老人耗费的体力最小,并输出这个最小的体力耗费值。
例如有3种礼物,数目依次为1,2,9。
可以先将1、2堆合并,新堆数目为3,耗费体力为3。
接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。
所以圣诞老人总共耗费体力=3+12=15。
可以证明15为最小的体力耗费值。
【输入】
输入包括两行,第一行是一个整数n(1<=n<=100),表示礼物的种类数。
第二行包含n个整数,用空格分隔,第i个整数ai(1<=ai<=100)是第i种礼物的数目。
【输出】
输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。
【样例输入】
3
129
【样例输出】
15
【解题思路】
首先将所有的礼物堆按照每堆礼物的数目进行排序,将数目最少的两堆礼物合并,然后再将新堆放入数列中重新排序,再取出最少数目的两堆合并?
?
每次合并后将体力消耗值加入到total变量,依次类推,经过n-1次合并后,所有礼物都合并成了一堆,total即为问题所求的“最小的体力耗费值”。
请完善以下程序:
programtest06;
var
n,i,j,total:
longint;
a:
array[0..101]oflongint;