NOIP 2018 提高组初赛试题

第 1 题
下列四个不同进制的数中,与其它三项数值上不相等的是
A.(269)16
B.(617)10
C.(1151)8
D.(1001101011)2
正确答案: D
本题共 2

第 2 题
下列属于解释执行的程序设计语言是
A.C
B.C++
C.Pascal
D.Python
正确答案: D
本题共 2

第 3 题
中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。
A.1983
B.1984
C.1985
D.1986
正确答案: B
本题共 2

第 4 题
根节点深度为 0,一棵深度为 h 的满 k(k>1)叉树,即除最后一层无任何子 节点外,每一层上的所有结点都有 k 个子结点的树,共有( )个结点。
A.(k^{h+1}-1)/(k-1)(kh+1?1)/(k?1)
B.k^{h-1}kh?1
C.k^hkh
D.(k^{h-1})/(k-1)(kh?1)/(k?1)
正确答案: A
本题共 2

第 5 题
设某算法的时间复杂度函数的递推方程是T(n) = T(n – 1) + n(n 为正整数)及T(0) = 1,则该算法的时间复杂度为( )。
A.O(log n)
B.O(n log n)
C.O(n)
D.O(n^2)
正确答案: D
本题共 2

第 6 题
表达式 a * d – b * c 的前缀形式是( )。
A.a d * b c * -
B.- * a d * b c
C.a * d - b * c
D.- * * a d b c
正确答案: B
本题共 2

第 7 题
在一条长度为 1 的线段上随机取两个点,则以这两个点为端点的线段的期望长度是( )。
A.1 / 2
B.1 / 3
C.2 / 3
D.3 / 5
正确答案: B
本题共 2

第 8 题
关于Catalan 数 Cn = (2n)! / (n + 1)! / n!,下列说法中错误的是( )。
A.Cn 表示有n + 1 个结点的不同形态的二叉树的个数。
B.Cn 表示含n 对括号的合法括号序列的个数。
C.Cn 表示长度为n 的入栈序列对应的合法出栈序列个数。
D.Cn 表示通过连接顶点而将n + 2 边的凸多边形分成三角形的方法个数。
正确答案: A
本题共 2

第 9 题
假设一台抽奖机中有红、蓝两色的球,任意时刻按下抽奖按钮,都会等概率获得红球或蓝球之一。有足够多的人每人都用这台抽奖机抽奖,假如他们的策略均为:抽中蓝球则继续抽球,抽中红球则停止。最后每个人都把自己获得的所有球放到一个大箱子里,最终大箱子里的红球与蓝球的比例接近于( )。
A.1 : 2
B.2 : 1
C.1 : 3
D.1 : 1
正确答案: D
本题共 2

第 10 题
为了统计一个非负整数的二进制形式中 1 的个数,代码如下:

则空格内要填入的语句是( )。
A.x >>= 1
B.x &= x – 1
C.x |= x >> 1
D.x <<= 1
正确答案: B
本题共 2

第 11 题
NOIP 初赛中,选手可以带入考场的有( )。
A.笔
B.橡皮
C.手机(关机)
D.草稿纸
正确答案: A / B
本题共 2

第 12 题
2-3 树是一种特殊的树,它满足两个条件:每个内部结点有两个或三个子结点;
所有的叶结点到根的路径长度相同。
如果一棵2-3 树有10 个叶结点,那么它可能有( )个非叶结点。
A.5
B.6
C.7
D.8
正确答案: C / D
本题共 2

第 13 题
下列关于最短路算法的说法正确的有( )。
A.当图中不存在负权回路但是存在负权边时,Dijkstra 算法不一定能求出源点到所有点的最短路。
B.当图中不存在负权边时,调用多次Dijkstra 算法能求出每对顶点间最短路径。
C.图中存在负权回路时,调用一次Dijkstra 算法也一定能求出源点到所有点的最短路。
D.当图中不存在负权边时,调用一次Dijkstra 算法不能用于每对顶点间最短路计算。
正确答案: A / B / D
本题共 2

第 14 题
下列说法中,是树的性质的有( )。
A.无环
B.任意两个结点之间有且只有一条简单路径
C.有且只有一个简单环
D.边的数目恰是顶点数目减1
正确答案: A / B / D
本题共 2

第 15 题
下列关于图灵奖的说法中,正确的有( )。
A.图灵奖是由电气和电子工程师协会(IEEE)设立的。
B.目前获得该奖项的华人学者只有姚期智教授一人。
C.其名称取自计算机科学的先驱、英国科学家艾伦·麦席森·图灵。
D.它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。
正确答案: B / C / D
本题共 2

第 16 题
甲乙丙丁四人在考虑周末要不要外出郊游。
已知①如果周末下雨,并且乙不去,则甲一定不去;②如果乙去,则丁一定去;③如果丙去,则丁一定不去;④如果丁不去,而且甲不去,则丙一定不去。
如果周末丙去了,则甲________,乙________,丁________,周末________。
1.A.去了? B.没去?? 正确答案: A
2.A.去了? B.没去?? 正确答案: B
3.A.去了? B.没去???? 正确答案: B
4.A.下雨? B.没下雨??? 正确答案: B
本题共 5

第 17 题
方程 a*b = (a or b) * (a and b),在 a, b 都取 [0, 31] 中的整数时,共有_____组解。(*表示乘法;or 表示按位或运算;and 表示按位与运算)
正确答案: 454
本题共 5

第 18 题
阅读程序写结果:

输入:15
正确答案: 4
本题共 8

第 19 题
阅读程序写结果:

输入:10 7 1 4 3 2 5 9 8 0 6
正确答案: 6
本题共 8

第 20 题
阅读程序写结果:

输入:abacaba
正确答案: 16
本题共 8

第 21 题
阅读程序写结果

输入1:6 10 1 6 4 5 3 2
输入2:6 200 1 5 3 4 2 6

1.正确答案: 2 1 3 5 6 4
2.正确答案: 3 2 5 6 1 4

本题共 8

第 22 题
对于一个 1 到 n 的排列 P(即 1 到 n 中每一个数在 P 中出现了恰好一次),令 q[i] 为第 i 个位置之后第一个比 P[i] 值更大的位置,如果不存在这样的位置,则 q[i] = n + 1。举例来说,如果 n = 5 且 P 为 1 5 4 2 3 ,则 q 为2 6 6 5 6

下列程序读入了排列 P ,使用双向链表求解了答案。试补全程序。

1.正确答案: a[x] = i
2.正确答案: i+1
3.正确答案: R[a[i]]
4.正确答案: a[i]
5.正确答案: R[i]

本题共 14

第 23 题
完善程序
一只小猪要买 N 件物品(N 不超过 1000)。
它要买的所有物品在两家商店里都有卖。第 i 件物品在第一家商店的价格是 a[i] ,在第二家商店的价格是 b[i] ,两个价格都不小于 0 且不超过 10000。如果在第一家商店买的物品的总额不少于 50000,那么在第一家店买的物品都可以打 95 折(价格变为原来的 0.95 倍)。
求小猪买齐所有物品所需最少的总额。
输入:第一行一个数 N。接下来N 行,每行两个数。第 i 行的两个数分别代表 a[i],b[i]。
输出:输出一行一个数,表示最少需要的总额,保留两位小数。
试补全程序。

1.正确答案: a[i] * 0.95 <= b[i] / b[i] >= a[i] * 0.95 / 0.95 * a[i] <= b[i] / b[i] >= 0.95 * a[i]
2.正确答案: total_a >= threshold / threshold <= total_a / total_a >= 50000 / 50000 <= total_a
3.正确答案: total_a + j + a[i] / total_a + a[i] + j / a[i] + j + total_a / a[i] + total_a + j / j + total_a + a[i] / j + a[i] + total_a
4.正确答案: f[j] + total_b – total_b_prefix / f[j] – total_b_prefix + total_b / total_b + f[j] – total_b_prefix / total_b – total_b_prefix + f[j]
5.正确答案: f[j – a[i]]

本题共 14