NOIP第二十二届全国青少年信息学奥林匹克联赛提高组初赛pascal.docx
- 文档编号:4956309
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:17
- 大小:113.85KB
NOIP第二十二届全国青少年信息学奥林匹克联赛提高组初赛pascal.docx
《NOIP第二十二届全国青少年信息学奥林匹克联赛提高组初赛pascal.docx》由会员分享,可在线阅读,更多相关《NOIP第二十二届全国青少年信息学奥林匹克联赛提高组初赛pascal.docx(17页珍藏版)》请在冰豆网上搜索。
NOIP第二十二届全国青少年信息学奥林匹克联赛提高组初赛pascal
第二十二届全国青少年信息学奥林匹克联赛初赛
提高组Pascal语言试题
竞赛时间:
2016年10月22日14:
30~16:
30
选手注意:
●试题纸共有13页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上的一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项)
1.以下不是微软公司出品的软件是()。
A.PowerpointC.ExcelB.WordD.AcrobatReader
2.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照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.a
3.二进制数00101100和01010101异或的结果是()。
A.00101000B.01111001C.01000100D.00111000
4.与二进制小数0.1相等的八进进制数是()。
A.0.8B.0.4C.0.2D.0.1
5.以比较作为基本运算,在N个数中找最小数的最少运算次数为()。
A.NB.N-1C.N2D.logN
6.表达式a*(b+c)-d的后缀表达形式为()。
A.abcd*+-B.abc+*d-C.abc*+d-D.-+*abcd
7.一棵二叉树如右图所示,若采用二叉树链表存储该二叉树(各个结点包括结点的数据、左孩子指针、右孩子指针)。
如果没有左孩子或者右孩子,则对应的为空指针。
那么该链表中空指针的数目为()。
A.6B.7C.12D.14
8.G是一个非连通简单无向图,共有28条边,则该图至少有()个顶点。
A.10B.9C.8D.7
9.某计算机的CPU和内存之间的地址总线宽度是32位(bit),这台计算机最多可以使用()的内存。
A.2GBB.4GBC.8GBD.16GB
10.有以下程序:
var
k,n:
longint;
begin
k:
=4;n:
=0;
whilen begin inc(n); ifnmod3<>0then continue; dec(k); end; writeln(k,',',n); end. 程序运行后的输出结果是()。 A.2,2B.2,3C.3,2D.3,3 11.有7个一模一样的苹果,放到3个一样的盘子中,一共有()种放法。 A.7B.8C.21D.37 12.Lucia和她的朋友以及朋友的朋友都在某社交网站上注册了账号。 下图是他们之间的关系图,两个人之间有边相连代表这两个人是朋友,没有边相连代表不是朋友。 这个社交网站的规则是: 如果某人A向他(她)的朋友B分享了某张照片,那么B就可以对该照片进行评论;如果B评论了该照片,那么他(她)的所有朋友都可以看见这个评论以及被评论的照片,但是不能对该照片进行评论(除非A也向他(她)分享了该照片)。 现在Lucia已经上传了一张照片,但是她不想让Jacob看见这张照片,那么她可以向以下朋友()分享该照片。 A.Dana,Michael,EveB.Dana,Eve,Monica C.Michael,Eve,JacobD.Micheal,Peter,Monica 13.周末小明和爸爸妈妈三个人一起想动手做三道菜。 小明负责洗菜、爸爸负责切菜、妈妈负责炒菜。 假设做每道菜的顺序都是: 先洗菜10分钟,然后切菜10分钟,最后炒菜10分钟。 那么做一道菜需要30分钟。 注意: 两道不同的菜的相同步骤不可以同时进行。 例如第一道菜和第二道的菜不能同时洗,也不能同时切。 那么做完三道菜的最短时间需要()分钟。 A.90B.60C.50D.40 14.假设某算法的计算时间表示为递推关系式 则算法的时间复杂度为()。 A.O(𝑛)B.O( )C.O( log𝑛)D.O(𝑛2) 15.给定含有n个不同的数的数组L= 如果L中存在xi(1xi+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] 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打开,其他都关上 C.A打开,其他都关上 B.AB都打开,CD都关上 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.var a: array[1..6]oflongint=(1,2,3,4,5,6); pi,pj,t,i: longint; begin pi: =1; pj: =6; whilepi begin t: =a[pi]; a[pi]: =a[pj]; a[pj]: =t; inc(pi); dec(pj); end; fori: =1to6do write(a[i],','); writeln; end. 输出: _________ 2.var n,i,j,k: longint; total_len: array[1..100]oflongint; len: array[1..100,1..3]oflongint; a,b: array[1..100,1..100]ofchar; c: array[1..100]ofstring[100]; begin i: =0;j: =0;k: =1; readln(n); fori: =1tondo begin readln(c[i]); total_len[i]: =length(c[i]); end; fori: =1tondo begin j: =1; while(c[i,j]<>': ')do begin a[i,k]: =c[i,j]; k: =k+1; inc(j); end; len[i,1]: =k-1; a[i,k]: =chr(0); k: =1; forj: =j+1tototal_len[i]do begin b[i,k]: =c[i,j]; k: =k+1; end; len[i,2]: =k-1; b[i,k]: =chr(0); k: =1; end; fori: =1tondo begin if(len[i,1]>=len[i,2])then write('NO,') else begin k: =1; forj: =1tolen[i,2]do begin ifa[i,k]=b[i,j]then k: =k+1; ifk>len[i,1]then break; end; ifj=len[i,2]then write('NO,') else write('YES,'); end; end; writeln; end. 输入: 3 AB: ACDEbFBkBD AR: ACDBrT SARS: SevereAtypicalRespiratorySyndrome 输出: _________ (注: 输入各行前后均无空格) 3.functionlps(seq: string;i,j: longint): longint; var len1,len2: longint; begin ifi=jthen exit (1); ifi>jthen exit(0); if(seq[i]=seq[j])then exit(lps(seq,i+1,j-1)+2); len1: =lps(seq,i,j-1); len2: =lps(seq,i+1,j); iflen1>len2then exit(len1) else exit(len2); end; var n: longint; seq: string; begin seq: ='acmerandacm'; n: =length(seq); writeln(lps(seq,1,n)); end. 输出: _________ 4.var map: array[1..100,1..100]oflongint; sum,weight,visit: array[1..100]oflongint; n,i,x,y,ans,ansn: longint; proceduredfs(node: longint); var v,maxw: longint; begin visit[node]: =1; sum[node]: =1; maxw: =0; forv: =1tondo begin if(map[node][v]=0)or(visit[v]<>0)then continue; dfs(v); inc(sum[node],sum[v]); ifsum[v]>maxwthen maxw: =sum[v]; end; ifn-sum[node]>maxwthen maxw: =n-sum[node]; weight[node]: =maxw; end; begin fillchar(map,sizeof(map),0); fillchar(sum,sizeof(sum),0); fillchar(weight,sizeof(weight),0); fillchar(visit,sizeof(visit),0); readln(n); fori: =1ton-1do begin read(x,y); map[x,y]: =1; map[y,x]: =1; end; dfs (1); ans: =n;ansn: =0; fori: =1tondo ifweight[i] begin ans: =weight[i]; ansn: =i; end; writeln(ansn,'',ans); end. 输入: 11 12 13 24 25 26 37 78 711 69 910 输出: _________ 五、完善程序(共2题,每题14分,共计28分) 1.(交朋友)根据社会学研究表明,人们都喜欢找和自己身高相近的人做朋友。 现在有n名身高两两不相同的同学依次走入教室,调查人员想预测每个人在走入教室的瞬间最想和已经进入教室的哪个人做朋友。 当有两名同学和这名同学的身高差一样时,这名同学会更想和高的那个人做朋友。 比如一名身高为1.80米的同学进入教室时,有一名身高为1.79米的同学和一名身高为1.81米的同学在教室里,那么这名身高为1.80米的同学会更想和身高为1.81米的同学做朋友。 对于第一个走入教室的同学我们不做预测。 由于我们知道所有人的身高和走进教室的次序,所以我们可以采用离线的做法来解决这样的问题,我们用排序加链表的方式帮助每一个人找到在他之前进入教室的并且和他身高最相近的人。 (第一空2分,其余3分) const maxn=200000; infinity=2147483647; var answer,height,previous,next: array[0..maxn]oflongint; rank: array[0..maxn]oflongint; n,higher,shorter,i: longint; proceduresort(l,r: longint); var x,i,j,temp: longint; begin x: =height[rank[(l+r)div2]];i: =l;j: =r; whilei<=jdo begin whileheight[rank[i]] whileheight[rank[j]]>xdodec(j); if (1)then begin temp: =rank[i];rank[i]: =rank[j];rank[j]: =temp; inc(i);dec(j); end; end; ifi ifl end; begin readln(n); fori: =1tondo begin read(height[i]); rank[i]: =i; end; sort(1,n); fori: =1tondo begin previous[rank[i]]: =rank[i-1]; (2); end; fori: =ndownto2do begin higher: =infinity;shorter: =infinity; ifprevious[i]<>0then shorter: =height[i]-height[previous[i]]; ifnext[i]<>0then (3); If(4)then answer[i]: =previous[i] else answer[i]: =next[i]; next[previous[i]]: =next[i]; (5); end; fori: =2tondo writeln(i,': ',answer[i]); end. 2.(交通中断)有一个小国家,国家内有n座城市和m条双向的道路,每条道路连接着两座不同的城市。 其中1号城市为国家的首都。 由于地震频繁可能导致某一个城市与外界交通全部中断。 这个国家的首脑想知道,如果只有第i(i>1)个城市因地震而导致交通中断时,首都到多少个城市的最短路径长度会发生改变。 如果因为无法通过第i个城市而导致从首都出发无法到达某个城市,也认为到达该城市的最短路径长度改变。 对于每一个城市i,假定只有第i个城市与外界交通中断,输出有多少个城市会因此导致到首都的最短路径长度改变。 我们采用邻接表的方式存储图的信息,其中head[x]表示顶点x的第一条边的编号,next[i]表示第i条边的下一条边的编号,point[i]表示第i条边的终点,weight[i]表示第i条边的长度。 (第一空2分,其余3分) const maxn=6000; maxm=100000; inf=2147483647; var next,point,weight: array[1..maxm]oflongint; head,dist,visit: array[1..maxn]oflongint; queue: array[0..maxn-1]oflongint; n,m,i,j,s,t,total,x,y,z,answer: longint; procedurelink(x,y,z: longint); begin inc(total); next[total]: =head[x]; head[x]: =total; point[total]: =y; weight[total]: =z; inc(total); next[total]: =head[y]; head[y]: =total; point[total]: =x; weight[total]: =z; end; begin total: =0; readln(n,m); fori: =1tomdo begin readln(x,y,z); link(x,y,z); end; fori: =1tondodist[i]: =inf; (1); queue[1]: =1; visit[1]: =1; s: =1;t: =1; //使用SPFA求出第一个点到其余各点的最短路长度 whiles<=tdo begin x: =queue[smodmaxn]; j: =head[x]; whilej<>0do begin if (2)then begin dist[point[j]]: =dist[x]+weight[j]; if(visit[point[j]]=0)then begin inc(t); queue[tmodmaxn]: =point[j]; visit[point[j]]: =1; end; end; j: =next[j]; end; (3); inc(s); end; fori: =2tondo begin queue[1]: =1; fillchar(visit,sizeof(visit),0); visit[1]: =1; s: =1;t: =1; whiles<=tdo//判断最短路长度是否不变 begin x: =queue[s]; j: =head[x]; whilej<>0do if(point[j]<>i)and((4)) and(visit[point[j]]=0)then begin (5); inc(t); queue[t]: =point[j]; end; j: =next[j]; inc(s); end; answer: =0; forj: =1tondo inc(answer,1-visit[j]); writeln(i,': ',answer-1); end; end. 第二十二届全国青少年信息学奥林匹克联赛初赛 提高组参考答案 一、单项选择题(共15题,每题1.5分,共计22.5分) 1 2 3 4 5 6 7 8 D A B B B B B B 9 10 11 12 13 14 15 B D B A C C A 二、不定项选择题(共5题,每题1.5分,共计7.5分;每题有一个或多个正确选项,没有部分分) 1 2 3 4 5 ABC A AB A ABD 三、问题求解(共2题,每题5分,共计10分;每题全部答对得5分,没有部分分) 1.55 2.3 四、阅读程序写结果(共4题,每题8分,共计32分) 1.6,5,4,3,2,1, 2.YES,NO,YES, 3.5 4.25 五、完善程序(共计28分,以下各程序填空可能还有一些等价的写法,由各省赛区组织本省专家审定及上机验证,可以不上报CCFNOI科学委员会复核) Pascal语言 C++语言 C语言 分值 1 1 i<=j 2 2 ne
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NOIP 第二十二 全国青少年 信息学 奥林匹克 联赛 提高 初赛 pascal