for j:=0 to n-1 do a[i,j]:=0; k:=1;
for i:=1 to n do
for j:=n-1 downto i do begin
a[j,j-i]:=k; k:=k+1; end;
for i:=0 to n-1 do begin
for j:=0 to n-1 do write(a[I,j]:4); writeln; end; end.
输出的结果为:
5.program text5(input,output); var ch:char; i,n,sum:integer; begin sum:=0; read(ch); case ch of
'A':for i:=4 to 6 do begin
read(n): sum:=sum+n end;
'B':begin read(n);
for i:=1 to n do
begin read(n);sum:=sum+n end; end; 'C':repeat
read(n);sum:=sum+n until sum>10; 'D':begin read(n); while n<=3 do
begin sum:=sum+n;read(n) end end
end; writeln(sum:4) end.
当程序运行
(1) 输入 A 4 1 2 3 4 5 6 7 8 9时,其输出为_____________。 (2) 输入 B 4 1 2 3 4 5 6 7 8 9时,其输出为_____________。 11
(3) 输入 C 4 1 2 3 4 5 6 7 8 9时,其输出为_____________。 (4) 输入 D 4 1 2 3 4 5 6 7 8 9时,其输出为_____________。 四、完善程序(第1题每空2分第2、3题每空3分,共32分) 第1题
孪生素数是指两个相差为2的素数,例如:3和5,5和7,11和13等。 下面程序可输出15对孪生素数,其中函数q判断整数a是否为素数。 program p(output); var k,n:integer
q (a:integer):booklean; var k:integer; flag:boolean; begin
flag:___(1)____ k:=2
___(2)____ (k<=a div 2) and flag do if a mod k=0 then ______(3)_______ else k:=k+1 q:=flag end; begin n:=0; k:=2; repeat
if q(k) and ___(4)___ then begin n:=n+1;
writeln(k,k+2) end; k:=K+1 until n=5 end.
第二题
已知有类型arr=array[1..16] of string;
arr型数组a中存放着从第1届到第16届足球世界杯冠军国家的名字,下面的函数可求出历界世界杯比赛共有几个国家曾获得过世界杯冠军,请填空完成。 text2(a:arr):integer; var k,j,s:integer; mult:boolean; begin
___(5)___;
for j:=2 to 16 do begin
12
k:=1;
mult:=false;
while not mult and ___(6)___ do if ___(7)__ then mult:=ture else k:=k+1;
if not mult then s:=___(8)___ end; text2:=s end; 第三题
Fibonacci(裴波那契)数列的规律是:前2个数均为1,从第3个数开始每个数等于它前面两个数之和,即:1,1,2,3,5,8,13,21,34,55,89,144,233,377,...。已知任意一个大于0的整数可以表示为若干个互不相同的fibonacci之数和。 例如:121=89+21+8+3
下面的程序是由键盘输入一个正整数n,输出组成n的互不相同的fibonacci数。 例如:若输入121
则输入121=+89+21+8+3
本程序的算法如下:(n=121为例)
1)寻找小于或等于n的最大的fibonacci数a(例如89),并以a作为组成n的一个数输出。
2)若n≠a则以n-a作为新的任意正整数(例如32),重复步骤1.若n=a,则结束。程序中的函数find返回小于或等于n的最大的fibonacci数。 program text3(input,output); var n:integer;
find(n:integer):integer; var a,b,c:integer; begin
a:=1; b:=1; repeat
c:=___(9)___; a:=b;b:=c; until b>=n;
if b=n then find:=___(10)___ else find:=___(11)___ end;
procedure p(n:integer); var a:integer; begin
a:=find(n); write('+',a:4); if a 13 begin readln(n); write(n:5,'='); p(n); writeln end. 初赛模拟试题(二)参考答案 一、选择题:(本题共20小题,1-15小题为单选题,每题1分;16-20小题为多选题,每题2分。共25分) 题号 1 2 3 4 5 6 7 8 9 10 答案 B D B A B E B C B A 题号 11 12 13 14 15 答案 B D B C C 题号 16 17 18 19 20 答案 ABCD CE ABDE CD AE 二、问题求解:(第1小题3分,第2-3小题各5分,共13分) [问题1]: 120 [问题2]: 5 [问题3]: 50美分1枚,25美分1枚,10美分4枚,5美分1枚,1美分4枚 三、写出程序的运行结果:(每小题6分,共30分)1、输出结果为: 2、输出结果为: BCDEFGHIJK 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 14 1 1 1 0 3、输出结果为: 4、输出结果为: 8 6 7 1.0 0 0 0 0 0 4 0 0 0 0 7 3 0 0 0 9 6 2 0 0 10 8 5 1 0 5、当程序运行 (1) 输入 A 4 (2) 输入 B 4 (3) 输入 C 4 (4) 输入 D 4 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 8 8 8 8 9时,其输出为______7_____。 9时,其输出为______10____。 9时,其输出为_______14___。 9时,其输出为________0___。 四、完善程序(第1题每空2分第2、3题每空3分,共32分) 第1题 (1) true (2) while (3) flag:=false (4) F(K+2)=true或F(K+2) 第2题 (5) s:=1 (6) (k (8) s+1或s+1;或succ(s) 第3题 (9) a+b或b+a (10) b或c或n (11) a或a; (12) n-a 信息学竞赛初中组初赛模拟试题(三)及答案 一、 选择题:(选出每题正确的答案代码,填在括号里,1—10题为单选题,每小题只有一个正确答案,11—20题为不定项选择题,每小题有一个或一个以上的正确答案,共20题, 15