第八届全国青少年信息学奥林匹克联赛(NOIP2002)初赛试题

(提高组PASCAL语言二小时完成)

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

一、.选择一个正确答案代码(A/B/C/,填入每题的括号内(每题1.5,多选无分,30)

1.微型计算机的问世是由于(    ) 的出现。

A)中小规模集成电路    B)晶体管电路    C) ()大规模集成电路    D) 电子管电路

2.中央处理器(CPU)能访问的最大存储器容量取决于(    )

A)地址总线-    B)数据总线    C) 控制总线    D) 实际内存容量

3.十进制数11/128可用二进制数码序列表示为:(    )

A)1011/1000000    B)1011/100000000    C) 0.001011    D) 0.0001011

4.算式(2047)10(3FF)16(2000)8的结果是(    )

A)(2048)10     B)(2049)10    C) (3746)8    D) (1AF7)16

5.已知x=(0.1011010)2,[x/2]=(    ) 2

A) 0.1011101.    B) 11110110    C) 0.0101101    D) 0.100110

6.Ip v4地址是由(    ) 位二进制数码表示的。

A)16    B)32    C) 24f    D) 8

7.计算机病毒传染的必要条件是:(    )

A)在内存中运行病毒程序    B)对磁盘进行读写操作

C)在内存中运行含有病毒的可执行程序    D) 复制文件

8.在磁盘上建立子目录有许多优点,下列描述中不属于建立子目录优点的是(    )

A)便于文件管理         B) 解决根目录中目录项个数有限问题

C) 加快文件查找速度    D) 节省磁盘使用空间

9.在使用E-mail,需要对OUTLOOK进行设置,其中ISP接收电子邮件的服务器称为(    ) 服务器。

A)POP3    B)SMTP     C) DNS     D) FTP

10.多媒体计算机是指(    ) 计算机。

A)专供家庭使用的        B)装有CD-ROM

B)连接在网络上的高级    D) 具有处理文字、图形、声音、影像等信息的

11.微型计算机中,(    ) 的存取速度最快。

A)高速缓存    B)外存储器    C) 寄存器    D) 内存储器

12.资源管理器的目录前图标中增加"+",这个符号的意思是(    )

A)该目录下的子目录已经展开    B)该目录下还有子目录未展开

C) 该目录下没有子目录         D) 该目录为空目录

13.WORD文档编辑中实现图文混合排版时,关于文本框的下列叙述正确的是(    )

A)文本框中的图形没有办法和文档中输入文字叠加在一起,只能在文档的不同位置

B)文本框中的图形不可以衬于文档中输入的文字的下方。

C) 通过文本框,可以实现图形和文档中输入的文字的叠加,也可实现文字环绕。

D) 将图形放入文本框后,文档中输入的文字不能环绕图形。

14.一个向量第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是(    ) 。

A)110    B)108    C) 100    D) 109

15.已知A=35H,则A∧05H∨A∧3OH的结果是:(    ) 。

A)3OH     B)05H     C) 35H     D) 53H

16.设有一个含有13个元素的Hash表(0~12),Hash函数是:H(key)=key % 13,其中% 是求余数运算。用线性探查法解决冲突,则对于序列(2、8、31、20、19、18、53、27),18应放在第几号格中(    ) 。

A) 5    B) 9    C) 4    D) 0

17.按照二叉树的定义,具有3个结点的二叉树有(    ) 种。

A) 3    B) 4    C) 5    D) 6

18.在一个有向图中,所有顶点的人度之和等于所有顶点的出度之和的(    ) 倍。

A) 1/2    B)1    C) 2    D) 4

19.要使1...8号格子的访问顺序为:8、2、6、5、7、3、1、4,则下图中的空格中应填入(    ) 。

1

2

3

4

5

6

7

8

4

6

1

-1

 

7

3

2

 

A) 6    B) O    C) 5    D) 3

20.设找S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过钱S,一个元素出栈后即进入队列Q,若出队的顺序为e2,e4,e3,e6,e5,e1,则钱S的容量至少应该为(    ) 。

A) 2    B) 3    C) 4    D) 5

 

.问题求解:(6+8=14分}

1.在书架上放有编号为1,2,....n的n本书。现将n本书全部取下然后再放回去,当放回去时要求每本书都不能放在原来的位置上。例如:n=3时:

原来位置为:123

放回去时只能为:312或231这两种

问题:求当n=5时满足以上条件的放法共有多少种?(不用列出每种放法)

 

2.设有一棵k叉树,其中只有度为0和k两种结点,设n0,nk分别表示度为0和度为k的结点个数,试求出n0,nk之间的关系(n0=数学表达式,数学表达式仅含nk,k和数字)

 

.阅读程序,写出正确的程序运行结果:{8+9+9=26分)

1.pmgram Gxp1;

var n,jr,jw,jb:integer;

ch1:char;

ch:array[1..20]d char;

begin

readln(n);

for i:=1 to n do read(ch[i]):

jr:=1;jwz=n;jb:=n;:

while (jr<=jw)do

begin

if(ch[jw]='R')

then begin

ch1:=Ch[jr];Ch[jr]:=ch[jw];ch[jw]:=ch1:jr:=jr+13

end

else if ch[jw]='W'

then jw:=jw-1

else begin

ch1:=ch[jw];ch[jw]:=ch[jb];ch[jb]:=ch1;jw:=jw-1;jb:=jb-1;

end

end;

for i:=1 to n do write(ch[i]);

writeln;

end.

输入:10

RBRBWWRBBR

输出:

 

2.pmgram Gxp2;

Var I,j,s,sp1:integer;

p:boolean;

a :array[1..10] of integer;

begin

sp1:=1;a[1]:=2;j:=2:

while sp1<10 do u

begin

j :=j+1;p:=true;

for i:=2 to j-1 do

if(j mod i=O)then p:=false;

if p then begin

sp1:=sp1+1;a[sp1]:=j;

end;

end;

j:=2; p:=true;

while p do

begin

     s:=1;

for i:=1ωj do s:=s*a[I];

s:=s +1;

for i:=2 to s-1 do

if S mod i=O then p:=false;

j :=j+1;

end;

writeln(s);writeln;

end.

输出:

 

3.pmgram Gxp3

Var d1,d2,X,Min:real;

begin

min:=10000;X:=3;

while X<15 do

begin

d1:=sqrt(9+(X-3)*(X-3));d2:=sqrt(36+(15-X)*(15-X));

if(d1+d2)<Min then Min:=d1+d2;

X:=x+0.001;

end;

writeln(Min:1O:2);

end.

输出:

 

.完善程序:(15+15=30分)

1.问题描述:工厂在每天的生产中,需要一定数量的零件,同时也可以知道每天生产一个零件的生产单价。在N天的生产中,当天生产的零件可以满足当天的需要,若当天用不完,可以放到下一天去使用,但要收取每个零件的保管费,不同的天收取的费用也不相同。

问题求解:求得一个N天的生产计划(即N天中每天应生产零件个数),使总的费用最少。

输入:N(天数N<=29)

每天的需求量(N个整数)

每天生产零件的单价(N个整数)

每天保管零件的单价(N个整数)

输出:每天的生产零件个数(N个整数)

例如:当N=3时,其需要量与费用如下:

 

第一天

第二天

第三天

需要量

25

15

30

生产单价

20

30

32

保管单价

5

l0

0

生产计划的安排可以有许多方案,如下面的三种:

第一天

第二天

第三天

总的费用

25

15

30

25*2O+15*30+30*32=1910

40

0

30

40*20+15*5+30*32=1835

70

0

0

70*20+45*5+30*10=1925

程序说明:

b[n]:存放每天的需求量

c[n]:每天生产零件的单价

d[n]:每天保管零件的单价

e[n]:生产计划

程序:

Program exp5;

Var

i,j,n,yu,j0,j1,s:integer;

b,c,d,e: array[0..30]of integer;

begin

readln(n);

for i:=1 to n do readln(b[[i],c[I],d[i]];

fori:=1 to n do e[i]:=0;

   ①   :=10000;c[n+2]:=0;b[n+1]:=0;jO:=1;

while (jO<=n)do

begin

yu:=c[j0]; j1:=jO; s:=b[j0];

while    ②    do

begin

     ③    j1:=j1+1;s:=s+b[j1];

end;

   ④      jO:=j1+1;

end;

for i:=1 to n do      ⑤      

readln;

end.

 

2.问题描述:有n种基本物质(n≤10),分别记为P1,P2,……,Pn,用n种基本物质构造物品,这些物品使用在k个不同地区(k≤20),每个地区对物品提出自己的要求,这些要求用一个n

位的数表示1α2……αn,其中:

αi =1表示所需物质中必须有第i种基本物质

=-1表示所需物质中必须不能有第i种基本物质r

=0无所谓

问题求解:当k个不同地区要求给出之后,给出一种方案,指出哪些物质被使用,哪些物质不被使用。

程序说明:数组b[1],b[2],...,b[nJ表示某种物品

a[1..k,1..n]记录k个地区对物品的要求,其中:

a[I,j]=1表示第i个地区对第j种物品是需要的

a[i,j]=0表示第i个地区对第j种物品是无所谓的

a[i,j]=-1表示第i个地区对第j种物品是不需要的

程序:

program gxp2;

Var i, j ,k, n :integer;

p:boolean;

b :array [0..20] of 0..1;

a :array[1..20,1..10]d integer;

begin

readln(n,k);

for i:=1 to k do

begin

for j:=1 to n do read(a[i,j]);

readln;

end;

for i:=O to n do b[i]:=0;

p:=true;

while        ①       do

begin

j:=n;

while  b[j]=1 do j:=j-1;

    ②    

for i:=j+1 to n do b[I]:=0;

for i:=1 to k do

for j :=1to n do

if( a[i,j]=1 ) and (b[j]=0) or         ④      

then p:=true;

end;

if       ⑤    

then writeln('找不到!‘)

else for i:=1 to n do

if (b[i]=1) then writeln('物质',I,需要')

else writeln('物质',i,'不需要');

end.

 

 

..关闭窗口..