第二十二届全国青少年信息学奥林匹克联赛 初赛
普及组参考答案
一、单项选择题(共 20题,每题1.5分,共计30分)
1 2 3 4 5 6 7 8 9 10
D C D C D C B B C A
11 12 13 14 15 16 17 18 19 20
D B D A D B A A C C
二、问题求解(共 2题,每题5分,共计10分;第一题全部答对得 5分,没有部分分;第二题第一空 2
分,第二空 3分)
1. 72
2. 1 (2分)
11 (3分)
三、阅读程序写结果(共 4题,每题8分,共计32分)
1. 6,1,3
2. 13
3. 6,5,4,3,2,1,
4. =
四、完善程序(共计 28分,以下各程序填空可能还有 一些等价的写法, 由各省赛区组织本省专家审定 及
上机验证, 可以不上报CCF NOI科学委员会 复核)
Pascal语言 C++语言 C语言 分值
1. (1) read(c) cin.get() c=getchar() 2.5
(2)
num:=ord(c)-ord('0')
或 num:=ord(c)-48
num=c-'0' 或 num=c-48
3
(3)
(c>='0') and (c<='9')
或 (c>=48) and (c<=57)
c>='0'&&c<='9' 或 c>=48&&c<=57 3
(4)
num:=num*10+ord(c)-ord('0')
或 num:=num*10+ord(c)-48
num=num*10+c-'0'
或 num=num*10+c-48
3
(5) num:=-num 或 exit(-num) num=-num 或 return -num 2.5
2. (1) n-nn+1 3
(2) M[i]<C[j] 或 M[i]<=C[j] 3
(3) count<=A 3
(4) check(mid) 2.5
(5) mid-1 2.5
NOIP2016普及组初赛参考答案,2016年NOIP信息学奥赛普及组初赛C++真题答案