NOIP2016初赛普及其组C++题目及其答案.doc
''第二十二届全国青少年信息学奥林匹克联赛初赛普及组 C+语言试题竞赛时间:2016 年 10 月 22 日 14:3016:30选手注意:试题纸共有 9 页,答题纸共有 2 页,满分 100 分。请在答题纸上作答,写在 试题纸上的一律无效。 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资 料。一、单项选择题(共 20 题,每题 1.5 分,共计 30 分;每题有且仅有一个正 确选 项)1.以下不是微软公司出品的软件是( )。 A.PowerpointB.Word C.ExcelD.Acrobat Reader2.如果 256 种颜色用二进制编码来表示,至少需要()位。 A.6B. 7C.8D. 93.以下不属于无线通信技术的是( )。 A.蓝牙B.WiFiC.GPRSD.以太网4.以下不是 CPU 生产厂商的是()。D.IBMA.IntelB.AMDC.Microsoft5.以下不是存储设备的是()。D.鼠标A.光盘B.磁盘C.固态硬盘6.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、 字母键 A、字母键 S 和字母键 D 的顺序循环按键,即 CapsLock、A、S、D、 CapsLock、A、S、D、,屏幕上输出的第 81 个字符是字母()。 A.AB. SC.DD.a7.二进制数 00101100 和 00010101 的和是( )。A.00101000B. 01000001C.01000100D.001110008.与二进制小数 0.1 相等的八进制数是()。D.0.1A.0.8B. 0.4C.0.2CCF NOIP2016 初赛普及组 C+语言试题 第 1 页,共 9 页''9.以下是 32 位机器和 64 位机器的区别的是()。 A.显示器不同B.硬盘大小不同 C.寻址空间不同D.输入法不同10. 以下关于字符串的判定语句中正确的是()。 A.字符串是一种特殊的线性表B.串的长度必须大于零 C.字符串不可以用数组来表示D.空格字符组成的串就是空串11. 一棵二叉树如右图所示,若采用顺序存储结构,即用一 维 数组元素存储该二叉树中的结点(根结点的下标为 1, 若 某结点的下标为 i ,则其左孩子位于下标 2i 处、右孩 子 位于下标(2i+1)处),则图中所有结点的最大下标为 ( )。 A.6B.10C.12D.1512. 若有如下程序段,其中 s、a、b、c 均已定义为整型变量,且 a、c 均已赋 值 (c 大于 0)。 s = a; for (b = 1; b using namespace std;int main() int k = 4, n = 0; while (n 。如果 L 中存在 x(i1 xi+1 > . > xn , 则称 L 是单峰的,并称 xi 是 L 的CCF NOIP2016 初赛普及组 C+语言试题 第 2 页,共 9 页''“峰顶”。现在已知 L 是单峰的,请把 a-c 三行代码补全到算法中使得算法 正 确找到 L 的峰顶。 a. Search(k+1, n) b. Search(1, k-1) c. return LkSearch(1, n) 1. k Lk-1 and Lk > Lk+1 3. then _ 4. else if Lk > Lk-1 and Lk using namespace std; int main() int max, min, sum, count = 0; int tmp; cin >> tmp; if (tmp = 0) return 0; max = min = sum = tmp; count+; while (tmp != 0) cin >> tmp; if (tmp != 0) sum += tmp; count+;if (tmp > max) max = tmp; if (tmp using namespace std;int main() CCF NOIP2016 初赛普及组 C+语言试题 第 5 页,共 9 页''int i = 100, x = 0, y = 0; while (i > 0) i-; x = i % 8; if (x = 1) y+; cout using namespace std;int main() int a6 = 1, 2, 3, 4, 5, 6; int pi = 0; int pj = 5; int t , i; while (pi using namespace std;int main() int i, length1, length2; string s1, s2; s1 = “I have a dream.“;CCF NOIP2016 初赛普及组 C+语言试题 第 6 页,共 9 页''s2 = “I Have A Dream.“; length1 = s1.size(); length2 = s2.size(); for (i = 0; i = 'a' int readint() int num = 0;/ 存储读取到的整数 int negative = 0;/ 负数标识 char c;/ 存储当前读取到的字符 c = cin.get(); while (c '9') CCF NOIP2016 初赛普及组 C+语言试题 第 7 页,共 9 页''if (c = '-') negative = 1; else (2); c = cin.get(); while (3) (4); c = cin.get(); if (negative = 1) (5) ; return num; int main() int a, b; a = readint(); b = readint(); cout using namespace std; #define MAXN 1000000int n, B, A, MMAXN, CMAXN, l, r, ans, mid; bool check(int nn) int count = 0, i, j; i =(1); j =1; while (i x) j-; if (i > n >> B >> A; for (i = 1; i > Mi; for (i = 1; i > Ci; sort(M, 1, n); sort(C, 1, B); l = 0; r = n; while (l =0&&c=0&&c=48&&c=48&&c<=57 (4)(4) num=num*10+c-'0'num=num*10+c-'0' 或或 num=num*10+c-48num=num*10+c-48 (5)(5) num=-numnum=-num 或或 return-numreturn-num 2.2. (1)(1) n-nn+1n-nn+1 (2)(2) Mi<CjMi<Cj 或或 Mi<=CjMi<=Cj (3)(3) count<=Acount<=A (4)(4) check(mid)check(mid)(5)(5) mid-1mid-1