1、选择一个正确答案代码(A/B/C/D),填入每题的括号内 (每题 1.5 分,多选无分, 共 30 分)题号 1 2 4 5 6 7 8 9 10选择 C D C D D B B A B C题号 11 12 13 14 15 16 17 18 19 20选择 C D D A B C C D C B二问题求解(共 2 题,每题 5 分,共计 10 分)1. 当 m=4,n=4 时选法数= 352. 共有多少种选法 1360二. 阅读程序,并写出程序的正确运行结果:(共 4 题,每题 8 分,共 32 分)1. 程序的运行结果是: 1262. 程序的运行结果是: 115 1123程序的运行结果是:
2、114. 程序的运行结果是: DCBA CDBA CBDA CBAD BDCA BCDA BCAD BADC BACD ADCB ACDB ACBD ABDC ABCD Num=14四.根据题意, 将程序补充完整 (每空 2.8 分,共 28 分)1. readln(d,i); d-1 x*2+1 ax:=(4)true; 2. jy) thenbeginz := z+ (b-y+8) div 9;x := (b-y+8) div 9 * 9- (b-y) * 4+11*e+Vc mod 4;endelsex := (y-b) *4+11*e+vc mod 4;if (ax) thenz :=
3、 z + (a-x+35) div 36;writeln(z) ;end输入: 4 7 9 20 56 47输出: 1262. Var S:string; i:integer;m1,m2:char;begin readln(s);n1:= ;m2:= ;for i:=1 to length(s) doif si m1 thenbeginm2:=m1;m1:=si;endelse if si m2 thenm2:=si;writeln(ord(m1), , ord(m2);end.输入 noip 2013 shanghai输出 115 1123.Const NN=7; TypeArr1=arra
4、y0.30 of char;var s:arr1;k,p:integer;function fun1(s:arr1; a:char;n:integer):integer;var j:integer; beginj:=n;while (a0) do dec(j);fun1:=j;end;Function fun2(s:arr1; a:char; n:integer):integer;var j:integer; beginj:=1;while (asj)and(j0 then beginc:=s;cst+1:=inpit;push(out,c,it-1,ot,st+1);end;if st0 t
5、hen beginc:=out;cot+1:=sst;push(c,s,it,ot+1,st-1);end;if ot=n then beginnum:=num+1;for k:=1 to n do write(outk);write( );end;end;beginfor k:=n downto 1 do inpk:=chr(65-k+n);num:=0;push(t,t,n,0,0);writeln;writeln(num=,num);end.输出 DCBA CDBA CBDA CBAD BDCA BCDA BCAD BADC BACD ADCB ACDB ACBD ABDC ABCD N
6、um=14四、完善程序(前 8 空 每空 3 分,最后一空 4 分共 28 分)1. 许多小球一个一个地从一棵满二叉树上掉下来组成另一棵满二叉树。每一时刻,一个正在下降的球第一个访问的是非叶子节点;继续下降时,或者走右子树,或者走左子 树,直到访问到叶子节点。决定球运动方向的是每个 节点的布尔值。最初,所有的节点的布尔值都是flase。当球访问 到一个节点时,如果 这个节点是 FALSE,则这个球把它变成 TRUE,然后从左子树走,继续它的旅程。如果节点是 TRUE,则球会改变它为 FALSE,接下来从右子树走。若给定 fbt 的深度 D,现在第 I 个小球下落,且 I 不超过给定的 fbt
7、的叶子数,写一个程序求小球停止时的叶子序号。输入格式:输入文件共一行,包含两个用空格隔开的整数 D 和 I,其中2 D20 ,1I524288。输出格式:共一行,输出第 I 个小球下落停止时的叶子序号。输入样例: 4 4 输出样例 12程序:var d,i,j,k,x:longint;a:array1.5242of boolean;begin (1)readln(d,i);fillchar(a,sizeof(a),false);for j:=1 to i dobegin x:=1 ;for k:=1 to (2)d-1 doif ax thenbegin ax:=false;x:=(3)x*2
8、+1;endelsebeginax:=(4)true;x:=x*2;end;end;writeln(x);end.2. 金蝉素数【问题描述】某古寺的一块石碑上依稀刻有一些三位与四位的神秘自然数。专家研究发现:这些数是素数,且从低位去掉一位,或两位,后都仍为素数,从高位去掉一位,或两位,后也都仍为素数,更奇妙的是同时去掉它的最高位与最低位数字后还是素数。因此,人们把这些神秘的素数称为金蝉素数,喻意金蝉脱壳之后仍为美丽的金蝉。试求出石碑上的金蝉素数。【程序清单】var a: array1.400of integer;s,u,i,j,k,l,v,t,m,w,n:integer;begina1:= 2
9、; a2 := 3; a3 := 5; a4:= 7; u := 4;For k:= 11 To 9999 doif k mod 2=1 then beginj:=3;while (1) and(k mod jtrunc(Sqrt(k) Then beginIF au100 THEN beginL:=trunc(ln(k)/ln(10)+1;t:=1;s:=0;For i := 1 To (2) do begint := t * 10; w := trunc(k / t);m := k - w * t;V := 1; n := 10000;IF i=L-1 THEN n:=trunc(m/10);WHiLE (av=W) OR (3) do beginIf aV = w Then s := s + 1;IF av=m THEN S:=S+1;IF av=n THEN S:=S+1;(4);end;end;If (5) Then writeln(k);ENDendend; End.(1)j=trunc(sqrt(k) (2)L-1 (3) av=m (4)inc(v) (5)s=2*L-1