1、程序填空程序填空程序填空题的特点程序填空题的特点 是初赛试题中最难的题目。这些程序都具有高效是初赛试题中最难的题目。这些程序都具有高效,规范的特点规范的特点,如果你读懂了如果你读懂了,会有一种会有一种“恍然大悟恍然大悟”的感觉。的感觉。题目中会明确交代程序的目的(功能),还有的题目中会明确交代程序的目的(功能),还有的问题会明确告诉所使用的算法。但也有些问题需问题会明确告诉所使用的算法。但也有些问题需要选手揣摩题目使用的算法,有时题目会独创一要选手揣摩题目使用的算法,有时题目会独创一些算法,即在教科书中找不到的算法些算法,即在教科书中找不到的算法.将一些关键的语句或变量、函数等去掉,让选手将一
2、些关键的语句或变量、函数等去掉,让选手去填写。去填写。有的空不止一种填法,如有的空不止一种填法,如i:=i+1,可以用,可以用inc(i)表表示,示,i:=i-1可以用可以用dec(i)表示,表示,while p=true可以可以用用 while p表示,表示,ab可以用可以用not a=b或或b0(2)(-b+sqrt(m)/(2*a)(3)3(4)m=0(5)-b/(2*a)例题2三角形内切圆的面积三角形内切圆的面积题目描述题目描述:给出三角形三边的边长,求此三角形内切圆(如上图所示,给出三角形三边的边长,求此三角形内切圆(如上图所示,三角形的内切圆是和三角形三边都相切的圆)的面积。三角形
3、的内切圆是和三角形三边都相切的圆)的面积。输入输入:三个正实数三个正实数a、b、c(满足(满足a+bc,b+ca,c+ab),表示三表示三角形三边的边长。角形三边的边长。输出输出:三角形内切圆的面积,结果四舍五入到小数点后面三角形内切圆的面积,结果四舍五入到小数点后面2位。位。输入样例输入样例:3 4 5输出样例输出样例:3.14程序程序:program program1;vara,b,c,r,s,t:real;beginread(a,b,c);s:=()/2;t:=(s*(s-a)*(s-b)*(s-c);r:=t/s;writeln(3.1415927*r*:0:);end.参考答案(1)
4、a+b+c(2)Sqrt(3)r例题例题3判断质数判断质数题目描述题目描述:给出一个正整数,判断这个数是否是质数。给出一个正整数,判断这个数是否是质数。输入输入:一个正整数一个正整数n(1 n 10000)。输出输出:如果如果n是质数,输出是质数,输出”YES”;否则,输出;否则,输出”NO”。输入样例输入样例:10输出样例输出样例:NO程序:程序:var:integer;begin read(n);if n=2 then writeln()else if()or(n mod 2=0)then writeln(NO)else begin i:=3;while i*i 0 或 bi0(4)I(5
5、)K mod 8=0 每输出8个后换一行(6)分析:数组bx指的是x输入的次数,如输入5个整数,分别是0,0,0,99,2,则b0=3,b2=1,b99=1,而b1等其余的98个数组元素全部为0(7)程序中的第三个空所涉及的while循环,输出重复的整数,如上述实例,b0=3,则将输出三个0 由键盘输入一个奇数 P(P100,000,000),其个位数字不是5,求一个整数 S,使 PS=1111.1(在给定的条件下,解 S 必存在)。要求在屏幕上依次输出以下结果:(1)S 的全部数字。除最后一行外,每行输出 50 位数字。(2)乘积的数字位数。例1:输入p=13,由于13*8547=11111
6、1,则应输出(1)8547,(2)6 例2:输入p=147,则输出结果应为(1)755857898715041572184429327286470143613(2)42,即等式的右端有42个1。程序:例题例题5,NOIP2006program ex402;var p,a,b,c,t,n:longint;begin while(true)do begin writeln(Input p,the last digit is 1 or 3 or 7 or 9:);readln(p);if(p mod 20)and(p mod 50)then ;如果输入的数符合要求,结束循环 end;a:=0;n:=0;while(ap)do begin a:=a*10+1;inc(n);end;t:=0;repeat b:=a div p;write(b:1);inc(t);if()then writeln;c:=;a:=;inc(n);until c=0;dec(n);writeln;writeln(n=,);end.参考答案 break t mod 50=0 a-p*b(或a-b*p)c*10+1(或10*c+1)n