您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > NOIP2012普及组初赛及答案(C++)
第十八届全国青少年信息学奥林匹克联赛初赛(普及组C++语言试题)竞赛时间:2012年10月13日14:30~16:30选手注意:试题纸共有10页,答题纸共有2页,满分100分。请在答题纸上作答,写在试题纸上一律无效。不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1.计算机如果缺少(),将无法正常启动。A.内存B.鼠标C.U盘D.摄像头2.()是一种先进先出的线性表。A.栈B.队列C.哈希表(散列表)D.二叉树3.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。A.硅B.铜C.锗D.铝4.十六进制数9A在()进制下是232。A.四B.八C.十D.十二5.()不属于操作系统。A.WindowsB.DOSC.PhotoshopD.NOILinux6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。A.ABCB.CBAC.ACBD.BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。A.显示器B.CPUC.内存D.鼠标8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列5,4,3,2,1需要执行()次操作,才能完成冒泡排序。A.0B.5C.10D.159.1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。A.电子管B.晶体管C.集成电路D.超大规模集成电路10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。A.中国公司的经理与波兰公司的经理交互商业文件B.军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈D.体育比赛中,每一级比赛的优胜者晋级上一级比赛11.矢量图(VectorImage)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它()。A.记录了大量像素块的色彩值来表示图像B.用点、直线或者多边形等基于数学方程的几何图元来表示图像C.每个像素点的颜色信息均用矢量表示D.把文件保存在互联网,采用在线浏览的方式查看图像12.如果一个栈初始时为空,且当前栈中的元素从栈顶到栈底依次为a,b,c,另有元素d已经出栈,则可能的入栈顺序是()。A.a,d,c,bB.b,a,c,dC.a,c,b,dD.d,a,b,c13.()是主要用于显示网页服务器或者文件系统的HTML文件的内容,并让用户与这些文件交互的一种软件。A.资源管理器B.浏览器C.电子邮件D.编译器14.()是目前互联网上常用的E-mail服务协议。A.HTTPB.FTPC.POP3D.Telnet15.()就是把一个复杂的问题分成两个或更多的相同类似的子问题,再把子问题分解成更小的子问题……直到最后的子问题可以简单地直接求解。而原问题的解就是子问题解的并。A.动态规划B.贪心C.分治D.搜索16.地址总线的位数决定了CPU可直接寻址的内存空间大小,例如地址总线为16位,其最大的可寻址空间为64KB。如果地址总线是32位,则理论上最大可寻址的内存空间为()。A.128KBB.1MBC.1GBD.4GB17.蓝牙和Wi-Fi都是()设备。A.无线广域网B.无线城域网C.无线局域网D.无线路由器18.在程序运行过程中,如果递归调用的层数过多,会因为()引发错误。A.系统分配的栈空间溢出B.系统分配的堆空间溢出C.系统分配的队列空间溢出D.系统分配的链表空间溢出19.原字符串中任意一段连续的字符所组成的新字符串称为子串。则字符“AAABBBCCC”共有()个不同的非空子串。A.3B.12C.36D.4520.仿生学的问世开辟了独特的科学技术发展道路。人们研究生物体的结构、功能和工作原理,并将这些原理移植于新兴的工程技术中。以下关于仿生学的叙述,错误的是()A.由研究蝙蝠,发明雷达B.由研究蜘蛛网,发明因特网C.由研究海豚,发明声纳D.由研究电鱼,发明伏特电池二、问题求解(共2题,每题5分,共计10分)1.如果平面上任取n个整点(横纵坐标都是整数),其中一定存在两个点,它们连线的中点也是整点,那么n至少是__________。2.在NOI期间,主办单位为了欢迎来自各国的选手,举行了盛大的晚宴。在第十八桌,有5名大陆选手和5名港澳选手共同进膳。为了增进交流,他们决定相隔就坐,即每个大陆选手左右旁都是港澳选手,每个港澳选手左右旁都是大陆选手。那么,这一桌一共有_______种不同的就坐方案。注:如果在两个方案中,每个选手左右相邻的选手相同,则视为同一种方案。三、阅读程序写结果。(共4题,每题8分,共计32分)1.#includeiostreamusingnamespacestd;inta,b,c,d,e,ans;intmain(){cinabc;d=a+b;e=b+c;ans=d+e;coutansendl;return0;}输入:125输出:______________2.#includeiostreamusingnamespacestd;intn,i,ans;intmain(){cinn;ans=0;for(i=1;i=n;i++)if(n%i==0)ans++;coutansendl;return0;}输入:18输出:_____________3.#includeiostreamusingnamespacestd;intn,i,j,a[100][100];intsolve(intx,inty){intu,v;if(x==n)returna[x][y];u=solve(x+1,y);v=solve(x+1,y+1);if(uv)returna[x][y]+u;elsereturna[x][y]+v;}intmain(){cinn;for(i=1;i=n;i++)for(j=1;j=i;j++)cina[i][j];coutsolve(1,1)endl;return0;}输入:52-142-1-2-164032-158输出:______________4.#includeiostream#includestringusingnamespacestd;intn,i,j,ans;strings;charget(inti){if(in)returns[i];elsereturns[i-n];}intmain(){cins;n=s.size();ans=0;for(i=1;i=n-1;i++){for(j=0;j=n-1;j++)if(get(i+j)get(ans+j)){ans=i;break;}elseif(get(i+j)get(ans+j))break;}for(j=0;j=n-1;j++)coutget(ans+j);coutendl;return0;}输入:CBBADADA输出:____________四、完善程序(前2空每空2分,后8空每空3分,共计28分)1.(坐标统计)输入n个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即x、y坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)。#includeiostreamusingnamespacestd;constintSIZE=100;intx[SIZE],y[SIZE],f[SIZE];intn,i,j,max_f,ans;intmain(){cinn;for(i=1;i=n;i++)cinx[i]y[i];max_f=0;for(i=1;i=n;i++){f[i]=①;for(j=1;j=n;j++){if(x[j]x[i]&&②)③;}if(④){max_f=f[i];⑤;}}for(i=1;i=n;i++)coutf[i]endl;coutansendl;return0;}2.(排列数)输入两个正整数n,m(1n20,1mn),在1~n中任取m个数,按字典序从小到大输出所有这样的排列。例如:输入:32输出:121321233132#includeiostream#includecstringusingnamespacestd;constintSIZE=25;boolused[SIZE];intdata[SIZE];intn,m,i,j,k;boolflag;intmain(){cinnm;memset(used,false,sizeof(used));for(i=1;i=m;i++){data[i]=i;used[i]=true;}flag=true;while(flag){for(i=1;i=m-1;i++)coutdata[i];coutdata[m]endl;flag=①;for(i=m;i=1;i--){②;for(j=data[i]+1;j=n;j++)if(!used[j]){used[j]=true;data[i]=③;flag=true;break;}if(flag){for(k=i+1;k=m;k++)for(j=1;j=④;j++)if(!used[j]){data[k]=j;used[j]=true;break;}⑤;}}}return0;}参考答案一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)12345678910ABABCCBCAA11121314151617181920BDBCCDCACB二、问题求解(共2题,每题5分,共计10分)1.52.2880三、阅读程序写结果。(共4题,每题8分,共计32分)10614ACBBADAD四、完善程序(前2空每空2分,后8空每空3分,共计28分)1、①0②y[j]y[i]③f[i]=f[i]+1;④(i1)&&(f[i]f[i-1])⑤ans=max_f2、①false②used[data[i]]=flase③j④n⑤break
本文标题:NOIP2012普及组初赛及答案(C++)
链接地址:https://www.777doc.com/doc-2889796 .html