NOIP2013第十九届普及组初赛题目C++和答案-
第十九届全国青少年信息学奥林匹克联赛初赛 普及组 C++语言试题 竞赛时间:2013 年 10 月 13 日 14:30~16:30 选手注意: 试题纸共有 9 页,答题纸共有 2 页,满分 100 分。请在答题纸上作答,写在试题纸上 的一律无效。 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共 2020 题,每题 1.51.5 分,共计 3030 分;每题有且仅有一个正确选 项) 1. 1. 一个 32 位整型变量占用( )个字节。 A. 2. 2. 二进制数 11.01 在十进制下是( )。 A.3.25B.4.125C.6.25 4B.8C.32D.128 D.11.125 3. 3.下面的故事与( )算法有着异曲同工之妙。 从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‚从前有座山,山 里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个 老和尚给小和尚讲故事’‛ A.枚举 4. 4.逻辑表达式( )的值与变量 A 的真假无关。 A.(A ˅ B) ˄ ¬A C. B.(A ˅ B) ˄ ¬B D.(A ˅ B) ˄ ¬A ˄ B CCF NOIP2013 初赛普及组 C++语言试题第 1 页,共 10 页 B. 递归 C. 贪心 D. 分治 (A ˄ B) ˅ (¬A ˄ B) 5. 5.将(2, 6, 10, 17)分别存储到某个地址区间为 0~10 的哈希表中,如果哈希函数 h(x) = ( ),将不会产生冲突,其中 a mod b 表示 a 除以 b 的余数。 A.x mod 11 C. 6. 6.在十六进制表示法中,字母 A 相当于十进制中的( )。 A.9 7. 7.下图中所使用的数据结构是( )。 压入 A 压入 B.x2 mod 11 D.,其中下取整2x mod 11 B.10C.15D.16 A B B 弹出 B 压入 C C AAA A.哈希表B. 栈C. 队列 D. 二叉树 8. 8.在 Windows 资源管理器中,用鼠标右键单击一个文件时,会出现一个名为“复制”的 操作选项,它的意思是( )。 A. 用剪切板中的文件替换该文件 B.在该文件所在文件夹中,将该文件克隆一份 C.将该文件复制到剪切板,并保留原文件 D.将该文件复制到剪切板,并删除原文件 9. 9.已知一棵二叉树有 10 个节点,则其中至多有( )个节点有 2 个子节点。 A.4 10.10. 在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。下图是一个有 4 个顶点、6 条边的连通图。若要使它不再是连通图,至少要删去其中的( )条边。 B.5C.6D.7 CCF NOIP2013 初赛普及组 C++语言试题第 2 页,共 10 页 A.1B.2C.3D.4 11.11. 二叉树的( )第一个访问的节点是根节点。 A.先序遍历 12.12. 以 A0作为起点,对下面的无向图进行深度优先遍历时,遍历顺序不可能是( )。 B. 中序遍历C. 后序遍历D. 以上都是 A.A0, A1, A2, A3 13.13. IPv4 协议使用 32 位地址,随着其不断被分配,地址资源日趋枯竭。因此,它正逐渐被 使用( )位地址的 IPv6 协议所取代。 A. 14.14. ( )的平均时间复杂度为 O(n log n),其中 n 是待排序的元素个数。 A.快速排序 15.15. 下面是根据欧几里得算法编写的函数,它所计算的是a 和 b 的( )。 int euclid(int a, int b) { if (b == 0) return a; else return euclid(b, a % b); } A.最大公共质因子 C. 最大公约数 16.16. 通常在搜索引擎中,对某个关键词加上双引号表示( )。 A.排除关键词,不显示任何包含该关键词的结果 B. 最小公共质因子 D. 最小公倍数 B. 插入排序C. 冒泡排序D. 基数排序 40B.48C.64D.128 B.A0, A1, A3, A2C.A0, A2, A1, A3D.A0, A3, A1, A2 CCF NOIP2013 初赛普及组 C++语言试题第 3 页,共 10 页 B.将关键词分解,在搜索结果中必须包含其中的一部分 C.精确搜索,只显示包含整个关键词的结果 D.站内搜索,只显示关键词所指向网站的内容 17.17. 中国的国家顶级域名是( )。 Acn 18.18. 把 64 位非零浮点数强制转换成 32 位浮点数后,不可能( )。 A. 大于原数 C. 等于原数 19.19. 下列程序中,正确计算 1, 2, …, 100这 100 个自然数之和 sum(初始值为 0)的是 ( )。 A. i = 1; do { sum += i; i++; } while (i = 100) { sum += i; i++; } B. 小于原数 D. 与原数符号相反 BchCchnDchina 二、问题求解(共 2 2 题,每题 5 5 分,共计 1010 分;每题全部答对得 5 5 分,没有部 分分) 1. 1.7 个同学围坐一圈,要选 2 个不相邻的作为代表,有_________种不同的选法。 CCF NOIP2013 初赛普及组 C++语言试题第 4 页,共 10 页 2. 2.某系统自称使用了一种防窃听的方式验证用户密码。密码是n 个数 s1, s2, …, sn,均为 0 或 1。该系统每次随机生成 n 个数 a1, a2, …, an,均为 0 或 1,请用户回答(s1a1 + s2a2 + … + snan)除以 2 的余数。如果多次的回答总是正确,即认为掌握密码。该系统认为,即使 问答的过程被泄露,也无助于破解密码——因为用户并没有直接发送密码。然而,事 与愿违。例如,当 n = 4 时,有人窃听了以下 5 次问答: 问答编号 系统生成的 n 个数 a1 1 0 0 1 1 a2 1 0 1 1 0 a3 0 1 1 1 0 a4 0 1 0 0 0 掌握密码的用户的回答 1 2 3 4 5 1 0 0 0 0 就破解出了密码 s1 = _________,s2 =_________,s3 =_________,s4 =_________。 三、阅读程序写结果(共 4 4 题,每题 8 8 分,共计 3232 分) 1. 1.#include using namespace std; int main() { int a, b; cinab; coutabu; num = 0; for (i = a; i nf; for (i = 1; i a[i]; left = 1; right = n; do { middle = (left + right) / 2; if (f n; for (int i = 0; i height[i]; num[i] = 1; for (int j = 0; j lower_bound) return 0; } int main() { int i, n; cinn; for (i = 1; i