当前位置:首页 >> 学科竞赛 >>

2007-2011年noip初赛提高组试题及答案


第十七届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 Pascal 语言 两小时完成 )

●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●

一、单项选择题(共 20 题,每题 1.5 分。共计 30 分。每题有且仅有一个正确选项。 ) 1.在二进制下,1100011 +( )= 1110000。 A.101

1 B.1101 C.1010 D.1111

2.字符“A”的 ASCII 码为十六进制 41,则字符“Z”的 ASCII 码为十六进制的( ) 。 A.66 B.5A C.50 D.视具体的计算机而定

3.右图是一棵二叉树,它的先序遍历是( ) 。 A.ABDEFC B.DBEFAC C.DFEBCA D.ABCDEF

4.寄存器是( )的重要组成部分。 A.硬盘 B.高速缓存 C.内存 D.中央处理器(CPU)

5.广度优先搜索时,需要用到的数据结构是( ) 。 A.链表 B.队列 C.栈 D.散列表

6.在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指( ) 。 A.程序运行时理论上所占的内存空间 B.程序运行时理论上所占的数组空间 C.程序运行时理论上所占的硬盘空间 D.程序源文件理论上所占的硬盘空间 7.应用快速排序的分治思想,可以实现一个求第 K 大数的程序。假定不考虑极端的最坏情 况,理论上可以实现的最低的算法时间复杂度为( ) 。 A.O(n2)B.O(n log n)C.O(n) D.O(1)

8.为解决 Web 应用中的不兼容问题,保障信息的顺利流通, )制定了一系列标准,涉 ( 及 HTML、XML、CSS 等,并建议开发者遵循。 A.微软 B.美国计算机协会(ACM) C.联台国教科文组织 D.万维网联盟(W3C)

9.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个 同学按顺序来到操场时, 都从排尾走向排头, 找到第一个比自己高的同学, 并站在他的后面。 这种站队的方法类似于( )算法。 A.快速排序 10.1956 年( B.插入排序 C.冒泡排序 D.归并排序

)授予肖克利(William Shockley) 、巴丁(John Bardeen)和布

拉顿(Walter Brattain),以表彰他们对半导体的研究和晶体管效应的发现。 A.诺贝尔物理学奖 B.约翰?冯?诺依曼奖 C.图灵奖 D.高德纳奖(Donald E.Knuth Prize) 二、不定项选择题(共 10 题,每题 1.5 分,共计 15 分。每题有一个或多个正确选项。 多选或少选均不得分。 ) 1.如果根结点的深度记为 1,则一棵恰有 2011 个叶子结点的二叉树的深度可能是( ) 。 A.10 B.11 C.12 D.2011

2.在布尔逻辑中,逻辑“或”的性质有( ) 。 A.交换律:P V Q = Q V P B.结台律:P V ( Q V R ) = ( P V Q ) V R C.幂等律:P V P = P D.有界律:P V 1 = 1 (1 表示逻辑真) 3.一个正整数在十六进制下有 100 位,则它在二进制下可能有( )位。 A.399 B.400 C.401 D.404

4.汇编语言( ) 。 A.是一种与具体硬件无关的程序设计语言 B.在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试 C.可以直接访问寄存器、内存单元、I/O 端口 D.随着高级语言的诞生,如今已完全被淘汰,不再使用 5.现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由 4 个汉字“之”“乎”“者”“也”组成,它们出现的次数分别为 700、600、300、400。 、 、 、 那么, “也”字的编码长度可能是( ) 。 A.1 B.2 C.3 D.4

6.生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。目前,指纹识别、 虹膜识别、人脸识别等技术己广泛应用于政府、银行、安全防卫等领域。以下属于生物特征

识别技术及其应用的是( ) 。 A.指静脉验证 B.步态验证 C.ATM 机密码验证 D.声音验证

7.对于序列“7、5、1、9、3、6、8、4” ,在不改变顺序的情况下,去掉( )会使逆序 对的个数减少 3。 A.7 B.5 C.3 D.6

8.计算机中的数值信息分为整数和实数(浮点数) 。实数之所以能表示很大或者很小的数, 是由于使用了( ) 。 A.阶码 B.补码 C.反码 D.较长的尾数

9.对右图使用 Dijkstra 算法计算 S 点到其余各点的最短路径 长度时,到 B 点的距离 d[B]初始时赋为 8,在算法的执行过程 中还会出现的值有( ) 。 A.3 B.7 C.6 D.5

10.为计算机网络中进行数据交换而建立的规则、标准或约定的集合成为网络协议。下列 英文缩写中, )是网络协议。 ( A.HTTP B.TCP/IP C.FTP D.WWW

三、问题求解(共 2 题,每题 5 分,共计 10 分) 1.平面图是可以画在在平面上,且它的边仅在顶点上才能相交的简单 无向图。4 个顶点的平面图至多有 6 条边,如右图所示。那么,5 个顶 点的平面图至多有______条边。

2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符 串”BcA”,可以将 A 移到 B 之前,变成字符串”ABC”。如果要将字符串”DACHEBGIF”变 成”ABCDEFGHI”,最少需要________次操作。 四、阅读程序写结果(共 4 题,每题 8 分,共计 32 分)

1. Const SIZE = 100; var n, i, sum, x : integer; a : array[1..SIZE] of integer; begin readln(n); fillchar(a, sizeof(a), 0); for i:= 1 to n do begin read(x); inc(a[x]); end;

i := 0; sum := 0; while sum < (n div 2 + 1) do begin inc(i); sum :=sum + a[i]; end; writeln(i); end.

输入: 11 4 5 6 6 4 3 3 2 3 2 1 输出:

2. var n : integer; procedure f2(x, y : integer); forward;

procedure f1(x, y : integer); begin if x < n then f2(y, x + y); end;

procedure f2(x, y : integer); begin write(x, ’ ’); f1(y, x + y); end;

begin readln(n); f1(0, 1); end.

输入:30 输出:_____________

3. const V = 100;

var visited : array[1..v] of boolean; e : array[1..V, 1..V] of integer; n, m, ans, i, j, a, b, c : integer;

procedure dfs(x, len : integer); var I : integer; begin visited[x] := true; if len > ans then ans := len;

for i := 1 to n do

if (not visited[i]) and (e[x, i] <> -1) then dfs(i, len + e[x, i]); visited[x] := false; end; begin readln(n, m); for i := 1 to n do for j := 1 to n do e[i][j] := -1; for i := 1 to m do begin readln(a, b, c); e[a][b] := c; e[b][a] := c; end; for i := 1 to n do visited[i] := false; ans := 0; for i := 1 to n do dfs(i, 0); writeln(ans); end. 输入: 4 6 1 2 10 2 3 20 3 4 30 4 1 40 1 3 50 2 4 60 输出:__________

4. const

SIZE = 10000; LENGTH = 10;

var sum : longint; n, m, i, j : integer; a : array[1..SIZE, 1..LENGTH] of integer;

function h(u, v : integer) : integer; var ans, i : integer; begin ans := 0; for i := 1 to n do if a[u][i] <> a[v][i] then inc(ans); h := ans; end;

begin readln(n); filichar(a, sizeof(a), 0); m := 1; repeat i := 1; while (i <= n) and (a[m][i] = 1) do inc(i); if i > n then break; inc(m); a[m][i] :=1; for j := i + 1 to n do a[m][j] := a[m - 1][j]; until false; sum :=0; for i := 1 to m do for j := 1 to m do sum := sum + h(i, j);

writeln(sum);

end.

输入:7 输出:____________

五、完善程序(第 1 题,每空 2 分,第 2 题,每空 3 分,共计 28 分) 1. (大整数开方)输入一个正整数 n(1≤n<10100) ,试用二分法计算它的平方根的整数 部分。 const SIZE = 200;

type hugeint = record len : integer; num : array[1..SIZE] of integer; end; //len 表示大整数的位数;num[1]表示个位、num[2]表示十位,以此类推

var s : string; i : integer; target, left, middle, right : hugeint;

function times(a, b : hugeint) : hugeint: var i, j : integer; ans : hugeint; begin filIchar(ans, sizeof(ans), 0); for i := 1 to a.1en do for j := 1 to b.1en do ___①___ := ans.num[i + j — 1] + a.num[i] * b.num[j]; for i := 1 to a.len + b.1en do begin ans.num[i + 1] := ans.num[i + 1] + ans.num[i] div 10; ___②___;

if ans.num[a.1en + b.1en] > 0 then ans.len := a.1en + b.1en else ans.len :=a.1en + b.1en – 1; end; times := ans; end;

function add(a, b : hugeint) : hugeint; var i : integer; ans : hugeint; begin fillchar(ans.num, sizeof(ans.num), 0); if a.1en > b.1en then ans.len := a.1en else ans.len := b.len; for i := 1 to ans.1en do begin ans.num[i] :=___③___; ans.num[i + 1] := ans.num[i + 1] + ans.num[i] div 10; ans.num[i] := ans.num[i] mod 10; end; if ans.num[ans.1en + 1] > 0 then inc(ans.len); add:=ans; end;

function average(a, b : hugeint) : hugeint; var i : integer; ans : hugeint; begin ans := add(a, b); for i := ans.1en downto 2 do begin ans.num[i - 1] := ans.num[i - 1] + (___④___) * 10;

ans.num[i] := ans.num[i] div 2; end;

ans.num[i] := ans.num[i] div 2; if ans.num[ans.len] = 0 then dec(ans.len); average := ans; end;

function plustwo(a : hugeint) : hugeint; var i : integer; ans : hugeint; begin ans := a; ans.num[1] := ans.num[1] + 2; i := 1; while(i <= ans.len) and (ans.num[i] >= 10) do begin ans.num[i + 1] := ans.num[i + 1] + ans.num[i] div 10; ans.num[i] := ans.num[i] mod 10; inc(i); end; if ans.num[ans.len + 1] > 0 then___⑤___; plustwo := ans; end;

function over(a, b : hugeint) : boolean; var i : integer; begin if(___⑥___)then begin over := false; exit; end; if a.1en > b.1en then begin

over := true; exit;

end; for i := a.len downto 1 do begin if a.num[i] < b.num[i] then begin over := false; exit; end; if a.num[i] > b.num[i] then begin over := true; exit; end; end; over := false; end;’

begin readln(s); fillchar(target.num, sizeof(target.num), 0); target.1en := 1ength(s); for i := 1 to target.1en do target.num[i] := ord(s[target.1en – i + 1]) - ___⑦___; filichar(left.num, sizeof(1eft.num), 0); left.1en := 1; left.num[i] := 1; right := target; repeat middle := average(1eft, right); if over(___⑧___) then right := middle else 1eft := middle; until over(plustwo(1eft), right); for i := left.1en downto 1 do write(1eft.num[i]); writeln;

end.

2. (笛卡尔树)对于一个给定的两两不等的正整数序列,笛卡尔树是这样的一棵二叉树: 首先,它是一个最小堆,即除了根结点外,每个结点的权值都大于父节点的权值;其次,它 的中序遍历恰好就是给定的序列。例如,对于序列 7、2、12、1、10、5、15、3,下图就 是一棵对应的笛卡尔树。现输入序列的规模 n(1≤n<100)和序列的 n 个元素,试求其对 应的笛号尔树的深度 d(根节点深度为 1), 以及有 多少个叶节点的深度为 d。

const SIZE = 100; INFINITY = 1000000;

var n, maxDeep, num, i : integer; a : array[1..SIZE] of integer;

procedure solve(1eft, right, deep : integer); var i, j, min : integer; begin if deep > maxDeep then begin maxDeep := deep; num := 1; end else if deep = maxDeep then ___①___;

min := INFINITY; for i := 1eft to right do if min > a[i] then begin min := a[i]; ___②___; end; if left < j then ___③___;

if j < right then

___④___; end;

begin readln(n); for i := 1 to n do read(a[i]); maxDeep := 0; solve(1, n, 1); writeln(maxDeep, ‘ ’, num); end.

第十六届(2010 年)全国青少年信息学奥林匹克联赛初赛 试题
( 提高组 Pascal 语言 二小时完成 )

●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一、单项选择题 1.与 16 进制数 A1.2 等值的 10 进制数是 ( )A.101.2 D.177.25 2.一个字节(byte)由( 可能 3.以下逻辑表达式的值恒为真的是( A.P∨(┓P∧Q)∨(┓P∧┓Q) C.P∨Q∨(P∧┓Q)∨(┓P∧Q) )。 B.Q∨(┓P∧Q)∨(P∧┓Q) D.P∨┓Q∨(P∧┓Q)∨(┓P∧┓Q) )。 A. exe B. com C. dll D. )个二进制组成。 A.8 B.16 C.32 D.以上都有 B.111.4 C.161.125

4.Linux 下可执行文件的默认扩展名是( 以上都不是

5.如果在某个进制下等式 7*7=41 成立,那么在该进制下等式 12*12=( )也成立。 A. 100 B. 144 C. 164 D. 196

6.提出“存储程序”的计算机工作原理的是( )。 A. 克劳德?香农 B.戈登?摩尔 C.查尔斯?巴比奇 12 ” 的值是( )。A. 23 D.冯?诺依曼 B. 25 C. 37

7.前缀表达式“+ 3 * 2 + 5 D. 65

8.主存储器的存取速度比中央处理器(CPU)的工作速度慢的多,从而使得后者的效率受到影响。 而根据局部性原理,CPU 所访问的存储单元通常都趋于一个较小的连续区域中。于是,为了提高 系统整体的执行效率,在 CPU 中引入了( D.外存 9.完全二叉树的顺序存储方案, 是指将完全二叉树的结点从上到下、 从左到右依次存放到一个顺 序结构的数组中。假定根结点存放在数组的 1 号位置上,则第 k 号结点的父结点如果存在的话, 应当存放在数组中的( (k+1)/2 10.以下竞赛活动中历史最悠久的是( 二、不定项选择题 1.元素 R1、R2、R3、R4、R5 入栈的顺序为 R1、R2、R3、R4、R5。如果第 1 个出栈的是 R3,那么 第 5 个出栈的可能是( 编译性语言 )。A.R1 B.R2 C.R4 D.R5 B.自然语言 C.解释性语言 D. 2. Pascal 语言,C 语言和 C++语言都属于( )。A.高级语言 )。A. NOIP B.NOI C. IOI D. APIO )号位置。 A. 2k B. 2k+1 C. k/2 下取整 D. )。A.寄存器 B.高速缓存 C.闪存

3. 原地排序是指在排序过程中(除了存储待排序元素以外的)辅助空间的大小与数据规模无关的 排序算法。 以下属于原地排序的有( 选择排序 4. 在整数的补码表示法中,以下说法正确的是( A.只有负整数的编码最高位为 1 数的绝对值相同 C.整数 0 只有一个唯一的编码 则表示运算溢出 5. 一颗二叉树的前序遍历序列是 ABCDEFG, 后序遍历序列是 CBFEGDA, 则根结点的左子树的结点 个数可能是( )。 A.0 B. 2 C. 4 D. 6 )。 D.两个用补码表示的数相加时,若在最高位产生进位, )。 )。 A.冒泡排序 B.插入排序 C.基数排序 D.

B.在编码的位数确定后,所能表示的最小整数和最大整

6. 在下列 HTML 语句中,可以正确产生一个指向 NOI 官方网站的超链接的是( A.<a url=”h t t p : / / w w w . n o i . c n”>欢迎访问 NOI 网站</a> B.<a href=”h t t p : / / w w w . n o i . c n”>欢迎访问 NOI 网站</a> C.<a>h t t p : / / w w w . n o i . c n</a> D.<a name”h t t p : / / w w w . n o i . c n”>欢迎访问 NOI 网站</a> 7. 关于拓扑排序,下列说法正确的是( A.所有连通的有向图都可以实现拓扑排序 B.对同一个图而言,拓扑排序的结构是唯一的 C.拓扑排序中入度为 0 的结点总会排在入度大于 0 的结点的前面 D.拓扑排序结果序列中的第一个结点一定是入度大于 0 的点 )。

8. 一个平面的法线是指与该平面垂直的直线。过点(1,1,1)、(0,3,0)、(2,0,0)的平面的法线 是( )。 B.过点(1,1,1)、(3,2,1)的直线 D.过点(2,0,0)、(5,2,1)的直线 A.过点(1,1,1)、(2,3,3)的直线 C.过点(0,3,0)、(-3,1,1)的直线

9.双向链表中有两个指针域 llink 和 rlink,分别指向该结点的前驱及后继。设 p 指向链表中的 一个结点,他的左右结点均为非空。现要求删除结点 p,则下列语句序列中正确的是( A.p->rlink->llink=p->rlink; p->llink->rlink=p->llink; delete p; B.p->llink->rlink=p->rlink; p->rlink->llink = p->llink; delete p; C.p->rlink->llink = p->llink; p->rlink->llink ->rlink = p->rlink; delete p; D.p->llink->rlink = p->rlink; p->llink->rlink->link = p->llink; delete p; 10. 今年(2010 年)发生的事件有( )。 )。

A.惠普实验室研究员 Vinay Deolalikar 自称证明了 P≠NP B.英特尔公司收购计算机安全软件公司迈克菲(McAfee) C.苹果公司发布 iPhone 4 手机 三、问题求解 D.微软公司发布 Windows 7 操作系统

1.LZW 编码是一种自适应词典编码。在编码的过程中,开始时只有一部基础构造元素的编码词 典,如果在编码的过程中遇到一个新的词条,则该词条及一个新的编码会被追加到词典中,并用 于后继信息的编码。 举例说明,考虑一个待编码的信息串:“xyx yy yy xyx”。初始词典只有 3 个条目,第一 个为 x,编码为 1; 第二个为 y, 编码为 2; 第三个为空格, 编码为 3; 于是串“xyx”的编码为 1-2-1 (其中-为编码分隔符),加上后面的一个空格就是 1-2-1-3。但由于有了一个空格,我们就知 道前面的“xyx”是一个单词,而由于该单词没有在词典中,我们就可以自适应的把这个词条添 加到词典里,编码为 4,然后按照新的词典对后继信息进行编码,以此类推。于是,最后得到编 码:1-2-1-3-2-2-3-5-3-4。 我们可以看到,信息被压缩了。压缩好的信息传递到接受方,接收方也只要根据基础词典 就可以完成对该序列的完全恢复。 解码过程是编码过程的逆操作。 现在已知初始词典的 3 个条目 如上述,接收端收到的编码信息为 2-2-1-2-3-1-1-3-4-3-1-2-1-3-5-3-6,则解码后的信息串 是”____________”。 2.无向图 G 有 7 个顶点,若不存在由奇数条边构成的简单回路,则它至多有__________条边。 3.记 T 为一队列,初始时为空,现有 n 个总和不超过 32 的正整数依次入列。如果无论这些数具 体为何值,都能找到一种出队的方式,使得存在某个时刻队列 T 中的数之和恰好为 9,那么 n 的 最小值是___________。 四、阅读程序写结果

1. const size = 10; var i, j, cnt, n, m : integer; data : array[1..size] of integer; begin readln(n, m); for i := 1 to n do read(data[i]); for i := 1 to n do begin cnt := 0; for j := 1 to n do if (data[i] < data[j]) or ((data[j] = data[i]) and (j < i)) then inc(cnt); if cnt = m then writeln(data[i]); end; end. 输入 5 2 96 -8 0 16 87 输出:__________ 2. const size = 100;

var na, nb, i, j, k : integer; a, b : array[1..size] of integer; begin readln(na); for i := 1 to na do read(a[i]); readln(nb); for i := 1 to nb do read(b[i]); i := 1; j := 1; while (i <= na) and (j <= nb) do begin if a[i] <= b[j] then begin write(a[i],' '); inc(i); end else begin write(b[j], ' '); inc(j); end; end; if i <= na then for k := i to na do write(a[k], ' '); if j <= nb then for k := j to nb do write(b[k], ' '); end. 输入 5 1 3 5 7 9 4 2 6 10 14 输出:__________ 3. const num = 5; var n: integer; function r(n : integer) : integer; var i : integer; begin if n <= num then begin

r := n; exit; end; for i :=1 to num do if r(n-i) < 0 then begin r:=i; exit; end; r:=-1; end; begin readln(n); writeln(r(n)); end. 输入 16 输出:__________ 4. const size=100; var n,m,x,y,i :integer; r: array[1.. size] of integer; map : array[1..size, 1..size] of boolean; found : boolean; function successful : boolean; var i : integer; begin for i :=1 to n do if not map[r[i]][r[i mod n + 1]] then begin successful := false; exit; end; successful :=true; end; procedure swap(var a, b : integer); var t : integer; begin t := a; a := b; b := t; end; procedure perm(left, right : integer); var i : integer;

begin if found then exit; if left > right then begin if successful then begin for i := 1 to n do writeln(r[i], ' '); found := true; end; exit; end; for i:= left to right do begin swap(r[left], r[i]); perm(left + 1, right); swap(r[left], r[i]); end; end; begin readln(n, m); fillchar(map, sizeof(map), false); for i := 1 to m do begin readln(x, y); map[x][y] := true; map[y][x] := true; end; for i := 1 to n do r[i] := i; found := false; perm(1, n); if not found then writeln('No soloution'); end. 输入: 9 12 1 2 2 3 3 4 4 5 5 6 6 1 1 7 2 7 3 8 4 8 5 9 6 9 输出:__________

五、完善程序
1.(过河问题) 在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸.在伸 手不见五指的黑夜里,过桥时必须借照灯光来照明,不幸的是,他们只有一盏灯.另外,独木桥上最多能承受 两个人同时经过,否则将会坍塌.每个人单独过独木桥都需要一定的时间,不同的人要的时间可能不同.两个 人一起过独木桥时,由于只有一盏灯,所以需要的时间是较慢的那个人单独过桥所花费的时间.现在输入 N(2<=N<1000)和这 N 个人单独过桥需要的时间,请计算总共最少需要多少时间,他们才能全部到达河左岸. 例如,有 3 个人甲、乙、丙,他们单独过桥的时间分别为 1 方法是:甲 时间为 2+1+4=7. 2 4,则总共最少需要的时间为 7.具体 乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回,然后甲,丙在一起过桥到河的左岸,总

const SIZE = 100; INFINITY = 10000; LEFT = true; RIGHT = false; LEFT_TO_RIGHT = true; RIGHT_TO_LEFT = false; var n, i : integer; time : array[1..Size] of integer; pos :array[1..Size] of Boolean; function max(a, b :integer) : integer; begin if a > b then max := a else max := b; end; function go(stage : boolean) : integer; var i, j, num, tmp, ans : integer; begin if (stage = RIGHT_TO_LEFT) then begin num := 0; ans :=0; for i := 1 to n do if pos[i] = Rignt then begin inc(num); if time[i] > ans then ans := time[i]; end; if __________ then begin go := ans; exit; end; ans := INFINITY;

for i := 1 to n – 1 do if pos[i] = RIGHT then for j := i+1 to n do if pos[j] = RIGHT then begin pos[i] := LEFT; pos[j] := LEFT; tmp := max(time[i], time[j]) + _______; if tmp < ans then ans := tmp; pos[i] := RIGHT; pos[j] := RIGHT; end; go := ans; end else if (stage = LEFT_TO_RIGHT) then begin ans := INFINITY; for i := 1 to n do if _______ then begin pos[i] := RIGHT; tmp := ________; if tmp < ans then ans := tmp; _________; end; go := ans; end else go := 0; end; begin readln(n); for i := 1 to n do begin read(time[i]); pos[i] := RIGHT; end; writeln(go(RIGHT_TO_LEFT)); end. 2.(烽火传递)烽火台又称烽燧,是重要的军事防御设施,一般建在险要处或交通要道上。 一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息;夜晚燃烧干柴,以火光传递军情。在 某两座城市之间有 n 个烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确地 传递,在连续 m 个烽火台中至少要有一个发出信号。现输入 n、m 和每个烽火台发出信号的 代价,请计算总共最少花费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确 传递。 例如,有 5 个烽火台,它们发出信号的代价依次为 1、2、5、6、2,且 m 为 3,则总 共最少花费的代价为 4,即由第 2 个和第 5 个烽火台发出信号。 const

SIZE= 100; var n. m, r, i : integer; value, heap, pos, home, opt : array[l..SIZEl of integer; //heap [i]表示用顺序数组存储的堆 heap 中第 i 个元素的值 //pos [i]表示 opt [i]在堆 heap 中的位置,即 heap lpos [i]] =opt [i] //home [i]表示 heap [i]在序列 opt 中的位置,即 opt [home [i]] =heap [i] procedure swap (i, j : integer)j //交换堆中的第 i 个和第 j 个元素 var tmp : integer; begin pos [home [i]] :=j; pos [home[j]] :=i; tmp :=heap [i]; heap [i] :=heap [j]; heap [j] :=tmp; tmp :=home [i]; home [i] :=home[j]; home [j] := tmp; end; procedure add (k : integer) ; //在堆中插入 opt[k] var i : integer; begin inc (r) ; heap [r] := ① pos [k] := r; ② while (i > 1) and (heap[i] < heap[i div _2]) do begin swap (i, i div 2); i := i div 2; end; end; procedure remove (k : integer) ; //在堆中删除 opt[k] var i, j : integer; begin i := pos [k] ; swap (i, r) ; dec (r) ;

if i = r + 1 then exit; while (i > 1) and (heap [i] < heap[i div 2]) do begin swap (i, i div 2); i := i div 2; end; while i + i <= r do begin if (i + i + 1 <= r) and (heap[i + i + 1] < heap[i + i]) then j:=i+i+l else ③ if heap [i] > heap [j] then begin ④ i: = j end else break; end; end; begin readln (n, m) ; for i := 1 to n do read (value [i] ) ; r := 0; for i := 1 to m do begin opt [il := value [i] ; add (i) ; end; for i := m + 1 to n do begin opt[i] := ⑤ remove ( ⑥ ) add (i) ; end; writeln (heap [1] ) ; end.

第十五届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 Pascal 语言 二小时完成 )

●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●

一. 单项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题有且仅有一个正确答案。 ) 1、关于图灵机下面的说法哪个是正确的: A) 图灵机是世界上最早的电子计算机。 B) C) 由于大量使用磁带操作,图灵机运行速度很慢。 图灵机只是一个理论上的计算模型。

D) 图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。 2、关于 BIOS 下面的说法哪个是正确的: A) BIOS 是计算机基本输入输出系统软件的简称。 B) C) BIOS 里包含了键盘、鼠标、声卡、图形界面显器等常用输入输出设备的驱动程序。 BIOS 一般由操作系统厂商来开发完成。

D) BIOS 能提供各种文件拷贝、复制、删除以及目录维护等文件管理功能。 3、已知大写字母A的ASCII编码为65(十进制) ,则大写字母J的 十六进制 ASCII编码为: A) 48 B) 49 C) 50 D) 以上都不是

4、在字长为 16 位的系统环境下,一个 16 位带符号整数的二进制补码为 1111111111101101。其对应的十进 制整数应该是: A) 19 B) -19 C) 18 D) -18

5、一个包含 n 个分支结点(非叶结点)的非空满 k 叉树,k>=1,它的叶结点数目为: A) nk + 1 B) nk-1 C) (k+1)n-1 D. (k-1)n+1

6. 表达式 a*(b+c)-d 的后缀表达式是: A) abcd*+B) abc+*dC) abc*+dD) -+*abcd

7、 最优前缀编码, 也称 Huffman 编码。 这种编码组合的特点是对于较频繁使用的元素给与较短的唯一编码, 以提高通讯的效率。下面编码组合哪一组不是合法的前缀编码。 A)(00,01,10,11) B)(0,1,00,11) C)(0,10,110,111) D)(1,01,000,001)

8、快速排序平均情况和最坏情况下的算法时间复杂度分别为: A) 平均情况 O(nlog2n),最坏情况 O(n2) B) 平均情况 O(n), C) 平均情况 O(n), 最坏情况 O(n2) 最坏情况 O(nlog2n)

D) 平均情况 O(log2n), 最坏情况 O(n2) 9、左图给出了一个加权无向图,从顶点 V0 开始用 prim 算法求最小生成树。则依 次加入最小生成树的顶点集合的顶点序列 为: A) V0, V1, V2, V3, V5, V4

B) V0, V1, V5, V4, V3, V3 C) V1, V2, V3, V0, V5, V4 D) V1, V2, V3, V0, V4, V5

10、全国信息学奥林匹克的官方网站为参与信息学竞赛的老师同学们提供相关的信息和资源,请问全国信 息学奥林匹克官方网站的网址是: A) http://www.noi.com/ C) http://www.noi.cn/ B) http://www.noi.org/ D) http://www.xinxixue.com/

二. 不定项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题正确答案的个数不少于 1。多选或少选均 不得分) 。 1、关于 CPU 下面哪些说法是正确的: A) B) C) D) CPU 全称为中央处理器(或中央处理单元) 。 CPU 能直接运行机器语言。 CPU 最早是由 Intel 公司发明的。 同样主频下,32 位的 CPU 比 16 位的 CPU 运行速度快一倍。

2、关于计算机内存下面的说法哪些是正确的: A) 的。 B) C) D) 一般的个人计算机在同一时刻只能存/取一个特定的内存单元。 计算机内存严格说来包括主存(memory) 、高速缓存(cache)和寄存器(register)三个部分。 1MB 内存通常是指 1024*1024 字节大小的内存。 随机存储器(RAM)的意思是当程序运行时,每次具体分配给程序的内存位置是随机而不确定

3、关于操作系统下面说法哪些是正确的:

A. B. C.

多任务操作系统专用于多核心或多个 CPU 架构的计算机系统的管理。 在操作系统的管理下,一个完整的程序在运行过程中可以被部分存放在内存中。 分时系统让多个用户可以共享一台主机的运算能力,为保证每个用户都得到及时的响应通常会采 用时间片轮转调度的策略。 为了方便上层应用程序的开发,操作系统都是免费开源的。

D.

4、关于计算机网络,下面的说法哪些是正确的: A) B) C) D) 网络协议之所以有很多层主要是由于新技术需要兼容过去老的实现方案。 新一代互联网使用的 IPv6 标准是 IPv5 标准的升级与补充。 TCP/IP 是互联网的基础协议簇,包含有 TCP 和 IP 等网络与传输层的通讯协议。 互联网上每一台入网主机通常都需要使用一个唯一的 IP 地址,否则就必须注册一个固定的域名 来标明其地址。 5、关于 HTML 下面哪些说法是正确的: A) B) C) D) HTML 全称超文本标记语言,实现了文本、图形、声音乃至视频信息的统一编码。 HTML 不单包含有网页内容信息的描述,同时也包含对网页格式信息的定义。 网页上的超链接只能指向外部的网络资源,本网站网页间的联系通过设置标签来实现。 点击网页上的超链接从本质上就是按照该链接所隐含的统一资源定位符(URL)请求网络资源或 网络服务。 6、若 3 个顶点的无权图 G 的邻接矩阵用数组存储为{{0,1,1},{1,0,1},{0,1,0}},假定在具体存 储中顶点依次为: v1,v2,v3 关于该图,下面的说法哪些是正确的: A) B) C) D) 该图是有向图。 该图是强连通的。 该图所有顶点的入度之和减所有顶点的出度之和等于 1。 从 v1 开始的深度优先遍历所经过的顶点序列与广度优先的顶点序列是相同的。

7、在带尾指针(链表指针 clist 指向尾结点)的非空循环单链表中每个结点都以 next 字段的指针指向下一 个节点。假定其中已经有 2 个以上的结点。下面哪些说法是正确的: A) 如果 p 指向一个待插入的新结点,在头部插入一个元素的语句序列为: p^.next:= clist^.next; clist^.next:= p; B) 如果 p 指向一个待插入的新结点,在尾部插入一个元素的语句序列为: p^.next:= clist; clist^.next:= p; C) 在头部删除一个结点的语句序列为: p:= clist^.next; clist^.next:= clist^.next^.next; dispose(p); D) 在尾部删除一个结点的语句序列为。 p:= clist; clist:= clist ^.next; dispose(p);

8、散列表的地址区间为 0-10,散列函数为 H(K)=K mod 11。采用开地址法的线性探查法处理冲突,并将关 键字序列 26,25,72,38,8,18,59 存储到散列表中,这些元素存入散列表的顺序并不确定。假定之 前散列表为空,则元素 59 存放在散列表中的可能地址有: A) 5 B) 7 C) 9 D) 10

9、 排序算法是稳定的意思是关键码相同的记录排序前后相对位置不发生改变, 下列哪些排序算法是稳定的:

A) 插入排序

B) 基数排序

C) 归并排序

D) 冒泡排序

10、在参加 NOI 系列竞赛过程中,下面哪些行为是被严格禁止的: A) B) C) D) 携带书写工具,手表和不具有通讯功能的电子词典进入赛场。 在联机测试中通过手工计算出可能的答案并在程序里直接输出答案来获取分数。 通过互联网搜索取得解题思路。 在提交的程序中启动多个进程以提高程序的执行效率。

三.问题求解(共 2 题,每空 5 分,共计 10 分)

1.拓扑排序是指将有向无环图 G 中的所有顶点排成一个线性序列,使得图中任意一对顶点 u 和 v, 若<u,v> ∈E(G),则 u 在线性序列中出现在 v 之前,这样的线性序列成为拓扑序列。如下的有向无环图, 对其顶点做拓扑排序,则所有可能的拓扑序列的个数为 。

2

5 6

8

1

4 7 9

3

2.某个国家的钱币面值有 1, 7, 72, 73 共计四种,如果要用现金付清 10015 元的货物,假设买卖双方各 种钱币的数量无限且允许找零,那么交易过程中至少需要流通 张钱币。

四.阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. var a, b: integer;

function work(a, b: integer): integer; begin if a mod b <> 0 then work := work(b, a mod b) else work := b; end;

begin read(a, b); writeln(work(a, b));

end. 输入:123 321 输出:_________

2. var a, b: array[0..3] of integer; i, j, tmp: integer; begin for i := 0 to 3 do read(b[i]); for i := 0 to 3 do begin a[i] := 0; for j := 0 to i do begin inc(a[i], b[j]); inc(b[a[i] mod 4], a[j]); end; end; tmp := 1; for i := 0 to 3 do begin a[i] := a[i] mod 10; b[i] := b[i] mod 10; tmp := tmp * (a[i] + b[i]); end; writeln(tmp); end. 输入:2 3 5 7 输出:_______________

3. const y = 2009; maxn = 50; var

n, i, j, s: longint; c: array[0..maxn, 0..maxn] of longint; begin s := 0; read(n); c[0, 0] := 1; for i := 1 to n do begin c[i, 0] := 1; for j := 1 to i - 1 do c[i, j] := c[i-1, j-1] + c[i-1, j]; c[i, i] := 1; end; for i := 0 to n do s := (s + c[n, i]) mod y; write(s); end.

输入:17 输出:

4. var n, m, i, j, k, p: integer; a, b: array[0..100] of integer; begin read(n, m); a[0] := n; i := 0; p := 0; k := 0; repeat for j := 0 to i - 1 do if a[i] = a[j] then begin p := 1; k := j; break; end; if p <> 0 then break; b[i] := a[i] div m; a[i+1] := (a[i] mod m) * 10;

inc(i); until a[i] = 0; write(b[0], '.'); for j := 1 to k - 1 do write(b[j]); if p <> 0 then write('('); for j := k to i - 1 do write(b[j]); if p <> 0 then write(')'); writeln; end.

输入:5 13 输出:_________

五.完善程序 (前 5 空,每空 2 分,后 6 空,每空 3 分,共 28 分) 1. (最大连续子段和)给出一个数列(元素个数不多于 100) ,数列元素均为负整数、正整数、0。 请找出数列中的一个连续子数列,使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求 该子数列包含的元素个数最多,并输出这个最大和以及该连续子数列中元素的个数。例如数列为 4,-5, 3,2,4 时,输出 9 和 3;数列为 1 2 3 -5 0 7 8 时,输出 16 和 7。 var a: array[1..100] of integer; n, i, ans, len, tmp, beg: integer; begin read(n); for i := 1 to n do read(a[i]); tmp := 0; ans := 0; len := 0; beg := begin if tmp + a[i] > ans then begin ans := tmp + a[i]; len := i - beg; end else if ( ② ) and (i - beg > len) then len := i - beg; ① ; for i := 1 to n do

if tmp + a[i] begin beg := tmp := 0; end else ⑤ end; ④

③ ;

then

;

writeln(ans, ' ', len); end.

2. (寻找等差数列) 有一些长度相等的等差数列(数列中每个数都为 0~59 的整数) ,设长度均为 L, 将等差数列中的所有数打乱顺序放在一起。现在给你这些打乱后的数,问原先,L 最大可能为多大?先读 入一个数 n(1<=n<=60) ,再读入 n 个数,代表打乱后的数。输出等差数列最大可能长度 L。 var hash: array[0..60] of integer; n, x, ans, maxnum, i: integer; function work(now: integer): boolean; var ok: boolean; first, second, delta, i: integer; begin while (( inc(now); if now > maxnum then begin work := true; exit; end; first := now; for second := first to maxnum do if hash[second] > 0 then begin delta := break; if delta = 0 then ok := ( else begin ok := true; ④ ) ② ; ③ > maxnum then ① ) and (hash[now]=0)) do

if first + delta *

for i := 0 to ans - 1 do ok := end; if ok then begin for i := 0 to ans - 1 do dec(hash[first+delta*i]); if work(first) then begin work := true; exit; end; for i := 0 to ans - 1 do inc(hash[first+delta*i]); end; end; work := false; end; begin fillchar(hash, sizeof(hash), 0); read(n); maxnum := 0; for i := 1 to n do begin read(x); inc(hash[x]); if x > maxnum then maxnum := x; end; for ans := n downto 1 do if (n mod ans = 0) and begin writeln(ans); break; end; end. ⑥ then ⑤ and (hash[first+delta*i]>0);

第十四届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 Pascal 语言 二小时完成 )

●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一、单项选择题(共 10 题,每题 1.5 分,共计 15 分。每题有且仅有一个正确答案)。

1.在以下各项中,( A.Solaris B.Linux

)不是操作系统软件。 C.Sybase D.Windows Vista E.Symbian

2.微型计算机中,控制器的基本功能是( A.控制机器的各个部件协调工作 D.获取外部信息

)。

B.实现算数运算与逻辑运算 C.存储各种控制信息 E.存放程序和数据

3.设字符串 S=“Olympic”,S 的非空子串的数目是( A.29 B.28 C.16

)。 D.17 E.7

4.完全二叉树有 2*N-1 的结点,则它的叶子结点数目是( A.N-1 B.2*N C.N

)。 D.2 -1
N

E.N/2

5.将数组{8,23,4,16,77,-5,53,100}中元素从大到小按顺序排序,每次可以交换任意两个元素, 最少要交换( A.4 )次。 B.5 C.6 D.7 E.8

6.设栈 S 的初始状态为空,元素 a,b,c,d,e,f 依次入栈,出栈顺序为 b,d,c,f,e,a 那么栈容量 至少应该是( A.6 )。 B.5 C.4 D.3 E.2

7.与十进制数 28.5625 相等的四进制数是( A.123.21 B.131.22

) D.130.21 E.130.20

C.130.22

8.递归过程和函数调用时,处理参数和返回地址,通常使用一种称为( A.队列 B.多维数组 C.线性表 D.链表

)的数据结构。 E.栈

9.TCP/IP 是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际互联 协议(IP)。TCP/IP 协议把 Internet 网络系统描述成具有 4 个层次功能的网络模型,其中提供源节点和目 的节点之间的信息传输服务,包括寻址和路由器选择等功能的是( A.链路层 B.网络层 C.传输层 )。 E.会话层

D.应用层

10.对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,等概率情况下,查找成功的平均查找长度 (平均比较次数)是( )。

A.35/11

B.34/11

C.33/11

D.32/11

E.34/10

二、不定项选择题(共 10 题,每题 1.5 分,共计 15 分。每题正确答案的个数大于或等于 1。多选或少选 均不得分)。 11.下列关于图灵的说法正确的有( )。

A.图灵奖是美国计算机协会与 1966 年设立的,专门鼓励那些对计算机做出重要贡献的个人 B.图灵奖有“计算机界诺贝尔奖”之称。 C.迄今为止,还没有华裔计算机科学家获此殊荣。 D.图灵奖的名称取自计算机科学先驱、英国科学家阿兰·图灵。

12.计算机在工作过程中,若突然停电,( A.硬盘 B.CPU C.ROM

)中不会丢失信息不会丢失。 D.RAM

13.若 A=True,B=False,C=True,D=False,以下逻辑运算表达式真的有( A.(A∧B)V(C∧DV?A) C.(BVCVD)VD∧A B.((?A∧B)VC)∧?B D.A∧(DV?C)∧B

)。

14.Web2.0 是近年来互联网热门概念之一,其核心是互动与分享。下列网站中,( 2.0 的应用。 A.Sina B.Flickr C.Yahoo D.Google

)是典型的 Web

15.(2008)10+ A.(833)16

(5B)16 的结果是()。 B.(2099)10 C.(4063)8 D.(100001100011)2

16.二叉树 T,已知其先序遍历是 1 2 4 3 5 7 6(数字为节点编号,以下同),后序遍历是 4 2 7 5 6 3 1,则该二叉树的中根遍历是( A.4 2 1 7 5 3 6 ) C.4 2 1 7 5 6 3 D.2 4 1 5 7 3 6

B.2 4 1 7 5 3 6

17.面向对象的程序设计(Object-Oriented Programming)是一种程序设计的方法论,它将对象作为程序设 计的基本单元,将数据和程序封装在对象中,以提高软件的重用性、灵活性、和扩展性。下面关于面向对 象的程序设计说法中正确的是( )。

A.面向对象的程序设计方法通常采用自顶向下的设计方法进行设计。 B.面向对象的程序设计方法具有继承性(inheritance)、封装性(encapsulation)、多态性(polymorphis m)等几大特点。 C.支持面向对象特性称为面向对象的编程语言,目前较为流行的有 C++,JAVA,C#等。 D.面向对象的程序设计的雏形来自于 Simula 语言,后来在 SmallTalk 语言的完善和标准化的过程中得到 更多的扩展和对以前的思想的重新注解。至今,SmallTalk 语言仍然被视为面向对象的基础。

18.设 T 是一棵有 n 个定点的树,以下说法正确的是( A.T 是联通的,无环的 C.T 是无环的,有 n-1 条边

)。

B.T 是联通的,有 n-1 条边 D.以上都不对

19.NOIP 竞赛推荐使用的语言环境有( A.Dev-C++ B.Visual C++

)。 C.Free Pascal D.Lazarus

20.在下列防火墙(Firewall)的说法中,正确的有(

)。

A.防火墙是一项协助确保信息安全的设备,其会依照特定的规则,允许或是限制数据通过 B.防火墙可能是一台专属硬件或是安装在一般硬件上的一套软件 C.网络层防火墙可以视为一种 IP 数据包过滤器,只允许符合特定规定的数据包通过,其余的一概禁止穿 越防火墙 D.应用层防火墙是在 TCP/IP 的“应用层”上工作,可以拦截进出某应用程序的所有数据包

三、问题求解(共 2 题,每题 5 分,共计 10 分) 1.有 6 个城市,任何两个城市之间有一条道路连接,6 个城市之间两两之间的距离如下表表示,则城市 1 到城市 6 的最短距离为____________。 城市 1 城市 1 城市 2 城市 3 城市 4 城市 5 城市 6 0 2 3 1 12 15 城市 2 2 0 2 5 3 12 城市 3 3 2 0 3 6 5 城市 4 1 5 3 0 7 9 城市 5 12 3 6 7 0 2 城市 6 15 12 5 9 2 0

2.书架上有 21 本书,编号从 1 到 21 从中选 4 本,其中每两本的编号都不相邻的选法一共有________ ___________种。

四、阅读程序写结果(共 4 题,每题 8 分,共计 32 分)。 1.var i,a,b,c,d:integer; f:array[0..3] of integer; begin for i:=0 to 3 do read(f[i]); a:=f[0]+f[1]+f[2]+f[3]; a:=a div f[0]; b:=f[0]+f[2]+f[3];

b:=b div a; c:=(b*f[1]+a) div f[2]; d:=f[(b div c) mod 4]; if (f[(a+b+c+d) mod 4]>f[2]) then begin a:=a+b; writeln(a) end else begin c:=c+d; writeln(c); end; end. 输入: 9 19 29 39

输出:_______________________________

2.var a,b,c:integer; Procedure begin if a>b then else end; begin readln(a,b,c); foo(a,b,c); end. 输入:2 1 3 输出:_________________ foo(c,a,b) foo(a,b,c:integer);

writeln(a,',',b,',',c)

3.procedure f(a,b,c:integer); begin write(a,b,c,'/'); if (a=3)and(b=2)and(c=1) then if (b<c) then else if a<b then if a<c then f(c,a,b) else f(b,c,a); f(a,c,b) exit;

end; var a,b,c:integer; begin readln(a,b,c); f(a,b,c); end. 输入:1 3 2 输出:____________________

4.var

s:string; i,j,len,k:integer;

begin readln(s); len:=length(s); for i:=1 to len do if (ord(s[i])>=ord('A')) and (ord(s[i])<=ord('Z')) then for i:=1 to len do if (ord(s[i])<ord('X')) then else s:=chr(ord(s[i])-23); write(s); write('/'); for j:=1 to 3 do begin i:=1; while i<=len-j do begin s[i]:=s[i+j]; i:=i+j; end; end; writeln(s); end. 输入:ABCDEFGuvwxyz 输出:________________________________ s:=chr(ord(s[i])+3) s:=chr(ord(s[i])-ord('A')+ord('a'));

五.完善程序(前 6 空,每空 3 分,后 5 空,每空 2 分,共 28 分)。

1.(找第 k 大的数)给定一个长度为 1000000 的无序正整数序列,以及另一个数 n(1<=n<=1000000), 接下来以类似快速排序的方法找到序列中第 n 大的数(关于第 n 大的数:例如序列{1,2,3,4,5,6}中 第 3 大的数是 4) Var a:array[1..1000000] of integer; n,m,ans:integer; procedure swap(var a,b:integer); var t:integer; begin if (a<>b) then begin t:=a; a:=b; b:=t; end; end; Function FindKth(left,right,n:integer):integer; Var tmp,value,i,j:integer; begin if left=right then exit(left); tmp:=random(right-left)+left; swap(a[tmp],a[left]); value:=____①_____ i:=left; j:=right;

while i<j do begin while (i<j) and (________②______) do dec(j); if i<j then begin a[i]:=a[j];inc(i); end else break; while (i<j) and (___③___) do inc(i); if i<j then begin a[j]:=a[i]; dec(j); end else break; end; ____④_____ if i<n then begin inc(i); exit(FindKth(_____⑤_____));end; if i>n then begin dec(j); exit(______⑥________);end; exit(i); end;

var i:integer;

begin randomize; ans:=-1; m:=5; for i:=1 to m do read(a[i]); read(n); ans:=FindKth(1,m,n); writeln(a[ans]); end.

2.(矩阵中的数字)有一个 n*n(1≤n≤5000)的矩阵 a,对于 1≤i<n, 1≤j≤n, a[i,j]<a[i+1,j]

a[j,i]<a[j,i

+1]。即矩阵中左右相邻的两个元素,右边的元素一定比左边的大。上下相邻的两个元素,下面的元素一定 比上面的大。 给定矩阵 a 中的一个数字 k, 找出 k 所在的行列 (注意: 输入数据保证矩阵中的数各不相同) 。 var n,k,answerx,answery:integer; a:array[1..5000,1..5000] of integer; Procedure FindKPosition; Var I,j:integer; Begin i:=n; j:=n; while j>0 do begin if a[n,j]<k then break; dec(j); end; ______①_________ while a[i,j]<>k do begin while (___②_____) and (i>1) do dec(i); while (___③_____) and (j<=n) do inc(j); end; _______④________ _______⑤________ end; var i,j:integer; begin read(n); for i:=1 to n do

for j:=1 to n do read(a[i,j]); read(k); FindKPosition; writeln(answerx,' ',answery); end.

第十三届全国青少年信息学奥林匹克联赛初赛试题
●● ( 提高组 Pascal 语言 二小时完成 ) 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●

一、 单项选择题 (共 10 题, 每题 1.5 分, 共计 15 分。 每题有且仅有一个正确答案.) 。 1. 在以下各项中。 ( )不是 CPU 的组成部分。 A. 控制器 B. 运算器 C. 寄存器 D. 主板 E. 算术逻辑单元(ALU) 2. 在关系数据库中, 存放在数据库中的数据的逻辑结构以( A. 二叉树 B. 多叉树 C. 哈希表 D. B+树 3.在下列各项中,只有( A. Byte B. KB )为主。 E. 二维表

)不是计算机存储容量的常用单位。 C. MB D. UB E. TB

4.ASCII 码的含义是( ) 。 A. 二—十进制转换码 B. 美国信息交换标准代码 C. 数字的二进制数码 D. 计算机可处理字符的唯一编码 E. 常用字符的二进制编码 5.在 Pascal 语言中,表达式 (23 or 2 xor 5)的值是( A. 18 B. 1 C.23 D.32 ) E.24

6.在 Pascal 语言中,判断整数 a 等于 0 或 b 等于 0 或 c 等于 0 的正确的条件表达式是 ( ) A. not ((a<>0) or (b<>0) or (c<>0)) B. not ((a<>0) and (b<>0) and (c<>0)) C. not ((a=0) and (b=0)) or (c=0) D.(a=0) and (b=0) and (c=0) E. not ((a=0) or (b=0) or (c=0)) 7. 地面上有标号为 A、 C 的 3 根细柱, 在 A 柱上放有 10 个直径相同中间有孔的圆盘, 从 B、 上到下次依次编号为 1, 2, 3, ??,将 A 柱上的部分盘子经过 B 柱移入 C 柱, 也可以在 B 柱上暂存。如果 B 柱上的操作记录为: “进,进,出,进,进,出,出,进,进,出,进, 出,出” 。那么, 在 C 柱上, 从下到上的盘子的编号为( ) 。 A. 2 4 3 6 5 7 B. 2 4 1 2 5 7 C. 2 4 3 1 7 6 D. 2 4 3 6 7 5 E. 2 1 4 3 7 5 8. 与十进制数 17.5625 相对应的 8 进制数是( ) 。 A. 21.5625 B. 21.44 D. 21.731 E. 前 4 个答案都不对

C. 21.73

9. 欧拉图 G 是指可以构成一个闭回路的图,且图 G 的每一条边恰好在这个闭回路上出现一 次(即一笔画成) 。在以下各个描述中, 不一定是欧拉图的是: ( ) 。 A. 图 G 中没有度为奇数的顶点

B. C. D. E.

包括欧拉环游的图(欧拉环游是指通过图中每边恰好一次的闭路径) 包括欧拉闭迹的图(欧拉迹是指通过途中每边恰好一次的路径) 存在一条回路, 通过每个顶点恰好一次 本身为闭迹的图

10. 一个无法靠自身的控制终止的循环称为“死循环” ,例如在 C 语言程序中,语句 “while(1)printf("*"); ”就是一个死循环,运行它将无休止地打印*号。下面关于死循环 的说法中, 只有( )是正确的。 A. 不存在一种算法, 对任何一个程序及相应的输入数据, 都可以判断是否会出现死循环, 因而, 任何编译系统都不做死循环检查 B. 有些编译系统可以检测出死循环 C. 死循环属于语法错误, 既然编译系统能检查各种语法错误, 当然也能检查出死循环 D. 死循环与多进程中出现的“死锁”差不多,而死锁是可以检测的,因而,死循环也是可 以检测的 E. 对于死循环,只能等到发生时做现场处理, 没有什么更积极的手段 二、 不定项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题正确答案的个数大于 或等于 1。多选或少选均不得分) 。 11. 设 A=B=true,C=D=false,以下逻辑运算表达式值为真的有( ) 。 A. (﹁A∧B)∨(C∧D∨A) B. ﹁ ( ( (A∧B)∨C)∧D) C. A∧(B∨C∨D)∨D D. (A∧(D∨C)) ∧B 12. 命题“P→Q”可读做 P 蕴含 Q, 其中 P、Q 是两个独立的命题. 只有当命题 P 成立而命 题 Q 不成立时, 命题"P→Q"的值为 false, 其它情况均为 true. 与命题"P→Q"等价的逻辑 关系式是( ) 。 A. ﹁ P∨Q B. P∧Q C. ﹁ (P∨Q) D. ﹁(﹁Q∧ P ) 13. (2070)16+(34)8 的结果是( A. (8332)10 C. (100000000110)2 D. ) 。 B. (208C)16 (20214)8

14. 已知 7 个节点的二叉树的先根遍历是 1 2 4 5 6 3 7(数字为结点的编号,以下同), 后 根遍历是 4 6 5 2 7 3 1, 则该二叉树的可能的中根遍历是( ) A. 4 2 6 5 1 7 3 B. 4 2 5 6 1 3 7 C. 4 2 3 1 5 4 7 D. 4 2 5 6 1 7 3 15. 冗余数据是指可以由其他数据导出的数据, 例如, 数据库中已存放了学生的数学、 语文、 和英语的三科成绩,如果还存放三科成绩的总分,则总分就可以看做冗余数据。冗余数据往 往会造成数据的不一致, 例如上面 4 个数据如果都是输入的, 由于操作错误使总分不等于三 科成绩之和,就会产生矛盾。下面关于冗余数据的说法中, 正确的是( ) 。 A. 应该在数据库中消除一切冗余数据 B. 与用高级语言编写的数据处理系统相比, 用关系数据库编写的系统更容易消除冗余数据 C. 为了提高查询效率, 在数据库中可以适当保留一些冗余数据, 但更新时要做相容性检

验 D. 做相容性检验会降低效率, 可以不理睬数据库中的冗余数据 16.在下列各软件中,属于 NOIP 竞赛(复赛)推荐使用的语言环境有( A. gcc B. g++ C. Turbo C D. free pascal 17. 以下断电之后将仍能保存数据的有( A. 硬盘 B. ROM ) 。 C. 显存 D. RAM ) 。

18. 在下列关于计算机语言的说法中,正确的有( ) 。 A. 高级语言比汇编语言更高级, 是因为它的程序的运行效率更高 B. 随着 Pascal、C 等高级语言的出现, 机器语言和汇编语言已经退出了历史舞台 C. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上 D. C 是一种面向过程的高级计算机语言 19. 在下列关于算法复杂性的说法中, 正确的有( ) 。 A. 算法的时间复杂度,是指它在某台计算机上具体实现时的运行时间 B. 算法的时间复杂度, 是指对于该算法的一种或几种主要的运算, 运算的次数与问题的规 模之间的函数关系 C. 一个问题如果是 NPC 类的, 就意味着在解决该问题时, 不存在一个具有多项式时间复 杂度的算法. 但这一点还没有得到理论上证实,也没有被否定 D. 一个问题如果是 NP 类的,与 C 有相同的结论 20. 近 20 年来, 许多计算机专家都大力推崇递归算法, 认为它是解决较复杂问题的强有力 的工具. 在下列关于递归的说法中, 正确的是( ) 。 A. 在 1977 年前后形成标准的计算机高级语言"FORTRAN77"禁止在程序使用递归, 原因之一 是该方法可能会占用更多的内存空间. B. 和非递归算法相比, 解决同一个问题, 递归算法一般运行得更快一些 C. 对于较复杂的问题, 用递归方式编程往往比非递归方式更容易一些 D. 对于已定义好的标准数学函数 sin(x), 应用程序中的语句“y=sin(sin(x));”就是一 种递归调用 三.问题求解(共 2 题,每题 5 分,共计 10 分) 1.给定 n 个有标号的球,标号依次为 1,2,?,n。将这 n 个球放入 r 个相同的盒子里, 不允许有空盒,其不同放置方法的总数记为 S(n,r)。例如,S(4,2)=7,这 7 种不同的放置 方法依次为{(1) , (234)} , {(2) , (134)} , {(3) , (124)} , {(4) , (123)} , {(12) , (34)} , {(13) , (24)} , {(14) , (23)}。当 n=7,r=4 时,S(7,4)= 。 2.N 个人在操场里围成一圈,将这 N 个人按顺时针方向从 1 到 N 编号,然后从第一个人起, 每隔一个人让下一个人离开操场,显然,第一轮过后,具有偶数编号的人都离开了操场。依 次做下去,直到操场只剩下一个人,记这个人的编号为 J(N),例如,J(5)=3,J(10)=5,等 等。 m m 则 J(400)= 。 (提示:对 N=2 +r 进行分析,其中 0≤r<2 ) 。

四.阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. program s401; var p,q:array[0..5] of integer; i,x,y:integer; begin y:=20; for i:=0 to 4 do read(p[i]); readln; q[0]:=(p[0]+p[1])+(p[2]+p[3]+p[4]) div 7; q[1]:=p[0]+p[1] div ((p[2]+p[3]) div p[4]); q[2]:=p[0]*p[1] div p[2]; q[3]:=q[0]*q[1]; q[4]:=q[1]+q[2]+q[3]; x:=(q[0]+q[4]+2)-p[(q[3]+3) mod 4]; if (x>10) then y:=y+(q[1]*100-q[3]) div (p[p[4] mod 3]*5) else y:=y+20+(q[2]*100-q[3]) div (p[p[4] mod 3]*5); writeln(x,',',y); end. /*注:本例中,给定的输入数据可以避免分母为 0 或下标越界。*/ 输入:6 6 5 5 3 输出: 2. program s402; var a,b:integer; x,y:^integer; procedure fun(a,b:integer); var k:integer; begin k:=a; a:=b; b:=k; end; begin a:=3; b:=6; x:=@a; y:=@b; fun(x^,y^); write('No.1:',a,',',b,' '); fun(a,b); writeln('No.2:',a,',',b); end. 输出: 3. program S403;

var a1:array[1..50] of integer; var i,j,t,t2,n,n2:integer; begin n:=50; for i:=1 to n do a1[i]:=0; n2:=round(sqrt(n)); for i:=2 to n2 do if(a1[i]=0) then begin t2:=n div i; for j:=2 to t2 do a1[i*j]:=1; end; t:=0; for i:=2 to n do if (a1[i]=0) then begin write(i:4); inc(t); if(t mod 10=0) then writeln; end; writeln; end. 输出:

4. program S404; const n=12; ch2:array[0..12] of char =('q','A','S','O','R','T','E','X','A','M','P','L','E'); var k:integer; ch:array[0..12] of char; procedure shift(k,n:integer); var v:char; j:integer; begin v:=ch[k]; j:=k+k; while (j<=n) do begin if (j<n) and (ord(ch[j])<ord(ch[j+1])) then inc(j); if (ord(v)<ord(ch[j])) then begin ch[j div 2]:=ch[j]; j:=j*2; end else exit; ch[j div 2]:=v; end;

end; procedure hpsrt; var k:integer; tmp:char; begin for k:=n div 2 downto 1 do shift(k,n); write('No.1: '); for k:=1 to n do write(ch[k]); writeln; for k:=n downto 1 do begin tmp:=ch[1]; ch[1]:=ch[k]; ch[k]:=tmp; shift(1,k-1); end; end; begin for k:=0 to n do ch[k]:=ch2[k]; hpsrt; write('No.2: '); for k:=1 to n do write(ch[k]); writeln; end. 输出:

五.完善程序 (前 5 空,每空 2 分,后 6 空,每空 3 分,共 28 分) 1.(格雷码 Gray Code) Gray Code 是一种二进制编码,编码顺序与相应的十进制数的大小不一致。其特点是,对于 两个相邻的十进制数,对应的两个格雷码只有一个二进制位不同。另外,最大数与最小数间 也仅有一个二进制位不同,以 4 位二进制数为例,编码如下:

十进制数 格雷码 0 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100

十进制数 格雷码 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000

如果把每个二进制的位看做一个开关, 则将一个数变为相邻的另一个数, 只须改动一个开关。 因此,格雷码广泛用于信号处理、数-模转换等领域。 n 下面程序的任务是:由键盘输入二进制的位数 n(n<16),再输入一个十进制数 m(0≤m<2 ), 然后输出对应于 m 的格雷码(共 n 位,用数组 gr[ ]存放) program s501;

var bound,m,n,i,j,b,p:integer; gr:array[0..14]of integer; begin bound:=1; writeln('input n,m'); readln(n,m); for i:=1 to n do bound:=[ ① ]; if (m<0)or(m>=bound) then begin writeln('Data error!'); [ ② ]; end; b:=1; for i:=1 to n do begin p:=0; b:=b*2; for[ ③ ] to m do if ([ ④ ] ) then p:=1-p; gr[i]:=p; end; for i:=n[ ⑤ ] do write(gr[i]); writeln; end. 2. (连续邮资问题) 某国发行了 n 种不同面值的邮票, 并规定每封信上最多允许贴 m 张邮票。 在这些约束下, 为了能贴出{1, 3, maxvalue}连续整数集合的所有邮资, 2, ?, 并使 maxvalue 的值最大,应该如何设计各邮票的面值?例如,当 n=5 和 m=4 时,面值设计为(1,3,11, 15,32) ,可使 maxvalue 达到最大值 70(或者说,用这些面值的 1 至 4 张邮票可以表示不超 过 70 的所有邮资,但无法表示邮资 71) 。而用其他面值的 1 至 4 张邮票如果可以表示不超 过 k 的所有邮资,必有 k≤70) 下面是用递归回溯求解连续邮资问题的程序。数组 x[1:n]表示 n 种不同的邮票面值, 并约定各元素按下标是严格递增的。数组 bestx[1:n]存放使 maxvalue 达到最大值的邮票 面值(最优解) ,数组 y[maxl]用于记录当前已选定的邮票面值 x[1:i]能贴出的各种邮资所 需的最少邮票张数。请将程序补充完整。 program S502; const NN=20; maxint=30000; maxl=500; var bestx,x:array [0..NN] of integer; y:array [0..maxl] of integer; j,n,m,maxvalue:integer; procedure result;

var j:integer; begin writeln('max=',maxvalue); for j:=1 to n do write(bestx[j]:4); writeln; end; procedure backtrace(i,r:integer); var j,k:integer; z: array[0..maxl] of integer; begin for j:=0 to[ ① ]do if (y[j]<m) then for k:=1 to m-y[j] do if (y[j]+k<=y[ ② ]) then y[ ③ ]:=y[j]+k; while (y[r]<maxint) do inc(r); if (i>n) then begin if (r-1>maxvalue) then begin maxvalue:=[ ④ ] ; for j:=1 to n do bestx[j]:=x[j]; end; exit; end; for k:=0 to maxl do z[k]:=y[k]; for j:=[ ⑤ ] to r do begin x[i]:=j; [ ⑥ ]; for k:=0 to maxl do y[k]:=z[k]; end; end; begin maxvalue:=0; writeln('input n,m:'); readln(n,m); for j:=1 to maxl do y[j]:=maxint; y[0]:=0; x[0]:=0; x[1]:=1; backtrace(2,1); result; end.

答案
CCF NOIP2011 提高组(Pascal 语言)参考答案与评分标准 一、单项选择题(共 10 题,每题 1.5 分,共计 15 分)
1 B 2 B 3 A 4 D 5 B 6 A 7 C 8 D 9 B 10 A

二、不定项选择题(共 10 题,每题 1.5 分,共计 15 分,多选或少选均不得分)
1 CD 2 ABCD 3 AB 4 BC 5 BC 6 ABD 7 CD 8 A 9 BCD 10 ABC

三、问题求解(共 2 题,每题 5 分,共计 10 分) 1.9 2.4

四、阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1.3 2.1 2 5 13 34 3.150 4.57344 五、完善程序(第 1 题,每空 2 分,第 2 题,每空 3 分,共计 28 分) (说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不 一定上报科学委员会审查) 1.① ans.num[i + j - 1] ② ans.num[i] := ans.num[i] mod 10; ③ ans.num[i] + a.num[i] + b.num[i]; ④ ans.num[i] mod 2 (或 ans.num[i] and 1) ⑤ inc(ans.len) (或 ans.len := ans.len + 1) ⑥ a.len < b.len ⑦ ord('0')(或 48) ⑧ times(middle, middle), target 2.① inc(num) (或 num := num + 1) ② j := i ③ solve(left, j - 1, deep + 1) ④ solve(j + 1, right, deep + 1) NOIP2010(第十六届)初赛提高组(C 语言、PASCAL 语言)参考答案与评分标准

一、单项选择题(共 10 题,每题 1.5 分,共计 15 分) 1 2 3 4 5 6 7 8 9 10 C A A D B D C B C B 二、不定项选择题(共 10 题,每题 1.5 分,共计 15 分,多选或少选均不得分) 1 2 3 4 5 6 7 8 9 10 ACD AD ABD AC B B D D BCD ABC 三、问题求解(共 3 题,每题 5 分,共计 15 分) 1.yyxy xx yyxy xyx xx xyx 2.12 3.18 四、阅读程序写结果(共 4 题,每题 7 分,共计 28 分) 1.16 2.1 2 3 5 6 7 9 10 14 3.4 4.1 6 9 5 4 8 3 2 7 五、完善程序(第 1 空 2 分,其余 10 空,每空 2.5 分,共计 27 分) (说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证, 不一定上报科学委员会审查) 1.① num <= 2(或 num < 3 或 num = 2) ② go(LEFT_TO_RIGHT) ③ pos[i] = LEFT(或 LEFT = pos[i]) ④ time[i] + go(RIGHT_TO_LEFT)(或 go(RIGHT_TO_LEFT) + time[i]) ⑤ pos[i] := LEFT 本小题中,LEFT 可用 true 代替,LEFT_TO_RIGHT 可用 true 代替,RIGHT_TO_LEFT 可用 false 代替。 2.① opt[k] ② home[r] := k ③ j := i + i(或 j := 2 * i 或 j := i * 2) ④ swap(i, j)(或 swap(j, i)) ⑤ value[i] + heap[1](或 heap[1] + value[i]) ⑥ i-m NOIP2009(第十五届)初赛提高组(C 语言、PASCAL 语言)参考答案与评分标准
一、单项选择题: (每题 1.5 分) 1. C 2. A 3. D 4. B 5. D 6. B 7. B 8. A 9. A 10. C 二、 不定项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题正确答案的个数大于或等于 1。多选或少选 均不得分) 。 1. AB 2. BD 3. BC 4. C 5. BD 6. ABD 7. AC 8. ABC 9. ABCD 10. ACD 三、问题求解: (共 2 题,每空 5 分,共计 10 分) 1.432 2.35 四、阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. 3 2. 5850 3. 487 (杨辉三角)

4. 0.(384615)(分数变小数) 五.完善程序 (前 5 空,每空 2 分,后 6 空,每空 3 分,共 28 分) (说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学 委员会审查) 1. ① 0 ② tmp+a[i]=ans 或者 a[i]+tmp=ans 或者 ans=a[i]+tmp 等 ③ <0 ④ i ⑤ inc(tmp, a[i])或者 tmp := tmp+a[i]

2. ① now<=maxnum 或者 not(now>maxnum) ② first-second ③ (ans-1) ④ hash[first]>=ans 或者 hash[second]>=ans 或者 hash[first+delta]>=ans ⑤ ok ⑥ work(0)

NOIP2008 年(第十四届)提高组(Pascal 语言)参考答案 一、单项选择题:(每题 1.5 分) 1. C 2. A 3. B 4. C 5. B 6. D 7. D 8. E 9. B 10. C 二、 不定项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题正确答案的个数大于或等 于 1。多选或少选均不得分)。 11. ABD 12. AC 13. BC 14. B 15. ABC 16. ABD 17. BCD 18. ABC 19. ACD 20. ABCD 三、问题求解:(共 2 题,每题 5 分,共计 10 分) 1.7 2.3060 四、阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. 23 (信心题) 2. 1,3,2 (简单递归) 3. 132/213/231/312/321/ (全排列) 4. defghijxyzabc/hfizxjaybcccc (字符串替换) 五.完善程序 (前 6 空,每空 3 分,后 5 空,每空 2 分,共 28 分) (说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不 一定上报科学委员会审查) 1. ① a[left] ② a[j] < value (或 a[j] <= value) ③ a[i] > value (或 a[i] >= value) ④ a[i] := value; ⑤ i,right,n ⑥ FindKth(left, i, n)

2. ② ③ ④ ⑤

① inc(j); (或者 j := j+1;) a[i,j] > k a[i,j] < k answerx := i; answery := j;

NOIP2007 年(第十三届)提高组(Pascal 语言)参考答案 一、单项选择题 1. D 2. E 3. D 4. B 5. A 6. B 7. D 8. B 9. D 10. A 二、 不定项选择题 11. ABC 12. AD 13. ABD 14. ABD 15. BC 16. ABD 17. AB 18. CD 19. BC 20. AC 三、问题求解 1.350 2.289 四、阅读程序写结果 1 129,43 2 No.1:3,6 No.2:3,6 3 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 4 No.1: XTORSEAAMPLE No.2: AAEELMOPRSTX 五、完善程序 (前 5 空,每空 2 分,后 6 空,每空 3 分,共 28 分) (说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证, 不一定上报科学委员会审查) 1 ① bound*2 ② exit ③ j:=0 ④ (j mod b-(b div 2))=0 ⑤ downto 1 2 ① x[i-2]*(m-1) ② j+x[i-1]*k ③ j+x[i-1]*k (同 2) ④ r-1 ⑤ x[i-1]+1 ⑥ backtrace(i+1,r)


相关文章:
2007-2011年noip初赛提高组试题及答案
2007-2011年noip初赛提高组试题及答案_学科竞赛_高中教育_教育专区。第十七届...第十六届(2010 年)全国青少年信息学奥林匹克联赛初赛 试题( 提高组 Pascal 语言...
2011十七届noip提高组题目及答案
2011十七届noip提高组题目及答案_学科竞赛_高中教育_教育专区。为了打印各种调的~~~第十七届全国青少年信息学奥林匹克联赛初赛试题( 提高组 Pascal 语言 两小时完成...
NOIP2007提高组试题及解析
NOIP2007提高组试题及解析_IT/计算机_专业资料。NOIP2007 提高组试题和题解NOIP...noip2010提高组复赛试题 7页 免费 NOIP2007试题+答案+解析... 13页 免费©...
NOIP2011提高组初赛试题及答案C++版
NOIP2011提高组初赛试题及答案C++版_IT/计算机_专业资料。手打的word版本呀第...NOIP2007 初赛试题及答案... 8页 免费 第十届NOIP2004初赛试题... 11页 ...
noip2011初赛试题及答案(完美Word版)
noip2011初赛试题及答案(完美Word版)_英语考试_外语学习_教育专区。第十七届全国...第十七届全国青少年信息学奥林匹克联赛初赛试题( 提高组 Pascal 语言 两小时完成...
2007-2012年noip初赛提高组基础题
2007-2012年noip初赛提高组基础题_调查/报告_表格/...如果根结点的深度记为 1,则一棵恰有 2011 个叶子...每题正确答案的个数不少于 1。多选或少选均 不得...
NOIP2009提高组初赛试题及答案
⑥ then NOIP2009 初赛 提高组 Pascal 9 NOIP2009 提高组(Pascal 语言)参考答案与评分标准一、单项选择题:(每题 1.5 分) 1. C 6. B 2. A 7. B 3...
第十七届NOIP2011 提高组初赛试题及答案解析
第十七届NOIP2011 提高组初赛试题及答案解析_计算机硬件及网络_IT/计算机_专业...2007-2011年noip初赛提高... 59页 免费 NOIP2013初赛提高组Pasc... 13页 ...
2009-2013年NOIP初赛提高组C++语言试题及参考答案
2009-2013年NOIP初赛提高组C++语言试题及参考答案_IT认证_资格考试/认证_教育...} 26 2011 第十七届全国青少年信息学奥林匹克联赛初赛试题 ( 提高组 ●● C++...
NOIP2011初赛C提高组参考答案
NOIP2011初赛C提高组参考答案_IT认证_资格考试/认证...不定项选择题(共 10 题,每题 1.5 分,共计 15...
更多相关标签:
noip2007提高组初赛 | noip2015提高组初赛 | noip2016提高组初赛 | noip2012提高组初赛 | noip2013提高组初赛 | noip2011提高组初赛 | noip提高组初赛 | noip2014提高组初赛 |