1、CCF NOIP2018 初赛普及组 C+语言试题第 1 页 共 7 页第二十四届全国青少年信息学奥林匹克联赛初赛普及组 C+语言试题竞赛时间:2018 年 10 月 13 日 14:3016:30(WORD 重新整理排版)选手注意: 试题纸共有 7 页,答题纸共有 2 页,满分 100 分。请在答题纸上作答,写在试题纸上的一律无效。 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。一、单项选择题(共 15 题,每题 2 分,共计 30 分 ; 每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:( )A. 扫描仪 B. 键盘 C. 鼠标 D. 打印机2. 下列四
2、个不同进制的数中,与其它三项数值上不相等的是( ) 。A. (269)16B. (617)10C. (1151)8D. (1001101011)23. 1MB 等于( ) 。A. 1000 字节 B. 1024 字节C. 1000 1000 字节 D. 1024 1024 字节4. 广域网的英文缩写是( ) 。A. LANB. WANC. MAND. LNA5. 中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。A. 1983B. 1984C. 1985D. 19866. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、字母键 A、字母键 S、字母键 D、
3、字母键 F 的顺序循环按键,即 CapsLock、A、S、D、F、CapsLock、A、S、D、F、,屏幕上输出的第 81 个字符是字母( ) 。A. A B. S C. D D. a7. 根节点深度为 0,一棵深度为 h 的满 k(k1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有 k 个子结点的树,共有( )个结点。CCF NOIP2018 初赛普及组 C+语言试题第 2 页 共 7 页A. (kh+1 - 1) / (k - 1)B. kh-1C. khD. (kh-1 ) / (k - 1)8. 以下排序算法中,不需要进行关键字比较操作的算法是( ) 。A. 基数排序B.
4、冒泡排序C. 堆排序D. 直接插入排序9. 给定一个含 N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要 N - 1 次比较操作。则最坏情况下,在该数组中同时找最大与最小的数至少需要( )次比较操作。 ( 表示向上取整, 表示向下取整)A. 3N/2 - 2B. 3N/2 - 2C. 2N - 2D. 2N 410. 下面的故事与( )算法有着异曲同工之妙。从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事 ”A. 枚举 B. 递归 C. 贪心 D. 分治1
5、1. 由四个没有区别的点构成的简单无向连通图的个数是( ) 。A. 6B. 7C. 8D. 912. 设含有 10 个元素的集合的全部子集数为 S,其中由 7 个元素组成的子集数为 T,则 T / S 的值为( ) 。A. 5 / 32B. 15 / 128C. 1 / 8D. 21 / 12813. 10000 以内,与 10000 互质的正整数有( )个。A. 2000B. 4000C. 6000D. 8000CCF NOIP2018 初赛普及组 C+语言试题第 3 页 共 7 页14. 为了统计一个非负整数的二进制形式中 1 的个数,代码如下:int CountBit(int x)int
6、 ret = 0;while (x)ret+;_;return ret;则空格内要填入的语句是( ) 。A. x = 1B. x int main() scanf(“%s“, st);for (int i = 0; sti; +i) if (A int main() int x;scanf(“%d“, int res = 0;for (int i = 0; i using namespace std;int n, m;int findans(int n, int m) if (n = 0) return m;if (m = 0) return n % 3;return findans(n -
7、1, m) - findans(n, m - 1) + findans(n - 1, m - 1);int main()cin n m;cout CCF NOIP2018 初赛普及组 C+语言试题第 5 页 共 7 页int n, d100;bool v100;int main() scanf(“%d“, for (int i = 0; i using namespace std;const int N = 110000, P = 10007;int n;int aN, len;int ans;void getDivisor() len = 0;for (int i = 1; (1) n;ge
8、tDivisor();ans = 0;for (int i = 1; i using namespace std;const int N = 100010;int n;int LN, RN, aN;int main() cin n;for (int i = 1; i x;(1) ;for (int i = 1; i = n; +i) Ri = (2) ;Li = i - 1;for (int i = 1; i = n; +i) CCF NOIP2018 初赛普及组 C+语言试题第 7 页 共 7 页L (3) = Lai;RLai = R (4) ;for (int i = 1; i = n;
9、 +i) cout (5) “ “;cout endl;return 0;第二十四届全国青少年信息学奥林匹克联赛初赛普及组参考答案一、单项选择题(共 15 题,每题 2 分,共计 30 分)1 2 3 4 5 6 7 8 9 10D D D B B A A A A B11 12 13 14 15A B B B B二、问题求解(共 2 题,每题 5 分,共计 10 分)1. 去了 没去 没去 没下雨 (第 4 空 2 分,其余 1 分)2. 544三、阅读程序写结果(共 4 题,每题 8 分,共计 32 分)1. RuanHuoMianTai2. 43. 84. 6四、完善程序(共计 28 分,以下各程序填空可能还有一些等价的写法,由各省赛区组织本省专家审定及上机验证,可以不上报 CCF NOI 科学委员会复核)Pascal 语言 C+语言 C 语言 分值(1) i * i 2(2) n div i n / i 3(3) exit(a) return a 3(4) a mod b a % b 31(5) ans + gcd(ai, aj) 3(1) ax := i ax = i 3(2) i + 1 2(3) Rai 3(4) ai 32(5) Ri 2