文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
第四届绍兴市少儿信息学竞赛试题
(小学组 PASCAL语言 二小时完成)
●●全部试题答案都要求写在答卷纸上,写在试卷上一律无效●●
一、 选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题2分,每题只有一
个正确答案,多选或错选都无分。共30分)
1、现有的计算机都是采用( )提出的存储程序和二进制的原理制造的。 A.图灵 B.冯·诺伊曼 C.爱因斯坦 D.布尔
2、计算机的存储系统中,能被CPU直接存取的是( )。 A.内存储器 B.磁盘存储器 C.CD-ROM D.外存储器 3、下列可选项,都是硬件的是( )。 A.Windows、ROM和CPU B.WPS、RAM和显示器 C.ROM、RAM和Pascal D.硬盘、光盘和软盘
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.在Outlook Express里 D.在Outlook Express里的电脑里 9、与十六进制3D相等的数是( )。 A.60 B.(00111110)2 C.(76)8 D.(00111101)2
10.Windows中,不能在显示属性中设置的是_____ 。 A. 屏幕刷新率 B. 屏幕保护程序 C. 系统日期 D. 墙纸的设置
11、给定队列的入队顺序1,2,3,共有几种可能的出队序列( )。 A.3 B.2 C.1 D.4
12、如果一棵满二叉树有n个叶结点,则这棵树的结点总数为( )。 A.2n B.2n-1 C.2n+1 D.n2-1
1文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
13、下列哪个选项不是程序设计的基本控制结构( )。 A.顺序结构 B.分支结构 C.循环结构 D.数据结构
14、在Pascal程序设计中,我们可以利用( )语句使程序终止运行。 A.halt B.end C.break D.quit 15、产生100至300之间的随机整数(Random),且包含100、300两个整数的表达式是( )。
A.random(100)+200 B.random(200)+100 C.random(201)+100 D.random(300) 二、问题求解(每题5分,共10分)
1、一个栈的进栈序列为1,2,3,4,请问,出栈序列一共有多少种?
2、绍兴市信息学竞赛临近,某校要组队参加竞赛,要从12名学生中选4名参加比赛,其中少儿组2名,初中组2名,请问共有几种组队方法?
三、阅读程序,写出程序的正确运行结果(7+7+8+8=30分) 1、program test01; var
x,y:integer; begin
readln(x,y); x:=x+y; y:=x-y; x:=x-y;
write(x,' ',y); end.
输入:3 7
输出: 2、program test02; var
x:longint; n,i:integer; begin
readln(n); x:=1;
for i:=1 to n do x:=x*i; writeln(x); end. 输入:8
输出: 3、program test03;
function f(n:integer):integer; begin
if n=0 then f:=1
2文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
else if n<0 then f:=f(n+1)+3 else f:=f(n-1)-2; end; begin
writeln(f(f(2))); end.
输出: 4、program test04; var
i,j,a:longint;
s:array[1..32] of longint; begin
readln(a); j:=0;
while a<>0 do begin inc(j);
s[j]:=a mod 2; a:=a div 2; end;
if j=0 then write(0) else for i:=j downto 1 do write(s[i]); end.
输入:58
输出:
四、完善程序(根据问题要求和已有程序,在空格处填入适当的语句或符号,使程序完整。每空3分,共30分) 1、贪心的武松 【问题描述】
曾经因打虎而闻名的武松在x年后接到了景阳岗动物园的求助信,信上说:最近我们动物园逃跑了几只老虎,请您把它们抓回来,谢谢!!
武松接到信之后立刻上了山。正当他到半山腰时,突然跳出n只猛虎来。每只老虎都有一块虎牌,牌上写的是每一只虎最大拥有的体力,当武松与老虎pk时,若老虎的体力先用完,那么老虎over,否则武松over,求武松在over之前最多能干掉几只老虎? (注:老虎是一只只上的) 【输入】
第一行两个数字 n(老虎的只数),m(武松的体力)。第二行n个数字,分别表示每只老虎的体力(每只虎的体力按从小到大排列)。 【输出】
一行,最多能干掉的老虎数。
【样例输入】 3 6 1 3 9
3文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
【样例输出】 2
请完善以下程序 program test05; var
n,m,i,num:integer;
a:array[1..100] of integer; begin
fillchar(a,sizeof(a),0); read(n,m); for i:=1 to n do
read( ① ); num:=0; i:=1;
while (m>0) and ( ② ) do begin
m:=m-a[i];
if m>=0 then begin num:=num+1;
③ ; end; end;
write( ④ ); 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种礼物的数目。 【输出】
输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。 【样例输入】
4文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
3 1 2 9
【样例输出】 15
【解题思路】
首先将所有的礼物堆按照每堆礼物的数目进行排序,将数目最少的两堆礼物合并,然后再将新堆放入数列中重新排序,再取出最少数目的两堆合并……每次合并后将体力消耗值加入到total变量,依次类推,经过n-1次合并后,所有礼物都合并成了一堆,total即为问题所求的“最小的体力耗费值”。 请完善以下程序: program test06; var
n,i,j,total:longint;
a:array[0..101] of longint; procedure qsort(l,r:longint); var
i,j,x,temp:longint; begin i:=l; j:=r;
x:=a[(i+j) shr 1]; repeat
while a[i] ① ; a[j]:=temp; i:=i+1; ② ; end; until ③ ; if l if i readln(n); for i:=1 to n do read(a[i]); qsort(1,n); ⑤ ; for i:=1 to n-1 do begin inc(total,a[i]+a[i+1]); a[i+1]:=a[i]+a[i+1]; 5文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.