第21届2006年宁波市信息学竞赛初赛试题 含答案 下载本文

FOR I:=1 TO N DO ① FOR I:=1 TO N DO

IF ② OR (A[I] MOD 3=0) OR ③ OR (A[I] MOD 7=0) THEN A(I):=0; ④

FOR I:=1 TO N DO

IF ⑤ THEN S:=S+1 WRITE(?S=?,S) END.

2、装球:设有N个盒子(N足够大,可装入任何数量的球),分别编号1,2,…。同时有K个小球(K>0),今将K个小球装入到盒子中去,装入规则如下: (1) 第一个盒子不能为空。

(2) 装入必须严格按递增的顺序进行。

例如,当K=8,N=6装入方法有:1,2,5 或1,3,4 (3)在满足上面的两个条件下,要求有球的盒子尽可能多。

(4)装完之后,相邻盒子中球个数差的绝对值之和为最小(未装的盒子不计)。 如上例中:

装入法1,2,5 则差的绝对值之和为:2-1+5-2=4 装入法1,3,4 则差的绝对值之和为:3-1+4-3=3

[程序要求]:给出K(K表示小球个数)之后,求出满足上述四个条件的装入方法。

[算法描述]:设计一个数组A:ARRAY[1..N] OF INTEGER,用数组元素代表盒子然后依次装入小球。

[程序]:PROGRAM EXP3(INPUT,OUTPUT); CONST N=20;

VAR I,J,K,L:INTEGER;

A :ARRAY[1..N] OF INTEGER; BEGIN

READLN(k); ⑥ J:=1;

WHILE ⑦ DO BEGIN A(J):=J; ⑧ :J:=J+1 END; L:=j-1;

WHILE k>0 DO BEGIN

⑨ :K:=K-1:L:=L-1 END;

FOR I:=1 TO ⑩ DO WRITE(A[I]:4) END.

宁波21届中小学生计算机程序设计竞赛-小学组初赛试题答案 一、选择题 CBAACCCADA DDDCDDDDDD 二、阅读程序 1.1224 2.122459

3. 1 4 9 16 25 36 49 64 81 100 4.0.125

0.{285714} 三、程序填空 1.A[i]:=i

2. A[i] mod 2=0 3. A[i] mod 5=0 4.s:=0 5.a[i]<>0

6.fillchar(a,sizeof(a),0) 7. j<=k 8. k:=k-j

9. a[l]:=a[l]+1 10. j-1