您的当前位置:首页正文

99高初试题

2020-11-24 来源:步旅网



第五届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题(高中组)

(Pascal 语言竞赛用时:2小时)

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

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

30)

1.微机内存储器的地址是按()编址的。

A. 二进制位

B. 字长

C. 字节

D. 微处理器的型号

2.下列诸因素中,对微机工作影响最小的是()

A. 尘土

B. 噪声

C. 温度

D. 湿度

3.24*24点阵的字库中,汉字“一”与“编”的字模占用字节数分别是()

A. 3232

B. 3272

C. 7272

D. 7232

4.DOS系统盘插入A驱动器启动机器,随后使用一批应用软件,在此过程中,DOS

统盘()

A.必须始终插入在A驱动器中 B.不必再用

C.可能有时要插入A驱动器中 D.可能有时要插入B驱动中

5.以下DOS命令中,有可能在磁盘上建立子目录的是().

A.type B. dir C. xcopy Dcd

6.config.sys文件中,装入特定的可安装设备驱动程序的命令是().

A.buffer B. files C. driver D.device

7.计算机能直接执行的指令包括两部分,它们是().

A.源操作数与目标操作数B.操作码与操作数

C.ASCII码与汉字代码D.数字与字符

8.在微机中,通用寄存器的位数是().

A.8B.16C.计算机字长 D.32

9.在计算机中,ASCII码是()位二进制代码

A. 8

B. 7

C. 12

D. 16

10.计算机的软件系统通常分为()

A. 系统软件与应用软件 C. 军用软件与民用软件

B.高级软件与一般软件
D.管理软件与控制软件

11. 执行DOS 命令:CATTRIB A*.* 的功能是()

A. 查看A 盘上所有文件属性
C. 查看A 盘上所有系统文件属性

B.查看A盘上当前目录中所有文件属性D.删去A盘上所有隐含文件的属性



12.执件下列DOS命令,效果等价的是()组.

A. copy * . for copy * . for con

B. copy A: * . * B: xcopy A: * . * B:

C. copy fole1.txt + file2.txt copy flle2.txt + file1.txt

D. xcopy A: * . * B: S diskcopy A: B:

13.已知小写字母‘m的十六进制的ASCll码值是6D,则小写字母‘c的十六进制的ASCII

码值是()

A. 98

B. 62

C. 99

D. 63

14.计算机中的数有浮点数与定点数两种,其中用浮点数表示的数,通常由()这两部

分组成。

A. 指数与基数

B. 尾数与小数

C. 阶码与尾数

D. 整数与小数

15.下列文件名中,属于DOS中的保留设备名的为()

A. AUX

B. COM

C. CON 1

D. PRN 1

16.启动计算机引导DOS是将操作系统()

A. 从磁盘调入中央处理器 C. 从软盘调入硬盘

B.从内存储器调入高速缓冲存储器D.从系统盘调入内存储器

17. 十进制算术表达式:3* 512 + 7 * 64 + 4 * 8 + 5 的运算结果,用二进制表示为().

A. 10111100101 B. 11111100101

C. 11110100101 D. 11111101101

l8. 组成‘教授’(jiao shou)‘副教授’(fu jiao shou)与‘讲师’(jiang shi)这三个词的汉

字,在GB231280 字符集中都是一级汉字.对这三个词排序的结果是().

A. 教授,副教授,讲师 C. 讲师,副教授,教授

B.副教授,教授,讲师
D.副教授,讲师,教授

19. 不同的计算机,其指令系统也不同,这主要取决于().

A. 所用的操作系统 C. 所用的CPU

B.系统的总体结构
D.所用的程序设计语言

20. 对具有隐含属性(H)的当前目录下的文件 ab. txt,能成功执行的 DOS 命令是() A. TYPE ab.txt B. COPY ab. txt xy. txt
C. DIR ab.txt D. REN ab. txt xy. txt

二.回答问题:(10
Ln 定义为求在一个平面中用n 条直线所能确定的最大区域数目。

例如:当n1 时,L12,进一步考虑,用n 条折成角的直线(角度任意),放在平面上,能确定的最大区域数目Zn 是多少?例如:当n1 时,Z12 (如图所示)



当给出n后,请写出以下的表达式:

Ln

Zn

三.阅读程序,并写出程序的正确运行结果:(每题15分,共30

1programexgp1;
var i , j , k : integer;
a : array [0..100] of integer;
Begin
for i:=0 to 100 do a[i]:=i;
for k:=5 downto 2 do
begin
for i:=1 to 100 do if(i mod k)=0 then a[i]:=0; for i:=1 to 99 do
for j:=1 to 100-i do
if a[j]>a[j+1] then begin
a[j]:=a[j]+a[j+1];
a[j+1]:=a[j]-a[j+1];
a[j]:=a[j]-a[j+1];
end;
end;
j:=1;
while(a[j]=0) and (j<100) do j:=j+1;
fori:=j to 100 do a[0]:=a[0]+a[i]; writeln(a[0]); End

本题的运行结果是:

2.设数组A[1]A[2]A[N],已存入了数据,调入不同的排序程序,则数据比较的次数将会不同,试计算出分别调用下列不同的排序过程的比较运算的次数。其中SWAPIJ)表示A[I ]A[J ]进行交换。

(1) PROCEDURE SORT1(N:INTEGER);
VAR I , J : INTEGER;
BEGIN
FOR I:=1 TO N-1DO
FOR J:=1 TO N DO
IF A[J]<A[I] THEN SWAP(I , J)
END
调用该过程的语句为SORT1( N ),比较运算的次数为:



(2) PROCEDURE SORT2 ( I , N : INTEGER );
VAR J: INTEGER;
BEGIN
IF I=N THEN WRITE (A[N])
ELSEFOR J:=I+1 TO N DO
IFA[ J ]<A[ I ] THEN SWAP(I , J)
WRITE(A[ I ]);
SORT2(I+1, N)
END
调用该过程的语句为SORT2( 0 , N),比较运算的次数为:

(3) PROCEDURE SORT3 ( I , J : INTEGER);
VAR M : INTEGER;
BEGIN
IF I <>J THEN
BEGIN
M:=(I+J)DIV 2;
SORT2(I , M); SORT3 (M+1 , J);
MERGE; {假设合并的元素分别为PQ个,需要比较P+Q} END
END
调用该过程的语句为SORT3( 0 , N),比较运算的次数为:

四.根据题意,将程序补充完整(共30分)

1.【问题描述】求一棵树的深度与宽度。

【算法说明】树可用数组tree:array[1..n,1..5] of integer;

其中:tree[i,1]表示结点号;tree[i,2]——tree[i,5]所属结点。

如右图可表示为:

1

2

3

4

0

2

5

6

7

0

3

8

0

0

0

4 9 10 0 0

5

0

0

0

0

6 0 0 0 0

7 11 12 0 0

8 0 0 0 0

9 0 0 0 0

10 0 0 0 0

11 0 0 0 0

12 1 3 0 0 0

13 0 0 0 0



在求解的过程中,用到数组g:array[1..n,1..7]ofinteger; 其中:g[i,1]表示父结点,g[i,2]表示层次,
g[i,3]表示本结点号,g[i,4]——g[i,7]表示子女结点;同时,设2个指针SP1(取数指针),SP2(存数指针)

【程序清单】

programexcp3
constn=13;
vari,j,k,sp1,sp2,n1,n2,jmax,p:integer;
tree:array[1..n,1..5]of integer;
g:array[1..n,1..7]of integer;
begin
fori:=1 to n do
begin
tree[i,1]:=i;
forj:=2 to 5 do read(tree[i,j]); readln;
end;
sp1:=1;sp2:=1; g[1,1]:=0; g[1,2]:=1; g[1,3]:=1;
fori:=4 to 7 do g[1,i]:=tree[1,i-2];
while_____①_____ do
begin
p:=g[sp1,2]; n2:=g[sp1,3]; ______②______; j:=4; while_____③_____ do
begin
n1:=g[sp1,j]; j:=j+1; ______④______;
g[sp2,1]:=n2; g[sp2,2]:=p; g[sp2,3]:=n1;
fori:=1 to 4 do g[sp2,i+3]:=tree[n1,i+1];
end;
_____⑤_____;
end;
writeln(‘maxd=’,g[sp2,2]); j:=1; k:=g[1,2]; jmax:=0; fori:=2 to sp2 do
if____⑥____ then j:=j+1
elsebegin
ifj>jmax then jmax:=j;
_____⑦_____; k:=g[i,2];
end;
ifj>jmax then jmax:=j;
writeln(‘maxl=’,jmax);
end



2.【问题描述】用生成法求出1, 2 , ……, r 的全排列(r< = 8
【算法说明】用数组a:array[1..r]of integer;表示排列;
初始化时,a[i]:=1( i=1,2,…,r )
设中间的某一个排列为a[1],a[2],…,a[r]
则求出下一个排列的算法为:
从后面向前找,直到找到一个顺序为止(设下标为j-1,则a[j-1]<a[j] a[j]-a[r]中,找出一个a[k]a[j-1]大的最小元素
a[j-1]a[k]交换
a[j],a[j+1],…a[r]由小到大排序。

【程序清单】
programexcp4
constr=7;
varn,i,s,k,j,i1,t:integer;
a:array[1..r]of integer;
procedureprint1;
varik ;integer;
begin
forik:=1 to r do write(a[ik]:8); writeln;
end;
begin
fori:=1 to r do _____①_____; print1;
s:=1;
fori:=2 to r do s:=s*i;
s:=s-1;
fori:=_____②_____ do
begin
j:=r;
while_____③_____ do j:=j-1;
k:=j;
fori1:=j+1 to r do
if_____④_____ then k:=i1;
t:=a[j-1]; a[j-1]:=a[k]; a[k]:=t;
fori1:=j to r-1 do
fork:=i1+1 to r do
if_____⑤_____ then begin
t:=a[i1]; a[i1]:=a[k]; a[k]:=t; end;
print1;
end;
end

因篇幅问题不能全部显示,请点此查看更多更全内容