云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 小学信息奥试卷2009年石狮市信息学奥林匹克竞赛普及组试卷

小学信息奥试卷2009年石狮市信息学奥林匹克竞赛普及组试卷

  • 62 次阅读
  • 3 次下载
  • 2025/12/11 2:23:33

inc(i); end; write(n); end. 输入:9828

输出:_______________________________

25. 阅读以下程序,写出程序的运行结果。 program prog3; const Nmax=100;

var a:array[0..Nmax,0..Nmax] of integer; n,m:integer;

i,j,ans,val:integer; procedure DFS(x,y:integer); begin

if (x<0) or (x>=n) or (y<0) or (y>=m) then exit; if (a[x][y]=0) then exit; a[x][y]:=0;

DFS(x,y-1); DFS(x,y+1); DFS(x-1,y); DFS(x+1,y); end; begin

read(n,m);

for i:=0 to n-1 do for j:=0 to m-1 do read(a[i][j]); ans:=0;

for i:=0 to n-1 do for j:=0 to m-1 do if (1=a[i][j]) then begin DFS(i,j);

ans:=ans+1; end;

writeln('ans=',ans); end. 输入: 5 6

0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0

输出:_______________________________

26. 阅读以下程序,写出程序的运行结果。 program prog4;

var a,x:array[0..99] of integer; n,i,tmp,finish:integer; begin read(n);

for i:=1 to n do a[i]:=0; for i:=1 to n do read(x[i]); finish:=0;

while(finish=0) do begin if (n mod 2=1) then begin a[n-1]:=x[n]; i:=n-3;

while(i>=2) do begin a[i]:=x[i+1]-a[i+2]; i:=i-2; end; a[1]:=x[1]-a[2]; i:=3;

while(i<=n) do begin a[i]:=x[i-1]-a[i-2]; i:=i+2; end;

end else begin a[n-1]:=x[n]; i:=n-3;

while(i>=1) do begin a[i]:=x[i+1]-a[i+2]; i:=i-2; end; a[2]:=x[1]-a[1]; i:=4;

while(i<=n) do begin a[i]:=a[i-1]-a[i-2]; i:=i+2; end; end;

for i:=1 to n do begin

tmp:=a[i]; a[i]:=x[i]; x[i]:=tmp; if (x[i]<0) then finish:=1; end; end;

for i:=1 to n do write(a[i],' '); writeln(); end.

输入:5 5 10 1 9 0

输出:_______________________________

四. 完善程序 (每空3分,共30分)

27. 函数MaxMin求出数组a中的最大值和最小值,其中参数n为数组a中的元素个数。参数min带回最小值,通过函数MaxMin返回最大值max。请填空实现上述功能。 program prog5;

type arr=array[0..6] of integer; var a:arr=(4,6,12,2,9,5,10); min:integer;

function MaxMin(n:integer;var min:integer):integer; var max,i:integer;

begin

max:=a[0]; ;

for i:=1 to n-1 do begin

if (a[i]>max) then max:=a[i] else if ( ) then min:=a[i]; end;

MaxMin:=max; end; begin

writeln('max value is ',MaxMin(7,min)); writeln('min value is ',min); end.

28. 求全排列中下一个排列的算法:

设当前排列为P1 P2 ,…,Pn,则下一个排列可按如下算法完成:

(1).求满足关系式Pi-1 < Pi 的i的最大值,设为mi,即mi=max{i | Pi-1 < Pi , i = 2..n} (2).求满足关系式Pmi-1 < Pj的j的最大值,设为mj,即mj=max{j | Pmi-1 < Pj , j = mi..n} (3).Pmi-1与Pmj互换得 (P) = P1 P2 ,…, Pn

(4).{P} = P1 P2 ,…, Pmi-1 Pmi,…, Pn部分的顺序逆转,得P1 P2 ,…, Pmi-1 Pn Pn-1,…, Pmi便是下一个排列。

(5). 当mi=1的时候,需要特殊处理。 例:设P1 P2 P3 P4 =3421

(1).mi= max{i | Pi-1 < Pi , i = 2..n} = 2 (2).mj=max{j| Pmi-1 < Pj , j =1..n} = 2 (3).P1 与P2 交换得到4321

(4).4321 的321 部分逆转得到4123 即是3421 的下一个排列。 请填空实现上述功能。 program prog6;

type arr=array[0..19] of integer;

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

inc(i); end; write(n); end. 输入:9828 输出:_______________________________ 25. 阅读以下程序,写出程序的运行结果。 program prog3; const Nmax=100; var a:array[0..Nmax,0..Nmax] of integer; n,m:integer; i,j,ans,val:integer; procedure DFS(x,y:integer); begin if (x=n) or (y=m) then exit; if (a[x][y]=0) then e

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com