您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > 2016年NOIP提高组初赛(C++)
第二十二届全国青少年信息学奥林匹克联赛初赛提高组C++语言试题(2小时)选手注意:●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项)1.以下不是微软公司出品的软件是()。A.PowerpointB.WordC.ExcelD.AcrobatReader2.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S和字母键D的顺序来回按键,即CapsLock、A、S、D、S、A、CapsLock、A、S、D、S、A、CapsLock、A、S、D、S、A、……,屏幕上输出的第81个字符是字母()。A.AB.SC.DD.A3.二进制数00101100和01010101异或的结果是()。A.00101000B.01111001C.01000100D.001110004.与二进制小数0.1相等的八进进制数是()。A.0.8B.0.4C.0.2D.0.15.以比较作为基本运算,在N个数中找最小数的最少运算次数为()。A.NB.N-1C.N2D.logN6.表达式a*(b+c)-d的后缀表达形式为()。A.abcd*+-B.abc+*d-C.abc*+d-D.-+*abcd7.一棵二叉树如右图所示,若采用二叉树链表存储该二叉树(各个结点包括结点的数据、左孩子指针、右孩子指针)。如果没有左孩子或者右孩子,则对应的为空指针。那么该链表中空指针的数目为()。A.6B.7C.12D.148.G是一个非连通简单无向图,共有28条边,则该图至少有()个顶点。A.10B.9C.8D.79.某计算机的CPU和内存之间的地址总线宽度是32位(bit),这台计算机最多可以使用()的内存。A.2GBB.4GBC.8GBD.16GB10.有以下程序:#includeiostreamusingnamespacestd;intmain(){intk=4,n=0;while(nk){n++;if(n%3!=0)continue;k--;}coutk,nendl;return0;}程序运行后的输出结果是()。A.2,2B.2,3C.3,2D.3,311.有7个一模一样的苹果,放到3个一样的盘子中,一共有()种放法。A.7B.8C.21D.3712.Lucia和她的朋友以及朋友的朋友都在某社交网站上注册了账号。下图是他们之间的关系图,两个人之间有边相连代表这两个人是朋友,没有边相连代表不是朋友。这个社交网站的规则是:如果某人A向他(她)的朋友B分享了某张照片,那么B就可以对该照片进行评论;如果B评论了该照片,那么他(她)的所有朋友都可以看见这个评论以及被评论的照片,但是不能对该照片进行评论(除非A也向他(她)分享了该照片)。现在Lucia已经上传了一张照片,但是她不想让Jacob看见这张照片,那么她可以向以下朋友()分享该照片。A.Dana,Michael,EveB.Dana,Eve,MonicaC.Michael,Eve,JacobD.Micheal,Peter,Monica13.周末小明和爸爸妈妈三个人一起想动手做三道菜。小明负责洗菜、爸爸负责切菜、妈妈负责炒菜。假设做每道菜的顺序都是:先洗菜10分钟,然后切菜10分钟,最后炒菜10分钟。那么做一道菜需要30分钟。注意:两道不同的菜的相同步骤不可以同时进行。例如第一道菜和第二道的菜不能同时洗,也不能同时切。那么做完三道菜的最短时间需要()分钟。A.90B.60C.50D.4014.假设某算法的计算时间表示为递推关系式T(n)=2T(4n)+nT(1)=1则算法的时间复杂度为()。A.O(n)B.O(n)C.O(nlogn)D.O(n2)1.给定含有n个不同的数的数组L=X1,X2,...,Xn。如果L中存在Xi(1in)使得X1X2...Xi-1Xixi+1...Xn,则称L是单峰的,并称xi是L的“峰顶”。现在已知L是单峰的,请把a-c三行代码补全到算法中使得算法正确找到L的峰顶。a.Search(k+1,n)b.Search(1,k-1)c.returnL[k]Search(1,n)1.k←[n/2]2.ifL[k]L[k-1]andL[k]L[k+1]3.then__________4.elseifL[k]L[k-1]andL[k]L[k+1]5.then__________6.else__________正确的填空顺序是()。A.c,a,bB.c,b,aC.a,b,cD.b,a,c二、不定项选择题(共5题,每题1.5分,共计7.5分;每题有一个或多个正确选项,多选或少选均不得分)1.以下属于无线通信技术的有()。A.蓝牙B.WiFiC.GPRSD.以太网2.可以将单个计算机接入到计算机网络中的网络接入通讯设备有()。A.网卡B.光驱C.鼠标D.显卡3.下列算法中运用分治思想的有()。A.快速排序B.归并排序C.冒泡排序D.计数排序4.下图表示一个果园灌溉系统,有A、B、C、D四个阀门,每个阀门可以打开或关上,所有管道粗细相同,以下设置阀门的方法中,可以让果树浇上水的有()。有水有水果树A.B打开,其他都关上B.AB都打开,CD都关上C.A打开,其他都关上D.D打开,其他都关上5.参加NOI比赛,以下能带入考场的有()。A.钢笔B.适量的衣服C.U盘D.铅笔三、问题求解(共2题,每题5分,共计10分;每题全部答对得5分,没有部分分)1.一个1×8的方格图形(不可旋转)用黑、白两种颜色填涂每个方格。如果每个方格只能填涂一种颜色,且不允许两个黑格相邻,共有_________种填涂方案。2.某中学在安排期末考试时发现,有7个学生要参加7门课程的考试,下表列出了哪些学生参加哪些考试(用√表示要参加相应的考试)。最少要安排_________个不同的考试时间段才能避免冲突?考试学生1学生2学生3学生4学生5学生6学生7通用技术√√√物理√√√化学√√生物√√√历史√√√地理√√√政治√√四、阅读程序写结果(共4题,每题8分,共计32分)1.#includeiostreamusingnamespacestd;intmain(){inta[6]={1,2,3,4,5,6};intpi=0;intpj=5;intt,i;while(pipj){t=a[pi];a[pi]=a[pj];a[pj]=t;pi++;pj--;}for(i=0;i6;i++)couta[i],;coutendl;return0;}输出:_________2.#includeiostreamusingnamespacestd;intmain(){chara[100][100],b[100][100];stringc[100];stringtmp;intn,i=0,j=0,k=0,total_len[100],length[100][3];cinn;getline(cin,tmp);for(i=0;in;i++){getline(cin,c[i]);total_len[i]=c[i].size();}for(i=0;in;i++){j=0;while(c[i][j]!=':'){a[i][k]=c[i][j];k=k+1;j++;}length[i][1]=k-1;a[i][k]=0;k=0;for(j=j+1;jtotal_len[i];j++){b[i][k]=c[i][j];k=k+1;}length[i][2]=k-1;b[i][k]=0;k=0;}for(i=0;in;i++){if(length[i][1]=length[i][2])coutNO,;else{k=0;for(j=0;jlength[i][2];j++){if(a[i][k]==b[i][j])k=k+1;if(klength[i][1])break;}if(j==length[i][2])coutNO,;elsecoutYES,;}}coutendl;return0;}输入:3AB:ACDEbFBkBDAR:ACDBrTSARS:SevereAtypicalRespiratorySyndrome输出:_________(注:输入各行前后均无空格)3.#includeiostreamusingnamespacestd;intlps(stringseq,inti,intj){intlen1,len2;if(i==j)return1;if(ij)return0;if(seq[i]==seq[j])returnlps(seq,i+1,j-1)+2;len1=lps(seq,i,j-1);len2=lps(seq,i+1,j);if(len1len2)returnlen1;returnlen2;}intmain(){stringseq=acmerandacm;intn=seq.size();coutlps(seq,0,n-1)endl;return0;}输出:_________4.#includeiostream#includecstringusingnamespacestd;intmap[100][100];intsum[100],weight[100];intvisit[100];intn;voiddfs(intnode){visit[node]=1;sum[node]=1;intv,maxw=0;for(v=1;v=n;v++){if(!map[node][v]||visit[v])continue;dfs(v);sum[node]+=sum[v];if(sum[v]maxw)maxw=sum[v];}if(n-sum[node]maxw)maxw=n-sum[node];weight[node]=maxw;}intmain(){memset(map,0,sizeof(map));memset(sum,0,sizeof(sum));memset(weight,0,sizeof(weight));memset(visit,0,sizeof(visit));cinn;inti,x,y;for(i=1;in;i++){cinxy;map[x][y]=1;map[y][x]=1;}dfs(1);intans=n,ansN=0;for(i=1;i=n;i++)if(weight[i]ans){ans=weight[i];ansN=i;}coutansNansendl;return0;}输入:111213242526377871169910输出:_________五、完善程序(共2题,每题14分,共计28分)1.(交朋友)根据社会学研究表明,人们都喜欢找和自己身高相近的人做朋友。现在有n名身高两两不相同的同学依次走入教室,调查人员想预测每个人在走入教室的瞬间最想和已经进入教室的哪个人做朋友。当有两名同学和这名同学的身高差一样时,这名同学会更想和高的那个人做朋友。比如一名身高为1.80米的同学进入教室时,有一名身高为1.79米的同学和一名身高为1.81米的同学在教室里,那么这名身高为1.80米的同学会更想和身高为1.81米的同学做朋友。对于第一个走入教室的同学我们不做预测。由于我们知道所有人的身高和走进教室的次序,所以我们可以采用离线的做法来解决这样的问题,我们用排序加链表的方式帮助每一个人找到在他之前进入教室的并且和他身高最相近的人。(第一空2分,其余3分)#includeiostreamusingnamespacestd;#defineMAXN200000#defineinfinity2147483647intanswer[MAXN],height[MAXN],previous[MAXN],next[MAXN];intrank[MAXN];intn;voidsort(i
本文标题:2016年NOIP提高组初赛(C++)
链接地址:https://www.777doc.com/doc-7028728 .html