2003年第九届NOIP初赛试题(提高组) 在这里添加日志标题 | 您所在的位置:网站首页 › 第一个为计算机写编程的人 › 2003年第九届NOIP初赛试题(提高组) 在这里添加日志标题 |
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 实验室设备网 版权所有 |