ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:20.01KB ,
资源ID:6995438      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6995438.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第十七届全国青少年信息学奥林匹克联赛初赛试题.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第十七届全国青少年信息学奥林匹克联赛初赛试题.docx

1、第十七届全国青少年信息学奥林匹克联赛初赛试题 第十七届全国青少年信息学奥林匹克联赛初赛试题 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右图是

2、一棵二叉树,它的先序遍历是( )。 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大数的程序。

3、假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为( )。 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) CCF NOIP2011初赛 提高组 C 2 9. 体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方

4、法类似于( )算法 。 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

5、. 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现有一段文言文,

6、要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由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”,在不改变

7、顺序的情况下,去掉( )会使逆序对的个数减少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.

8、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

9、n, i, sum, x, aSIZE; scanf(%d, &n); memset(a, 0, sizeof(a); for (i = 1; i = n; i+) scanf(%d, &x); ax+; i = 0; sum = 0; while (sum (n / 2 + 1) i+; sum += ai; printf(%dn, i); return 0; 输入: 11 4 5 6 6 4 3 3 2 3 2 1 输出:_ 2 #include int n; void f2(int x, int y); CCF NOIP2011初赛 提高组 C 5 void f1(int x, int

10、y) if (x n) f2(y, x + y); void f2(int x, int y) printf(%d , x); f1(y, x + y); int main() scanf(%d, &n); f1(0, 1); return 0; 输入:30 输出:_ 3. #include #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 = n; i+) if (visitedi = 0

11、) & (exi != -1) dfs(i, len + exi); CCF NOIP2011初赛 提高组 C 6 visitedx = 0; int main() int i, j, a, b, c; scanf(%d%d, &n, &m); for (i = 1; i = n; i+) for (j = 1; j = n; j+) eij = -1; for (i = 1; i = m; i+) scanf(%d%d%d, &a, &b, &c); eab = c; eba = c; for (i = 1; i = n; i+) visitedi = 0; ans = 0; for (i

12、= 1; i = n; i+) dfs(i, 0); printf(%dn, ans); return 0; 输入: 4 6 1 2 10 2 3 20 3 4 30 4 1 40 1 3 50 2 4 60 输出:_ 4 #include #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; i+) if (aui != avi) ans+; r

13、eturn ans; int main() int sum, i, j; scanf(%d, &n); memset(a, 0, sizeof(a); m = 1; while (1) i = 1; while (i n) break; m+; ami = 1; for (j = i + 1; j = n; j+) amj = am - 1j; sum = 0; for (i = 1; i = m; i+) for (j = 1; j = m; j+) CCF NOIP2011初赛 提高组 C 8 sum += h(i, j); printf(%dn, sum); return 0; 输入:7

14、 输出:_ 五、完善程序(第1题,每空2分,第2题,每空3分,共计28分)1(大整数开方)输入一个正整数n(1n10100),试用二分法计算它的平方根的整数部分。 #include #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

15、 (i = 1; i = a.len; i+) for (j = 1; j = b.len; j+) += a.numi * b.numj; 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

16、.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 hug

17、eint 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

18、 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(笛卡尔树)对于一个给定的两两不等的正整数序列,笛卡尔树是这样的

19、一棵二叉树:首先,它是一个最小堆,即除了根结点外,每个结点的权值都大于父节点的权值;其次,它的中序遍历恰好就是给定的序列。例如,对于序列7、2、12、1、10、5、15、3,下图就是一棵对应的笛卡尔树。现输入序列的规模n(1n100)和序列的n个元素,试求其对应的笛卡尔树的深度d(根节点深度为1),以及有多少个叶节点的深度为d。 #include #define SIZE 105 #define INFINITY 1000000 int n, aSIZE, maxDeep, num; CCF NOIP2011初赛 提高组 C 12 void solve(int left, int right,

20、 int deep) int i, j, min; if (deep maxDeep) maxDeep = deep; num = 1; else if (deep = maxDeep) ; min = INFINITY; for (i = left; i ai) min = ai; ; if (left j) ; if (j right) ; int main() int i; scanf(%d, &n); for (i = 1; i = n; i+) scanf(%d, &ai); maxDeep = 0; solve(1, n, 1); printf(%d %dn, maxDeep, num); return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1