| 网站首页 | 学校介绍 | 德育工作 | 家长学校 | 教学教研 | 信息技术 | 书香飘逸 | 资源下载 | 靓图欣赏 | 雁过留声 | 语文 | 
最新公告:     已所不欲,勿施于人,已之所欲,施之于人!  [adminit  2007年4月19日]            生命如流水,只有在他的急流与奔向前去的时候,才美丽,才有意义。 ——张闻天  [旗峰中学  2006年7月8日]            不要让忧愁压在你的心头,也不要让犹豫缠住你的脚步,满天的阴霾终会被风吹散,而晴朗的天空就是你无比辉煌的前程。只有在遭受痛苦经历时,仍然能笑,仍然能乐观的生活的人,才称得起是真正坚强的人。生活是一面镜子,你对它笑,他就对你笑;你对它哭,他也对你哭。  [旗峰中学  2006年7月8日]            勤学如春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏。  [旗峰中学  2005年11月3日]            志不强者智不达,言不信者行不果。  [旗峰中学  2005年11月3日]        
您现在的位置: 旗峰中学校园网 >> 信息技术 >> 信息奥赛 >> 奥赛题库 >> 文章正文
专题栏目
更多内容
最新推荐 更多内容
相关文章
关于举办信息技术新课程
第十四讲 循环语句
信息化建设“金”字工程
有多少健康可以重来
第十一届青少年信息学联
初赛综合练习题
计算机基础知识试题详解
基础知识练习题(二)
基础知识练习题(一)
初赛模拟试题(七)
更多内容
[组图]初赛模拟试题(六)       
初赛模拟试题(六)
作者:admin 文章来源:本站原创 点击数: 更新时间:2005-9-30 13:48:48

第1题
[问题描述]
    将2n个0和2n个1,排成一个圈。从任一个位置开始,每次按逆时针的方向以长度
为n+1的单位进行数二进制数。要求给出一种排法,用上面的方法产生出来的2n+1个二
进制数都不相同。例如,当n=2时,即22个0和22个1排成如下一圈:

比如,从A位置开始,逆时针方向取三个数000,然后再从B位置上开始取三个数001,
接着从C开始取三个数010,…可以得到000,001,010,101,011,111,110,100共8
个二进制数且都不相同。
[程序说明]
    以N=4为例,即有16个0,16个1,数组A用以记录32个0,1的排法,数组B统计二进
制数是否已出现过。
[程序清单]
PROGRAM NOI00;
VAR
  A :ARRAY[1..36] OF 0..1;
  B :ARRAY[0..31] OF INTEGER;
  I,J,K,S,P:INTEGER;
BEGIN
  FOR I:=1 TO 36 DO A[I]:=0;
  FOR I:=28 TO 32 DO A[I]:=1;
  P:=1;A[6]:=1;
  WHILE (P=1) DO
  BEGIN
    J:=27;
    WHILE A[J]=1 DO J:=J-1;
    ( ① )
    FOR I:=J+1TO 27 DO( ② )
    FOR I:=0 TO 31 DO B[1]:=O;
    FOR I:=1 TO 32 DO
    BEGIN
     ( ③ )
      FOR K:=I TO I+4 DO S:=S*2+A[K];
     ( ④ )
    END;
    S:=0;
    FOR I:=0 TO 31 DO S:=S+B[I];
    IF(  ⑤  )THEN P:=0
  END;
  FOR I:=1 TO 32 DO FOR J:=I TO I+4 DO WRITE(A[J]);
  WRITELN
END.

第2题
[问题描述]
    多项式乘法运算:p(x)=2x2-x+1,q(x)=x+1
    p(x)*q(x)=(2x2-x+1)(x+1)=2x3+x2+1
[程序说明]
    多项式的表示:系数、指数
    如上例中:p(x) 系数  指数  q(x) 系数  指数
                    2    2            1    1
                   -1    1            1    0
                    1    0            0    0
                    0    0
    p*q的结果存入c中。其输出格式是:依次用一对括号内的(系数、指数)分别来表示。
如上例的输出结果表示为:(2,3)(1,2)(1,0)
[程序清单]
begin
  jp:=0;
  readln(x,y);
  while x <> 0 do
  begin
    jp:=jp+l;  p[jp,1]:=x;
    p[jp,2]:=y;readln(x,y);
  end;
  jq:=0;
  readln(x,y);
  while x <> 0 do
    begin
      jq:=jq+1;  q[jq,1]:=x;
       q[jq,2]:=y; readln(x,y);
    end;
  jc:=1;c[jc,1]:=0; c[jc,2]:=-1000;
  for i:= 1 to jp do
  begin
    ___(1)___
    y:=p[i,2];
    for j:= 1 to jq do
    begin
      ___(2)___
      y1:=y+q[j,2];
      k:=1;
      while y1 < c[k,2] do k:=k+1;
      if y1 = c[k,2] then ___(3)___
      else begin
        for l:= jc downto k do
        begin
          c[l+1,1]:=c[l,1];
          c[l+1,2]:=c[l,2];
        end;
      c[k,1]:=x1;c[k,2]:=y1;
      ___(4)___
    end;
  end;
  for i:=1 to jc do
   if ___(5)___ then write('(',c[i,1],',',c[i,2],')') ;
end.

第3题
[问题描述]
    求出一棵树的深度和宽度。例如有如下的一棵树:
其树的深度为从根结点开始到叶结点结束的最大深度,树的宽度为同一层上结点数的
最大值。在上图中树的深度为4,宽度为3。

用邻接表来表示树,上图中的树的邻接表示如下:
1 2 3 4 0 0
2 0 0 0 0 0
3 5 0 0 0 0
4 6 0 0 0 0
5 0 0 0 0 0
6 7 0 0 0 0
7 0 0 0 0 0

[程序清单]
PROGRAM NOI00_6;
VAR I,J,SP1,SP2,L,MAX:INTEGER; TREE:ARRAY[1..20,1..6]OF INTEGER;
  Q:ARRAY[1..100,0..6] OF INTEGER; D:ARRAY[0..20]OF INTEGER;
BEGIN
  FOR I:=1 TO 14 DO FOR J:=1 TO 6 DO TREE[I,J]:=O;
  FOR J:=1 TO 14 DO TREE[J,1]:=J;
  TREE[1,2]:=2; TREE [1,3]:=3; TREE[1,4]:=4; TREE[2,2]:=5;
  TREE[2,3]:=6; TREE [3,2]:=7; TREE[3,3]:=8; TREE[4,2]:=9;
  TREE[4,3]:=10; TREE[4,4]:=11; TREE[7,2]:=12;
  TREE[7,3]:=13; TREE[13,2]:=14;
  SP1:=1; SP2:=1;
  FOR I:=1 TO 6 DO Q[1,I]:=TREE[1,I];
  Q[1,0]:=1;
  WHILE(  ① ) DO
  BEGIN
    L:=( ② ); J:=2;
    WHILE( ③ )DO
    BEGIN
      SP2:=SP2+1;Q[SP2,0]:=L;Q[SP2,1]:=Q[SP1,J];
      FOR I:=2 TO 6 DO
      Q[SP2,I]:=TREE[Q[SP1,J],I];
      J:=J+1
    END;
    SP1:=SP1+1
  END;
  WRITELN( ④ )
  FOR I:=0 TO 20 DO D[I]:=0;
  FOR I:=1 TO SP2 DO
    D[Q[I,0]]:=( ⑤ )
  MAX:=D[1];
  FOR I:=2 TO 20 DO
    IF D[I]>MAX THEN MAX:=D[I];
  WRITELN(MAX);
  READLN;
END.

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |