NOIP2011提高组初赛试题及答案C++版

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

NOIP2011初赛提高组C++1第十七届全国青少年信息学奥林匹克联赛初赛试题(提高组C++语言两小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确选项。)1.在二进制下,1011001+()=1100110。A.1011B.1101C.1010D.11112.字符“A”的ASCII码为十六进制41,则字符“Z”的ASCII码为十六进制的()。A.66B.5AC.50D.视具体的计算机而定3.右图是一棵二叉树,它的先序遍历是()。A.ABDEFCB.DBEFACC.DFEBCAD.ABCDEF4.寄存器是()的重要组成部分。A.硬盘B.高速缓存C.内存D.中央处理器(CPU)5.广度优先搜索时,需要用到的数据结构是()。A.链表B.队列C.栈D.散列表6.在使用高级语言编写程序时,一般提到的“空间复杂度”中的空间是指()。A.程序运行时理论上所占的内存空间B.程序运行时理论上所占的数组空间C.程序运行时理论上所占的硬盘空间D.程序源文件理论上所占的硬盘空间7.应用快速排序的分治思想,可以实现一个求第K大数的程序。假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为()。A.O(n2)B.O(nlogn)C.O(n)D.O(1)8.为解决web应用中的不兼容问题,保障信息的顺利流通,()制定了一系列标准,涉及HTML、XML、CSS等,并建议开发者遵循。A.微软B.美国计算机协会(ACM)C.联合国教科文组织D.万维网联盟(W3C)9.体育课的铃声响了,同学们都陆续的奔向操场,按老师的要求从高到低站成一排。每个同学按顺序来到操场时,都从排尾走到排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于()算法。A.快速排序B.插入排序C.冒泡排序D.归并排序10.1956年()授予肖克利(WilliamShockley)、巴丁(JohnBardeen)和布拉顿(WalterBrattain)A.诺贝尔物理学奖B.约翰·冯·诺依曼奖C.图灵奖D.高德纳奖(DonaldE.KnuthPrize)NOIP2011初赛提高组C++2二、不定项选择题(共10题,每题1.5分,共计15分。每题正确答案的个数不少于1。多选或少选均不得分)。1.如果根结点的深度记为1,则一棵恰有2011个叶子结点的二叉树的深度可能是()。A.10B.11C.12D.20112.在布尔逻辑中,逻辑“或”的性质有()。A.交换律:PVQ=QVPB.结合律:PV(QVR)=(PVQ)VRC.幂等律:PVP=PD.有界律:PV1=1(1表示逻辑真)3.一个正整数在十六进制下有100位,则它在二进制下可能有()位。A.399B.400C.401D.4044.汇编语言()。A.是一种与具体硬件无关的程序设计语言B.在编写复杂程序时,相对于高级语言而言代码量大,且不易调试C.可以直接访问寄存器、内存单元、I/O端口D.随着高级语言的诞生,如今已被完全淘汰,不再使用5.现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。那么,“也”字的编码长度可能是()。A.1B.2C.3D.46.生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。以下属于生物特征识别技术及其应用的是()。A.指静脉验证B.步态验证C.ATM机密码验证D.声音验证7.对于序列“7、5、1、9、3、6、8、4”,在不改变顺序的情况下,去掉()会使逆序对的个数减少3。A.7B.5C.3D.68.计算机中的数值信息分为整数和实数(浮点数)。实数之所以能够表示很大或者很小的数,是由于使用了()。A.阶码B.补码C.反码D.较长的尾数NOIP2011初赛提高组C++39.对右图使用Dijkstra算法计算S点到其余各点的最短路径长度时,到B点的距离d[B]初始时赋为8,在算法的执行过程中还会出现的值有()。A.3B.7C.6D.510.为计算机网络中进行数据交换而建立的规则、标准或约定的集合称为网络协议。下列英文缩写中,()是网络协议A.HTTPB.TCP/IPC.FTPD.三.问题求解(共2题,每空5分,共计10分)1.平面图可以在画在平面上,且它的边仅在顶点上才能相交的简单无向图。4个顶点的平面图至少有6条边,如右图所示。那么,5个顶点的平面图至少有条边。2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串“BCA”可以将A移到B之前,变字符串“ABC”。如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”最少需要________次操作。四.阅读程序写结果(共4题,每题8分,共计32分)1.#includeiostream#includecstringusingnamespacestd;constintSIZE=100;intmain(){intn,i,sum,x,a[SIZE];cinn;memset(a,0,sizeof(a));for(i=1;i=n;i++){cinx;a[x]++;}i=0;sum=0;while(sum(n/2+1)){i++;sum+=a[i];}coutiendl;NOIP2011初赛提高组C++4return0;}输入:1145664332321输出:2.#includeiostreamusingnamespacestd;intn;voidf2(intx,inty);voidf1(intx,inty){if(xn)f2(y,x+y);}voidf2(intx,inty){coutx'';f1(y,x+y);}intmain(){cinn;f1(0,1);return0;return0;}输入:30输出:_______________3.#includeiostreamusingnamespacestd;NOIP2011初赛提高组C++5constintV=100;intn,m,ans,e[V][V];boolvisited[V];voiddfs(intx,intlen){inti;visited[x]=true;if(lenans)ans=len;for(i=1;i=n;i++)if((!visited[i])&&(e[x][i]!=-1))dfs(i,len+e[x][i]);visited[x]=false;}intmain(){inti,j,a,b,c;cinnm;for(i=1;i=n;i++)for(j=1;j=m;j++)e[i][j]=-1;for(i=1;i=m;i++){cinabc;e[a][b]=c;e[b][a]=c;}for(i=1;i=n;i++)visited[i]=false;ans=0;for(i=1;i=n;i++)dfs(i,0);coutansendl;return0;}输入:46121023203430NOIP2011初赛提高组C++6414013502460输出:______________4.#includeiostream#includecstring#includestringusingnamespacestd;constintSIZE=10000;constintLENGTH=10;intn,m,a[SIZE][LENGTH];inth(intu,intv){intans,i;ans=0;for(i=1;i=n;i++)if(a[u][i]!=a[v][i])ans++;returnans;}intmain(){intsum,i,j;cinn;memset(a,0,sizeof(a));m=1;while(1){i=1;while((i=n)&&(a[m][i]==1))i++;if(in)break;m++;a[m][i]=1;for(j=i+1;j=n;j++)a[m][j]=a[m-1][j];}NOIP2011初赛提高组C++7sum=0;for(i=1;i=m;i++)for(j=1;j=m;j++)sum+=h(i,j);coutsumendl;return0;}输入:7输出:_________五.完善程序(第1题,每空2分,第2题,每空3分,共28分)1.(大整数开方)输入一个正整数n(1≤n≤10100),试用二分法计算它的平方根的整数部分。#includeiostream#includestringusingnamespacestd;constintSIZE=200;structhugeint{intlen,num[SIZE];};//其中len表示大整数的位数;num[1]表示个位,num[2]表示十位,以此类推hugeinttimes(hugeinta,hugeintb)//计算大整数a和b的乘积{inti,j;hugeintans;memset(ans.num,0,sizeof(ans.num));for(i=1;i=a.len;i++)for(j=1;j=b.len;j++)①+=a.num[i]*b.num[j];for(i=1;i=a.len+b.len;i++){ans.num[i+1]+=ans.num[i]/10;②;}if(ans.num[a.len+b.len]0)ans.len=a.len+b.len;elseans.len=a.len+b.len-1;returnans;}NOIP2011初赛提高组C++8hugeintadd(hugeinta,hugeintb)//计算大整数a和b的和{inti;hugeintans;memset(ans.num,0,sizeof(ans.num));if(a.lenb.len)ans.len=a.len;elseans.len=b.len;for(i=1;i=ans.len;i++){ans.num[i]+=③;ans.num[i+1]+=ans.num[i]/10;ans.num[i]%=10;}if(ans.num[ans.len+1]0)ans.len++;returnans;}hugeintaverage(hugeinta,hugeintb)//计算大整数a和b的平均数的整数部分{inti;hugeintans;ans=add(a,b);for(i=ans.len;i=2;i--){ans.num[i-1]+=(④)*10;ans.num[i]/=2;}ans.num[1]/=2;if(ans.num[ans.len]==0)ans.len--;returnans;}hugeintplustwo(hugeinta)//计算大整数a加2之后的结果{inti;hugeintans;ans=a;NOIP2011初赛提高组C++9ans.num[1]+=2;i=1;while((i=ans.len)&&(ans.num[i]=10)){ans.num[i+1]+=ans.num[i]/10;ans.num[i]%=10;i++;}if(ans.num[ans.len+1]0)⑤;returnans;}boolover(hugeinta,hugeintb)//若大整数ab则返回true,否则返回false{inti;if(⑥)returnfalse;if(a.lenb.len)returntrue;for(i=a.len;i=1;i--){if(a.num[i]b.num[i])returnfalse;if(a.num[i]b.num[i])returntrue;}returnfalse;}intmain(

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功