NOIP2009初赛普及组(C语言、PASCAL语言)参考答案与评分标准
一、单项选择题:(每题1.5分)
1. D 2. B 3. A 4. A 5. B
6. D 7. C 8. B 9. C 10. D
11. C 12. C 13. B 14. D 15. D
16. B 17. D 18. A 19. C 20. B
二、问题求解:(共2题,每空5分,共计10分)
1.70
2.5
三、阅读程序写结果(共4题,每题8分,共计32分)
1. 4
2. 416
3. 782
4. NPOI
四.完善程序 (前8空,每空3分,后2空,每空2分,共28分)
(说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学委员会审查)
C语言:
1.
① 0
② tmp+a[i]==ans 或者 a[i]+tmp==ans 或者ans==a[i]+tmp等
③ <0
④ i
⑤ tmp+=a[i] 或者 tmp=tmp+a[i]
2.
① 0
② hash[i][j]++ 或者 hash[i][j]= hash[i][j]+1 或者 ++hash[i][j]
③ work(x,y,tot+1)
④ hash[i][j]-- 或者 hash[i][j]= hash[i][j]-1 或者--hash[i][j]
⑤ work(0,0,0)
注意:② ④ 两空,不一定要++ 或者 - -。也可以是④ - - , ② ++. 也可以是 += k , 也可以 -= k, 甚至任何加标记的操作(如位运算)都可以,只要相互撤销。(所以答案非常多)。
PASCAL语言:
1.
① 0
② tmp+a[i]=ans或者 a[i]+tmp=ans 或者ans=a[i]+tmp等
③ <0
④ i
⑤ inc(tmp, a[i])或者tmp := tmp+a[i]
2.
① 0
② inc(hash[i, j])或者 hash[i][j]:= hash[i][j]+1
③ work(x,y,tot+1)
④ dec(hash[i, j]) 或者 hash[i][j]:= hash[i][j]-1
⑤ work(0,0,0)
注意:② ④ 两空,不一定要+1 或者 -1。也可以是④ -1 , ② +1. 也可以是 + k , 也可以 - k, 甚至任何加标记的操作(如位运算)都可以,只要相互撤销。(所以答案非常多)。
你的答案对吗?一楼?