haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 小学教育 > 学科竞赛学科竞赛

宁波市第27届中小学生程序设计竞赛小学组初赛试题分析

发布时间:2013-09-21 09:32:51  

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

宁波市第27届中小学生程序设计竞赛

小学组 初赛试题

●●所有答案都必须写在答题纸上,写在试卷上无效●●

一.选择题(每题2分,共30分。每小题只有唯一一个正确答案)

1)乐乐在记事本里打了“Happy Birthday!”,则它们在计算机内存储时采用的编码是:( )。

A)区位码 B)ASCII码 C)字形码 D)条形码

分析:这题考的是对于计算机内存储编码的了解,选B

2)乐乐经常听MP3,由此他也学到了一些有关MP3的知识。下列有关MP3的信息中不正确的是:( )。

A)表达同一首乐曲时,MP3格式的文件大小比 WAVE 格式要小得多 。

B)MP3 声音是一种声音数字化之后经过压缩和编码技术处理得到的声音格式。

C)MP3 音乐所采用的声音数据压缩编码的标准是 JPEG 。

D)MP3 之所以得以流行,是因为 MP3 声音的质量好,存储容量小,便于传输与存储。 分析:显然JPEG是图片,而不是音乐,选C

3)下图所示是一个16×16点阵的发光LED字幕模块,假如使用1表示点发光、0表示点熄灭,那么这个发光LED字幕模块如果要在计算机内部完整地保存,在不进行压缩的前提下,最少需要的存储空间是:( )。

A)8Byte

B)32Byte

C)8KB

D)32KB

分析:显然它可以用256位来存储,而一字节有8位,选B

4)在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。那么在PASCAL系统中,-15用byte变量类型存储在计算机内,其二进制编码为:( )。

A)10001111 B)00001111 C)11110000 D)11110001

分析:先确定符号位,因为它是负数,所以符号位为1,15转为二进制为1111,所以原码为10001111,在首尾两个1不变,其余取反,结果是11110001,选D

5)十进制数2012.25用二进制数表示的结果是:( )。

A)(11111010101.1)2 B)(11111011100.01)2

C)(1111001000.01)2 D)(11111001000.1)2

分析:2012/2=1006......0

1006/2=503......0

503/2=251......1 251/2=125......1

第 1 页 共 10 页

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

125/2=62......1

62/2=31......0

31/2=15......1

15/2=7......1

7/2=3......1

3/2=1......1

1/2=0......1

所以(2012)10=(11111011100)2

0.25*2=0.5......0

0.5*2=0......1

所以(0。25)10=(0.01)2

即(2012。25)10=(11111011100.01)2,选B

6)乐乐在参加信息学奥赛的学习过程中,想在因特网上与他人进行即时讨论、交流,则下列工具中最适合的是:( )。

A)E-mail(电子邮件) B)BBS(电子公告栏) C)QQ D)博客(Weblog) 分析:由“即时”可知是QQ,选C

7)下列不属于程序设计三种基本控制结构的是:( )。

A)顺序结构 B)递归结构 C)分支结构 D)循环结构

分析:程序设计三种基本控制结构是顺序结构、分支结构和循环结构,故B不是,选B

8)胡老师发送电子邮件时失败了,根据下图所示信息,导致发送失败最有可能的原因是:( )。

A)主题错误 B)没有附件 C)收件人地址错误 D)邮件正文太少

分析:这题考的是邮箱地址的格式,正确的应该是?@?.com,所以很明显地址错了,选C

9)下面是乐乐对计算机的一些操作,能有效预防计算机病毒侵入的是:( )。

①对下载的文件马上杀毒 ②打开QQ上陌生人信息中的链接补丁

③及时升级杀毒软件和病毒防火墙 ④及时修复系统漏洞 ⑤随意打开来历不明的邮件 A)①②③ B)①③④ C)②③⑤ D)③④⑤

分析:看到②中的“陌生人”三字以及⑤中的“随意”二字,就知道②⑤不是的,选B

10)设A=B=D=true,C=false,以下逻辑运算表达式值为真的是:( )。

A)( not A and B ) or ( C and D ) B)( A or B or D ) and C

第 2 页 共 10 页

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

C)not A and ( B or C or D ) D)( A and B and C ) or D

分析:这题考的是对于逻辑运算的掌握,其中not的优先级最高,and第二,or第三,另外not是取反,and是有一个false结果就是false,否则是true,而or是有一个true结果就是true,否则是false,举A为例子,先代入(not true and true) or (false and true),先算not true,结果为false,再算两个括号里的,都是false and true,结果为false,最后false or false,结果还是false,同理得B和C的结果也是false,只有D为true,选D

11)下列文件扩展名为图片格式的是:( )。

A).doc B).jpg C).txt D).swf

分析:.doc是文档的扩展名,.jpg是图片的扩展名,.txt是文本的扩展名,.swf是动画的扩展名,选B

12)高度为n的均衡二叉树是指:如果去掉最低层叶结点及相应的树枝,它的每一层都将达到“满”的状态,即除了最底下一层的节点,其它各层所有节点都有两个儿子。在这里,树高等于叶结点的最大深度(根结点的深度为0)。 下图为一棵深度为2的均衡二叉树。

如果某均衡的二叉树共有256个结点,则该树的树高为:( )。

A) 6 B) 7 C)8 D) 9

分析:根据题目可以知道一棵均衡二叉树若有N各节点,则树高为[log2N],其中[a]指小于等于a的最小整数,把数据带入得树高为8,选C

13)已知队列中依次存在下列元素(13,2,11,34,41,77,5,7,18,26,15),若第一个出队列的元素是13,则第五个出队列的元素是:( )。

A) 5 B) 41 C) 77 D) 13

分析:因为第一个出队的是13,所以第五个出队的就是第五个数即41,选B

14)在一次运动会上,某组 6 位选手的百米成绩 (单位:秒 ) 分别是 “ 14.1 、 12.3 、 11.2 、 14.8 、 13.9 、 11.0 ”,若使用冒泡排序法将该组的成绩按第一名、第二名、第三名??的顺序排序,则第一趟冒泡后的顺序是:( )。

A) 12.3 11.2 14.1 11.0 13.9 14.8

B) 12.3 11.2 14.8 13.9 11.0 14.1

C) 14.1 12.3 11.2 14.8 13.9 11.0

D) 11.0 14.1 12.3 11.2 14.8 13.9

第 3 页 共 10 页

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

15)上题中的六位选手成绩,通过纯粹的冒泡排序进行处理,则6个成绩排序结束,数据进行两两交换的总次数为( )次。

A) 8 B) 10 C)12 D)14

分析:这题其实就是让你求原序列中逆序对的个数,其中逆序对是指在a数列中,ai>aj但i<j的一对数,因为原序列中逆序对有4+2+1+2+1+0=10对,所以要交换10次,选B

二.问题求解(每题5分,共10分)

1、乐乐邀请了班上15位同学参加他的生日派对,他买了一些棒棒糖分给同学吃,这些棒棒糖正好平分给15位同学。生日那天有3位同学临时有事没来。这样,这些棒棒糖就被12位同学平分了,因此这些同学比原来计划多分了1颗棒棒糖。问:乐乐买的棒棒糖数量是 颗。 分析:设共有X颗棒棒糖,由题意得X÷15+1=X÷12,得X=60,所以乐乐买了60颗棒棒糖

2、有一次,韩信带领1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,韩信部下也死伤将近五百人。在韩信整顿兵马返回大本营路上,忽有后军来报,说有楚军骑兵追来。韩信见来敌不足五百骑,便急速点兵迎敌。他命令将士3人一排,结果多出2名;接着命令将士5人一排,结果多出4名;他又命令将士7人一排,结果又多出5名。韩信马上向将士们宣布:我军至少有 名勇士,以众击寡,一定能打败敌人。

分析:设我军共有X人,因为3人一排多2人,5人一排多4人,所以3人或5人一排少1人,即X=15K-1(K为正整数),因为X≥1000,所以K≥67,经尝试当K=69即X=1034时,X最小且符合7人一排多5人,所以我军至少有1034名勇士

三.阅读程序并写出运行结果(6+8+8+10=32分):

1.program test1;

var a,b,n:longint;

begin

readln(n);

a:=0;

b:=0;

repeat

a:=a+1;

b:=b+a;

until b>=n;

writeln(a);

end.

输入1:

5

输出1:

输入2:

第 4 页 共 10 页

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

50

输出2:

分析:这题是让你求出最小的a,使前a个正整数的和不小于n,因为1+2=3<5,1+2+3=6>5,所以第一空填3,同理第二空填10

2.program test2;

var a,b,f:integer;

function gd(m,n:integer):integer;

begin

if n=0 then gd:=m

else gd:=gd(n,m mod n);

end;

begin

readln(a,b);

f:=gd(a,b);

writeln(f)

end.

输入1:

6 27

输出1:

输入2:

56 72

输出2:

分析:一看函数名就可知此题是求最大公约数,用的是辗转相除法,所以分别填3和8

3.program test3;

var

i,j,k,n:integer;

a:array[1..100]of boolean;

begin

read(n);

for i:=1 to n do a[i]:=true;

for i:=1 to n do

begin

j:=i;

while j<=n do

begin

a[j]:=not(a[j]);

j:=j+i;

第 5 页 共 10 页

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

end;

end;

for i:=1 to n do

if a[i]=true then write('0',' ')

else write('1',' ');

end.

输入:8

输出:

分析:这题是求出1到n每个数的约数个数的奇偶性,偶数则输出0,否则输出1,又因为只有完全平方数的约数个数是奇数,所以这题又变为1到n中是完全平方数的输出1,否则输出0,故答案是1 0 0 1 0 0 0 0

4.program test4;

var a,b:array[1..1000] of integer;

i,j,t,h,n,e:integer;

begin

readln(n);

for i:=1 to n do a[i]:=i;

a[1]:=1;h:=2;t:=n;b[1]:=1;e:=n;

for i:=2 to n do

begin

for j:=1 to 2 do

begin

if h=e+1 then

begin

e:=e-i+1;

break

end;

inc(t);

a[t]:=a[h];

inc(h);

end;

b[a[h]]:=i;inc(h);

end;

for i:=1 to n do

write(b[i],' ');

end.

输入:10

输出:

分析:这是一道类似于约瑟夫的问题,从排头到排尾1、2、3报数,报到1就出队,不同之处在于每次报到排位之后重新从排头开始报数,具体不在此模拟,答案是1 5 7 2 9 6 3 10 8 4

第 6 页 共 10 页

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

四.程序填空(前5空每空2分,后6空每空3分,共28分)

神舟九号飞船(以下简称神九)(计划发射中)是一艘载人宇宙飞船,是中国“神舟”号系列飞船之一。担负此次任务的飞行乘组将由3名航天员组成。神舟九号是中国的第一个宇宙实验室项目921-2计划的组成部分。根据任务计划,神舟九号飞船将于今年6月至8月择机发射,与在轨运行的天宫一号目标飞行器进行载人交会对接。航天员将进入天宫一号工作和生活,开展相关空间科学实验,在完成预定任务后返回地面。对接过程中,将实现航天员手控交会对接,全面验证交会对接技术。

神舟九号主要有以下职能:

第一, 用做货运飞船。用于搭载水,食物,推进剂和试验设备。

第二, 用做紧急逃生飞船(救生船)。

第三, 进行载人空间对接。

神舟九号将搭载大量的物品进入太空进行空间实验,其中有两大问题需要同学们帮忙解决。

1.【物品身份识别】

为了提高装载物品的效率与准确性,科学家们采用了人工智能装载技术——机器通过对物品上的条码扫描来确定物品的身份,然后来确定是否需要装载。为了确保读入条码的无误,在条码后面增设了一位作为校验位。通过一系列计算之后若计算结果与末尾校验位上的数值相同即为读入条码准确,反之重读。

校验位计算公式方法如下:

(1)代码位置序号

代码位置序号是指包括校验码在内的,由右至左的顺序号(校验码的代码位置序号为1)。

(2)计算步骤

校验码的计算步骤如下:

a、从代码位置序号2开始,所有偶数位上的数字代码求和。

b、将步骤a的和乘以3。

c、从代码位置序号3开始,所有奇数位的数字代码求和。

d、将步骤b与步骤c的结果相加。

e、用大于或等于步骤d所得结果且为10的最小整数倍的数减去步骤d所得结果即为所求校验码的值。

步 骤 举 例 说 明(其中的x表示校验位数字)

(1)自右向左顺序编号 位置序号 13 12 11 10 9 8 7 6 5 4 3 2 1 代码 9 7 8 7 5 6 4 0 0 1 4 5 X

(2)从序号2开始求出偶数位数字之和 5+1+0+6+7+7=26 ①

(3)①式中的结果26乘以3 26×3=78 ②

(4)从序号3开始求出奇数位数字之和 4+0+4+5+8+9=30 ③

(5)将②式和③式中的结果相加 78+30=108 ④

(6)用大于或等于④式中108且为10最小整数倍的数减去④式结果。即:110-108=2,其差即为所求校验码的值 校验码X=2

第 7 页 共 10 页

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

输入说明,输入13个数,为商品扫描器读入值,中间用空格隔开。

输出说明,第一行包含一个整数,表示校验位计算值。第二行输出true或false,表示商品扫描器读入是否正确。

【输入样例1】

9 7 8 7 5 6 4 0 0 1 4 5 2

【输出样例1】

2

true

【输入样例2】

9 7 8 7 5 6 4 0 0 1 4 5 3

【输出样例2】

2

false

请按上述说明将下列程序补充完整。

var d:array[1..13] of 0..9;

i,s:integer;

begin

for i:=13 downto 1 do read(d[i]);

readln;

for do {由第9行的i:=3 to 13,可以推出这空填i:=2 to 12}

if i mod 2=0 then s:={由第9行的s+d[i],可以推出这空填s+d[i]} s:= {根据题意偶数位数字之和还要乘3,填s*3}

for i:=3 to 13 do if then s:=s+d[i];{由第7行的i mod 2=0,可以推出这空填i mod 2=1}

s:=s mod 10;

if s<>0 then s:=10-s;

writeln(s);

{判断校验码是否正确,填s=d[1]}

else write('false');

end.

2.【物品选择】

神舟九号将搭载三名航天员进入天宫一号进行为期十几天的空间科学实验和生活,这在我国航天史上是前所未有的。它需要搭载水,食物,推进剂和试验设备等进入太空。由于火箭燃料费用很高,飞船的空间与载重能力又有限。所以科学家必须选择最有必要带入太空进行本次试验的物品进行装载。科学家通过一段时间的研究分析,对带入太空的物品测定了三个参数:体积V、重量W、必要度K。如甲物品必要度为50,乙物品的必要度为30,那么火箭搭载甲、乙物品所取得的必要度为80。现在科学家需要设计一个程序,在给定飞船所能搭载物品最大体积与最大重量的情况下,选择合适的物品进行搭载以取得最大搭载必要度总和。(注:物品不能进行分割。所搭载物品体积之和、重量之和分别不能超过飞船所能搭载物品最大体积与最大重量)

输入说明,第一行包含两个数,依次表示飞船所能搭载物品的最大体积和最大载重量,第二行包含一个整数,表示可供选择的物品数量N(不超过99),第三行至第2+N行每行三个整数,依次表示每个物品的体积(<50000)、重量(<50000) 和必要度(<50000)。

第 8 页 共 10 页

2012年宁波市第27届中小学生程序设计竞赛 小学组 初赛试题

输出说明,包含一个整数,表示所能达到的最大必要度总和。

【样例输入】

320 350

4

160 40 120

80 110 240

220 70 310

40 400 220

【样例输出】

550

请按上述说明将下列程序补充完整。

var

i,j,n:integer;

tw,tv,maxk,temp_v,temp_w,temp_k:real;

b,temp:array[1..100]of integer;

v,w,k:array[1..100]of real;

begin

readln(tv,tw);

{这空很简单,填readln(n)}

for i:=1 to n do readln(v[i],w[i],k[i]);

maxk:=0;

for i:=1 to 100 do b[i]:=0;

{这句是判断是否还有取的办法,在其余几空填出后进行模拟,这样不难得出这空应该填b[n+1]=0}

begin

i:=1;

while b[i]=1 do inc(i);

b[i]:=1;

do b[j]:=0;{由上文可知,它每次都是从前面开始更新的,所以加上理解可以得出这空应填i:=1 to i-1}

temp_v:=0;temp_w:=0; ;{由前面可知,填temp_k:=0}

for j:=1 to n do

if then{由上文可知,1表示取,0表示不取,填b[j]=1}

begin

temp_w:=temp_w+w[j];

temp_v:=temp_v+v[j];

temp_k:=temp_k+k[j]

end;

if (temp_v <tv) and (temp_w<tw)and(temp_k>maxk) then

begin

{这空是为了更新maxk的最大值,填maxk:=temp_k}

for j:=1 to n do temp[j]:=b[j]; end; 第 9 页 共 10 页

初赛试题

第 10 页共 10 页2012年宁波市第27届中小学生程序设计竞赛 小学组 end; writeln(maxk:0:0); end. 分析:这题中取物的方法比较特别,用了类似二进制的方法

网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com