NOIP2012信息学奥林匹克竞赛初赛-模拟卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012年全国青少年信息学奥林匹克联赛初赛模拟试题
一.单项选择题(共10题,每题1.5分,共计15分,每题有且仅有一个正确答案。


1、以下说法正确的是()
A、第一个提出“goto语句有害论”的计算机科学家是Donald E.Knuth
B、被誉为“迄今最伟大的计算机程序员、算法学家”的是Edsger Wybe Dijkstra
C、世界上第一位程序员是V on Nouma
D、被誉为“计算机语言之母”的是Grace Hopper
2、关于CPU的说法正确的是()
A、计算机的运算速度取决于给定的时间内,它的处理器所能处理的数据量。

B、64位计算机指的是CPU每秒钟可处理的数据为2^64位。

C、双核CPU,是指在一个主板上放入两个CPU并行进行工作。

D、我国自主产权的CPU龙芯3A集成了两个处理器核心
3、ASCII码表中的大写字母后有6个其它字符,接着便是小写字母。

现已知:A字母的ASCII码为(41)16{表示16进制数41 },那么f应为( )10
A、46
B、78
C、102
D、108
4、Pascal的创始人是()。

(A)Donald E.Knuth (B)Steve Jobs (C)Charles Bachman D (D)Niklaus Wirth
5、若二叉树的先序遍历序列为ABDECF,中序遍历序列DBEAFC,则其后序遍历序列为()
A. DEBAFC
B. DEFBCA
C. DEBCFA
D. DEBFCA
6、已知后缀表达式abc+*d-,则它的中缀表达式和前缀表达式分别是:
A) (a+b)*c-d -+*abcd B)a+b*c-d -+a*bcd
C)a*(b+c)-d -*a+ bcd D)a*(b+c)-d -a b*+cd
7、由权值为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为()
A.23
B.37
C.44
D.46
8、排序算法是稳定的意思是:关键码相同的记录排序前后相对位置不发生改变,下列哪种
排序算法是不稳定的:
A) 冒泡排序 B) 插入排序 C) 归并排序 D) 快速排序
9、下图给出了一个加权有向图,从顶点V1出发,以下哪个是活动中的关键路径()
A. V1,V5,V3,V2
B. V1,V4,V3,V2
C. V1,V4, V2
D. V1,V4,V5,V3,V2
10、以下有关全国信息学奥林匹克竞赛说法有误的是()
A、 NOI评测只检查按照要求输出的结果,而不涉及过程和算法。

B、 NOIP联赛初赛的题目以选拔为出发点,复赛题目的类型与NOI题目的类型有所差异。

C、全国青少年信息学奥林匹克联赛是全国性的比赛,是NOI的基础。

NOIP在不同地点、同一时间段内进行。

D、参加NOIP联赛是参加NOI的必要条件。

二.不定项选择题(共10题,每题1.5分,共计15分,每题正确答案的个数不少于1。

多选或少选均不得分)。

11、关于存储器下面哪些说法是正确的:
A、按存取速度从慢到快排列的是: U盘、硬盘、内存储器、寄存器、CACHE
B、硬盘的数据传输率是衡量硬盘速度的一个重要参数,它是指计算机从硬盘中准确找到相应数据并传送到内存
的速率,它分为内部和外部传输率。

C、世界上第一块硬盘是美国IBM公司开发的。

D、使用硬盘Cache的目的是增加写入硬盘数据的速度。

12、操作系统是重要的系统软件,下面几个软件中属于操作系统的是( )
A、Android
B、Linux
C、Xnix
D、WINDOWS 7
E、Oracle
13、关于计算机网络,下面的说法哪些是错误的:( )
A、新一代互联网使用的IPv6标准是IPv5标准的升级与补充。

B、互联网的入网主机如果有了域名就不再需要IP地址。

C、互联网的基础协议为TCP/IP协议。

D、互联网上所有可下载的软件及数据资源都是可以合法免费使用的。

14、关于HTML下面哪些说法是正确的:( )
A、 HTML实现了文本、图形、声音乃至视频信息的统一编码。

B、 HTML文件是包含标记标签的程序文件。

C、使用普通的文字编辑器可以建立HTML文件。

D、 HTML是超文本标记语言的缩写。

15、关于javascript的描述,哪些是正确的()
A、JavaScript为HTML页面提供交互的功能
B、JavaScript通常直接嵌套在HTML页面中
C、JavaScript是一种诠释性语言(即在执行脚本前无需进行预先编译)
D、JavaScript是一种有序的计算机代码
E、JavaScript是解释型的语言,它和Java本质是一样的
16、以下各项正确的有()。

A、Java语言是目前最流行的面向对象的网络编程语言之一
B. 目前出现的任何计算机语言都能够使用编译器编译成机器码
C. 编译好的程序只能在特定的操作系统和硬件平台上使用
D. 一个使用Pascal语言编写并编译好的程序,我们可以将其还原成原来的Pascal代码
17、下面关于编程语言的说法中正确的是()。

A. Pascal语言的出现时间早于C语言
B.SmallTalk是第一个面向对象的编程语言
C. 最先用BNF描述语法的语言是ALGOL
D. 第一个高级语言是于1956年首先在IBM公司的计算机上实现在FORTRAN语言。

18、散列表的地址区间为0-10,散列函数为H(K)=K mod 11。

采用开地址法的线性探查法处理冲突,并将关键字序列26,25,72,38,8,18,59存储到散列表中,这些元素存入散列表的顺序并不确定。

假定之前散列表为空,则元素59存放在散列表中的可能地址有:
A、5
B、7
C、9
D、10
19、以下有关计算机算法的说法中,正确的有()
A. 计算机程序是算法的一个实例,是将算法通过某种计算机语言表达出来的具体形式,同一个算法可以用任何一种计算机语言来表达。

B.算法的时间复杂度是指算法需要消耗的时间资源,是运算的次数和问题的规模之间的关系函数。

C. 动态规划法是由贝尔曼提出,用来解决多阶段决策过程问题的一种最优化方法,又被称为逆序决策过程。

D. 搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。

20、有关云计算的说法,正确的是()
A. 云计算是并行计算、分布式计算和网格计算等概念的实现。

B. 云计算的基本原理是,通过使计算分布在大量的分布式计算机上,
而非本地计算机或远程服务器中,企业或根据需求访问计算机和存储系统。

C. 云安全的策略构想是:使用者越少,每个使用者就越安全。

D. 微软推出的Windows Azure(译为“蓝天”)操作系统是通过在互联网架构上的云计算平台。

二.问题求解题(共2题,每题5分,共计10分)。

1、P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?
__________________________
2、下图中用点表示城市,点与点之间的联系表示城市间的道路:
试问:
能否找出一条从城市A出发,经过图中所有道路一次的通路来?
试简单说明理由。

三、阅读程序写结果(共4题,每题8分,共计32分)
1、program G1;
const g=10;e=1E-5;
var H,s1,v,l,k,t1,t2,Vmin,Vmax:real;
n2,n1,num,n:integer;
begin
readln(h,s1,v,l,k,n);num:=-1;
t1:=sqrt(2*h/g);
if h<=k+e then t2:=0 else t2:=sqrt(2*(h-k-e)/g);
if s1-v*t2+L+e<0
then num:=0
else n2:=trunc(s1-v*t2+L+e);
if n2>n-1 then n2:=n-1;
if s1-v*t1-e<=0
then n1:=0
else if s1-v*t1-e>n-1
then num:=0
else if (s1-v*t1-e)=trunc(s1-v*t1-e)
then n1:=trunc(s1-v*t1-e)
else n1:=trunc(s1-v*t1-e)+1;
if num=-1 then num:=n2-n1+1;
writeln(num);
end.
输入: 5.0 9.0 5.0 2.5 1.8 5
输出:_________________________
2、program g2;
var
a,b:array['A'..'Z'] of char;
st1,st2,st3:string;
i,j,n:integer;
ch:char;
procedure work; begin
writeln('Failed');
halt;
end;
begin
readln(st1);readln(st2);readln(st3);
n:=length(st1);
for ch:='A' to 'Z' do
begin
a[ch]:='#';
b[ch]:='#';
end;
for i:=1 to n do
if ((a[st1[i]]='#') and (b[st2[i]]='#')) or (a[st1[i]]=st2[i]) then
begin
a[st1[i]]:=st2[i];
b[st2[i]]:='@';
end
else work;
for ch:='A' to 'Z' do
if b[ch]='#' then work;
for i:=1 to length(st3) do
write(a[st3[i]]);
writeln;
end.
输入:MSRTZCJKPFLQYOV AW
YIZSDWAHLNOVFPUCE
FLSO
输出:_________________________
3、g3;
var n,i,s,t,j,k:longint; a:array[1..10000] of longint;
procedure quicksort(l,r:longint);
var i,j,x,t:longint;
begin
i:=l; j:=r; x:=a[(l+r)div 2];
repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if (a[i]>=a[j])and(i<=j) then begin
t:=a[i]; a[i]:=a[j]; a[j]:=t;
inc(i); dec(j);
end;
until i>j;
if j>l then quicksort(l,j);
if i<r then quicksort(i,r);
end;
begin
A
readln (n);
for i:=1 to n do read (a[i]);
quicksort (1,n);
for i:=1 to n-1 do begin
t:=a[1]+a[2];
s:=s+t;
j:=3;
while (t>a[j]) and (j<=n) do j:=j+1;
j:=j-1; n:=n-1;
for k:=1 to j-2 do a[k]:=a[k+2];
a[j-1]:=t;
for k:=j to n do a[k]:=a[k+1];
end;
writeln (s);
end.
输入: 3
1 2 9
输出:_________________________
4、Program g4;
const maxn=5000;
var i,j,n,l,maxlen:longint;
a,len,t:array [0..maxn] of longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do len[i]:=1;
for i:=n-1 downto 1 do
for j:=i+1 to n do
if (a[j]<a[i]) and (len[j]>=len[i]) then len[i]:=len[j]+1;
maxlen:=1;
for i:=1 to n do if len[i]>maxlen then maxlen:=len[i];
a[0]:=maxlongint; len[0]:=maxlen+1;
for i:=0 to n do if len[i]=1 then t[i]:=1 else t[i]:=0;
for l:=1 to maxlen do
begin
for i:=n downto 1 do
if len[i]=l then
begin
j:=i-1;
while (j>=0) and (a[j]<>a[i]) do
begin
if (a[j]>a[i]) and (len[j]=l+1) then inc(t[j],t[i]); dec(j)
end;
end;
end;
writeln(maxlen,' ',t[0]); end.
输入:12
50 59 44 54 58 54 60 57 68 52 88 77
输出:_________________________
五.完善程序 (前 8 空,每空 3 分,最后1空4分,共 28 分)
1、打包
某个工厂生产出的产品都要被打包放入正四棱柱的盒子内。

所有的盒子高度都为h,但底面尺寸不同,可以为1×1,2×2,3×3,4×4,5×5,6×6。

这些盒子将被放入高度为h,底面尺寸为6×6的箱子里,送到消费者手中。

为了降低运送成本,工厂希望尽量减少箱子的数量。

请你完善程序算出最少需要的箱子数。

program box sum; /
var
b1,b2,b3,b4,b5,b6:integer;
s1,s2,s3,s4,s5,s6:intrger;
sum:integer;
function dis(a,b:integer):integer;
begin
if a mod b=0 then dis:=a/b else dis:=(a div b)+1
end;
begin
read(b1,b2,b3,b4,b5,b6);
s6:=b6; /
s5:=b5;
s4:=b4;
①;
if b2>②then s2:=dis(b2-(s4*5+(s3*4-b3)*2-1),9) else s2:=0;
if b1>(s5*5+((s4+s3+s2)*36-(b4*16)-(b3*9)-(b2*4)))
then s1:=③
else s1:=0;
sum:=④;
write(sum)
end.
2、加分二叉树(binary)
设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。

每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree (也包含tree本身)的加分计算方法如下:
subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数
若某个子树为主,规定其加分为1,叶子的加分就是叶节点本身的分数。

不考虑它的空子树。

试求一棵符合中序遍历为(1,2,3,…,n)且加分最高的二叉树tree。

要求输出;
(1)tree的最高加分
(2)tree的前序遍历
var
n,i,j,k,l:integer;
p:array[1..30]of integer;
f:array[0..31,0..31]of cardinal;
root:array[1..30,1..30]of integer;
s:array[1..30]of integer;
procedure dfs(i,j:integer);
begin
if k=n then exit;
inc(k);
s[k]:=root[i,j];
if root[i,j]-1>=i then ① ;
if root[i,j]+1<=j then ② ;
end;
begin
readln(n);
for i:=1 to n do read(p[i]);
fillchar(f,sizeof(f),0);
for i:=1 to n do begin f[0,i]:=1;f[i,0]:=1;f[n+1,i]:=1;f[i,n+1]:=1; end; for i:=1 to n do begin f[i,i]:=p[i];root[i,i]:=i;end;
for i:=1 to n-1 do begin
f[i,i+1]:= ③ ;
root[i,i+1]:=i;
end;
for l:=3 to n do
for i:=1 to n do begin
j:=i+l-1;
if j<=n then
for k:=i to j do
if④ then begin
f[i,j]:=f[i,k-1]*f[k+1,j]+p[k];
⑤ ;
end;
end;
writeln(f[1,n]);
k:=0;
dfs(1,n);
for i:=1 to n-1 do write(s[i],' ');
write(s[n]);
writeln();
end.
NOIP2001年(第七届)提高组(Pascal语言)参考答案
一、单项选择题
1. D
2. A
3. C
4.D
5.D
6. B
7. C
8.D
9. B 10. B
二.不定项选择题
11. BC 12. ABCD 13. ABD 14.CD 15. ABCD 16.AB 17.ABCD 18.ABC 19.ABCD 20. ABD
二、问题求解
1.C 2n / (n+1)
2.能。

有2个奇度顶点,其余均为偶度顶点,具有欧拉通路,可一笔画成。

三、阅读程序,写出程序的正确运行结果(4+7+8+9=28分)
1、1
2、NOIP
3、15
4、4 2
四、根据题意,将程序补充完整
1.①s3:=dis(b3,4) ②(s4*5+(s3*4-b3)*2-1) ③dis(b1-(s5*5+((s4+s3+s2)*36-(b4*16)(b3*9)-(b2*4))),36)
④s6+s5+s4+s3+s2+s1;
2.①dfs(i,root[i,j]-1)②dfs(root[i,j]+1,j)③p[i]+p[i+1]
④f[i,j]<=f[i,k-1]*f[k+1,j]+p[k]⑤root[i,j]:=k;
n。

相关文档
最新文档