您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 递归练习(3)含答案
鲁迅中学柯桥校区信息学竞赛小组递归练习(3)姓名:得分:1.写出下列程序的输出结果。programex1(input,output);vara,b,c,d:integer;procedurep(a:integer;varb:integer);varc:integer;begina:=a+1;b:=b+1;c:=2;d:=d+1;writeln(‘m’,a,b,c,d);ifa3thenp(a,b);writeln(‘n’,a,b,c,d)end;begina:=1;b:=1;c:=1;d:=1;writeln(‘x’,a,b,c,d);p(a,b);writeln(‘y’,a,b,c,d)end.2.programex2(input,output);vartotal:integer;proceduremove(n,a,b,c:integer);beginifn=1thenwriteln(a,’’,c)elsebeginmove(n-1,a,c,b);writeln(a,’’,c);move(n-1,b,a,c)endend;beginread(total);move(total,1,2,3)end.若total=3,请写出程序的输出结果.2.programex3(input,output);3.procedurereceive;varch:char;beginread(ch);write(ch);ifch’#’thenreceive;write(ch)end;beginreceiveend.若输入567#,则输出。4.programex4(input,output);varm,n,g:integer;functiongcd(m,n:integer):integer;beginifn=0thengcd:=melsegcd:=gcd(n,mmodn)end;beginread(m,n);g:=gcd(m,n);writeln(‘gcd=’,g)end.若输入108,72则输出。5.写出下列程序的输出结果。programex5(input,output);functionfac(n:integer):real;beginifn=0thenfac:=1elsefac:=n*fac(n-1)end;functioncmn(m,n:integer):real;begin鲁迅中学柯桥校区信息学竞赛小组递归练习(3)姓名:得分:cmn:=fac(m)/(fac(n)*fac(m-n))end;beginwriteln(‘c(6,4)=’,cmn(6,4):0:0)end..6.求菲波拉契数列的第10项的值。已知a0=0a1=1a2=a0+a1a3=a1+a2…将第n项的a(n)写成递归函数计算。programex6(input,output);functiona(n:integer):integer;beginifn=0thena:=0elseifthenelseend;beginwriteln()end.7.写出下列程序的输出结果。programex1(input,output);vari:integer;functionf(n:integer):integer;beginifn=1thenf:=1elseif(nmod2=0)thenf:=2*f(ndiv2)-1elsef:=2*f((n-1)div2)+1;end;beginreadln(i);writeln(f(i));readln;end.若i=8,则输出;若i=9,则输出。8.写出下列程序的输出结果。programex3(input,output);varnumber:integer;procedurerd(number:integer);beginwrite(numbermod10:1);number:=numberdiv10;ifnumber0thenrd(number);end;beginreadln(number);rd(number);readln;end.若输入3462,则输出。9.写出下列程序的输出结果。programex7;functionfun(x:integer):integer;beginif(x=0)or(x=1)thenfun:=3elsefun:=x-fun(x-2)end;beginwriteln(fun(9));readln;end.输出:10.有程序如下:programzdzx(output);varx,y,z:integer;proceduresilly1(x:integer;vary:integer);beginx:=5;y:=6;z:=7;writeln(x,y,z)end;beginx:=1;y:=2;z:=3;silly1(x,y);writeln(x,y,z)end.以上程序的运行结果为。11.有如下程序:programzdzx2(input,output);varx,y:integer;procedureproc2(i1:integer;vari2:integer);begini1:=x+y;i2:=i1*yend;beginx:=5;y:=10;proc2(x,y);鲁迅中学柯桥校区信息学竞赛小组递归练习(3)姓名:得分:writeln(x,y)end.以上程序的运行结果为。12.有程序programzdzx3(output);functionp(x:real;n:integer):real;beginifn=0thenp:=1.0elseifodd(n)thenp:=x*sqr(p(x,ndiv3))elsep:=sqr(p(x,ndiv3))end;beginwriteln(p(2.0,7):6:1)end.以上程序运行输出为。13.已知函数说明如下:functionf(n:integer):integer;beginifn=0thenf:=0elseifn0thenf:=f(n-2)elsef:=f(n+3)end;则函数调用f(5)的值是。14.有下列函数说明:functionmyf(a,b,c:integer):integer;vart:integer;begina:=3*a;t:=bdivc;myf:=a+4*tend;则表达式myf(1,myf(1,2,3),3)的值是。15.有下列函数说明:functionfun(n:integer):integer;vars,m:integer;begins:=0;repeatm:=nmod10;s:=s+m;n:=ndiv10untiln=0;fun:=send;则函数调用fun(231)的功能是。16.已知函数说明如下:functiondn(m:integer):integer;varvalue:integer;beginifm=0thenvalue:=5elseifm0thenvalue:=dn(m+1)+2elsevalue:=dn(m-1)–2;dn:=valueend;则dn(dn(2))的值是。17.用递归求-1!+3!-5!+7!-9!+…+15!-17!…n!programl5-9;varn:integer;sum:longint;proceduredg(n:integer);varj:integer;functionfan(n:integer):longint;beginifn=1thenelseend;beginforj:=1tondobeginifjmod4=1theninc(sum,-fan(j));ifjmod4=3then;end;end;beginreadln(n);;;writeln(‘sum=’,sum);readln;end.18.阅读下列程序:programzdzx10(output);functiona(m,n:integer):integer;varx:integer;beginifm=0thenx:=n+1elseifn=0thenx:=a(m-1,1)elsex:=a(m-1,a(m,n-1));a:=xend;beginwriteln(‘a(1,2)=’,a(1,2):3)end.鲁迅中学柯桥校区信息学竞赛小组递归练习(3)姓名:得分:以上程序的运行结果为.19.有程序如下:programzdzx11(output);vara,b,t:integer;procedureswap(x:integer;vary:integer);beginifxythenbegint:=x;x:=y;y:=tendend;begina:=8;b:=5;swap(a,b);writeln(a:3,b:3,t:3)end.以上程序的运行结果为。20.已知函数说明如下:functionp(n,x:integer):integer;beginifn=0thenp:=1elseifn=1thenp:=xelsep:=trunc(((2*n)*p(n-1,x)-(n-1)*p(n-2,x))/n);end;则执行语句y:=p(3,5)后y的值是。21.已知函数说明如下:functionzdz(num,pos:integer):integer;beginnum:=abs(num);fori:=1topos-1donum:=numdiv10;zdz:=nummod10end;则执行函数调用语句zdz(4650,6)后的函数值是。22.有如下递归子程序:functionsub(x:integer):integer;varnum:integer;beginifx=0thennum:=3elsenum:=sub(x-1)+3;sub:=num;writeln(x:3,num:3)end;如果主程序中的调用语句是k:=sub(3),则函数的输出结果是。23.已知有函数f1如下:functionf1(a,b:integer):integer;beginifb=0thenf1:=aelsef1:=f1(pred(a),pred(b))end;执行writeln(f1(10,6))的输出是。24.有一函数定义如下:functionfun(x,y,z,j:integer):integer;vari:integer;beginfun:=0;fori:=jto3dobeginfun:=z-ydivx;x:=x-1endend;变量m为整型变量,当执行语句m:=fun(fun(2,6,8,3),6,8,3)后变量m的值是。25.写出下列程序的输出结果。programex7(input,output);varn,k,dig:integer;functiondigit(n,k:integer):integer;beginrepeatdigit:=nmod10;n:=ndiv10;k:=k-1untilk=0end;beginread(n,k);dig:=digit(n,k);writeln(‘dig=’,dig)end.若输入n=15327,k=4,则输出;26.写出下列程序的输出结果。programex8(input,output);varn,d:integer;che:boolean;functioncheck(n,d:integer):boolean;鲁迅中学柯桥校区信息学竞赛小组递归练习(3)姓名:得分:varm:integer;beginrepeatm:=nmod10;n:=ndiv10until(m=d)or(n=0);check:=m=dend;beginread(n,d);che:=check(n,d);writeln(che)end.若输入n=3256,d=2,则输出.27.写出下列程序的输出结果。programex3(input,output);vara,b,c,m:real;functionmax(a,b,c:real):real;varma:real;beginma:=a;ifbmathenma:=b;ifcmathenma:
本文标题:递归练习(3)含答案
链接地址:https://www.777doc.com/doc-5002026 .html