每题8分,共计32分)
1Programex401
varuvarray03ofi
tegerixyi
tegerbegi
x10y10fori0to3doreadui
7
f马鞍山二中
NOIP20062008初赛(提高组)试题&解析
v0u0u1u2u3div7v1u0divu1u2divu3v2u0u1divu2u3v3v0v1xv0v12uv33mod4ifx10the
yyv2100v3divuu0mod35elseyy20v2100v3divuv0mod35writel
xye
d注:本例中,给定的输入数据可以避免分母为0或下标越界
输入:9394输出:1357(两数间要有逗号)两数间要有逗号)要有逗号
【注意】基础题,需要大家耐心和细心,掌握运算符的先后运算顺序。①div等同于除法,注意正负号,如6div32,6div32,6div32;②mod最后的正负号取决于被除数的符号(Pascal),如6mod42,6mod42,6mod42。2Programex402
co
stmarray04ofi
teger235713variji
tegertlo
gi
tbegi
fori0to4dobegi
t1forj1tomi1doe
dwritel
e
dtt2tt21twritet
输出_____【答案】6284968128335503363Programex403
Co
stTypeArr1array030ofcharvarsarr1kpi
tegerfu
ctio
fu
1sarr1achar
i
tegeri
teger
8
NN7
f马鞍山二中
NOIP20062008初赛(提高组)试题&解析
varji
tegerbegi
j
whileasja
dj0dodecjfu
1je
dfu
ctio
fu
2sarr1achar
i
tegeri
tegervarji
tegerbegi
j1whileasja
dj
doi
cjfu
2je
dbegi
fork1toNNdoskchrordA2k1kfu
1sMNNfu
2sMNNwritel
ke
d
输出:【答案】114programex404
varxx2lo
gi
tproceduredigit
mlo
gi
tvar
2i
tegerbegi
ifm0the
begi
2
mod10write
22ifm1the
e
dbegi
writel
I
puta
umberreadl
xx21whilex2xdoe
dx2x210x2x2div10digitxx2writel
digit
div10mdiv10
2
mod10write
22e
d
输入:9734526输出:【答案】62543799734526(要有空格)
9
f马鞍山二中
NOIP20062008初赛(提高组)试题&解析
五.完善程序前5空,每空2分,后6空,每空3分,共28分
1.选排列)下面程序的功能是利用递归方法生成从1到
10的
个数中取(k1k
个数的全部可能的排列(不一定按升序输出)。例如,当
3,k2时,应该输出(每行输出5个排列):121321233231程序:Programex501vari
ki
tegeraarray110ofi
tegercou
tlo
gi
tProcedureperm2ji
tegervaripti
tegerbegi
if①the
begi
forikto
dobegi
i
ccou
ttakakaiaitfor②dowriteap1writetakakaiaitifcou
tmod50the
writel
e
r