1、信息学竞赛普及组初赛模拟试题(三)一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题1.5分,多选无分,共30分)1、MAN英文缩写的含义是()A.局域网B.城域网C.广域网D.增值网2、小张用十六进制,八进制和十进制写了如下一个等式:6413=33式中三个数是各不相同进位制的数,试问64,13,33,分别为_。A八进制,十进制,十六进制B十进制,十六进制,八进制C八进制,十六进制,十进制D十进制,八进制,十六进制3、表达式(4MOD(3)与(4MOD3)的值为:_。A1,1B1,1C1,1D1,14、试指出:下列if语句中,当x=80时,运行的结果为_。beginy:=0;r
2、eadln(x);ifx0theny:=5elseifx10thenbeginy:=10;ifxrj)and(j0)dobeginrj+1:=rj;j:=j-1;end;rj+1:=k;end;forI:=1tondowrite(rI,);writelnend.键盘输入:84935屏幕输出:programexp2;vara,b,f:integer;functiongd(m,n:integer):integer;beginifn=0thengd:=melsegd:=gd(n,mmodn);end;beginreadln(a,b);write(,a,b,)=);f:=gd(a,b);writeln
3、(f)end.键盘输入:17216屏幕输出:3、Programexp3(input,output);VARI,J,S:INTEGER;B:ARRAY0.5OFINTEGER;BEGINS:=1;FORI:=1TO5DOBI:=I;J:=1;WHILEJ0DOBEGINJ:=5;WHILE(J0)AND(BJ=10+J-5)DOJ:=J-1;IFJ0THENBEGINS:=S+1;BJ:=BJ+1;FORi:=J+1TO5DOBi:=BJ+i-JEND;END;WRITELN(S=,S);END.4、programexp4(input,output);varm,n,g:integer;funct
4、iongcd(m,n:integer):integer;beginifn=0thengcd:=melsegcd:=gcd(n,mmodn)end;beginread(m,n);g:=gcd(m,n);writeln(m=,m,n=,n,gcd=,g)end.输入:489输出:三、问题解答(第1题每空4分,第2题8分)1、数据结构中,下面是一个树结构图,这个树的先序遍历结果是_,中序遍历结果是:_。248+3*4107-*/2、给出一个后缀算术表达式为写出对应的中缀算术表达式:_四、完善程序(第一题每空3分,第二题每空2分,第三题每空4分,共32分)1、连续整数平台问题已知一个含有多个整数的数组
5、,其中相同的元素集中在一起形成一个平台。以下程序用于对输入的数组求出其中最大平台长度。例如,中元素个数为20,它们依次为22223333311111111144则它的最大平台长度为9。constmaxlength=100;vara:array1.maxlengthofinteger;i,maxi,n,s,t:integer;beginwrite(n=);readln(n);fori:=1tondoread(ai);readln;maxi:=0;t:=1s:=1;fori:=2tondoifai=tthen2elsebeginifsmaxithenmaxi:=s;t:=ai;3end;4writ
6、eln(maxi=,maxi);end.2、1000!尾0问题以下程序用于统计1000!末尾有多少个0。其中1000!=1´2´3´´1000。实际上我们只要统计1000!有多少个因子10。由于10=5´2,因而只需统计有多少个因子5和2。显然在11000的所有数中,5的因子个数比2的因子个数少。因此,只要统计11000的所有数中共有多少个因子5就行了。vari,j,n:integer;beginn:=0;fori:=1to200dobeginj:=i*5;while5=0dobeginn:=n+1;j:=6end;end;write
7、ln(n:4);end.3、问题描述找数问题:以下程序用在n个不同元素中找出第k个最小元素。程序中用分治策略来设计算法。把这n个元素放在一个数组中,然后取出第k个元素为标准m,把n个元素重新排列:小于标准m的元素放在数组前面,大于该标准的放在数组的后面。把该元素m放在两者之间。设小于标准的元素个数为j-1,如果j=k,则A(k)即为所求元素。如果jk,则第k个元素必在区间1,j,因此取A1,Aj为新的元素集合,然后重复上述的”部分排序”的过程。如果jk,则第k个元素必在区间j+1,n,因此取Aj,An为新的元素集合,重复过程。直至j=k为止。程序清单varj,k,n:integer;a:arr
8、ay1.100ofinteger;proceduresearch(b,e:integer);varI,m,t:integer;beginifb=ethenbeginj:=b;exitend;I:=b;j:=e;m:=7;RepeatWhileaImdoinc(i);Whilemajdo8;IfI=j;IfI=kthenexit;If9thensearch(b,j)elsesearch(j+1,e)End;procedure10varI:integer;beginforI:=1tondowrite(aI,);writeln;writeln(a,k,=,ak);end;beginwrite(n=)
9、;readln(n);write(a1.,n,=);fork:=1tondoread(ak);readln;write(k=);readln(k);search(11;pr(n);readlnend.参考答案一、单项选择题(每题1分,共30分)12345678910DCBBDDCCCC11121314151617181920DBCBBBCDDB二、阅读下列程序,写出程序运行结果(第1题5分,第2,3,4题各6分,共23分)1、985431、(172,16)=43、S=2524、m=48n=9gcd=3三、问题解答(第1题每空4分,第2题8分)1、ABCDEBADCE2、(24+8)*3/4*(10-7)四、完善程序(第一题每空3分,第二题每空2分,第三题每空4分,共32分)(1)a1(2)s:=s+1(3)s:=1(4)ifsmaxithenmaxi:=s;(5)jmod5(6)jdiv5(7)ak(8)de(j)(9)jk(10)pr(n:integer);(11)Ln