初一学生信息学竞赛PASCAL编程考试试卷姓名:评分:注意:本次考试评分方试采用“黑箱”评分法,即不看程序,只运行程序,只要程序运行通过,且测试数据符合题目规定要求,即可得分,否则不得分。故提醒考生注意:编程时,最重要的是要让程序能够运行!(每一小题10分,共100分,120分钟)1、(T1)【问题描述】输入矩形的边长,计算该矩形的周长和面积。【输入格式示例】输入两个正整数a=28,b=16。【输出格式示例】l=(28+16)*2=88,s=28*16=448。2、(T2)【问题描述】输入三个整数,将它们从大到小排列。【输入格式示例】a=?47b=?-2c=?319【输出格式示例】319>47>-23、(T3)【问题描述】计算n!(n!=1×2×3×…×n)【输入格式示例】输入正整数n=7【输出格式示例】n!=50404、(T4)【问题描述】输入一个四位整数,把它的各位数字倒序输出。【输入格式示例】输入正整数1234。【输出格式示例】输出正整数4321。5、(T5)【问题描述】输入一个整数,判断其奇偶性,若是奇数,则输出“It’sanoddnumber.”;若是偶数,则输出“It’sanevennumber.”【输入格式示例】输入整数n=32【输出格式示例】It’sanevennumber.16、(T6)【问题描述】读入两个字符,若这两个字符的ASCII码之差是奇数,输出这两个字符的后继字符;否则输出它们的前趋字符。【输入格式】输入两个字符c1=’D’,c2=’(’【输出格式】由于’D’的ASCII码为68,’(’的ASCII码为40,两者差28,是偶数,所以输出它们的前趋字符,分别为’C’、’’’7、(T7)【问题描述】利用下列公式计算π的值n=100008、(T8)【问题描述】求菲波拉契数列a0,a1,a2,…,a20。菲波拉契数列可以按如下定义:a0=0a1=1a2=a0+a1a3=a1+a2……an=an-2+an-1【输出格式】输出菲波拉契数列前20项的值,每行输出5个数,具体输出格式如下:0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,9、(T9)【问题描述】拼数。将以字符形式输入的数字序列转换成实数。【输入格式】输入字符:’8’、’5’、’·’、’3’、’7’【输出格式】输出为实数:85.3710、(T10)【问题描述】输出所有100~999中的水仙花数。若有三位正整数abc,满足a3+b3+c3=abc,则称abc为水仙花数。例如153,13+53+33=1+125+27=153,则153称为水仙花数。2信息学奥林匹克竞赛PASCAL编程考试试卷参考答案(答案不是唯一的)PROGRAMT1;VARa,b,l,s:integer;BEGINwrite('a=?');readln(a);write('b=?');readln(b);l:=(a+b)*2;s:=a*b;writeln('l=(',a,’+’,b,’)*2=’,l,',s=',a,’*’,b,’=’,s);END.PROGRAMT2;VARa,b,c,i:integer;BEGINwrite('a=?');readln(a);write('b=?');readln(b);write('c=?');readln(c);IFaaTHENwriteln(c,'>',a,'>',b)ELSEIFc>bTHENwriteln(a,'>',c,'>',b)ELSEwriteln(a,'>',b,'>',c)END.PROGRAMT3;VAR3n,i,sum:integer;BEGINread(n);sum:=1;FORi:=1TOnDOsum:=sum*i;writeln('n!=',sum);END.PROGRAMT4;VARsou,des,i,a:integer;BEGINwrite('Pleaseinputafourfiguresplusinteger:?');readln(sou);des:=0;FORi:=1TO4DOBEGINdes:=des+(souMOD10)*trunc(exp((4-i)*ln(10)));sou:=souDIV10;END;{FOR}writeln('Thereverseorderplusintegeris:',des)END.PROGRAMT5;VARn:integer;BEGINwrite('n=?');readln(n);IFodd(n)THENwrite('It','''','sanoddnumber.')ELSEwrite('It','''','sanevennumber.')END.PROGRAMT6;VARc1,c2:char;BEGIN4write('c1=?');readln(c1);write('c2=?');readln(c2);IFodd(ord(c1)-ord(c2))THENwriteln(succ(c1),',',succ(c2))ELSEwriteln(pred(c1),',',pred(c2))END.PROGRAMT7;VARi:integer;sum,pi:real;BEGINsum:=0;FORi:=1TO10000DOsum:=sum+1/(4*i-3)-1/(4*i-1);pi:=sum*4;writeln('pi=',pi)END.PROGRAMT8;VARa0,a1,a2,i:integer;BEGINwriteln;a0:=0;a1:=1;write(a0,',',a1,',');FORi:=2TO20DOBEGINa2:=a0+a1;write(a2,',');IFiMOD5=4THENwriteln;a0:=a1;a1:=a2;END;END.5PROGRAMT9;VARch:char;result,scale:real;BEGINresult:=0;read(ch);write(ch);REPEATresult:=result*10+ord(ch)-ord('0');read(ch);write(ch)UNTIL(ch<'0')OR(ch>'9');IFch='.'THENBEGINscale:=1;read(ch);write(ch);REPEATresult:=result*10+ord(ch)-ord('0');scale:=scale*10;read(ch);write(ch);UNTIL(ch<'0')OR(ch>'9');result:=result/scaleEND;writeln('=',result)END.PROGRAMT10;VARn,i,sum,a,b,c:integer;BEGINFORn:=100TO999DOBEGINc:=nMOD10;b:=nDIV10MOD10;a:=nDIV100;IFa*a*a+b*b*b+c*c*c=nTHENwrite(n,',');END{FOR}6END.7