2003年第九届NOIP初赛试题(提高组) 在这里添加日志标题 您所在的位置:网站首页 第一个为计算机写编程的人 2003年第九届NOIP初赛试题(提高组) 在这里添加日志标题

2003年第九届NOIP初赛试题(提高组) 在这里添加日志标题

2024-07-04 14:15| 来源: 网络整理| 查看: 265

2003年第九届NOIP初赛试题(提高组)  发布日期:  2006-01-22  访问总次数:  3738  第九届分区联赛提高组初赛试题(提高组   PASCAL   语言   二小时完成)●●  全部答案均要写在答案卷子上,写在试卷纸上一律无效  ●●一.单项选择题  (共10题,每题1.5分,共计15分。每题有且仅有一个正确答案.)。1.  图灵 (Alan Turing) 是 (      )。    A) 美国人    B) 英国人     C) 德国人      D) 匈牙利人      E) 法国人2.  第一个给计算机写程序的人是(      )。    A) Alan Mathison Turing    B) Ada Lovelace         C) John von Neumann    D) John Mc-Carthy          E) Edsger Wybe Dijkstra3.  十进制数2003等值于二进制数(      )。    A) 0100000111   B) 10000011    C) 110000111  D) 11111010011  E) 11110100114.  假设A=true,B=false,C=ture,D=ture,逻辑运算表达式A∧B∨C∧D的值是(   )。    A) ture       B) false      C) 0        D) 1       E) NULL5.  一个高度为h 的二叉树最小元素数目是(          )。    A) 2h+1       B) h          C) 2h-1     D) 2h      E) 2h-16.  已知队列(13,2,11,34,41,77,5,7,18,26,15),第一个进入队列的元素是13,则第五个出队列的元素是(         )。    A) 5          B) 41         C) 77        D) 13       E) 187.  下面一段程序是用(       )语言书写的。          int func1(int n){                int i,sum=0;                for(i=1;i y) then        begin         z := z + (b - y + 8) div 9;         x := ((b - y + 8) div 9 * 9 -(b - y)) * 4 + 11 * e + v[c mod 4];         end       else         x := (y - b) * 4 + 11 * e + v[c mod 4];       if (a > x) then         z := z + (a - x + 35) div 36;       writeln(z)     end.输入: 4 7 9 20 56 47                               输出____________________3. program Program3;var  m,n: integer;   mark: Boolean;function test(m,N:integer):integer;  var i,p: integer;   flag: boolean;  begin    m := m - 1;    i := 0;   flag := False;    for p:= 2*N downto (N+1) do    begin      i:= (i+m) mod p;      if (i        begin           test := 0;   flag := Ture;      Break;          end    end;    if not(flag) then     test:=1;  end;begin   read(n);   m:=1;   Mark := False;  repeat    if (test(m,n)=1) then       begin   writeln(m); break;   end;    m:= m+1;  until Mrak;end.输入:7                                             输出_________

4. program Program4;var m,n,i,j: integer;    p,w,a,b: array[0..19] of integer;begin   read(n); m:= 0;  for i:= 0 to n-1 do  begin    read(p[i]);   b[i]:=1;  end;  for i:=0 to  n-1 do    begin       if (i>0) then         a[m]:=p[i]-p[i-1]      else         a[m]:=p[i];      m:=m+1;      while ((m>1) and (a[m-1]=0)) do           begin                  m:=m-1;   b[m]:=1;            end;      if (m>0) then         w[i]:=b[m-1];      else        w[i]:=b[0];      a[m-1]:=a[m-1]-1;      for j:=0 to m-1 do    b[j]:=b[j]+1;      while ((m>1) and (a[m-1]=0)) do           begin                  m:=m-1;   b[m]:=1;            end;    end;    for i:= 0 to n-1 do      begin         write(w[i]);      write(' ');      end;    writeln(' ');  end.输入:9      4 6 6 6 6 8 9 9 9 9 输出:____________________五. 完善程序(共2题,第1题每空3分;第2题每空2分。共计28分)。1. 翻硬币题目描述:    一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后放回原处。在取3枚,取4枚……直至m枚。然后在从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中每一枚又是正面朝上为止。例如,m为1时,翻两次即可。

输    入:仅有的一个数字是这摞硬币的枚数m ,0< m h) then       (2)       ;             pic[y,x]:=UP;  y:=y+1;  x:=x+1;  draw(      (3)      );           end           else begin                y:=y - 1;   pic[y,x]:=DN;     x:=x+1;   draw(k-1,s-1,nth);                end;       end;                    begin       init;       read(nth);       for e:=0 to SZ-1 do         for f:=0 to SZ-1 do           pic[e,f]:= ' ';       x:=0;       y:=0       h:=0;       i:=0;           while ((nth-m[0,2*i,0])>=0) do      begin         nth:= nth-m[0,2*i,0];               (4)        ;      end;      draw(          (5)           );      for i:=h downto x-1 do      begin        for e:=0 to x-1 do         write(pic[i,e]);        writeln(' ');      end;     end.

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有