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

上传人:daj****de2 文档编号:131468707 上传时间:2022-08-06 格式:DOCX 页数:12 大小:20.89KB
收藏 版权申诉 举报 下载
第十六届全国青少年信息学奥林匹克联赛初赛试题_第1页
第1页 / 共12页
第十六届全国青少年信息学奥林匹克联赛初赛试题_第2页
第2页 / 共12页
第十六届全国青少年信息学奥林匹克联赛初赛试题_第3页
第3页 / 共12页
资源描述:

《第十六届全国青少年信息学奥林匹克联赛初赛试题》由会员分享,可在线阅读,更多相关《第十六届全国青少年信息学奥林匹克联赛初赛试题(12页珍藏版)》请在装配图网上搜索。

1、第十六届全国青少年信息学奥林匹克联赛初赛试题(提高组C语言二小时完成) 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效一. 单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确选项。)1.与16进制数A1.2等值的10进制数是()C.161.125D.177.25A. 101.2B.111.42.一个字节(byte)由(A.8B.16)个二进制位组成。C.32D.以上都有可能3. 一下逻辑表达式的值恒为真的是(A. PV(iPAQ)V(iPAqQ)C. PVQV(PAqQ)V(iPAQ))B. QV(nPAQ)V(PVnQ)D.PV1QV(PA1Q)V(1P AnQ)4.

2、Linux下可执行文件的默认扩展名为(C.dllD.都不是A.exe B.com5.如果在某个进制下等式A.100B.1447*7=41 成立,C.164那么在该进制下等式12*12=()也成立。D.1966.提出“存储程序”的计算机工作原理的是A.克劳德香农B.戈登摩尔()。C.查尔斯巴比奇D.冯诺依曼7.前缀表达式“+3*2+5 12”的值是(A.23B.25C.37D.658. 主存储器的存取速度比中央处理器(CPU )的工作速度慢很多,从而使得后者的效率受到 影响。而根据局部性原理,CPU所访问的存储单元通常都趋于聚集在一个较小的连续区域 中。于是,为了提高系统整体的执行效率,在CPU

3、中引入了( )A.寄存器B.高速缓存C.闪存D.外存9. 完全二叉树的顺序存储方案,是指将完全二叉树的结点从上至下、从左至右一次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置,则第K号结点的父结点如果存 在的话,应当存放在数组的()号位置。A.2k B.2k+1C.k/2 下取整 D.(k+1)/2 下取整10. 一下竞赛活动中历史最悠久的是()A.全国青少年信息学奥林匹克联赛(NOIP)B. 全国青少年信息学奥林匹克竞赛(NOI)C. 国际信息学奥林匹克竞赛(IOI)D. 亚太地区信息学奥林匹克竞赛(APIO)二. 不定项选择题(共10题,每题1.5分,共计15分。每题有一个或多

4、个正确选项。多选 或少选均不得分。)1. 元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。如果第一个出栈的是R3,那么第五个出栈的可能是()。A.R1 B.R2 C.R4 D.R52. Pascal语言、C语言、和C+语言都属于()A. 高级语言日.自然语言C.解释型语言D.编译性语言3. 原地排序是指在排序过程中(除了存储待排序元素以外的)付诸空间的大小与数据规模无关的排序算法。一下属于原地排序的有()A. 冒泡排序日.插入排序C.基数排序D.选择排序4. 在整数的补码表示法中,以下说法正确的是()A. 只有负整数的编码最高为1B. 在编码的位数确定后,所能表示的最

5、小整数和最大整数的绝对值相同C. 整数0只有唯一的一个编码D. 两个用补码表示的数相加时,如果在最高位产生进位,则表示运算溢出5. 一颗二叉树的前序遍历序列是ABCDEFG,后序遍历序列是CBFEGDA,则根结点的左子树的结点个数可能是()A.0B.2C.4D.66. 在下列HTML语句中,可以正确产生一个指向NOI官方网站的超链接的是()A. 欢迎访问 NOI 网站B. 欢迎访问 NOI 网站C. D. 欢迎访问 NOI 网站7. 关于拓扑排序,下面说法正确的是()A. 所有连通的有向图都可以实现拓扑排序B. 对同一个图而言,拓扑排序的结果是唯一的C. 拓扑排序中入度为0的结点总会排在入度大

6、于0的结点的前面D. 拓扑排序结果序列中的第一个结点一定是入度为0的结点8.一个平面的法线是指与该平面垂直的直线。过点(1,1,1 )、(0,3,0)、(2,0,0)的平面 的法线是()A. 过点(1,1,1 )、(2,3,3)的直线B. 过点(1,1,1 )、(3,2,1)的直线C. 过点(0,3,0)、(-3,1,1)的直线D. 过点(2,0,0)、(5,2,1)的直线9. 双向链表中有两个指针域llink和rlink,分别指向该结点的前驱及后继。设p指向链表中的一个结点,它的左右结点均非空。现要求删除结点P,则下面语句序列中正确的是()A. p-rlink-llink = p-rlink

7、;p-llink-rlink = p-llink; free(p);B. P-llink-rlink = p-rlink;p-rlink-llnik = p-llink; free(p);C. p-rlink-llink = p-llink;p-rlink-llink-rlink = p-rlink; free(p);D. p-llink-rlink = p-rlink;p-llink-rlink-llink = p-llink; free(p);10. 今年(2010)发生的事件有()A. 惠普实验室研究员Vinay Deolalikar自称证明了 PMNPB. 英特尔公司收购计算机安全软件

8、公司迈克菲(McAfee)C. 苹果公司发布iPhone 4手机D. 微软公司发布Windows 7操作系统三、问题求解1. LZW编码是一种自适应词典编码。在编码的过程中,开始时只有一部基础构造元素的编 码词典,如果在编码的过程中遇到一个新的词条,则该词条及一个新的编码会被追加到词典 中,并用于后继信息的编码。举例说明,考虑一个待编码的信息串:“xyx yy yy xyx”。初始词典只有3个条目, 第一个为x,编码为1;第二个为y,编码为2;第三个为空格,编码为3;于是串“xyx”的 编码为1-2-1(其中-为编码分隔符),加上后面的一个空格就是1-2-1-3o但由于有了一个 空格,我们就知

9、道前面的“xyx”是一个单词,而由于该单词没有在词典中,我们就可以自 适应的把这个词条添加到词典里,编码为4,然后按照新的词典对后继信息进行编码,以此 类推。于是,最后得到编码:1-2-1-3-2-2-3-5-3-4。我们可以看到,信息被压缩了。压缩好的信息传递到接受方,接收方也只要根据基础 词典就可以完成对该序列的完全恢复。解码过程是编码过程的逆操作。现在已知初始词典的 3个条目如上述,接收端收到的编码信息为2-2-1-2-3-1-1-3-4-3-1-2-1-3-5-3-6,则解码 后的信息串是”。2. 无向图G有7个顶点,若不存在奇数条边构成的简单回路,则它至多有 条边。3. 记T为一队列

10、初始为空现有n个总和不超过32的正整数依次入队如果无论这些数具 体为何值 都能找到一种出队的方式 使得存在某个时刻队列T中的数之和恰好为9那么n 的最小值是。四. 阅读程序写结果(共4题,每题7分,共计28分)#include #define SIZE 10int main() int dataSIZE, i, j, cnt, n, m;scanf(%d %dn, &n, &m);for(i = 1; i = n; i+)scanf(%d, &datai);for(i = 1; i = n; i+) cnt = 0;for(j = 1; j= n; j+)if (datai dataj) |

11、(dataj = datai & j i)cnt+;if(cnt = m),return 0;输入:5296 -8 0 16 87输出:2.#include #define SIZE 100int main()int na, nb, aSIZE, bSIZE, i, j, k;scanf(%dn, &na);for (i = 1; i = na; i+)scanf(%d, &ai);scanf(%dn, &nb);for (i = 1; i = nb; i+) scanf(%d, &bi);i=1;J=1;while (i = na) & (j = nb) if (ai = bj) print

12、f(%d ”, ai);i+;else printf(%d ”, bj);j+;if (i = na)for (k = i; k= na; k+) printf(%d ”, ak);if (j = nb)for (k = j; k= nb; k+) printf (%d , bk);getch();return 0;输入:1 35 7 92 6 10 14输出:3.#include#define NUM 5int r(int n)int i;if(n = NUM)return n;for(i =1;i = NUM;i+)if(r(n - i)0)return i;return -1;int m

13、ain()int n;scanf(%d”,&n);printf(%dn”,r(n);return 0;输入:16输出:#include#include#define SIZE 100int n,m,mapSIZESIZE,rSIZE,find;int successful()int i;for( i =1;i right)if(successful() = 1) for(i = 1;i = n;i +) printf(%d,ri);find = 1;return;for(i = left;i = right;i+) swap(r + left,r + i); perm(left + 1,rig

14、ht); swap(r + left,r + i);int main()int x,y,i;scanf(%d %d”,&n,&m); memset(map,0,sizeof(map);for(i = 1;i = m;i +) scanf(%d %d”,&x,&y); mapxy = 1;for(i = 1;i = n;i +) ri = i;find = 0;perm(1, n);if(find = 0)printf(No solution!n);return 0;输入:9 121 22 33 44 55 66 12 73 84 85 96 9输出:五、完善程序(第1空2分,其余10空,每空2

15、.5分,共计27分)1. (过河问题)在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥 走到河的左岸.在伸手不见五指的黑夜里,过桥时必须借照灯光来照明,不幸的是,他们只有 一盏灯.另外,独木桥上最多能承受两个人同时经过,否则将会坍塌.每个人单独过独木桥都 需要一定的时间,不同的人要的时间可能不同.两个人一起过独木桥时,由于只有一盏灯,所 以需要的时间是较慢的那个人单独过桥所花费的时间.现在输入N(2=N1000)和这N个人单 独过桥需要的时间,请计算总共最少需要多少时间,他们才能全部到达河左岸.例如,有3个人甲乙丙,他们单独过桥的时间分别为12 4,则总共最少需要的时间 为7.

16、具体方法是:甲乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回,然后甲,丙在 一起过桥到河的左岸,总时间为2+1+4=7.#include #include #define SIZE 100#define INFINITY 10000#define LEFT 1#define RIGHT 0#define LEFT_TO_RIGHT 1#define RIGHT_TO_LEFT 0int n,timeSIZE,posSIZE;int max(int a,int b) if(ab)return a;elsereturn b;int go(int stage)int i,j,num,tmp,ans

17、;if(stage = RIGHT_TO_LEFT)num = 0;ans = 0;for(i = 1;i ans)ans=timei;if() return ans;ans = INFINITY;for(i = 1;i = n-1; i +)if(posi = RIGHT)for(j = i+1;j = n;j+)if(posj = RIGHT)posi = LEFT;posj = LEFT;tmp=max(timei,timej)+if(tmp ans)ans = tmp;posi=RIGHT;posj=RIGHT;return ans;if(stage = LEFT_TO_RIGHT)a

18、ns = INFINITY;for(i = 1;i = n ;i+)if()posi = RIGHT;tmp = timei+;if(tmp ans)ans = tmp;return ans;return 0;int main()int i;scanf(%d”,&n);for(i = 1;i = n;i +)scanf(%d”,&timei);posi = RIGHT;printf(%dn”,go(RIGHT_TO_LEFT);return 0;2. (烽火传 递)烽火台又称烽燧,是重要的防御设施,一般建在险 要处或交通要道上。一 旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以

19、火光传递军情。在某 两座城市之间有n个烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确的传递, 在m个烽火台中至少要有一个发出信号。现输入n、m和每个烽火台发出的信号的代价, 请计算总共最少需要话费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确的 传递。例如:有5个烽火台,它们发出信号的代价依次为1、2、5、6、2,且m为3,则总共 最少花费的代价为4,即由第2个和第5个烽火台发出信号。#include #include #define SIZE 100intn,m,r,valueSIZE,heapSIZE,posSIZE,homeSIZE,optSIZE;/heapi表示用

20、顺序存储的堆heap中第i个元素的值/posi表示 opti在堆 heap 中的位置。即 heapposi=opti/homei表示 heapi在序列 opt 中的位置,即 opthomei = heapivoid swap(int i,int j)交换堆的第i个元素和第j元素int tmp;poshomei = j;poshomej = i;tmp = heapi;heapi = heapj;heapj = tmp;tmp = homei;homei = homej;homej = tmp;void add(int k)在堆中插入optkint i;r+;heapr=;posk = r;i=

21、r;while(i 1)&(heapi 1) & (heapiheapi/2) swap(i,i/2);i /= 2;while(i + i = r)if(i + i + 1 =r) & (heapi + i +1 heapj) ;i = j;elsebreak;int main(void)int i;scanf(%d %d”,&n,&m);for(i = 1;i = n;i +) scanf(%d”,&valuei);r = 0;for(i = 1;i = m;i +) opti = valuei; add(i);for(i = m+1;i = n;i+)opti=remove();add(i);printf(%dn,heap1);system(pause);return 0;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!