第九届信息学奥赛初赛试题及答案.docx
《第九届信息学奥赛初赛试题及答案.docx》由会员分享,可在线阅读,更多相关《第九届信息学奥赛初赛试题及答案.docx(10页珍藏版)》请在冰豆网上搜索。
第九届信息学奥赛初赛试题及答案
第九届信息学奥赛初赛试题及答案_提高组
作者:
信息教研组 文章来源:
发布时间:
2009-03-04 点击数:
301
一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有-个正确答案)。
1.图灵(AlanTuring)是(B)。
A)美国人B)英国人C)德国人D)匈牙利人E)法国人
2.第一个给计算机写程序的人是(B)。
A)AlanMathisonTuringB)AdaLovelaceC)JohnvonNeumann
D)JohnMc-CarthyE)EdsgerWybeDijkstra
3.十进制数2003等值于二进制数()。
A)0100000111B)10000011C)110000111D)11111010011E)1111010011
4.假设A=true,B=false,C=true,D=true,逻辑运算表达式A∧B∨C∧D的值是(A)。
A)trueB)falseC)0D)1E)NULL
5.一个高度为h的二叉树最小元素数目是()。
A)2h+lB)hC)2h-1D)2hE)2h-1
6.已知队列(13,2,11,34,4l,77,5,7,18,26,15),第一个进入队列的元素是13,则第五个出队列的元素是()。
A)5B)41C)77D)13E)18
7.下面一段程序是用()语言书写的。
intfuncl(intn){
inti,sum=0;
for(i=1;i<=n;i++)
sum+=i*i;
returnsum;
}
A)FORTRANB)PASCALC)CD)PROLOGE)BASIC
8.设全集E={1,2,3,4,5},集合A={1,4},B={l,2,5},C={2,4),则集合(A∩B)∪~C为()。
A)空集B){1}C){3,5}D){1,5}E){1,3,5}
9.表达式(1+34)*5-56/7的后缀表达式为()
A)1+34*5-56/7B)-*+1345/567C)134+5*567/-
D)1345*+567/-E)134+5567-*/
10.下列计算机设备,既是输入设备,又是输出设备的是()。
A)键盘B)触摸屏C)扫描仪D)投影仪E)数字化仪
二、不定项选择题(共10题,每题1.5分,共计15分。
多选或少选均不得分)。
11.下列分辨率的显示器所显示出的图像,最清晰的是()。
A)800*600B)1024*768C)640*480D)1280*1024E)800*1000
12.下列说法中,哪个(些)是错误的()。
A)程序是指令的序列,它有三种结构:
顺序、分支和循环。
B)数据总线决定了中央处理器CPU所能访问的最大内存空间的大小。
C)中央处理器CPU内部有寄存器组,用来存储数据。
D)不同厂家生产的CPU所能处理的指令集是相同的。
E)数据传输过程中可能会出错,奇偶校验法可以检测出数据中那一位在传输中出了差错。
13.CPU访问内存的速度比访问下列哪个(些)存储设备要慢()。
A)寄存器B)硬盘C)软盘D)高速缓存E)光盘
14.下列电子邮件地址,哪个(些)是正确的()。
A)wang@B)cai@jcc.pc.too1.rf.edu.jpC)162.105.111.22
D)E)
15.数字图像文件可以用下列哪个(些)软件来编辑()。
A)画笔(Paintbrush)B)记事簿(Notepad)C)PhotoshopD)WmRARE)MidiSoft
16.下列哪个(些)软件不是操作系统软件的名字()。
A)WindowsXPB)DOSC)LinuxD)OS/2E)Arch/Info
17.下列哪个(些)不是个人计算机的硬件组成部分()。
A)主板B)虚拟内存C)电源D)硬盘E)总线
18.运算式(2008)10-(3723)8的结果是()。
A)(-1715)10B)(5)10C)(5)16D)(101)2E)(3263)8
19.已知元素(8,25,14,87,5l,90,6,19,20),问这些元素以怎样的顺序进入栈,才能使出栈的顺序满足:
8在5l前面;90在87后面;20在14后面;25在6前面;19在90后面。
()
A)20,6,8,51,90,25,14,19,87
B)51,6,19,20,14,8,87,90,25
C)19,20,90,7,6,25,5l,14,87
D)6,25,51,8,20,19,90,87,14
E)25,6,8,51,87,90,19,14,20
20.假设我们用d=(a1,a2,...,a5),表示无向图G的5个顶点的度数,下面给出的哪(些)组d值合理的()。
A){5,4,4,3,1}B){4,2,2,1,1}C){3,3,3,2,2}
D){5,4,3,2,l}E){2,2,2,2,2)
三.问题求解(共2题,每题5分,共计10分)
1.无向图G有16条边,有3个4度顶点、4个3度顶点,其余顶点的度均小于3,则G至少 个顶点。
2.某年级学生共选修6门课程,期末考试前,必须提前将这6门课程考完,每人每天只在下午至多考一门课程,设6门课程分别为c1,c2,c3,c4,c5,c6,S(ci)为学习ci的学生集合。
已知S(ci)∩S(c6)≠?
,i=l,2,...,5,S(ci)∩S(ci+1)≠?
,i=1,2,3,4,S(c5)∩S(c1)≠?
,问至少安排 天才能考完这6门课程。
四.阅读程序(共4题,每题8分,共计32分)
1.programPrograml;
vara,b,c,d,sum:
1ongint;
begin
read(a,b,c,d);
a:
=amod23;b:
=bmod28;c:
=cmod33;
sum:
=a*5544+b*14421+c*1288-d;
sum:
=sum+21252;sum:
=summod21252;
if(sum=0)thensum:
=21252;
writeln(sum);
end.
输入:
28310223320输出:
2.programProgram2;
const
u:
array[1..4]ofinteger=(0,5,3,1);
v:
array[1..4]0finteger=(0,7,6,5);
vara,b,c,d,e,f,x,y,z:
integer;
begin
read(a,b,c,d,e,f);
z:
=f+e+d+(c+3)div4;y:
=5*d+u[cmod4];
if(b>y)then
begin
z:
=z+(b-y+8)div9;
x:
=((b-y+8)div9*9-(b-y))*4+11*e+V[cmod4];
end
else
x:
=(y-b)*4+11*e+v[cmod4];
if(a>x)then
z:
=z+(a-x+35)div36;
writeln(z);
end.
输入;479205647输出:
3.programProgramg3;
varm,n:
integer;Mark:
boo1ean;
functiontest(m,N:
integer):
integer;
vari,p:
integer;flag:
boolean;
begin
m:
=m-1;i:
=0;flag:
=False;
forp:
=2*Ndownto(N+1)do
begin
i:
=(i+m)modp;
if(i
begin
test:
=0;flag:
=True;Break;
end
end;
ifnot(flag)thentest:
=1;
end;
begin
read(n);m:
=1;Mark:
=False;
repeat
if(test(m,n)=1)then
beginwriteln(m);break;end;
m:
=m+1;
untilMark;
end.
输入:
7输出:
4.programProgramg4;
varm,n,i,j:
integer;
p,w,a,b:
array[0..19]ofinteger;
begin
read(n);m:
=0;
fori:
=0ton-1do
beginread(p[i]);b[i]:
=1;end;
fori:
=0ton-1do
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[rn-1]=0))do
beginm;=m-1;b[m]:
=l;end;
if(m>0)then
w[i]:
=b[m-1]
else
w[i]:
=b[0];
a[m-1]:
=a[m-1]-1;
forj:
=0tom-1dob[j];=b[j]+1;
while((m>1)and(a[m-1]=0))do
begin
m:
=m-1;b[m]:
=1;
end;
end;
fori:
=0ton-1do
begin
write(w[i]);write('');
end;
writeln('');
end.
输入:
9
466668999
输出:
五.完善程序(共2题,第1题每空3分;第2题每空2分。
共计28分)
1.翻硬币
题目描述:
一摞硬币共有m枚,每一枚都是正面朝上。
取下最上面的一枚硬币,将它翻面后放回原处。
然后取下最上面的2枚硬币,将他们一起翻面后再放回原处。
再取3枚,取4枚……直至m枚。
然后再从这摞硬币最上面的一枚开始,重复刚才的做法。
这样一直做下去,直到这摞硬币中的每一枚又都是正面朝上为止。
例如,m为1时,翻两次即可。
输入:
仅有的一个数字是这摞硬币的枚数m,0<m<1000。
输出:
为了使这摞硬币中的每一枚又都是正面朝上所必需翻的次数。
输入样例:
30
输出样例:
899
程序:
programPrograml;
varm:
integer;
functionsolve(m:
integer):
integer;
vari,t,d:
integer;
flag:
boolean;
begin
if(m=1)then
solve:
=
(1)
elsebegin
d:
=2*m+1;t:
=2;I:
=1;flag:
=False;
repeat
if(t=1)then
begin
solve:
=
(2);flag:
=True;
end
elseif((3))then
begin
so1ve:
=I*m-1;flag:
=True
end
else
t:
=(4)
I:
=i+1;
untilflag;
end
end;
begin
read(m);if(((5))and(m<1000))then
writeln((6));
end.
2.OIM地形
题目描述:
二维离散世界有一种地形叫OIM(OIMountain)。
这种山的坡度只能上升('/')或下降('\'),而且两边的山脚都与地平线等高,山上所有地方都不低于地平线。
例如:
/\ /\
/ \/\是一座OIM:
而/ \不是。
\/
这个世界的地理学家们为了方便记录,给OIM所有可能的形状用正整数编好号,而且每个正整数恰好对应一种山形。
他们规定,若两座山的宽度不同,则较宽的编号较大;若宽度相同,则比较从左边开始第1个坡度不同的地方,坡度上升的编号较大。
以下三座OIM的编号由小到大递增:
/\ /\ /\ /\
/ \/\ / \/\/\ / \/ \。
显然/\的编号为1。
但是地理学家在整理记录时发觉,查找编号与山形的对应关系不是很方便。
他们希望能快速地从编号得到山的形状。
你自告奋勇答应给他们写一个程序,输入编号,能马上输出山形。
输入:
一个编号(编号大小不超过600,000,000),
输出:
输入编号所对应的山形,l座山所占行数恰为它的高度,即山顶上不能有多余空行。
输入样例:
15
输出样例:
/\ /\
/ \/ \
程序:
programProgramg2;
const
L:
integer=19;SZ:
integer=50;
Up:
char='/';DN:
char'\';
Var
i,nth,x,y,h,e,f:
integer;
m:
array[0..1,0..38,0..19]0finteger;
pic:
array[0..49,0..49]ofchar;
procedureinit;
vark,s,a,b,c:
integer;
begin
fora:
=0to1do
forb:
=0to2*Ldo
forc:
=0toLdo
m[a,b,c]:
=0;m[0,0,0]:
=1;
fork:
=0to2*L-1do
begin
fors:
=1toLdo
begin
m[0,k+1,s]:
=m[0,k,s+1]+m[1,k,s+1];
m[1,k+1,s]:
=
(1);
end;
m[0,k+1,0]:
=m[0,k,1]+m[1,k,1];
end;
end:
proceduredraw(k,s,nth:
integer);
begin
if(k=0)thenexit;
if((nth-m[1,k,s])>=0)then
begin
nth:
=nth-m[1,k,s];
if(y>h)then
(2);
pic[y,x]:
=UP;y:
=y+1;x:
=x+l;draw((3));
end
elsebegin
y:
=y-1;pic[y,x]:
=DN;x:
=x+1;draw(k-1,s-l,nth);
end;
end:
begin
init;
read(nth);
fore:
=0toSZ-1do
forf:
=0toSZ-ldo
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));
fori:
=hdownto0do
begin
fore:
=0tox-1do
write(pic[i,e]);
writeln('');
end;
end.
第九届全国青少年信息学奥林匹克联赛初赛试题
提高组参考答案
一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案)。
题号
1
2
3
4
5
6
7
8
9
10
选择
B
B
D
A
B
B
C
E
C
B
二、不定项选择题(共10题,每题1.5分,共计15分。
多选或少选均不得分)。
题号
11
12
13
14
15
16
17
18
19
20
选择
D
BDE
AD
AB
AC
E
B
BCD
D
BE
三.问题求解(共2题,每题5分,共计10分)
1.答:
11
2.答:
4
四.阅读程序(共4题,每题8分,共计32分)
(1)程序的运行结果是:
8910
(2)程序的运行结果是:
126
(3)程序的运行结果是:
1872
(4)程序的运行结果是:
11245ll39
五.完善程序(共2题,第1题每空3分;第2题每空2分。
共计28分)
Pascal语言
==========================
题一
(1)2
(2)i*m
(3)t=2*m
(4)(t*2)modd
(5)m>0
(6)solve(m)
题二
(1)m[0,k,s-1]+m[1,k,s-1]
(2)h:
=y
(3)k-1,s+1,nth
(4)i:
=i+1
(5)2*i,0,nth