- 11
- 0
- 约2万字
- 约 17页
- 2018-05-06 发布于河南
- 举报
信息学奥林匹克普及组-读程序结果
95普及组
1.请将以下程序段表示的计算公式写出来(假设x的值已给出)
e:=1 ;
a:=1 ;
for n:=1 to 10 do
a:=a*x/n ;
e:=e+a ;
endfor ;
写出所表示的公式。
2.列举一个算法,使算法的解能对应相应的问题。
例如,设问题为:学生答题,答对一题可得10分,答错一题则要扣去5分,输入答对的题数(m)与答错的题数(n),求最后得分(s)是多少?列举出相应算法为:
x:=10;
y:=5;
read(m,n);
s:=x*m-y*n;
现有以下问题:用五角钱换成5分、2分与1分的硬币,可有多少种换法?请列出该问题的算法。
3.已知如下n*(n+1)/2个数据,按行的顺序存入数组a[1],a[2],……中:
a11
a21 a22
a31 a32 a33
……
an1 an2 an3 …… ann
其中:第一个下标表示行 第二个下标表示列。
若:aij(i≥j,j,i=1,2,……n)存贮在a[k]中,试问:
k和i,j之间的关系如何表示?
给定k值(k≤n*(n+1)/2)后,写出能决定相应的i,j值的算法。
4.有红、黄、黑、白四色球各一个,放置在一个内存编号为1、2、3、4四个格子的盒中,每个格子放置一只球,它们的顺序不知。甲、乙、丙三人猜测放置顺序如下:
甲:黑编号1,黄编号2;
乙:黑编号2,白编号3;
丙:红编号2,白编号4 。
结果证明甲乙丙三人各猜中了一半。写出四色球在盒子中放置情况及推理过程。
96普及组
1.阅读下列程序段,写出程序运行后数组元素a1,a2,…,a11中的值。
a[1]:=1;
a[2]:=1 ; k:=1 ;
repeat
a[k+2]:=1 ;
for i:=k downto 2 do
a[i]:=a[i] +a[i-1 ] ;
k:=k+1 ;
until k=10 ;
2.已知:ack(m,n)函数的计算公式如下:
n+1 m=0
ack(m,n)= ack(m-1,1) n=0
ack(m-1,ack(m,n-1) m≠0 且n≠0
请计算:ack(1,2)与ack(2,2)的值。
3.请写出对应计算如下算式的程序段:
y=anxn+an-1xn-1+……a1x+a0
4.有n×n个数据组成如下方阵:
a11 a12 a13 …… a1n
a21 a22 a23 …… a2n
a31 a32 a33 …… a3n
…………
an1 an2 an3 …… ann
并已知: aij = aji
现将a11 ,a21,a22 ,a31 ,a32 ,a33 …存储在一维数组a[1],a[2],…a[(n*(n+1))/2] 中。
试问:任给i,j怎样求出k来,使得a[k]的值正好是aij,请写出由i,j计算k值的表达式。
5.已知:a1,a2,……,a81 共有81个数,其中只有一个数比其它数大,要用最少的比较运算次数,把这个值大的数找出来(假设两个数比较一次能决定出大于、小于或等于这三种情况)请将以下算法补充完整:(9%)
第一步: s1 = a1 + a2 + …… + a27
s2 = a28 + a29 +……+ a54
第一次比较(s1,s2) :
s1 s2 取 k=0
s1 s2 取 k=27
s1 = s2 取 k=54
第二步: s1 = ak+1 + ak+2 + …… + ak+9
s2 = ak
原创力文档

文档评论(0)