资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
CCF NOIP2011 初赛 提高组 C 1 第十七届全国青少年信息学奥林匹克联赛初赛试题 ( 提高提高组组 C 语言语言 两小时完成两小时完成 ) 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 一、一、单项选择题(单项选择题(共共 20 题,每题题,每题 1.5 分,共计分,共计 30 分。每题有且仅有一个正确分。每题有且仅有一个正确选项。选项。 ) 1在二进制下,1101001 + ( ) = 1110110。 A. 1011 B. 1101 C. 1010 D. 1111 2. 字符 “A” 的 ASCII 码为十六进制 41, 则字符 “Z” 的 ASCII 码为十六进制的( ) 。 A. 66 B. 5A C. 50 D. 视具体的计算机而定 3右图是一棵二叉树,它的先序遍历是( )。 A. ABDEFC B. DBEFAC C. DFEBCA D. ABCDEF 4寄存器是( )的重要组成部分。 A. 硬盘 B. 高速缓存 C. 内存 D. 中央处理器(CPU) 5广度优先搜索时,需要用到的数据结构是( )。 A. 链表 B. 队列 C. 栈 D. 散列表 6在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指( )。 A. 程序运行时理论上所占的内存空间 B. 程序运行时理论上所占的数组空间 C. 程序运行时理论上所占的硬盘空间 D. 程序源文件理论上所占的硬盘空间 7应用快速排序的分治思想,可以实现一个求第 K 大数的程序。假定不考虑极端的最坏情 况,理论上可以实现的最低的算法时间复杂度为( )。 A. O(n2) B. O(n log n) C. O(n) D. O(1) 8为解决 Web 应用中的不兼容问题,保障信息的顺利流通,( )制定了一系列标准, 涉及 HTML、XML、CSS 等,并建议开发者遵循。 A. 微软 B. 美国计算机协会 (ACM) C. 联合国教科文组织 D. 万维网联盟 (W3C) A B C D E F CCF NOIP2011 初赛 提高组 C 2 9. 体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个 同学按顺序来到操场时, 都从排尾走向排头, 找到第一个比自己高的同学, 并站在他的后面。 这种站队的方法类似于( )算法 。 A. 快速排序 B. 插入排序 C. 冒泡排序 D. 归并排序 101956 年( )授予肖克利(William Shockley)、巴丁(John Bardeen)和 布拉顿(Walter Brattain),以表彰他们对半导体的研究和晶体管效应的发现。 A. 诺贝尔物理学奖 B. 约翰冯诺依曼奖 C. 图灵奖 D. 高德纳奖(Donald E. Knuth Prize) 二、二、不定项选择题(共不定项选择题(共 10题,每题题,每题 1.5分,共计分,共计 15分。每题有一个或多个正确选项。多分。每题有一个或多个正确选项。多 选或少选均不得分。)选或少选均不得分。) 1 如果根结点的深度记为 1, 则一棵恰有 2011 个叶子结点的二叉树的深度可能是 ( ) 。 A. 10 B. 11 C. 12 D. 2011 2在布尔逻辑中,逻辑“或”的性质有( )。 A. 交换律:PQ = QP B. 结合律:P(QR) = (PQ)R C. 幂等律:PP = P D. 有界律:P1 = 1 (1 表示逻辑真) 3一个正整数在十六进制下有 100 位,则它在二进制下可能有( )位。 A. 399 B. 400 C. 401 D. 404 4汇编语言( )。 A. 是一种与具体硬件无关的程序设计语言 B. 在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试 C. 可以直接访问寄存器、内存单元、I/O 端口 D. 随着高级语言的诞生,如今已完全被淘汰,不再使用 5现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由 4 个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为 700、600、300、 400。那么,“也”字的编码长度可能是( )。 A. 1 B. 2 C. 3 D. 4 CCF NOIP2011 初赛 提高组 C 3 6 生物特征识别, 是利用人体本身的生物特征进行身份认证的一种技术。 目前, 指纹识别、 虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。以下属于生物特征 识别技术及其应用的是( )。 A. 指静脉验证 B. 步态验证 C. ATM 机密码验证 D. 声音验证 7对于序列“7、5、1、9、3、6、8、4”,在不改变顺序的情况下,去掉( )会使逆 序对的个数减少 3。 A. 7 B. 5 C. 3 D. 6 8. 计算机中的数值信息分为整数和实数 (浮点数) 。 实数之所以能表示很大或者很小的数, 是由于使用了( )。 A. 阶码 B. 补码 C. 反码 D. 较长的尾数 9对右图使用 Dijkstra 算法计算 S 点到其余各点的最短路径 长度时,到 B 点的距离 dB初始时赋为 8,在算法的执行过程 中还会出现的值有( )。 A. 3 B. 7 C. 6 D. 5 10. 为计算机网络中进行数据交换而建立的规则、标准或约定的集合成为网络协议。下列 英文缩写中,( )是网络协议。 A. HTTP B. TCP/IP C. FTP D. WWW 三、三、问题求解(共问题求解(共 2 题,每题,每题题 5 分,共计分,共计 10 分)分) 1平面图是可以画在在平面上,且它的边仅在顶点上才能相交的简单 无向图。4 个顶点的平面图至多有 6 条边,如右图所示。那么,5 个顶 点的平面图至多有_条边。 2定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串 “BCA“,可以将 A 移到 B 之前,变成字符串“ABC“。如果要将字符串“DACHEBGIF“变成 “ABCDEFGHI“,最少需要_次操作。 四、四、阅读程序写结果(共阅读程序写结果(共 4 题,每题题,每题 8 分,共计分,共计 32 分)分) CCF NOIP2011 初赛 提高组 C 4 1 #include #include #define SIZE 100 int main() int n, i, sum, x, aSIZE; scanf(“%d“, memset(a, 0, sizeof(a); for (i = 1; i int n; void f2(int x, int y); CCF NOIP2011 初赛 提高组 C 5 void f1(int x, int y) if (x #define V 100 int n, m, ans, eVV, visitedV; void dfs(int x, int len) int i; visitedx = 1; if (len ans) ans = len; for (i = 1; i #include CCF NOIP2011 初赛 提高组 C 7 #define SIZE 10000 #define LENGTH 10 int n, m, aSIZELENGTH; int h(int u, int v) int ans, i; ans = 0; for (i = 1; i n) break; m+; ami = 1; for (j = i + 1; j #include #define SIZE 200 typedef struct node int len, numSIZE; hugeint; /其中 len 表示大整数的位数;num1表示个位、num2表示十位,以此类推 hugeint times(hugeint a, hugeint b) int i, j; hugeint ans; memset(ans.num, 0, sizeof(ans.num); for (i = 1; i 0) ans.len = a.len + b.len; else CCF NOIP2011 初赛 提高组 C 9 ans.len = a.len + b.len - 1; return ans; hugeint add(hugeint a, hugeint b) int i; hugeint ans; memset(ans.num, 0, sizeof(ans.num); if (a.len b.len) ans.len = a.len; else ans.len = b.len; for (i = 1; i 0) ans.len+; return ans; hugeint average(hugeint a, hugeint b) int i; hugeint ans; ans = add(a, b); for (i = ans.len; i = 2; i-) ans.numi - 1 += ( ) * 10; ans.numi /= 2; ans.num1 /= 2; if (ans.numans.len = 0) ans.len-; return ans; CCF NOIP2011 初赛 提高组 C 10 hugeint plustwo(hugeint a) int i; hugeint ans; ans = a; ans.num1 += 2; i = 1; while (i = 10) ans.numi + 1 += ans.numi / 10; ans.numi %= 10; i+; if (ans.numans.len + 1 0) ; return ans; int over(hugeint a, hugeint b) int i; if ( ) return 0; if (a.len b.len) return 1; for (i = a.len; i = 1; i-) if (a.numi b.numi) return 1; return 0; int main() CCF NOIP2011 初赛 提高组 C 11 char sSIZE; int i; hugeint target, left, middle, right; scanf(“%s“, s); memset(target.num, 0, sizeof(target.num); target.len = strlen(s); for (i = 1; i = 1; i-) printf(“%d“, left.numi); printf(“n“); return 0; 2(笛卡尔树笛卡尔树)对于一个给定的两两不等的正整数序列,笛卡尔树是这样的一棵二叉树: 首先,它是一个最小堆,即除了根结点外,每个结点的权值都大于父节点的权值;其次,它 的中序遍历恰好就是给定的序列。例如,对于序列 7、2、12、1、10、5、15、3,下图
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号