NOIP试题信息学奥赛初赛真题Word文档格式.docx
《NOIP试题信息学奥赛初赛真题Word文档格式.docx》由会员分享,可在线阅读,更多相关《NOIP试题信息学奥赛初赛真题Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
A、23415B、54132C、23145D、15432
14、TCP/IP网络的体系结构分为应用层、传输层、网络互联层和网络接口层。
属于传输层协议的是()。
A、TCP和ICMP B、IP和FTP C、TCP和UDPD、ICMP和UDP
15、使用IE浏览器浏览网页时,出于安全方面的考虑,需要禁止执行JavaScript,可以在IE中()。
A、禁用ActiveX控件B、禁用cookie
C、禁用没有标记为安全的ActiveX控件D、禁用脚本
16、某数码相机的分辨率设定为1600×
1200象素,颜色深度为256色,若不采用压缩存储技术,则32M字节的存储卡最多可以存储()张照片。
A、8 B、17 C、34 D、69
17、在以下关于电子邮件的叙述中,“()”是不正确的。
A、打开来历不明的电子邮件附件可能会传染计算机病毒
B、在网络拥塞的情况下,发送电子邮件后,接收者可能过几个小时后才能收到
C、在试发电子邮件时,可向自己的Email邮箱发一封电子邮件
D、电子邮箱的容量指的是用户当前使用的计算机上,分别给电子邮箱的硬盘容量
18、关于发送和接收电子邮件,下列叙述中正确的是()。
A、发送方和接收方必须同时开机才能传送电子邮件
B、接收方不能与发送方相同
C、同一E-Mail帐户不能同时设置在多台计算机上
D、同一台计算机上可以设置多个E-Mail帐户
19、目前多媒体计算机中对动态图象数据压缩常采用()。
A、JPEG B、GIF C、MPEG D、BMP
20、为了在Internet上浏览网页,需要在客户端安装浏览器,不属于浏览器软件的时()。
A、InternetExplorerB、Fireworks
C、HotJavaD、NetscapeCommunicator
二、问题解答(每小题10分,共20分)
1.在书架上放有编号为1,2,...,n的n本书。
现将n本书全部取下然后再放回去,当放回去时要求每本书都不能放在原来的位置上。
例如:
n=3时:
原来位置为:
123
放回去时只能为:
312或231这两种
问题:
求当n=5时满足以上条件的放法共有多少种?
(不用列出每种放法)
2.如果一棵m度树中有n1个度为1的结点,n2个度为2的结点,……有nm个度为m的结点,求该树中叶结点的的个数。
三、阅读程序(每小题10分,共30分)
请阅读下列各题程序,并将程序的正确运行结果写在答题卷相应位置上,答在试卷上不得分。
1、PROGRAMcx1;
VAR
a:
ARRAY[1..100]OFINTEGER;
p,n,m,i:
INTEGER;
BEGIN
READLN(n,m);
FORi:
=1TO100DOa[i]:
=0;
p:
=1;
REPEAT
a[p]:
=a[p]+1;
IFa[p]>
nTHENBEGIN
=p-1;
END
ELSEBEGIN
=p+1;
=a[p-1];
END;
IFp>
mTHENBEGIN
=1TOmDOWRITE(a[i]);
WRITELN;
UNTILp<
1;
END..
输入:
42
程序运行的结果是:
2、PROGRAMcx2;
VARn,i,j:
LONGINT;
s:
ARRAY[1..100]OFINTEGER;
READLN(n);
i:
REPEAT
INC(i);
IFODD(n)THENs[i]:
=1ELSEs[i]:
n:
=nSHR1;
UNTILn=0;
FORj:
=iDOWNTO1DOWRITE(s[j]);
END.
2004
程序运行的结果是:
3、PROGRAMcx3;
VARpath:
ARRAY[1..1000]OFINTEGER;
total,n:
PROCEDUREfind(k,sum,dep:
INTEGER);
VARb,d:
IFsum=nTHEN
BEGIN
WRITE(n,'
='
path[1]);
FORd:
=2TOdep-1DOWRITE('
*'
path[d]);
WRITELN;
INC(total);
EXIT;
END;
IFsum>
nTHENEXIT;
FORb:
=TRUNC(n/sum)+1DOWNTOkDO
path[dep]:
=b;
find(b,sum*b,dep+1);
READLN(n);
total:
find(2,1,1);
WRITELN('
total:
'
total);
READLN;
8
四、程序填空(每空3分,共30分)
请阅读下列各题的题意及程序,并将程序的空缺部分填空完善,填空的内容写在答题卷相应位置上,答在试卷上不得分。
1、问题描述:
本程序是一个用栈实现“老鼠走迷宫问题”的子程序。
其中迷宫由二维数组maze[1..m,1:
p]of0..1表示,若数组元素的值为1,表示对应的位置不通行;
若为0,表示可通行。
迷宫的入口为maze[1,1],出口为maze[m,p]。
为了便于处理迷宫周围的边界,把数组扩充为maze[0..m+1,0..p+1],使得周围附加一圈的数组元素值均取为1,以表示老鼠不得走离边界。
同时,用二维数组mark[0..m+1,0..p+1]of0..1记录在迷宫内所走过的位置,以避免重复。
老鼠在位置[I,j]上,可能向周围八个方向的位置走动(只要周围的位置为0值),参看下图。
在程序中这八种可能的走动,可用下表表示。
q
move[q].a
move[q].b
1
-1
2
3
4
5
6
7
程序:
PROGRAMmg;
CONSTm=10;
p=10;
n=100;
TYPEoffsets=RECORD
a,b:
-1..1
iterms=RECORD
x:
1..m;
y:
1..p;
dir:
1..9
VARmaze,mark:
array[0..11,0..11]of0..1;
move:
ARRAY[1..8]OFoffsets;
stack:
ARRAY[1..n]OFitems;
top:
-1..n;
i,j:
PROCEDUREpath;
LABEL99;
VARposition:
items;
d,g,h,I,j,q:
mark[1,1]:
top:
stack[1].x:
Stack[1].y:
stack[1].dir:
WHILEtop>
0DO
position:
=①;
=top-1;
iI:
=position.x;
j:
=position.y;
d:
=position.dir;
WHILEd<
=8DO
g:
=I+move[d].a;
h:
=j+move[d].b;
IF②THEN
FORq:
=1TOtopDOwriteln(stack[q].x,(stack[q].y);
WRITELN(I,j);
WRITELN(m,p);
GOTO99
IF③THEN
mark[g,h]:
position.x:
=I;
position.y:
=j;
④;
IFtop=nTHEN
WRITELN(“stackfull”);
GOTO99
END
ELSEBEGIN
=top+1;
stack[top]:
=position
i:
=g;
=h;
=1
ELSE⑤
WRITELN(“nopathinmaze”);
99:
FORi:
=0TOm+1DO
=0TOp+1DO
IF(i=0)OR(i=m+1)OR(j=0)OR(j=p+1)THEN
maze[i,j]:
ELSEREAD(maze[i,j]);
=1TO8DO
READLN(move[i].a,move[i].b);
path
2.问题描述:
本程序输入一个无回路有向图的所有有向边,对图中的结点进行拓扑排序输出。
有向图中的n个结点v1,v2,…,vn分别以整数1,2,…,编号,用整数对(I,j)表示结点vi到结点vj的有向边。
譬如,某计算机系开设如下九门课程:
V1程序设计V2高等数学V3数据结构
V4汇编语言V5线性代数V6人工智能
V7图形学V8数值分析V9算法分析
选修每门课程所需前导课程可用如下一个无回路有向图表示。
求出图上结点的拓扑排序序列,便可以确定学生选修各门课程的先后顺序。
本程序采用的拓扑排序的基本要点是:
(1)为每个结点设置一个计数器,初值分别为指向该结点的有向边条数。
(2)将所有计数器值为0的结点勾链在一起。
(3)在输出计数器值为0的结点序号后,就修改由该结点出发的所有有向边所指的结点的相应计数器。
PROGRAMlist(input,output);
CONSTnmax=100;
TYPEnextnode=^node;
node=RECORD
Vertex:
integer;
Link:
nextnode;
headnodes=RECORD
count:
link:
nextnode
adjacencylists=ARRAY[1..nmax]OFheadnodes;
VARa:
adjacencylists;
w:
p,q,n,I:
PROCEDUREtopologicalorder(VARadlist:
adjacencylists;
n:
VARi,j,k,top:
ptr:
done:
BOOLEAN;
=1TOnDO
IFadlist[i].count=0THEN
adlist[i].count:
=top;
=I
=false;
WHILE①DO
IFtop=0
THENBEGIN
WRITELN(‘networkhasacycle’);
done:
=true
ELSE②;
=adlist[top].count;
writeln(j);
=③;
WHILEptr<
>
nilDO
④;
adlist[k].count:
=adlist[k].count-1;
IF⑤THEN
=k
=ptr^.link
=i+1
WRITELN(‘’Enterthenumberofvertex’);
a[i].count:
a[i].link:
=nil
WRITELN(‘Enterthepairsofvertex’);
READ(p,q);
WHILEp>
NEW(w);
w^.vertex:
=q;
w^.link:
=a[p].link;
a[p].link:
=w;
a[q].count:
=a[q].count+1;
READLN(p.q)
WRITELN(‘Thetopologicalorderofvertex:
’);
topologicalorder(a,n)
宁波市第20届中小学生计算机程序设计竞赛初赛试题答题卷
(高中组)
一、选择题(每小题2分,共40分)
9
10
11
12
13
14
15
16
17
18
19
20
1.答:
2.答
三、阅读程序,并写出程序的正确运行结果(每小题10分,共30分)
1、程序运行结果:
2、程序运行结果:
3、程序运行结果:
1、①②
③
④⑤
2、①②③
宁波市第20届中小学生计算机程序设计竞赛初赛参考答案
C
C
D
A
B
3.答:
44
4.答:
n2+2n3+…+(m-1)nm+1
14
23
24
34
11111010100
8=8
8=2*4
8=2*2*2
1、①stack[top]②(g=m)AND(h=p)
③(maze[g,h]=0)AND(mark[g,h]=0)
④position.dir:
=d+1⑤d:
=d+1
2、①(i<
=n)ANDnotdone②j:
=top③adlist[j].link
④k:
=ptr^.vertex⑤adlist[k].count=0