NOIP普及组初赛及答案Pascal.docx
《NOIP普及组初赛及答案Pascal.docx》由会员分享,可在线阅读,更多相关《NOIP普及组初赛及答案Pascal.docx(10页珍藏版)》请在冰豆网上搜索。
![NOIP普及组初赛及答案Pascal.docx](https://file1.bdocx.com/fileroot1/2022-12/12/bf7e0499-5dbf-488a-b0c2-adec3bfe60b2/bf7e0499-5dbf-488a-b0c2-adec3bfe60b21.gif)
NOIP普及组初赛及答案Pascal
第十八届全国青少年信息学奥林匹克联赛初赛
(普及组Pascal语言试题)
选手注意:
l试题纸共有10页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上一律无效。
l不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料
一、单项选择题(共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.十
5.()不属于操作系统。
A.WindowsB.DOSD.十二
C.PhotoshopD.NOILinux
6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。
A.ABCB.CBAC.ACBD.BAC
7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。
A.显示器B.CPUC.内存D.鼠标
8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列5,4,3,2,1需要执行()次操作,才能完成冒泡排序。
A.0B.5C.10D.15
9.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,c
13.()是主要用于显示网页服务器或者文件系统的HTML文件的内容,并让用户与这些文件交互的一种软件。
A.资源管理器B.浏览器C.电子邮件D.编译器
14.()是目前互联网上常用的E-mail服务协议。
A.HTTPB.FTPC.POP3D.Telnet
15.()就是把一个复杂的问题分成两个或更多的相同类似的子问题,再把子问题分解成更小的子问题……直到最后的子问题可以简单地直接求解。
而原问题的解就是子问题解的并。
A.动态规划B.贪心C.分治D.搜索
16.地址总线的位数决定了CPU可直接寻址的内存空间大小,例如地址总线为16位,其最大的可寻址空间为64KB。
如果地址总线是32位,则理论上最大可寻址的内存空间为()。
A.128KBB.1MBC.1GBD.4GB
17.蓝牙和Wi-Fi都是()设备。
A.无线广域网B.无线城域网C.无线局域网D.无线路由器18.在程序运行过程中,如果递归调用的层数过多,会因为()引发错误。
A.系统分配的栈空间溢出B.系统分配的堆空间溢出
C.系统分配的队列空间溢出D.系统分配的链表空间溢出
19.原字符串中任意一段连续的字符所组成的新字符串称为子串。
则字符“AAABBBCCC”共有()个不同的非空子串。
A.3B.12C.36D.45
20.仿生学的问世开辟了独特的科学技术发展道路。
人们研究生物体的结构、功能和工作原理,并将这些原理移植于新兴的工程技术中。
以下关于仿生学的叙述,错误的是()
A.由研究蝙蝠,发明雷达B.由研究蜘蛛网,发明因特网
C.由研究海豚,发明声纳D.由研究电鱼,发明伏特电池
二、问题求解(共2题,每题5分,共计10分)
1.如果平面上任取n个整点(横纵坐标都是整数),其中一定存在两个点,它们连线的中点也是整点,那么n至少是__________。
2.在NOI期间,主办单位为了欢迎来自各国的选手,举行了盛大的晚宴。
在第十八桌,有5名大陆选手和5名港澳选手共同进膳。
为了增进交流,他们决定相隔就坐,即每个大陆选手左右旁都是港澳选手,每个港澳选手左右旁都是大陆选手。
那么,这一桌一共有_______种不同的就坐方案。
注:
如果在两个方案中,每个选手左右相邻的选手相同,则视为同一种方案。
三、阅读程序写结果。
(共4题,每题8分,共计32分)
1.
vara,b,c,d,e,ans:
integer;
begin
readln(a,b,c);
d:
=a+b;
e:
=b+c;
ans:
=d+e;
writeln(ans);
end.
输入:
125
输出:
______________
2.
varn,i,ans:
integer;
begin
输入:
18
输出:
_____________
3.
var
n,i,j:
integer;
a:
array[1..100,1..100]ofinteger;
readln(n);
ans:
=0;
fori:
=1tondo
if(nmodi)=0thenans:
=ans+1;
writeln(ans);
end.
functionsolve(x,y:
integer):
integer;
varu,v:
integer;
begin
ifx=nthen
begin
solve:
=a[x,y];
exit;
end;
u:
=solve(x+1,y);
v:
=solve(x+1,y+1);
ifu>vthensolve:
=a[x,y]+u
elsesolve:
=a[x,y]+v;
end;
begin
read(n);
fori:
=1tondo
forj:
=1toidoread(a[i,j]);
writeln(solve(1,1));
end.
输入:
5
2
-14
2-1-2
-1640
32-158
输出:
______________
4.
var
n,ans,i,j:
integer;
s:
string;
Functionget(i:
integer):
char;
begin
ifi<=nthenget:
=s[i]
elseget:
=s[i-n];
end;
begin
readln(s);
n:
=length(s);
ans:
=1;
fori:
=2tondo
begin
forj:
=0ton-1do
ifget(i+j)begin
ans:
=i;
break;
end
elseifget(i+j)>get(ans+j)thenbreak;
end;
forj:
=0ton-1dowrite(get(ans+j));
writeln;
end.
输入:
CBBADADA
输出:
____________
四、完善程序(前2空每空2分,后8空每空3分,共计28分)
1.(坐标统计)输入n个整点在平面上的坐标。
对于每个点,可以控制所有位于它左下方的点(即x、y坐标都比它小),它可以控制的点的数目称为“战斗力”。
依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)。
constSIZE=100;
var
x,y,f:
array[1..SIZE]ofinteger;
n,i,j,max_f,ans:
integer;
readln(n);
fori:
=1tondoreadln(x[i],y[i]]);
max_f:
=0;
fori:
=1tondo
begin
f[i]:
=①;
forj:
=1tondo
begin
if(x[j]end;
if④then
begin
max_f:
=f[i];
⑤;
begin
end;
end;
fori:
=1tondowriteln(f[i]);
writeln(ans);
end.
2.(排列数)输入两个正整数n,m(1例如:
输入:
32
输出:
12
13
21
23
31
32
constSIZE:
=25;
var
used:
array[1..SIZE]ofboolean;
data:
array[1..SIZE]orinteger;
n,m,i,j,k:
integer;
flag:
boolean;
begin
readln(n,m);
fillchar(used,sizeof(used),false);
fori:
=1tomdo
begin
data[i]:
=i;
used[i]:
=true;
end;
flag:
=true;
whileflagdo
begin
fori:
=1tom-1dowrite(data[i],'');
writeln(data[m]);
flag:
=①;
fori:
=mdownto1do
begin
②;
forj:
=data[i]+1tondo
ifused[j]=falsethen
begin
used[j]:
=true;
data[i]:
=③;
flag:
=true;
break;
end;
ifflagthen
begin
fork:
=i+1tomdo
forj:
=1to④do
ifused[j]=falsethen
begin
data[k]:
=j;
used[j]:
=true;
break;
end;
⑤;
end;
end;
end.
参考答案
一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)
1
A
11
B2
B
12
D3
A
13
B4
B
14
C5
C
15
C6
C
16
D7
B
17
C8
C
18
A9
A
19
C10
A20
B
二、问题求解(共2题,每题5分,共计10分)
1.5
2.2880
三、阅读程序写结果。
(共4题,每题8分,共计32分)
10
6
14
ACBBADAD
四、完善程序(前2空每空2分,后8空每空3分,共计28分)
1、
①0
②y[j]③f[i]:
=f[i]+1;
④(i>1)and(f[i]>f[i-1])
⑤ans:
=max_f
2、
①false
②used[data[i]]:
=flase
③j
④n
⑤break