18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx

上传人:b****5 文档编号:7845385 上传时间:2023-01-26 格式:DOCX 页数:20 大小:219.15KB
下载 相关 举报
18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx_第1页
第1页 / 共20页
18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx_第2页
第2页 / 共20页
18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx_第3页
第3页 / 共20页
18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx_第4页
第4页 / 共20页
18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx

《18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx》由会员分享,可在线阅读,更多相关《18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx(20页珍藏版)》请在冰豆网上搜索。

18届全国青少年信息学奥林匹克联赛初赛详解普及组.docx

18届全国青少年信息学奥林匹克联赛初赛详解普及组

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

(普及组Pascal语言试题)

竞赛时间:

2012年10月13日14:

30~16:

30

选手注意

·试题纸共有10页,答题纸共有2页,满分100分。

请在答题纸上作答,写在试题纸上一律无效。

·不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料

一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)

1.计算机如果缺少(A),将无法正常启动。

A.内存B.鼠标C.U盘D.摄像头

2.(B)是一种先进先出的线性表。

A.栈B.队列C.哈希表(散列表)D.二叉树

解析:

1.栈的定义(可参考:

 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。

  

(1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。

  

(2)当表中没有元素时称为空栈。

  (3)栈为后进先出(LastInFirstOut)的线性表,简称为LIFO表。

 栈的修改是按后进先出的原则进行。

每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。

2.队列:

定义:

队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。

  

(1)允许删除的一端称为队头(Front)。

  

(2)允许插入的一端称为队尾(Rear)。

  (3)当队列中没有元素时称为空队列。

  (4)队列亦称作先进先出(FirstInFirstOut)的线性表,简称为FIFO表。

 队列的修改是依先进先出的原则进行的。

新来的成员总是加入队尾(即不允许"加塞"),每次离开的成员总是队列头上的(不允许中途离队),即当前"最老的"成员离队。

 【例】在队列中依次加入元素a1,a2,…,an之后,a1是队头元素,an是队尾元素。

退出队列的次序只能是a1,a2,…,an。

3.哈希表(散列表)

 散列方法是使用函数h将U映射到表T[0..m-1]的下标上(m=O(|U|))。

这样以U中关键字为自变量,以h为函数的运算结果就是相应结点的存储地址。

从而达到在O

(1)时间内就可完成查找。

哈希表存在散列表的冲突现象:

 两个不同的关键字,由于散列函数值相同,因而被映射到同一表位置上。

该现象称为冲突(Collision)或碰撞。

发生冲突的两个关键字称为该散列函数的同义词(Synonym)。

 【例】上图中的k2≠k5,但h(k2)=h(k5),故k2和K5所在的结点的存储地址相同。

    

----------------------------------------

4.在计算机科学中,二叉树是每个结点最多有两个子树的有序树。

通常根的子树被称作“左子树”(leftsubtree)和“右子树”(rightsubtree),次序不能颠倒。

·二叉树的5种形态:

·二叉树的遍历:

3.目前计算机芯片(集成电路)制造的主要原料是(A),它是一种可以在沙子中提炼出的物质。

A.硅B.铜C.锗D.铝

4.十六进制数9A在(B)进制下是232.

A.四B.八C.十D.十二

解析:

9A十六,先转化成十进制=9*162-1+10*161-1十进制=154十进制,再转化成二进制=10011010二进制=10011010(从最右边起三个一组,分别转换成十进制数字,就得到八进制表示的数)=232八进制

注:

十进制,八进制和十六进制互化应以二进制作为桥梁,将二进制转化成16或8进制:

以小数点为界分别向左右每4(或3)个数字为一组进行分组,每组分别转化成二进制数,最后合并在一起,并把首0去掉(尾0不可以去)。

如:

(001101001)2=(151)8(00010110.01011011)2=(16.5B)16

5.(C)不属于操作系统。

A.WindowsB.DOSC.PhotoshopD.NOILinux

6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是(C)。

解析:

从题目“中序遍历是BAC”得知:

还原此二叉树可能是以下几种情况:

A.ABC+中序遍历是BAC,还原得到:

B.CBA+中序遍历是BAC,还原得到:

C.ACB还原得到:

这两个树的中序遍历都不是BAC。

D.BAC中序遍历是BAC,还原得到:

前序:

先根节点,然后遍历左子树,最后遍历右子树,根-左-右。

中序:

先遍历左子树,再是根节点,最后遍历右子树,左-根-右

后序:

先遍历左子树,再遍历右子树,最后是根节点,左-右-根

在每个左右子树也遵守以上各自规则!

 

7.目前个人电脑的(B)市场占有率最靠前的厂商包括Intel、AMD等公司。

A.显示器:

三星,LG,戴尔,宏碁,HP……

B.CPU:

INTEL,AMD,台湾VIA威盛......

C.内存:

金士顿Kingston,威刚,海盗船等

D.鼠标:

双飞燕雷柏(Rapoo)罗技(Logitech)大水牛......

8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列:

5,4,3,2,1需要执行(C)次操作,才能完成冒泡排序。

A.0B.5C.10D.15

冒泡排序(BubbleSort)的基本概念是:

依次比较相邻的两个数,将小数放在前面,大数放在后面。

即在第一趟:

首先比较第1个和第2个数,将小数放前,大数放后。

然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。

至此第一趟结束,将最大的数放到了最后。

在第二趟:

仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。

如此下去,重复以上过程,直至最终完成排序。

此题答案:

冒泡排序最多要排n*(n-1)/2次(本题这样的原本序列是逆序列),最少要n-1次冒泡次数(由小到大的正序列)。

9.1946年诞生于美国宾夕法尼亚大学的ENIAC属于(A)计算机。

A.电子管:

电子管元件在运行时产生的热量太多,可靠性较差,运算速度不快,价格昂贵,体积庞大,这些都使计算机发展受到限制

B.晶体管:

1954年,美国贝尔实验室研制成功第一台使用晶体管线路的计算机,取名“催迪克”(TRADIC),装有800个晶体管。

晶体管不仅能实现电子管的功能,又具有尺寸

小、重量轻、寿命长、效率高、发热少、功耗低等优点

C.集成电路:

1958年,美国德州仪器的工程师JackKilby发明了集成电路(IC),将三种电子元件结合到一片小小的硅片上。

更多的元件集成到单一的半导体芯片上,计算机变得更小,功耗更低,速度更快

D.超大规模集成电路:

60年代初期,美国的基尔比和诺伊斯发明了集成电路,引发了电路设计革命。

随后,集成电路的集成度以每3-4年提高一个数量级的速度增长。

大规模集成电路(LSI)可以在一个芯片上容纳几百个元件。

到了80年代,超大规模集成电路(VLSI)在芯片上容纳了几十万个元件,后来的甚大规模集成电路(ULSI)上将数量扩充到百万级。

使得计算机的体积和价格不断下降,而功能和可靠性不断增强。

10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。

如果用现实生活中的例子来比喻这些“层”,以下最恰当的是(A)。

分层思想是:

对等层之间执行相同的操作,较低的层为它的上一层提供服务。

下面左边是OSI模型,右边是OSI与TCP/IP模型对比:

 

A.中国公司的经理与波兰公司的经理交互商业文件:

B.军队发布命令:

C.国际会议中,每个人都与他国地位对等的人直接进行会谈:

D.体育比赛中,每一级比赛的优胜者晋级上一级比赛:

11.矢量图(VectorImage)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它(B)。

A.记录了大量像素块的色彩值来表示图像

B.用点、直线或者多边形等基于数学方程的几何图元来表示图像

C.每个像素点的颜色信息均用矢量表示

D.把文件保存在互联网,采用在线浏览的方式查看图像

位图使用我们称为像素的一格一格的小点来描述图像,放大易失真

矢量图用点、直线或者多边形等基于数学方程的几何图元来表示图像,放大不易失真

12.如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a,b,c,另有元素d已经出栈,则可能的入栈顺序是(D)。

A.a,d,c,bB.b,a,c,dC.a,c,b,dD.d,a,b,c

解析:

不管d在哪个位置,abc的顺序肯定是先a后b,最后c入栈的。

13.(B)是主要用于显示网页服务器或者文件系统的HTML文件的内容,并让用户与这些文件交互的一种软件。

A.资源管理器B.浏览器C.电子邮件D.编译器

14.(C)是目前互联网上常用的E-mail服务协议。

A.HTTPB.FTPC.POP3D.Telnet

解析:

HTTP:

超文本传输协议;

FTP:

文件传输协议

POP3是PostOfficeProtocol3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。

它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。

SMTP

SMTP 的全称是“SimpleMailTransferProtocol”,即简单邮件传输协议。

它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。

SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

SMTP服务器就是遵循SMTP协议的发送邮件服务器。

15.(C)就是把一个复杂的问题分成两个或更多的相同类似的子问题,再把子问题分解成更小的子问题……直到最后的子问题可以简单地直接求解。

而原问题的解就是子问题解的合并。

A.动态规划B.贪心C.分治D.搜索

当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。

对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。

如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。

这就是分治策略的基本思想。

给你一个装有16个硬币的袋子。

16个硬币中有一个是伪造的,并且那个伪造的硬币比真的硬币要轻一些。

你的任务是找出这个伪造的硬币,工具是天平称。

你可以一个一个称,最终也能找出伪币。

这样要称10多次。

如果用分治方法,把16硬币分为AB两组,每组8个硬币。

轻的一组有伪币,假设B是轻的那一组,因此再把它分成两组,每组有4个硬币。

称其中一组为B1,另一组为B2。

比较这两组,肯定有一组轻一些。

如果B1轻,则伪币在B1中,再将B1又分成两组,每组有两个硬币,称其中一组为B1a,另一组为B1b。

比较这两组,可以得到一个较轻的组。

由于这个组只有两个硬币,因此不必再细分。

比较组中两个硬币的重量,可以立即知道哪一个硬币轻一些。

较轻的硬币就是所要找的伪币。

这样只要4次就可以找出伪币。

16.地址总线的位数决定了CPU可直接寻址的内存空间大小,例如地址总线为16位,其最大的可寻址空间为64KB。

如果地址总线是32位,则理论上最大可寻址的内存空间为(D)。

A.128KBB.1MBC.1GBD.4GB

2^16=64K232=(2^16)*(2^16)=4294967296/1024/1024/1024=4G

17.蓝牙和Wi-Fi都是(C)设备。

A.无线广域网B.无线城域网C.无线局域网D.无线路由器

短程无线10-100米左右遇到阻碍更短

18.在程序运行过程中,如果递归调用的层数过多,会因为(A)引发错误。

A.系统分配的栈空间溢出B.系统分配的堆空间溢出

C.系统分配的队列空间溢出D.系统分配的链表空间溢出

19.原字符串中任意一段连续的字符所组成的新字符串称为子串。

则字符“AAABBBCCC”共有(C)个不同的非空子串。

A.3B.12C.36D.45

穷举:

1个字符:

3种,2个字符:

5种,3个字符7种,4个字符6种,5个字符5种,6个字符4种,7个字符3种,8个字符2种,9个字符1种。

共36种不同的连续非空子串。

20.仿生学的问世开辟了独特的科学技术发展道路。

人们研究生物体的结构、功能和工作原理,并将这些原理移植于新兴的工程技术中。

以下关于仿生学的叙述,错误的是(B)

A.由研究蝙蝠,发明雷达B.由研究蜘蛛网,发明因特网

C.由研究海豚,发明声纳D.由研究电鱼,发明伏特电池

A.1938年,研究蝙蝠领域的鼻祖————Griffin在哈佛大学生物系学习期间,做过试验,把蝙蝠的眼睛手术掉,蝙蝠的飞行不受丝毫影响,科学家经过反复研究,终于揭开了蝙蝠能在夜里飞行的秘密。

它一边飞,一边从嘴里发出一种声音。

这种声音叫做超声波,人的耳朵是听不见的,蝙蝠的耳朵却能听见。

超声波像波浪一样向前推进,遇到障碍物就反射回来,传到蝙蝠的耳朵里,蝙蝠立刻改变飞行的方向。

科学家摹仿蝙蝠探路的办法,给飞机装上了雷达。

雷达通过天线发出无线电波,无线电波遇到障碍物就反射回来,显示在荧光屏上。

驾驶员从雷达的荧光屏上,能够看清楚前方有没有障碍物,所以飞机在夜里飞行也十分安全。

B.由研究海豚,发明声纳:

回声定位原理,和蝙蝠差不多,介质不同,一个空气,一个水里。

C.由研究蜘蛛网,发明了鱼网

D经过对电鱼的解剖研究,终于发现在电鱼体内有一种奇特的发电器官。

这些发电器是由许多叫电板或电盘的半透明的盘形细胞构成的。

由于电鱼的种类不同,所以发电器的形状、位置、电板数都不一样。

经过对电鱼的解剖研究,终于发现在电鱼体内有一种奇特的发电器官。

这些发电器是由许多叫电板或电盘的半透明的盘形细胞构成的。

由于电鱼的种类不同,所以发电器的形状、位置、电板数都不一样。

电鲶的发电器起源于某种腺体,位于皮肤与肌肉之间,约有500万块“电板”,每片“电板”发电很微弱,但500万块“电板”却能使它发出几百伏特的电压!

二、问题求解(共2题,每题5分,共计10分)

1.如果平面上任取n个整点(横纵坐标都是整数),其中一定存在两个点,它们连线的中点也是整点,那么n至少是____5______。

想象横纵交错的网格纸,就像棋盘那样的,每个横纵线交点就是一个整点。

如下图

如果n=2,取两个连续的整点,那么连线中点不是整点。

如果n=3,取水平两个连续的点,垂直也两个连续的点,组成三角形。

那么连线中点不是整点。

如果n=4,取四个整点组成一个正方形,则连线中点不是整点。

而取5个点的话,必然有两个点的连线中点是整点。

2.在NOI期间,主办单位为了欢迎来自各国的选手,举行了盛大的晚宴。

在第十八桌,有5名大陆选手和5名港澳选手共同进膳。

为了增进交流,他们决定相隔就坐,即每个大陆选手左右旁都是港澳选手,每个港澳选手左右旁都是大陆选手。

那么,这一桌一共有___2880____种不同的就坐方案。

注:

如果在两个方案中,每个选手左右相邻的选手相同,则视为同一种方案。

解:

五个大陆人隔一个位置任意坐5个座位,1个港澳人固定位置后其他4个港澳人任意坐剩下的4个位置,这样能保证不会出现每个选手左右相邻的选手相同的情况出现,故P55*P44=5*4*3*2*1*4*3*2*1=2880种

相当于1个圆,十个人。

先随便找个座,让人去坐,有10个可能,然后顺时针走,下一个座就有5种可能,再下一个就4个,再下一个还是4个,以此类推,就是10*5*4*4*3*3*2*2*1*1。

这其中有重复的,同一种坐法,可以绕着桌子走一圈,就是上一个人坐到下一个人的位置,串一下,这样所有坐法就算重复了10次,再除以10就行了。

就是5*4*4*3*3*2*2*1*1

三、阅读程序写结果。

(共4题,每题8分,共计32分)

1.var

a,b,c,d,e,ans:

integer;

beginreadln(a,b,c);

d:

=a+b;

e:

=b+c;

ans:

=d+e;

writeln(ans);

end.

输入:

125

输出:

__10____________

2.varn,i,ans:

integer;

beginreadln(n);

ans:

=0;

fori:

=1tondo

if(nmodi)=0then

ans:

=ans+1;

writeln(ans);

end.

输入:

18

输出:

_______6______

mod函数是取余数函数(两数相除,取其余数)

if(nmodi)=0的意思是假如n能整除i(余数为0)

3.var

n,i,j:

integer;

a:

array[1..100,1..100]ofinteger;

functionsolve(x,y:

integer):

integer;

varu,v:

integer;

beginifx=nthen

beginsolve:

=a[x,y];

exit;

end;

u:

=solve(x+1,y);

v:

=solve(x+1,y+1);

ifu>vthen

solve:

=a[x,y]+u

else

solve:

=a[x,y]+v;

end;

begin

read(n);

fori:

=1tondo

forj:

=1toido

read(a[i,j]);

writeln(solve(1,1));

end.

输入:

5

2

-14

2-1-2

-1640

32-158

输出:

_____14_________

4.var

n,ans,i,j:

integer;

S:

string;

Functionget(i:

integer):

char;

begin

ifi<=nthen

get:

=s[i]

elseget:

=s[i-n];

end;

beginreadln(s);

n:

=length(s);

ans:

=1;

fori:

=2tondo

beginforj:

=0ton-1do

ifget(i+j)

beginans:

=i;

break;

end

elseifget(i+j)>get(ans+j)then

break;

end;

forj:

=0ton-1do

write(get(ans+j));

writeln;

end.

输入:

CBBADADA

输出:

_ACBBADAD___________

四、完善程序(前2空每空2分,后8空每空3分,共计28分)

1.(坐标统计)输入n个整点在平面上的坐标。

对于每个点,可以控制所有位于它左下方的点(即x、y坐标都比它小),它可以控制的点的数目称为“战斗力”。

依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战

答案:

四、

1:

1.0

2.y[j]

3.f[i]:

=f[i]+1;

4.(i>1)and(f[i]>f[i-1])

5.ans:

=max_f

2:

1false

2used[data[i]]:

=flase

3.j

4.n

5.break

斗力并列最高,输出其中最大的编号)。

Const

SIZE=100;

Var

X,y,f:

array[1..SIZE]ofinteger;

N,i,j,max_f,ans:

integer;

Beginreadln(n);

Fori:

=1tondo

Readln(x[i],y[i]]);

Max_f:

=0;

Fori:

=1tondo

Beginf[i]:

=①;

Forj:

=1tondo

Beginif(x[j]

③;

End;

If④then

Beginmax_f:

=f[i];

⑤;

End;

End;

Fori:

=1tondo

Writeln(f[i]);

Writeln(ans);

End.

2.(排列数)输入两个正整数n,m(1

例如:

输入:

32

输出:

12

13

21

23

31

32

const

SIZE:

=25;

var

used:

array[1..SIZE]ofboolean;

data:

array[1..SIZE]orinteger;

n,m,i,j,k:

integer;

flag:

boolean;

beginreadln(n,m);

fillchar(used,sizeof(used),false);

fori:

=1tomdo

begindata[i]:

=i;

used[i]:

=true;

end;

flag:

=true;

Whileflagdo

beginfori:

=1tom-1dowrite(data[i],’‘);

writeln(data[m]);

flag:

=①;

fori:

=mdownto1do

begin②;

forj:

=data[i]+1tondoifused[j]=falsethen

beginused[j]:

=true;

data[i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1