高中信息学竞赛各种问题求解试题及答案.docx

上传人:b****1 文档编号:2479836 上传时间:2022-10-30 格式:DOCX 页数:67 大小:60.93KB
下载 相关 举报
高中信息学竞赛各种问题求解试题及答案.docx_第1页
第1页 / 共67页
高中信息学竞赛各种问题求解试题及答案.docx_第2页
第2页 / 共67页
高中信息学竞赛各种问题求解试题及答案.docx_第3页
第3页 / 共67页
高中信息学竞赛各种问题求解试题及答案.docx_第4页
第4页 / 共67页
高中信息学竞赛各种问题求解试题及答案.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

高中信息学竞赛各种问题求解试题及答案.docx

《高中信息学竞赛各种问题求解试题及答案.docx》由会员分享,可在线阅读,更多相关《高中信息学竞赛各种问题求解试题及答案.docx(67页珍藏版)》请在冰豆网上搜索。

高中信息学竞赛各种问题求解试题及答案.docx

高中信息学竞赛各种问题求解试题及答案

高中信息学竞赛各种问题求解试题及答案

第1题(5分),将n个不同颜色的球放人k个无标号的盒子中(n>=k,且盒子不允许为空)的方案数

为S(n,k),例如:

n=4,k=3时,S(n,k)=6。

当n=6,k=3时,S(n,k)=________。

答案:

0k

S(n,k)=1k=1

S(n-1,k-1)+k*S(n-1,k)n>=k>=2

第2题(5分),有5本不同的数学书分给5个男同学,有4本不同的英语书分给4个女同学,将全部书

收回来后再从新发给他们,与原方案都不相同的方案有________种。

答案:

5!

*4!

+D(5)*D(4)=1140480

其中:

D(n)=(n-1)*(D(n-1)+D(n-2))(n>2)

D

(1)=0D

(2)=1

第3题(6分),把三角形各边分成n等分,过每一分点分别做各边的平行线,得到一些由三角形的边

和这些平行线所组成的平行四边形。

n为已知整数,能组成_______个平行四边形。

答案:

3*C(n+2,4)

第4题(6分),由a,b,c3个不同的数字组成一个N位数,要求不出现两个a相邻,也不出现两个b

相邻,这样的N位数的个数为AN,用AN-1和AN-2表示AN的关系式为:

AN=_______________。

答案:

AN=2*AN-1+AN-2

第5题(6分),在m*n的棋盘上,每个方格(单位正方形,即边长为1的正方形)的顶点称为格点。

以格点

为顶点的多边形称为格点多边形。

若设格点凸N边形面积的最小值为gn,格点凸N边形内部(非顶点的)格点

的个数的最小值为fn,则gn和fn的关系式为:

gn=___________。

答案:

Gn=fn+N/2-1(N>=3)

第6题(4分),编号为1到13的纸牌顺时针排成一圈,有人从编号为1的牌从数字1开始顺时针数下去,

1、2、3、…、20、21、…,一圈又一圈。

问:

当数到数字N时,所在纸牌的编号为多少?

答案:

1+(N-1)mod13

第7题(8分),有位小同学喜欢在方阵中填数字,规则是按下图示例从右上角开始,按斜线填数字,

碰到边界就重新。

显然,数字1在坐标(1,5)位置,数字25在坐标(5,1)位置。

后来这位小朋友想知道,

对于N阶的方阵,随机取一个位置(x,y),并规定x≤y,问这个位置上应该填的数字是多少?

5阶方阵的

示例图如下:

117421

1612853

20171396

2321181410

2524221915

答案:

(N-y+x)*(N-y+x-1)/2+x

第8题(5分),设有质量为1、3、9、27、81、…3ng...的砝码各一枚,如果砝码允许放在天平的两边,

则用它们来称物体的质量,最多可称出1g到3n+3n/2g之间的所有质量,如n=4时,可称出18到121g之间的

所有质量;当物体质量为M=14时,有14+9+3+1=27,即天平一端放M=14g的物体和9g、3g、1g的砝码,另一

端放27g的砝码,即可称出M的质量。

当M=518g时,请你写出称出该物体的质量的方法,并用上述所示的

等式来表示。

答案:

518+243+3+1=729+27+9

第9题(7分),在圆周上有N个点(N>=6),在任意两个点之间连一条弦,假设任何3条弦在圆的内部

都没有公共点,问这些弦彼此相交能在圆内构成多少个三角形(只要求写出三角形总数的表示式而无需化

简)?

提示:

下图是N=6的情况,图中所示的4个三角形从某种意义上说具有一定的代表性。

答案:

C(N,3)+4*C(N,4)+5*C(N,5)+6*C(N,6)

第10题(6分),用1个或多个互不相同的正整数之和表示1~511之间的所有整数

①至少要多少个不同的正整数_________________;

②这些正整数是_______________

答案:

①9

②1,2,4,6,16,32,64,128,256

第11题(7分),在有m行n列格子的棋盘内,一枚棋子从棋盘的左上角格子沿上、下、左、右方向行走,

最后走到棋盘的右下角格子。

该棋子走过的格子数为奇数的充分必要条件是________________

答案:

m+n为偶数

完善程序试题及其答案

  第1题(14分)以下程序是将一组整数按从小到大的顺序排列。

排序的方法是将长度为n的数a分为两个长度分别为(ndiv2)与(n-ndiv2)的子数组a1,a2。

然后递归调用排序过程,将a1,a2分别排序,最后将a1,a2归并成数组a。

例如a=(3,1,2,4),那么a1=(3,1),a2=(2,4)。

调用排序过程将a1,a2排序,得到a1=(1,3),a2=(2,4),然后进行合并排序。

从键盘输入数的长度n以及n个整数,存在数组a中,调用子过程sort进行排序,最后输出排序结果。

programwsh;

constmaxn=100;.

typearr:

array[1..maxn]ofinteger;

var

a:

array[1..maxn]ofinteger;

n,i:

integer;

proceduresort(n:

integer;vara:

arr);

var

i,p1,p2,n1,n2:

integer;

a1,a2:

arr;

begin

ifn=1thenexit;

fillchar(a1,sizeof(a1),0);

fillchar(a2,sizeof(a2),0);

n1:

=0;n2:

=0;

n1:

=ndiv2;n2:

=(____

(1)____);

fori:

=1ton1doa1[i]:

=a[i];

fori:

=1ton2doa2[i]:

=____

(2)____;

____(3)____;

sort(n2,a2);

p1:

=1;p2:

=1;

n:

=0;

while(p1<=n1)and(____(4)____)do

begin

n:

=n+1;

if____(5)____

thenbegina[n]:

=a1[p1];inc(p1);end

elsebegin____(6)____;inc(p2);end;

end;

ifp1<=n1

thenfori:

=____(7)____ton1dobeginn:

=n+1;a[n]:

=a1[i]end

elsefori:

=p2ton2dobeginn:

=n+1;a[n]:

=a2[i];end;

end;

begin

write('n=');

readln(n);

fori:

=1tondoread(a[i]);

readln;

sort(n,a);

fori:

=1tondowrite(a[i],'');

writeln;

end.

答案:

n-n1

a[n1+i]

sort(n1,a1)

(p2<=n2)

a1[p1]

a[n]:

=a2[p2]

p1

  第2题(8分)有n(1≤n≤100)个同学种m(1≤n≤m≤100)种小树苗,例如:

4个同学(1、2、3、4)每小时种4种树苗(A、B、C、D)的数量估算如下表所示,编程输出每人种1种苗所用的总时间最少的安排方案和所花费的时间。

学生ABCD

15245

24353

35242

43233

programwsh;

const

maxn=100;maxm=100;

var

a:

array[1..maxn,1..maxm]ofinteger;

m,n:

integer;

i,j,t:

integer;

procedurework(k,t1:

integer);

vari:

integer;

begin

if____

(1)____then

begin

ift1

=t;

exit;

end;

fori:

=___

(2)___to___(3)___do

work(k+1,___(4)___);

end;

begin

readln(n,m);

fori:

=1tondo

begin

forj:

=1tomdoread(a[i,j]);

readln

end;

t:

=maxint;

work(1,0);

writeln(t)

end.

答案:

k>n

1

m

t1+t[k,i]

  第3题(10分)程序的任务是用0…9中的数字填入如下乘法运算的*处,数字可重复使用,且所用的数字至少有一个是素数,要求输出满足下列算式的方案数。

***

x**

-------------------------

***

***

-------------------------

***

programwsh;

constp:

setof0...9=[2,3,5,7];

var

s:

setof0..9;

n:

integer;

ans:

longint;

f:

text;

procedureinit;

var

i:

integer;

t:

byte;

begin

readln(n);

s:

=[];

fori:

=1tondo

begin

read(t);

s:

=s+[t];

end;

close(f);

end;

functionok(x,l:

integer):

boolean;{此函数判断x是否符合条件}

vart:

byte;

begin

ok:

=false;

if___

(1)___<>lthenexit;

whilex<>0do

begin

t:

=xmod10;

ifnot(tins)thenexit;

x:

=xdiv10;

end;

ok:

=true;

end;

functioninset(x:

integer):

boolean;{此函数判断x中是否包含素数字}

vart:

byte;

begin

inset:

=false;

while___

(2)___do

begin

t:

=xmod10;

iftinpthen

begin

inset:

=true;

exit;

end;

___(3)___;

end;

end;

procedurework;

vari,i1,i2,i3,j1,j2:

integer;

begin

ans:

=0;

fori1:

=1to9do

ifi1insthen

fori2:

=1to9do

ifi2insthen

fori3:

=1to9do

ifi3insthen

begin

___(4)___;

forj1:

=1to9do

if(j1ins)andok(j1*i,3)then

forj2:

=1to9do

if(j2ins)andok(j

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

当前位置:首页 > 求职职场 > 职业规划

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

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