师大附中
信息学奥林匹克竞赛辅导程序设计试题答案部分
第1页
程序设计试题及答案
备注试题难度评价采取五★级评价体系分基础容易一般稍难难五个等级其中的一二三★级都属于程序设计的基础试题级别同学们稍加思考均有能力求得正确解答对于四★级试题属于程序设计试题基础级别的思考题五★级难度试题在此没有涉及在程序设计高级试题中另行讲解对于基础和容易两个级别的程序设计试题若能够给出语句分类如If条件语句条件语句嵌套循环语句多重循环语句等的将尽量给出若属于13大类别的将尽量标注程序设计试题几大分类1素数类问题求素数的几种算法2数据排序问题数据排序的几种方法3最大公约数和最小公倍数问题几种算法4公式求解类问题如求圆周率π自然常数e解方程等等5编号相反处理问题6约瑟夫问题或猴子选大王问题密码问题7回文数问题8高精度数值计算问题9数值计算问题10进制相互转换问题11字符串倒置问题12排列与组合类问题13因子质因子质因数类相关问题
答案部分答案部分
程序设计的源程序没有统一的标准答案实现程序的算法也是多种多样但结果是唯一的算法也有优劣之分一个程序的优劣关键在于是否找到了好的算法以下程序和算法不一定就是最佳算法和最佳程序只能仅供参考希望同学们能够对某些程序提出更好的算法来改进程序经常碰到的判断是否为素数是否为回文数求两个数的最大公约数求两个数的最小公倍数等问题的子函数源程序请务必记住①判断是否为素数若是素数则返回true若不是素数则返回falsefu
ctio
primexlo
gi
tboolea
varjylo
gi
tbegi
primetrueifx2the
primefalseytru
csqrtxforj2toydoifxmodj0the
begi
primefalseexite
de
d备注1~100之间所有的素数2357111317192329313741434753596167717379838997共25个②判断是否为回文数若是回文数则返回true若不是回文数则返回false
f师大附中
信息学奥林匹克竞赛辅导程序设计试题答案部分
第2页
fu
ctio
huiwe
lo
gi
tboolea
varmijlo
gi
taarray110ofi
tegerbegi
if
0the
begi
huiwe
falseexite
dm
i0huiwe
truerepeatii1aimmod10mmdiv10u
tilm0forj1toidiv2doifajaij1the
begi
huiwe
falseexite
de
d③求最大公约数子函数返回两个正整数的最大公约数采用辗转相除法算法fu
ctio
gcdablo
gi
tlo
gi
tbegi
ifb0the
gcdaelsegcdgcdbamodbe
d④求最小公倍数lcmabdivgcdab以下程序设计试题来自《奥r