<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
 <title><![CDATA[【公告】悬赏收集第十二届（NOIP2006）全国青少年奥林匹克信息学联赛初赛试题]]></title>
 <link><![CDATA[https://bbs.oifans.cn/read-oifans-tid-640.html]]></link>
 <description><![CDATA[最新回复]]></description>
 <copyright><![CDATA[Copyright(C) OI爱好者（OIFans.cn）]]></copyright>
 <generator><![CDATA[http://www.phpwind.com]]></generator>
 <lastBuildDate><![CDATA[Tue, 09 Jun 2026 05:03:52 +0000]]></lastBuildDate>
 <ttl><![CDATA[60]]></ttl>
 <pubDate><![CDATA[Sat, 21 Oct 2006 23:31:46 +0000]]></pubDate>
<item>
 <title><![CDATA[Re:【公告】悬赏收集第十二届（NOIP2006）全国青少年奥林匹克信息学联赛初赛试题]]></title>
 <description><![CDATA[<span style="color:red ">PS：由于文字版试题公布，图片已经被删除～</span>]]></description>
 <link><![CDATA[https://bbs.oifans.cn/job.php?action=topost&tid=640&pid=3891]]></link>
 <author><![CDATA[webmaster@oifans.cn (sunhengyu444)]]></author>
 <category><![CDATA[新手社区]]></category>
 <pubDate><![CDATA[Sat, 21 Oct 2006 23:31:46 +0000]]></pubDate>
</item>
<item>
 <title><![CDATA[Re:【公告】悬赏收集第十二届（NOIP2006）全国青少年奥林匹克信息学联赛初赛试题]]></title>
 <description><![CDATA[第十二届全国青少年信息学奥林匹克联赛初赛试题 
（ 普及组 Pascal 语言 二小时完成 ） 
 &nbsp;  ● ● 全部试题答案均要求写在答卷纸上，写在试卷纸上一律无效 ●● 

一、 单项选择题 （共20题，每题1.5分，共计30分。每题有且仅有一个正确答案.）。 
1. 在下面各世界顶级的奖项中，为计算机科学与技术领域做出杰出贡献的科学家设立的奖项是（ ）。 
A. 沃尔夫奖 B. 诺贝尔奖 C. 菲尔兹奖 D. 图灵奖 
2. 在下列各软件中，不属于NOIP竞赛（复赛）推荐使用的语言环境有（ ）。 
A. gcc/g++ B. Turbo Pascal 
C. RHIDE D. free pascal 
3. 以下断电之后仍能保存数据的有（ ）。 
A. 寄存器 B. ROM C. RAM D. 高速缓存 
4．Linux是一种( )。 
A. 绘图软件 B. 程序设计语言 C. 操作系统 D. 网络浏览器 
 &nbsp;  5. CPU是( )的简称。 
A. 硬盘 B. 中央处理器 C. 高级程序语言 D. 核心寄存器 

6. 在计算机中，防火墙的作用是（ ）。 
A. 防止火灾蔓延 B.防止网络攻击 
C. 防止计算机死机 D. 防止使用者误删除数据 
7. 在下列关于计算机语言的说法中，不正确的是（ ）。 
A. Pascal和C都是编译执行的高级语言 
B. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上 
C. C++是历史上的第一个支持面向对象的计算机语言 
D. 与汇编语言相比，高级语言程序更容易阅读 
8. 在下列关于计算机算法的说法中，不正确的是（ ）。 
A. 一个正确的算法至少要有一个输入 
B. 算法的改进，在很大程度上推动了计算机科学与技术的进步 
C. 判断一个算法的好坏的主要标准是算法的时间复杂性与空间复杂性 
 

D. 目前仍然存在许多涉及到国计民生的重大课题，还没有找到能够在计算机上实施的有效算法 
9. 在下列各种排序算法中，不是以“比较”作为主要操作的算法是（ ）。 
A. 选择排序 B. 冒泡排序 C. 插入排序 D. 基数排序 
10．在编程时（使用任一种高级语言，不一定是Pascal），如果需要从磁盘文件中输入一个很大的二维数组（例如1000*1000的double型数组），按行读（即外层循环是关于行的）与按列读（即外层循环是关于列的）相比，在输入效率上（ ）。 
A. 没有区别 B. 按行读的方式要高一些 
C. 按列读的方式要高一些 D. 取决于数组的存储方式。 
11．在Pascal语言中，表达式 (21 xor 2)的值是（ ） 
A. 441 B. 42 C.23 D.24 
12．在Pascal语言中，判断a不等于0且b不等于0的正确的条件表达式是（ ） 
A. not a=0 or not b=0 B. not((a=0)and(b=0)) 
C. not(a=0 and b=0) D. (a&lt;&gt;0)and (b&lt;&gt;0) 
13．某个车站呈狭长形，宽度只能容下一台车，并且只有一个出入口。已知某时刻该车站状态为空，从这一时刻开始的出入记录为：“进，出，进，进，进，出，出，进，进，进，出,出”。假设车辆入站的顺序为1，2，3，……，则车辆出站的顺序为（ ）。 
A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7 
C. 1, 4, 3, 7, 6 D. 1, 4, 3, 7, 2 
14．高度为n的均衡的二叉树是指：如果去掉叶结点及相应的树枝，它应该是高度为n-1的满二叉树。在这里，树高等于叶结点的最大深度，根结点的深度为0，如果某个均衡的二叉树共有2381个结点，则该树的树高为（ ）。 
A. 10 B. 11 C. 12 D. 13 
15. 与十进制数1770 对应的八进制数是（ ）。 
A. 3350 B. 3351 C. 3352 D. 3540 
16．将5个数的序列排序，不论原先的顺序如何，最少都可以通过（ ）次比较，完成从小到大的排序。 
A. 6 B. 7 C. 8 D. 9 
17. 设A=B=D=true，C=false，以下逻辑运算表达式值为真的有（ ）。 
A. (A∧B)∨(C∧D) B. ?((A∨B∨D)∧C) 
 
C. A∧(B∨C∨D) D. (A∧B∧C)∨?D 
18. (2010)16 + (32)8的结果是（ ）。 
A. (8234)10 B. (202B)16 
C. (20056)8 D. (100000000110)2 
19. 设栈S的初始状态为空，元素a, b, c, d, e 依次入栈，以下出栈序列不可能出现的有（ ）。 
A. a, b, c, e, d B. b, c, a, e, d 
C. a, e, c, b, d D. d, c, e, b, a 
20. 已知6个结点的二叉树的先根遍历是1 2 3 4 5 6（数字为结点的编号，以下同），后根遍历是3 2 5 6 4 1，则该二叉树的可能的中根遍历是（ ） 
A. 3 2 1 4 6 5 B. 3 2 1 5 4 6 
C. 2 1 3 5 4 6 D. 2 3 1 4 6 5 
二．问题求解（共2题，每题5分，共计10分） 
1．（寻找假币） 现有80枚硬币，其中有一枚是假币，其重量稍轻，所有真币的重量都相同，如果使用不带砝码的天平称重，最少需要称几次，就可以找出假币？你还要指出第1次的称重方法。请写出你的结果：_________________________________________________。 
2．（取石子游戏） 现有5堆石子,石子数依次为3，5，7，19，50，甲乙两人轮流从任一堆中任取（每次只能取自一堆，不能不取）, 取最后一颗石子的一方获胜。甲先取，问甲有没有获胜策略（即无论乙怎样取，甲只要不失误，都能获胜）？如果有，甲第一步应该在哪一堆里取多少？请写出你的结果： 
_________________________________________________。 
三．阅读程序写结果（共4题，每题8分，共计32分） 
1. Program ex301; 
var 
u:array[0..3] of integer; 
i,a,b,x,y:integer; 
begin 
y:=10; 
for i:=0 to 3 do 
read(u<i>); 
a:=(u[0]+u[1]+u[2]+u[3]) div 7; 
b:=u[0] div ((u[1]-u[2]) div u[3]); 
 
x:=(u[0]+a+2)-u[(u[3]+3) mod 4]; 
if (x&gt;10) then 
y:=y+(b*100-u[3]) div (u[u[0] mod 3]*5) 
else 
y:=y+20+(b*100-u[3]) div (u[u[0] mod 3]*5); 
writeln (x,&#39;,&#39;,y); 
end. {*注：本例中，给定的输入数据可以避免分母为0或下标越界。 } 
输入：9 3 9 4 
输出：_______________ 
2.Program ex302; 
const 
m:array[0..4] of integer=(2,3,5,7,13); 
var 
i,j:integer; 
t: longint; 
begin 
for i:=0 to 4 do 
begin 
t:=1; 
for j:=1 to m<i>-1 do 
t:=t*2; 
t:=(t*2-1)*t; 
write (t,&#39; &#39;); 
end; 
writeln; 
end. 
输出:____________________ 
3.Program ex303; 
Const 
NN=7; 
Type 
Arr1=array[0..30] of char; 
var 
s:arr1; 
k,p:integer; 
Function fun(s:arr1; a:char;n:integer):integer; 
 
var 
j:integer; 
begin 
j:=n; 
while (a&lt;s[j])and(j&gt;0) do dec(j); 
fun:=j; 
end; 
begin 
for k:=1 to NN do 
s[k]:=chr(ord(&#39;A&#39;)+2*k+1); 
k:=fun(s,&#39;M&#39;,NN); 
writeln(k); 
end. 
输出：_____________ 
4.program ex304; 
var 
x,x2:longint; 
procedure digit(n,m:longint); 
var n2:integer; 
begin 
if(m&gt;0) then 
begin 
n2:=n mod 10; 
write(n2:2); 
if(m&gt;1) then digit(n div 10,m div 10); 
n2:=n mod 10; 
write(n2:2); 
end; 
end; 
begin 
writeln(&#39;Input a number:&#39;); 
readln(x); 
x2:=1; 
while(x2&lt;x) do x2:=x2*10; 
x2:=x2 div 10; 
digit(x,x2); 
writeln; 
 
end. 
输入：9734526 
输出：______________________________ 
四．完善程序 (前4空，每空2.5分，后6空，每空3分，共28分) 
1．（全排列）下面程序的功能是利用递归方法生成从1到n(n&lt;10)的n个数的全部可能的排列（不一定按升序输出）。例如，输入3，则应该输出（每行输出5个排列）： 
123 132 213 231 321 
312 
程序： 
Program ex401; 
Var 
i,n,k:integer; 
a:array[1..10] of integer; 
count:longint; {变量count记录不同排列的个数，这里用于控制换行} 
Procedure perm(k:integer); 
var j,p,t:integer; 
begin 
if ① then 
begin 
inc(count); 
for p:=1 to k do 
write(a[p]:1); 
write(&#39; &#39;); 
if ( ② ) then writeln; 
exit; 
end; 
for j:=k to n do 
begin 
t:=a[k]; a[k]:=a[j]; a[j]:=t; 
③ ; 
t:=a[k]; ④ ; 
end 
end; 
begin 
writeln(&#39;Entry n:&#39;); 
read(n); 
 
count:=0; 
for i:=1 to n do a<i>:=i; 
⑤ ; 
end. 
2. 由键盘输入一个奇数 P (P&lt;100,000,000)，其个位数字不是5，求一个整数 S，使 P×S = 1111...1 ( 在给定的条件下，解 S 必存在)。要求在屏幕上依次输出以下结果: 
（1）S 的全部数字。除最后一行外，每行输出 50 位数字。 （2） 乘积的数字位数。 
例1：输入p=13，由于13*8547=111111，则应输出（1）8547，（2）6 
例2：输入p=147，则输出结果应为（1）755857898715041572184429327286470143613 
（2）42，即等式的右端有42个1。 
程序： 
program ex402; 
var 
p,a,b,c,t,n:longint; 
begin 
while (true) do 
begin 
writeln (&#39;Input p, the last digit is 1 or 3 or 7 or 9:&#39;); 
readln(p); 
if (p mod 2&lt;&gt;0)and(p mod 5&lt;&gt;0) then 
⑥ ; {如果输入的数符合要求，结束循环 } 
end; 
a:=0; n:=0; 
while (a&lt;p) do 
begin 
a:=a*10+1; inc(n); 
end; 
t:=0; 
repeat 
b:=a div p; 
write(b:1); 
inc(t); 
if ( ⑦ ) then writeln; 
c:= ⑧ ; a:= ⑨ inc(n); 
until c&lt;=0; 
dec(n); 
 
writeln; writeln(&#39;n=&#39;, ⑩ ); 
end.]]></description>
 <link><![CDATA[https://bbs.oifans.cn/job.php?action=topost&tid=640&pid=3790]]></link>
 <author><![CDATA[webmaster@oifans.cn (lkq816)]]></author>
 <category><![CDATA[新手社区]]></category>
 <pubDate><![CDATA[Sat, 21 Oct 2006 09:25:50 +0000]]></pubDate>
</item>
<item>
 <title><![CDATA[Re:【公告】悬赏收集第十二届（NOIP2006）全国青少年奥林匹克信息学联赛初赛试题]]></title>
 <description><![CDATA[我是第一个！
提高组试题！

<span style="color:red ">PS：由于文字版试题公布，图片已经被删除～</span>]]></description>
 <link><![CDATA[https://bbs.oifans.cn/job.php?action=topost&tid=640&pid=3785]]></link>
 <author><![CDATA[webmaster@oifans.cn (上天遇见牛)]]></author>
 <category><![CDATA[新手社区]]></category>
 <pubDate><![CDATA[Sat, 21 Oct 2006 07:40:13 +0000]]></pubDate>
</item>
</channel></rss>