全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx

上传人:b****5 文档编号:6443431 上传时间:2023-01-06 格式:DOCX 页数:15 大小:33.32KB
下载 相关 举报
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx_第1页
第1页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx_第2页
第2页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx_第3页
第3页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx_第4页
第4页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx

《全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx》由会员分享,可在线阅读,更多相关《全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx(15页珍藏版)》请在冰豆网上搜索。

全国青少年信息学奥林匹克分区联赛初赛模拟题高中组.docx

全国青少年信息学奥林匹克分区联赛初赛模拟题高中组

信息学奥林匹克分区联赛初赛模拟题

(PASCAL语言竞赛用时:

2小时)

  一、选择填空:

(30%,每题1.5%)

1、操作系统是一类重要的系统软件,下面几个软件中不属于操作系统的是____。

(A)MS-DOS(B)UNUX(C)PASCAL(D)WINDOWS98

2、在计算机内部,用来传送、存储、加工处理的数据或指令(命令)都是以_____形式进行的。

(A)十进制码(B)智能拼音码

(C)二进制码(D)五笔字型码

3、已知计算机C:

\DOS下有一个正确的FORMAT.COM文件,当执行如下命令:

C:

\>FORMATA:

<回车>

得到的回答是badcommandorfilename提示信息,下面解释正确的是_______。

(A)根目录中没有AUTOEXEC.BAT文件;

(B)在执行该命令前操作者没执行过PATH命令;

(C)C:

\DOS中的FORMAT.COM文件有错

(D)由于AUTOEXEC.BAT或操作者最后执行过的PATH命令中缺少路径C:

\DOS,或者根本没有执行过PATH命令。

4、将A盘上50个文件用:

C:

\>COPYA:

*.*命令复制到C盘的当前目录中。

在复制到某一个文件时,由于读数据出错,屏幕显示:

Abort,Retry,Ignore,Fail?

键入“I”后,继续复制没再出现过出错信息。

最后复制的结果是_______。

(A)读数据出错的文件不正确,其他文件正确;

(B)读数据出错的文件不正确,其他文件也不正确;

(C)读数据出错的文件正确,其他文件不正确;

(D)复制的文件全正确;

5、表达式(4MOD(-3))与(-4MOD3)的值为:

_______。

(A)-1,-1(B)1,-1

(C)-1,1(D)1,1

6、小张用十六进制,八进制和十进制写了一个等式:

52-19=33,式中三个数是各不相同进位制的数,试问52,19,33,分别为________。

(A)八进制,十进制,十六进制

(B)十进制,十六进制,八进制

(C)八进制,十六进制,十进制

(D)十进制,八进制,十六进制

7、某班有50名学生,每位学生发一张调查卡,上写a,b,c三本书的书名,将读过的书打√,结果统计数字如下:

只读a者8人;只读b者4人;只读c者3人;全部读过的有2人;读过a,b两本书的有4人;读过a,c两本书的有2人;读过b,c两本书的有3人。

则读过a的人数是_____。

(A)12人(B)30人(C)10人(D)24人

8、下列if语句中,endif表示相应if的结束:

y=0

ifx<0theny=5else

ifx<10theny=10

ifx<100theny=100endif

elsey=200

endif

endif

则当x=80时,运行的结果为______。

(A)y=5(B)y=100(C)y=10(D)y=200

9、如果用一个字节来表示整数,最高位用作符号位,其他位表示数值。

例如:

试问这种表示法的整数a的范围应是_______。

0

0

0

0

0

0

0

1

↑符号位表示正表示+1

1

0

0

0

0

0

0

1

↑符号位表示负表示-1

(A)-127≤a≤127(B)-128≤a≤128

(C)-128≤a<128(D)-128

10、在上题所述表示法中,以下_____说法是正确的。

(A)范围内的每一个数都只有唯一的格式

(B)范围内的每一个数都有两种格式

(C)范围内的一半数有两种格式

(D)范围内只有一个数有两种表示格式

11、设栈S的初始状态为空,现有5个元素组成的序列{1,2,3,4,5},对该序列在S栈上依次进行如下操作(从序列中的1开始,出栈后不再进栈):

进栈,进栈,进栈,出栈,进栈,出栈,进栈,试问出栈的元素序列是________。

(A){5,4,3,2,1}(B){2,1}

(C){2,3}(D){3,4}

12、快速排序在平均情况下的时间复杂度是____。

(A)O(nlogn)(B)O(n^2)(C)O(n)

13、整数在计算机中的二进制表示是____。

(A)原码(B)补码(C)反码

14、一棵包含n个节点的树有几条边:

____。

(A)n(B)n-1(C)不一定

15、在Hanoi塔问题中,搬动四个圆盘需要几次____。

(A)15(B)13(C)11

16、下列哪一个不是运用动态规划解题时必须满足的条件:

____。

(A)最优化原理(B)无后效性(C)子问题重叠

17、有10道NOI备选题,要从中选出6道,有几种选法?

_____。

(A)210(B)420(C)1440

18、三个顶点的无向完全图有几条边?

_____。

(A)2(B)3(C)6

19、已知ASCII码表中的大写字母后有6个其他字符,接着便是小写字母。

现已知:

A字母的ASCII码为(41)16{表示16进制数41},试写出字母t用十进制表示的ASCII码:

()10

20、一个汉字的机内码目前常用二个字节来表示:

第一字节是区位码的区号加(160)10;第二个字节是区位码的位码加(160)10,已知:

汉字“却”的区位码是4020,试写出其机内码两个字节的二进制代码:

_________、________。

二、问题求解:

(20%,每题小题5%)

21、下图中用点表示城市,点与点之间的联线表示城市间的道路:

试问:

①能否找出一条从A城市出发,经过图中所有道路一次后又回到出发点的通路来?

②能否从A出发,找出去每个城市且只去一次的通路来?

若能,则写出通路;否则说明理由。

22、为了便于处理表达式,常常将普通表达式(称为中缀表示)转换为前缀{运算符在前,如X/Y写为/XY}和后缀{运算符在后,如X/Y写为XY/}的表达式。

在这样的表示中可以不用括号即可确定求值的顺序,如:

(P+Q)*(R-S)→*+PQ-RS或→PQ+RS-*

①试将下面的表达式改写成前缀与后缀的表示形式:

(a)A+B*C/D(b)A-C*D+B^E

②试将下面的前缀表示还原成中缀的表示形式,同时写出后缀表示:

+△A*B△C{前缀式中△表示一元运算符取负号,如△A表示(-A)}

23、设A是一个n阶上三角阵,将这个上三角阵按列序存储一维数组b[n*(n+1)/2]中,如果a[I,j]存放在b[k],那么请给出求解k的计算公式。

设A是一个一维数组a[m*n],现将这个数组按列序存储在一个m*n的矩阵B中,如果a[k]存放在b[I,J],那么请给出求解I,J的计算公式。

24、用邻接矩阵表示下面的无向图:

三、阅读程序写出运行结果(20%):

25、(6%)

programexp1(input,output);

constMaxn=100;

Maxk=100;

typearr=array[1..Maxn]ofinteger;

ktype=1..Maxk;

vari,n,k:

integer;

a,b:

arr;

procedurecounting(a,b:

arr;n:

integer;k:

ktype);

vari,j:

integer;

c:

array[1..Maxk]ofinteger;

begin

fillchar(c,sizeof(c),0);

forj:

=1tondo

c[a[j]]:

=c[a[j]]+1;

fori:

=2tokdoc[i]:

=c[i]+c[i-1];

forj:

=ndownto1dobegin

b[c[a[j]]]:

=a[j];

c[a[j]]:

=c[a[j]]-1;

end;

fori:

=1tondowrite(b[i]:

5);

writeln;

end;

begin

write('N,K=');readln(n,k);

fori:

=1tondobegin

read(a[i]);

ifa[i]>kthen

beginwriteln('error');halt;end;

end;

counting(a,b,n,k);

readln;

end.

键盘输入:

86

36413414

输出:

26、(7%)设数组a[1],a[2],…,a[n],已存入了数据,调用不同的排序程序,则数据比较的次数将会不同,试计算分别调用下列不同的排序过程的比较运算的次数。

其中swap(i,j)表示a[i]与a[j]进行交换。

(1)proceduresort1(n:

integer);

vari,j:

integer;

begin

fori:

=1ton-1do

fOrj:

=1tondo

ifa[j]

end;

调用该过程的语句为sort1(n),比较运算的次数为:

_____

(2)proceduresort2(i,n:

integer);

varj:

integer;

begin

ifi=nthenwrite(a[n])

else

forj:

=i+1tondo

ifa[j]

wrrite(a[i]);

sort2(i+1,n);

end

调用该过程的语句为sort2(0,n),比较运算的次数为:

_____

(3)proceduresort3(i,j:

integer);

varm:

integer;

begin

ifi<>jthen

begin

m:

=(i+j)div2;

sort3(i,m);sort3(m+1,j);

merge;{假设合并的元素分别为p、q个,需要比较p+q次}

end;

end;

调用该过程的语句为sort3(0,n),比较运算的次数为:

_____

27、(7%)

programEXP3(input,output);

constn=4;

typese=array[1..n*2]ofchar;

vari,j,i1,j1,k,s,t,s1,L,swap:

integer;

temp:

char;

a:

se;

Begin

fori:

=1ton*2doread(a[i]);readln;

s:

=0;t:

=0;

fori:

=1ton*2do

ifa[i]='1'thens:

=s+1

elseifa[i]='0'thent:

=t+1;

if(s<>n)or(t<>n)thenwriteln('error')

elsebegins1:

=0;

fori:

=1to2*n-1do

ifa[i]<>a[i+1]thens1:

=s1+1;

writeln('jamp=',s1);swap:

=0;

fori:

=1to2*n-1do

forj:

=i+1to2*ndo

ifa[i]<>a[j]thenbegin

temp:

=a[i];a[i]:

=a[j];a[j]:

=temp;

s:

=0;

forL:

=1to2*n-1do

ifa[L]<>a[L+1]thens:

=s+1;

ifs>swapthenbegin

swap:

=s;i1:

=i;j1:

=jend;

temp:

=a[i];a[i]:

=a[j];a[j]:

=temp

end;

ifswap>0then

writeln('maxswap=',swap-s1,'i=',i1,'j=',j1)

end;

End.

输入:

10101100输出:

四、根据题意,补充完善以下程序:

(30%)

28.金蝉素数

【问题描述】某古寺的一块石碑上依稀刻有一些三位与四位的神秘自然数。

专家研究发现:

这些数是素数,且从低位去掉一位,或两位,……后都仍为素数,从高位去掉一位,或两位,……后也都仍为素数,更奇妙的是同时去掉它的最高位与最低位数字后还是素数。

因此,人们把这些神秘的素数称为金蝉素数,喻意金蝉脱壳之后仍为美丽的金蝉。

试求出石碑上的金蝉素数。

【程序清单】

vara:

array[1..400]ofinteger;

s,u,i,j,k,l,v,t,m,w,n:

integer;

begin

a[1]:

=2;a[2]:

=3;a[3]:

=5;

a[4]:

=7;u:

=4;

Fork:

=11To9999do

ifkmod2=1thenbegin

j:

=3;

while

(1)and(kmodj<>0)doj:

=j+1;

Ifj>trunc(Sqrt(k))Thenbegin

IFa[u]<1000THENbeginu:

=u+1;

a[u]:

=kend;

IFk>100THENbegin

L:

=trunc(ln(k)/ln(10))+1;

t:

=1;s:

=0;

Fori:

=1To

(2)dobegin

t:

=t*10;w:

=trunc(k/t);

m:

=k-w*t;

V:

=1;n:

=10000;

IFi=L-1THENn:

=trunc(m/10);

WHiLE(a[v]<=W)OR(3)dobegin

Ifa[V]=wThens:

=s+1;

IFa[v]=mTHENS:

=S+1;

IFa[v]=nTHENS:

=S+1;

(4);

end;

end;

If(5)Thenwriteln(k);

END

end

end;End.

29、多项式乘法运算

【问题描述】

多项式乘法运算:

p(x)=2x2-x+1,q(x)=x+1

p(x)*q(x)=(2x2-x+1)(x+1)=2x3+x2+1

【程序说明】

多项式的表示:

系数、指数

如上例:

p(x)系数指数q(x)系数指数

2211

-1110

1000

00

p*q的结果存入c中。

其输出格式是:

依次用一对括号内的(系数、指数)分别来表示。

如上例的输出结果表示为:

(2,3)(1,2)(1,0)

【程序清单】

begin

jp:

=0;

readln(x,y);

whilex<>0do

begin

jp:

=jp+l;p[jp,1]:

=x;

p[jp,2]:

=y;readln(x,y);

end;

jq:

=0;

readln(x,y);

whilex<>0do

begin

jq:

=jq+1;q[jq,1]:

=x;

q[jq,2]:

=y;readln(x,y);

end;

jc:

=1;c[jc,1]:

=0;c[jc,2]:

=-1000;

fori:

=1tojpdo

begin

___

(1)___

y:

=p[i,2];

forj:

=1tojqdo

begin

___

(2)___

y1:

=y+q[j,2];

k:

=1;

whiley1

=k+1;

ify1=c[k,2]then___(3)___

elsebegin

forl:

=jcdowntokdo

begin

c[l+1,1]:

=c[l,1];

c[l+1,2]:

=c[l,2];

end;

c[k,1]:

=x1;c[k,2]:

=y1;

___(4)___

end;

end;

fori:

=1tojcdo

if___(5)___then

write('(',c[i,1],',',c[i,2],')');

end.

30、求最长不下降序列

【问题描述】

设有由n个不相同的整数组成的数列,记为:

a

(1)、a

(2)、……、a(n)且a(i)<>a(j)(i<>j),例如3,18,7,14,10,12,23,41,16,24。

若存在i1

如上例中3,18,23,24就是一个长度为4的不下降序列,同时也有3,7,10,12,16,24长度为6的不下降序列。

程序要求,当原数列给出之后,求出最长的不下降序列。

【算法分析】

根据动态规划的原理,由后往前进行搜索。

1·对a(n)来说,由于它是最后一个数,所以当从a(n)开始查找时,只存在长度为1的不下降序列;

2·若从a(n-1)开始查找,则存在下面的两种可能性:

①若a(n-1)

②若a(n-1)>a(n)则存在长度为1的不下降序列a(n-1)或a(n)。

3·一般若从a(i)开始,此时最长不下降序列应该按下列方法求出:

在a(i+1),a(i+2),…,a(n)中,找出一个比a(i)大的且最长的不下降序列,作为它的后继。

4·为算法上的需要,定义一个数组

整数类型二维数组d(N,3)

d(I,1)表示点a(i)

d(I,2)表示从I位置到达N的最长不下降序列长度

d(I,3)表示从I位置开始最长不下降序列的下一个位置

【程序清单】

PROGRAMMAX_RISE(INPUT,OUTPUT);

CONSTMAXN=100;FNAME='Q21.TXT';

TYPETLIST=ARRAY[1..MAXN,1..3]

OFINTEGER;

VARD:

TLIST;N:

BYTE;

PROCEDUREINIT;

VARI:

INTEGER;F:

TEXT;

BEGIN

ASSIGN(F,FNAME);

RESET(F);READLN(F,N);

FORI:

=1TONDO

BEGIN

READ(F,D[I,1]);

D[I,2]:

=1;D[I,3]:

=0

END;

__

(1)__

END;

PROCEDUREMAKE;

VARI,J,P:

BYTE;L:

INTEGER;

BEGIN

FORI:

=__

(2)__DO

BEGIN

L:

=0;P:

=0;

FORJ:

=I+1TONDO

IF(D[I,1]L)THEN

BEGINL:

=D[J,2];__(3)__;END;

IF__(4)__THEN

BEGIND[I,2]:

=L+1;D[I,3]:

=P;END;

END;

END;

PROCEDUREOUTPUT;

VARI,L,DMAX:

BYTE;

BEGIN

WRITE('SOURCE:

');

FORI:

=1TONDOWRITE(D[I,1]:

5);

WRITELN;DMAX:

=D[1,2];L:

=1;

FORI:

=2TON-1DO

IFD[I,2]>DMAXTHEN

BEGIN__(5)__;L:

=I;END;

WRITE('RESULTIS:

');

WHILEL<>0DO

BEGINWRITE(D[L,1]:

5);L:

=D[L,3];END;

WRITELN;

WRITELN('MAXLENGTH=',D[DMAX,2]);

END;

BEGIN

INIT;MAKE;OUTPUT;

END.

 

信息学奥林匹克分区联赛初赛模拟题答题纸

班级:

________姓名:

________

(参考答案)

  一、选择填空:

(30%,每小题1.5%)

题号

1

2

3

4

5

6

7

8

9

10

答案

C

C

D

A

B

B

A

D

A

D

题号

11

12

13

14

15

16

17

18

19

20

答案

D

A

B

B

A

C

A

B

116

11001000

位码:

10110100

二、问题求解:

(20%,每题小题5%)

21、①能

②不能,因为C与四个城市邻接,不可能一次遍历

22、注意:

先依中缀或前缀表达式画出表达式树,再根据后序遍历方法写出后缀表达式

1)前缀:

+A/*BCD,后缀:

ABC*D/+;2)中缀:

-A+B*(-C);后缀:

A△BC△*+

23、1)K=I+J(J-1)/22)K=I+(J-1)N

24、1234567

10100000

21011000

30……

三、阅读程序写出运行结果(20%):

25、(6%)

输出:

11334446

26、(7%)

(1)调用过程sort1(n),比较运算的次数为:

n(n-1)

(2)调用过程sort2(0,n),比较运算的次数为:

n(n+3)/2

(3)调用过程sort3(0,n),比较运算的次数为:

[log2(n-1)+log2(n/2-1)(p+q)+2

27、(7%)

输出:

jamp=5maxswap=2I=6j=7

四、根据题意,补充完善程序:

(30%,每空2%)

28.金蝉素数

(1)j<=trunc(sqrt(k))

(2)L-1(3)a[v]<=m(4)inc(v)(5)s=2*L-1

29、多项式乘法运算

(1)x:

=p[I,1]

(2)x1:

=x*q[j,1](3)c[k,1]:

=c[k,1]+x1(4)inc(v)(5)c[I,j]<>0

30、求最长不下降序列

(1)close(F)

(2)n-1downto1(3)p:

=j(4)L>0(5)DMAX:

=D[I,2]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1