(信息学奥赛辅导)程序设计试题汇编(答案).docx
《(信息学奥赛辅导)程序设计试题汇编(答案).docx》由会员分享,可在线阅读,更多相关《(信息学奥赛辅导)程序设计试题汇编(答案).docx(39页珍藏版)》请在第壹文秘上搜索。
1、程本被行诙题及答案(备注:试题难度评价实行五级评价体系,分基础、简洁、一般、稍难、难五个等级,其中的一、二、三级都属于程序设计的基础试题级别,同学们稍加思索均有实力求得正确解答,对于四级试题属于程序设计试题基础级别的思索题,五级难度试题在此没有涉及,在程序设计高级试题中另行讲解。对于基础和简洁两个级别的程序设计试题,若能够给出语句分类(如If条件语句、条件语句嵌套、循环语句、多重循环语句等)的将尽量给出。若属于13大类别的将尽量标注。)程序设计武题几大分类:1、1素数类问题(求素数的几种算法):2、数据排序问题(数据排序的几种方法):3、最大公约数和最小公倍数问题(几种算法):4、公式求解类问
2、题(如求圆周率打、自然常数e、解方程等等):5、编号相反处理问题:6、约瑟夫问题(或猴子选大王问题、密码问题):7、回文数问题:8、高精度数值计算问题:9、数值计算问题:10、进制相互转换问题:11、字符串倒置问题:12、排列与组合类问题:13、因子、质因子(质因数)类相关问题:答案部分:(程序设计的源程序没有统一的标准答案,实现程序的算法也是多种多样,但结果是唯一的,算法也有优劣之分,一个程序的优劣,关键在于是否找到了好的算法,以下程序和算法不确定就是最佳算法和最佳程序,只能仅供参考,希望同学们能够对某些程序提出更好的算法来改进程序)(常常遇到的推断是否为素数、是否为回文数、求两个数的最大公
3、约数、求两个数的最小公倍数等问题的子函数源程序,请务必记住!)推断是否为素数,若是素数则返回IrUe,若不是素数则返回false:functionprime(x:longinl):boolean;varj,y:Iongint;beginprime:=true;ifx61、67、71、7379、83、89、97。(共25个)推断是否为回文数,若是回文数则返回IrUe,若不是回文数则返回false:functionhuiwen(n:longint):boolean;varm,i,jUonginl;a:array1.10ofinteger;beginifn0thenbeginhuiwen:=fals
4、e;exit;end;m:=n;i:=0;huiwen:=true;repeati:=i+l;a(i:=mmod10;m:=mdiv10;untilm=0;forj:=lto(idiv2)doifajai-j+lthenbeginhuiwen:=false;exit;end;end;求最大公约数子函数,返回两个正整数的最大公约数,采纳辗转相除法算法;functiongcd(a,b:longint):longint;beginifb=0thengcd:=aelsegcd:=gcd(b,amodb);end;求最小公倍数:1Cm=a*bdivgcd(a,b);(以下程序设计试题来自奥赛经典(语言篇
5、)第2章基本语句与程序结构例题部分:1、求梯形的面积。(梯形面积公式:)(,测试数据2、求一元二次方程a2+bx+C=0的两个实根。(求根公式:)(,测试数据a=l,b=-5,c=6;答案:xi=2、X2=3)3、输入一个三位的自然数,然后把这个数的百位与个位对调,输出对调后的结果。()4、输入三个数a、b、c,首先推断这三个数能否构成三角形,若能,则求出三角形的面积。(提示:海伦公式S=Jd(d-a)(d力(d-c),其中,a、b、C为边长)(,If条件语句,测试数据a=5,b=6,c=7;答案:14.7)5、从键盘读入三个数,按从大到小的依次把它们打印出来。(,If条件语句)6、输入三角形
6、的三边,推断它是否是直角三角形。(,If条件语句,测试数据3、4、5;4、5、6:答案Yes;NO)7、编写一个依据用户键入的两个操作数和一个运算符,由计算机输出运算结果的程序。()8、输入一个年号,推断它是否为闰年。(,If条件语句,测试数据1900;2000;2008;答案:No;Yes;YeS)9、编程计算S=l+2+3+100。(,循环语句,答案:5050)相关练习:(1);(2)S=l222+1002;(3)S=2+4+6+100;(4)S=l47+10100;(相关练习答案:(1)5.19(保留2为小数);(2)338350:(3)2550;(4)1717)2Ili10、依据公式卷
7、=1+玄+/+-7,计算圆周率的丸值。(,循环语句,测试数据n=10000;答案:3.1414971639)programe;vari:longint;s:real;beginwritein;s:=0;fori:=lto10000dos:=s+l/(i*i);writeln(sqrt(6*s);end.11,计算n!。(n!=l23n,取n=10)(,循环语句,10!=3628800)12、已知一对兔子,每个月可以生一对小兔,而小兔过一个月后也可生一对小兔。即兔子的对数是:第一个月1对,其次个月2对,第三个月3对,第四个月5对,假设兔子的生育期是12个月,并且不死,问一年后,这对兔子有多少对活
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息学 辅导 程序设计 试题 汇编 答案