主题:请教下面的两道填空题
1.用计算机模拟选举。全班50位同学要从10位候选人(编号分别为1——10)中投票选出5位学习标兵,并把他们的编号和票数按得票数由高到低的顺序输出。
输入样例 输出样例
无需输入 7:10 5:8 2:6 4:6 6:4
program test1_45;
var k,j,ph,tem:integer;
ps, bh:array[1..10] of integer;
begin
randomize;
for k:=1 to 10 do begin ps[k]:=0; _________________________ end;
for k:=1 to 50 do
begin
ph:=1+round(9*random);
ps[ph]:=_________________________
end;
for k:=1 to 9 do
for j:=k+1 to 10 do
if __________________________ then
begin
tem:=ps[k];ps[k]:=ps[j];ps[j]:=tem;
tem:=bh[k];bh[k]:=bh[j];bh[j]:=tem;
end;
for k:=1 to 5 do write(bh[k]:5,':',ps[k]);
writeln
end.
2.有一个数列,第一个数为1,第二个数为2,其后每一个数均是前两个数之和,请以每行10个数的格式从小到大打印此数列,打印的最大数不超过2000。
var x,y,z,n:integer;
begin
x:=1;y:=1;n:=2;write(x:6,y:6);z:=x+y;
while _____________________ do
begin
if n mod 10=0 then writeln;
write(z:6); n:=n+1;
x:=y;y:=z; ________________________
end;
end.
输入样例 输出样例
无需输入 7:10 5:8 2:6 4:6 6:4
program test1_45;
var k,j,ph,tem:integer;
ps, bh:array[1..10] of integer;
begin
randomize;
for k:=1 to 10 do begin ps[k]:=0; _________________________ end;
for k:=1 to 50 do
begin
ph:=1+round(9*random);
ps[ph]:=_________________________
end;
for k:=1 to 9 do
for j:=k+1 to 10 do
if __________________________ then
begin
tem:=ps[k];ps[k]:=ps[j];ps[j]:=tem;
tem:=bh[k];bh[k]:=bh[j];bh[j]:=tem;
end;
for k:=1 to 5 do write(bh[k]:5,':',ps[k]);
writeln
end.
2.有一个数列,第一个数为1,第二个数为2,其后每一个数均是前两个数之和,请以每行10个数的格式从小到大打印此数列,打印的最大数不超过2000。
var x,y,z,n:integer;
begin
x:=1;y:=1;n:=2;write(x:6,y:6);z:=x+y;
while _____________________ do
begin
if n mod 10=0 then writeln;
write(z:6); n:=n+1;
x:=y;y:=z; ________________________
end;
end.