当前位置:首页 > 2007年宁波市信息学竞赛试题
宁波市第22届中小学生计算机程序设计竞赛预赛试题(小学组)2007年3月
(2) 若原先这堆火柴的根数不少于10根,但最多不多于23根,问:有哪些情况使
最先轮到取火柴者必败?(写出相应的原先这堆火柴的根数)(4分)
四、完善程序(第一大题12分,第二大题16分,共28分) 第1题:完全数(每空3分,共12分)
如果一个正整数的所有小于它本身的因子之和等于该正整数,则该正整数称为完全数。比如6=1+2+3,于是6称为完全数;28=1+2+4+7+14,28也是完全数。 以下程序输入一个数n,输出1至n中的完全数的个数。请完善该程序。 program xx07_5; var n,i,count:longint;
function WanQuanShu(k:longint):longint; var i,sum:longint; begin
①_____________;
for i:=1 to k div 2 do
if ②_____________ then sum:=sum+i;
if sum=k then
WanQuanShu:=③________ else
WanQuanShu:=④________; end;
begin readln(n); count:=0;
for i:=1 to n do
count:=count+wanquanshu(i); writeln(count);
end.
第2题:石子划分(每空4分,共16分)
给出n堆石子,以及每堆石子数。请将它们分为两堆,使得这两堆的总石子数差最小。输入n,以及每堆石子数,输出分为两堆后的最小差值。比如,n=4,四堆石子分别有13,6,8,14颗,则可以分为13+8和14+6的两堆,它们的最小差为1。
以下程序:(1)求得所有石子数total,以及它的一半half;
(2)在所有石子堆中作适当选择,对每种选择方案,求不超过half的已选中堆中的石子总数的最大值max。所求即为(total-max)-max。
(3)以a[j]表示第j堆石子数;以b[j]表示第j堆石子是否被选中,如果b[j]=1,表示第j堆被选中,如果b[j]=0表示第j堆没有被选中。
(4)各种方案的表达及次序如下:以00…00(均不选中),00..01(只选中第n堆石子),00..10(只选中第n-1堆石子),00…11(选中第n-1堆和第n堆石子),00…100(选中第n-2堆石子),00…101(选中第n-2堆和第n堆石子),11…11(选中所有n
第5页 共8页
宁波市第22届中小学生计算机程序设计竞赛预赛试题(小学组)2007年3月
堆石子)。
请完善该程序。 program xx07_6; const maxn=20; var n,i,j:longint;
total,half,sum,max:longint; a:array[1..maxn] of longint; b:array[0..maxn]of 0..1; begin readln(n);
total:=0;
for i:=1 to n do begin read(a[i]);
total:=total+a[i]; end;
half:=total div 2; max:=0;
for i:=1 to n do b[i]:=0; i:=n;
while i>0 do begin sum:=0;
for j:=1 to n do
sum:=⑤________________; if ⑥______________________ then max:=sum;
i:=n;
while (i>0) and (b[i]=1) do i:=⑦____________; if i>0 then begin
b[i]:=⑧_________; for j:=i+1 to n do b[j]:=0; end;
end;
writeln(total-max-max); end.
第6页 共8页
宁波市第22届中小学生计算机程序设计竞赛预赛试题(小学组)2007年3月
宁波市第22届中小学生计算机程序设计竞赛
预赛答卷(小学组)
(考试时间120分钟,满分100分)
●●所有提交的答案都以写在答卷纸上的为准,写在试卷上的一律无效●●
学校 姓名 得分 一、选择题:请选出各题正确答案的代码(A/B/C/D)(每题2分,共40分) 题号 答案 题号 答案 1 11 2 12 3 13 4 14 5 15 16 17 18 19 20 6 7 8 9 10 二、阅读pascal程序并写出运行结果(每题6分,共18分)
第1题:请写出程序运行后变量sum的值(6分)。sum的值为:_______________
第2题:请写出程序运行后变量ok的值(每空3分,共6分)
①输入:123,ok的值为:_____________ ②输入:121,ok的值为:_____________
第3题:请写出程序运行后变量sum的值(6分)。sum的值为:____________
三、简答题(第1题6分,第2题8分,共14分) 第1题(每小题3分,共6分):
(1) (2)
第2题(每小题4分,共8分):
(1) (2)
四、完善程序(第1题12分,第2题16分,共28分) 第1题:(每空3分,共12分)
①______________________ ②_______________________
③______________________ ④_______________________
第2题:(每空4分,共16分)
⑤______________________ ⑥_______________________
⑦______________________ ⑧_______________________
第7页 共8页
宁波市第22届中小学生计算机程序设计竞赛预赛试题(小学组)2007年3月
第8页 共8页
共分享92篇相关文档