《第十五届全国青少年高三信息技术奥林匹克联赛NOIP2009提高组初赛C++(精品)全国通用.doc》由会员分享,可在线阅读,更多相关《第十五届全国青少年高三信息技术奥林匹克联赛NOIP2009提高组初赛C++(精品)全国通用.doc(9页珍藏版)》请在金锄头文库上搜索。
1、第十五届全国青少年信息学奥林匹克联赛初赛试题( 提高组 C语言 二小时完成 ) 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 一 单项选择题 (共10题,每题1.5分,共计15分。每题有且仅有一个正确答案。)1、关于图灵机下面的说法哪个是正确的:A) 图灵机是世界上最早的电子计算机。B) 由于大量使用磁带操作,图灵机运行速度很慢。C) 图灵机只是一个理论上的计算模型。D) 图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。2、关于BIOS下面的说法哪个是正确的:A) BIOS是计算机基本输入输出系统软件的简称。B) BIOS里包含了键盘、鼠标、声卡、图形界面显器等常用输
2、入输出设备的驱动程序。C) BIOS一般由操作系统厂商来开发完成。D) BIOS能提供各种文件拷贝、复制、删除以及目录维护等文件管理功能。3、已知大写字母A的ASCII编码为65(十进制),则大写字母J的 十六进制 ASCII编码为:A) 48 B) 49 C) 50 D) 以上都不是4、在字长为16位的系统环境下,一个16位带符号整数的二进制补码为1111111111101101。其对应的十进制整数应该是:A) 19 B) -19 C) 18 D) -185、一个包含n个分支结点(非叶结点)的非空满k叉树,k=1,它的叶结点数目为:A) nk + 1 B) nk-1 C) (k+1)n-1
3、D. (k-1)n+1 6. 表达式a*(b+c)-d的后缀表达式是:A) abcd*+- B) abc+*d- C) abc*+d- D) -+*abcd7、最优前缀编码,也称Huffman编码。这种编码组合的特点是对于较频繁使用的元素给与较短的唯一编码,以提高通讯的效率。下面编码组合哪一组不是合法的前缀编码。A)(00,01,10,11) B)(0,1,00,11) C)(0,10,110,111) D)(1,01,000,001)8、快速排序平均情况和最坏情况下的算法时间复杂度分别为: A) 平均情况 O(nlog2n),最坏情况O(n2)B) 平均情况 O(n), 最坏情况O(n2)C
4、) 平均情况 O(n), 最坏情况O(nlog2n) D) 平均情况 O(log2n), 最坏情况O(n2)9、左图给出了一个加权无向图,从顶点V0开始用prim算法求最小生成树。则依次加入最小生成树的顶点集合的顶点序列为:A) V0, V1, V2, V3, V5, V4 B) V0, V1, V5, V4, V3, V3 C) V1, V2, V3, V0, V5, V4 D) V1, V2, V3, V0, V4, V510、全国信息学奥林匹克的官方网站为参与信息学竞赛的老师同学们提供相关的信息和资源,请问全国信息学奥林匹克官方网站的网址是:A) http:/ http:/www.noi
5、.org/C) http:/ http:/ 不定项选择题 (共10题,每题1.5分,共计15分。每题正确答案的个数不少于1。多选或少选均不得分)。1、关于CPU下面哪些说法是正确的:A) CPU全称为中央处理器(或中央处理单元)。B) CPU能直接运行机器语言。C) CPU最早是由Intel公司发明的。D) 同样主频下,32位的CPU比16位的CPU运行速度快一倍。2、关于计算机内存下面的说法哪些是正确的:A) 随机存储器(RAM)的意思是当程序运行时,每次具体分配给程序的内存位置是 随机而不确定的。B) 一般的个人计算机在同一时刻只能存/取一个特定的内存单元。C) 计算机内存严格说来包括主存
6、(memory)、高速缓存(cache)和寄存器(register) 三个部分。D) 1MB内存通常是指1024*1024字节大小的内存。3、关于操作系统下面说法哪些是正确的:A. 多任务操作系统专用于多核心或多个CPU架构的计算机系统的管理。B. 在操作系统的管理下,一个完整的程序在运行过程中可以被部分存放在内存中。C. 分时系统让多个用户可以共享一台主机的运算能力,为保证每个用户都得到及时的响应通常会采用时间片轮转调度的策略。D. 为了方便上层应用程序的开发,操作系统都是免费开源的。4、关于计算机网络,下面的说法哪些是正确的:A) 网络协议之所以有很多层主要是由于新技术需要兼容过去老的实现
7、方案。B) 新一代互联网使用的IPv6标准是IPv5标准的升级与补充。C) TCP/IP是互联网的基础协议簇,包含有TCP和IP等网络与传输层的通讯协议。D) 互联网上每一台入网主机通常都需要使用一个唯一的IP地址,否则就必须注册一个固定的域名来标明其地址。5、关于HTML下面哪些说法是正确的:A) HTML全称超文本标记语言,实现了文本、图形、声音乃至视频信息的统一编码。B) HTML不单包含有网页内容信息的描述,同时也包含对网页格式信息的定义。C) 网页上的超链接只能指向外部的网络资源,本网站网页间的联系通过设置标签来实现。D) 点击网页上的超链接从本质上就是按照该链接所隐含的统一资源定位
8、符(URL)请求网络资源或网络服务。6、若3个顶点的无权图G的邻接矩阵用数组存储为0,1,1,1,0,1,0,1,0,假定在具体存储中顶点依次为: v1,v2,v3。关于该图,下面的说法哪些是正确的:A)该图是有向图。B)该图是强连通的。C)该图所有顶点的入度之和减所有顶点的出度之和等于1。D)从v1开始的深度优先遍历所经过的顶点序列与广度优先的顶点序列是相同的。7、在带尾指针(链表指针clist指向尾结点)的非空循环单链表中每个结点都以next字段的指针指向下一个节点。假定其中已经有2个以上的结点。下面哪些说法是正确的:A)如果p指向一个待插入的新结点,在头部插入一个元素的语句序列为:p-n
9、ext = clist-next; clist-next = p;B)如果p指向一个待插入的新结点,在尾部插入一个元素的语句序列为: p-next = clist;clist-next = p;C)在头部删除一个结点的语句序列为: p = clist-next; clist-next = clist-next-next; free(p); D)在尾部删除一个结点的语句序列为。p = clist; clist = clist -next; free(p); 8、散列表的地址区间为0-10,散列函数为H(K)=K mod 11。采用开地址法的线性探查法处理冲突,并将关键字序列26,25,72,38
10、,8,18,59存储到散列表中,这些元素存入散列表的顺序并不确定。假定之前散列表为空,则元素59存放在散列表中的可能地址有:A) 5 B) 7 C) 9 D) 109、排序算法是稳定的意思是关键码相同的记录排序前后相对位置不发生改变,下列哪些排序算法是稳定的:A) 插入排序 B) 基数排序 C) 归并排序 D) 冒泡排序10、在参加NOI系列竞赛过程中,下面哪些行为是被严格禁止的:A) 携带书写工具,手表和不具有通讯功能的电子词典进入赛场。B) 在联机测试中通过手工计算出可能的答案并在程序里直接输出答案来获取分数。C) 通过互联网搜索取得解题思路。D) 在提交的程序中启动多个进程以提高程序的执
11、行效率。三问题求解(共2题,每空5分,共计10分)1拓扑排序是指将有向无环图G中的所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若 E(G),则u在线性序列中出现在v之前,这样的线性序列成为拓扑序列。如下的有向无环图,对其顶点作拓扑排序,则所有可能的拓扑序列的个数为 。3215476892某个国家的钱币面值有1, 7, 72, 73共计四种,如果要用现金付清10015元的货物,假设买卖双方各种钱币的数量无限且允许找零,那么交易过程中至少需要流通 张钱币。四阅读程序写结果(共4题,每题8分,共计32分)1#include int a,b;int work(int a,int b)if (
12、a%b)return work(b,a%b);return b;int main()scanf(%d%d,&a,&b);printf(%dn,work(a,b);return 0;输入:123 321输出:_2#include int main()int a4,b4;int i,j,tmp;for (i=0;i4;i+)scanf(%d,&bi);for (i=0;i4;i+)ai=0;for (j=0;j=i;j+)ai+=bj;bai%4+=aj;tmp=1;for (i=0;i4;i+)ai%=10;bi%=10;tmp*=ai+bi;printf(%dn,tmp);return 0;输
13、入:2 3 5 7 输出:_3#include#define maxn 50const int y=2009;int main()int n,cmaxnmaxn,i,j,s=0;scanf(%d,&n);c00=1;for(i=1;i=n;i+)ci0=1;for(j=1;ji;j+)cij=ci-1j-1+ci-1j;cii=1;for(i=0;i=n;i+)s=(s+cni)%y;printf(%dn,s);return 0;输入:17输出: 4#include int main()int n,m,i,j,p,k;int a100,b100;scanf(%d%d,&n,&m);a0=n;i=0;p=0;k=0;dofor (j=0;ji;j+)if (ai=aj)p=1;k=j;break;if (p)break;bi=ai/m;ai+1=ai%m*10;i+;while (a