全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx

上传人:b****1 文档编号:2968392 上传时间:2023-05-01 格式:DOCX 页数:15 大小:27.59KB
下载 相关 举报
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第1页
第1页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第2页
第2页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第3页
第3页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第4页
第4页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第5页
第5页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第6页
第6页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第7页
第7页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第8页
第8页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第9页
第9页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第10页
第10页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第11页
第11页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第12页
第12页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第13页
第13页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第14页
第14页 / 共15页
全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx

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

全国青少年信息学奥林匹克分区联赛初赛模拟题高中组汇总Word文档下载推荐.docx

读过a,c两本书的有2人;

读过b,c两本书的有3人。

则读过a的人数是_____。

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

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

y=0

ifx<

0theny=5else

10theny=10

100theny=100endif

elsey=200

endif

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

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

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

例如:

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

↑符号位表示负表示-1

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

(C)-128≤a<

128(D)-128<

a≤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:

n:

k:

ktype);

vari,j:

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];

=ndownto1dobegin

b[c[a[j]]]:

=a[j];

=c[a[j]]-1;

end;

=1tondowrite(b[i]:

5);

writeln;

write('

N,K='

);

readln(n,k);

=1tondobegin

read(a[i]);

ifa[i]>

kthen

beginwriteln('

error'

halt;

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;

fori:

=1ton-1do

fOrj:

ifa[j]<

a[i]thenswap(i,j)

end;

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

_____

(2)proceduresort2(i,n:

varj:

ifi=nthenwrite(a[n])

else

forj:

=i+1tondo

a[i]thenswap(i,j);

wrrite(a[i]);

sort2(i+1,n);

end

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

(3)proceduresort3(i,j:

varm:

ifi<

>

jthen

m:

=(i+j)div2;

sort3(i,m);

sort3(m+1,j);

merge;

{假设合并的元素分别为p、q个,需要比较p+q次}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:

temp:

char;

a:

se;

Begin

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

readln;

s:

=0;

t:

=1ton*2do

ifa[i]='

1'

thens:

=s+1

elseifa[i]='

0'

thent:

=t+1;

if(s<

n)or(t<

n)thenwriteln('

elsebegins1:

=1to2*n-1do

ifa[i]<

a[i+1]thens1:

=s1+1;

writeln('

jamp='

s1);

swap:

=i+1to2*ndo

a[j]thenbegin

temp:

=a[i];

a[i]:

a[j]:

=temp;

forL:

ifa[L]<

a[L+1]thens:

=s+1;

ifs>

swapthenbegin

swap:

=s;

i1:

=i;

j1:

=jend;

=temp

ifswap>

0then

maxswap='

swap-s1,'

i='

i1,'

j='

j1)

End.

输入:

10101100输出:

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

(30%)

28.金蝉素数

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

专家研究发现:

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

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

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

【程序清单】

vara:

array[1..400]ofinteger;

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

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;

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:

(4);

If(5)Thenwriteln(k);

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中。

其输出格式是:

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

如上例7

的输出结果表示为:

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

jp:

readln(x,y);

whilex<

0do

=jp+l;

p[jp,1]:

=x;

p[jp,2]:

=y;

end;

jq:

=jq+1;

q[jq,1]:

q[jq,2]:

readln(x,y);

jc:

c[jc,1]:

c[jc,2]:

=-1000;

fori:

=1tojpdo

___

(1)___

y:

=p[i,2];

=1tojqdo

___

(2)___

y1:

=y+q[j,2];

whiley1<

c[k,2]dok:

=k+1;

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

forl:

=jcdowntokdobegin

c[l+1,1]:

=c[l,1];

c[l+1,2]:

=c[l,2];

c[k,1]:

=x1;

c[k,2]:

=y1;

___(4)___

=1tojcdo

if___(5)___then

('

c[i,1],'

'

c[i,2],'

)'

);

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<

i2<

i3<

„<

ie且有a(i1)<

a(i2)<

a(ie)则称为长度为e的不下降序列。

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

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

【算法分析】

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

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

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

①若a(n-1)<

a(n)则存在长度为2的不下降序列a(n-1),a(n)。

②若a(n-1)>

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

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

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

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

整数类型二维数组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

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

D[I,2]:

D[I,3]:

=0

END;

__

(1)__

PROCEDUREMAKE;

VARI,J,P:

=__

(2)__DO

P:

FORJ:

=I+1TONDO

IF(D[I,1]<

D[J,1])AND(D[J,2]>

L)THENBEGINL:

=D[J,2];

__(3)__;

IF__(4)__THEN

BEGIND[I,2]:

=L+1;

D[I,3]:

=P;

END;

PROCEDUREOUTPUT;

VARI,L,DMAX:

WRITE('

SOURCE:

'

=1TONDOWRITE(D[I,1]:

WRITELN;

DMAX:

=D[1,2];

=2TON-1DO

IFD[I,2]>

DMAXTHEN

BEGIN__(5)__;

=I;

RESULTIS:

'

WHILEL<

0DO

BEGINWRITE(D[L,1]:

=D[L,3];

WRITELN('

MAXLENGTH='

D[DMAX,2]);

INIT;

MAKE;

OUTPUT;

END.

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2