NOIP提高组初赛模拟题.docx

上传人:b****8 文档编号:12624522 上传时间:2023-06-06 格式:DOCX 页数:15 大小:114.85KB
下载 相关 举报
NOIP提高组初赛模拟题.docx_第1页
第1页 / 共15页
NOIP提高组初赛模拟题.docx_第2页
第2页 / 共15页
NOIP提高组初赛模拟题.docx_第3页
第3页 / 共15页
NOIP提高组初赛模拟题.docx_第4页
第4页 / 共15页
NOIP提高组初赛模拟题.docx_第5页
第5页 / 共15页
NOIP提高组初赛模拟题.docx_第6页
第6页 / 共15页
NOIP提高组初赛模拟题.docx_第7页
第7页 / 共15页
NOIP提高组初赛模拟题.docx_第8页
第8页 / 共15页
NOIP提高组初赛模拟题.docx_第9页
第9页 / 共15页
NOIP提高组初赛模拟题.docx_第10页
第10页 / 共15页
NOIP提高组初赛模拟题.docx_第11页
第11页 / 共15页
NOIP提高组初赛模拟题.docx_第12页
第12页 / 共15页
NOIP提高组初赛模拟题.docx_第13页
第13页 / 共15页
NOIP提高组初赛模拟题.docx_第14页
第14页 / 共15页
NOIP提高组初赛模拟题.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

NOIP提高组初赛模拟题.docx

《NOIP提高组初赛模拟题.docx》由会员分享,可在线阅读,更多相关《NOIP提高组初赛模拟题.docx(15页珍藏版)》请在冰点文库上搜索。

NOIP提高组初赛模拟题.docx

NOIP提高组初赛模拟题

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

提高组PASCAL语言模拟试题

竞赛时间:

2017年10月14日14:

30~16:

30

选手注意:

●试题纸共有13页,答题纸共有2页,满分100分。

请在答题纸上作答,写

在试题纸上的一律无效。

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

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

1.1956年()授予肖克利(WilliamShockley)、巴丁(JohnBardeen)和布拉顿(WalterBrattain),以表彰他们对半导体的研究和晶体管效应的发现。

A.诺贝尔物理学奖B.约翰·冯·诺依曼奖

C.图灵奖D.高德纳奖(DonaldE.KnuthPrize)

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.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。

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

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

B.军队发布命令

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

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

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.假设某算法的计算时间表示为递推关系式

T(n)=2T(

)+

T

(1)=1

则算法的时间复杂度为()。

A.O(n)B.O(

)C.O(

logn)D.O(n2)

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打开,其他都关上B.AB都打开,CD都关上

C.A打开,其他都关上D.D打开,其他都关上

5.参加NOI比赛,以下能带入考场的有()。

A.钢笔B.适量的衣服C.U盘D.铅笔

 

三、问题求解(共2题,每题5分,共计10分;每题全部答对得5分,没有部分分)

1.在1和2015之间(包括1和2015在内)不能被4、5、6三个数任意一个数整除的数有_________个。

2.结点数为5的不同形态的二叉树一共有_________种。

(结点数为2的二叉树一共有2种:

一种是根结点和左儿子,另一种是根结点和右儿子。

四、阅读程序写结果(共4题,每题8分,共计32分)

1.

Const

SIZE=100;

var

n,i,sum,x:

integer;

a:

array[1..SIZE]ofinteger;

begin

readln(n);

fillchar(a,sizeof(a),0);

fori:

=1tondo

begin

read(x);

inc(a[x]);

end;

i:

=0;

sum:

=0;

whilesum<(ndiv2+1)do

begin

inc(i);

sum:

=sum+a[i];

end;

writeln(i);

end.

输入:

11

45664332321

输出:

2.

var

n:

integer;

proceduref2(x,y:

integer);

forward;

proceduref1(x,y:

integer);

begin

ifx

f2(y,x+y);

end;

proceduref2(x,y:

integer);

begin

write(x,’’);

f1(y,x+y);

end;

begin

readln(n);

f1(0,1);

end.

输入:

30

输出:

_____________

3.

const

V=100;

var

visited:

array[1..v]ofboolean;

e:

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

n,m,ans,i,j,a,b,c:

integer;

proceduredfs(x,len:

integer);

var

I:

integer;

begin

visited[x]:

=true;

iflen>ansthenans:

=len;

fori:

=1tondo

if(notvisited[i])and(e[x,i]<>-1)then

dfs(i,len+e[x,i]);

visited[x]:

=false;

end;

begin

readln(n,m);

fori:

=1tondo

forj:

=1tondo

e[i][j]:

=-1;

fori:

=1tomdo

begin

readln(a,b,c);

e[a][b]:

=c;

e[b][a]:

=c;

end;

fori:

=1tondo

visited[i]:

=false;

ans:

=0;

fori:

=1tondo

dfs(i,0);

writeln(ans);

end.

输入:

46

1210

2320

3430

4140

1350

2460

输出:

__________

 

4.

const

SIZE=10000;

LENGTH=10;

var

sum:

longint;

n,m,i,j:

integer;

a:

array[1..SIZE,1..LENGTH]ofinteger;

functionh(u,v:

integer):

integer;

var

ans,i:

integer;

begin

ans:

=0;

fori:

=1tondo

ifa[u][i]<>a[v][i]then

inc(ans);

h:

=ans;

end;

begin

readln(n);

filichar(a,sizeof(a),0);

m:

=1;

repeat

i:

=1;

while(i<=n)and(a[m][i]=1)do

inc(i);

ifi>nthen

break;

inc(m);

a[m][i]:

=1;

forj:

=i+1tondo

a[m][j]:

=a[m-1][j];

untilfalse;

sum:

=0;

fori:

=1tomdo

forj:

=1tomdo

sum:

=sum+h(i,j);

writeln(sum);

end.

输入:

7

输出:

____________

五、完善程序(共2题,每题14分,共计28分)

1.(双子序列最大和)给定一个长度为n(3≤n≤1000)的整数序列,要求从中选出两个连续子序列,使得这两个连续子序列的序列和之和最大,最终只需输出这个最大和。

一个连续子序列的序列和为该连续子序列中所有数之和。

要求:

每个连续子序列长度至少为1,且两个连续子序列之间至少间隔1个数。

(第五空4分,其余2.5分)

const

MAXN=1000;

var

n,i,ans,sum:

longint;

x:

array[1..MAXN]oflongint;

lmax:

array[1..MAXN]oflongint;

//lmax[i]为仅含x[i]及x[i]左侧整数的连续子序列的序列和中,最大的序列和rmax:

array[1..MAXN]oflongint;

//rmax[i]为仅含x[i]及x[i]右侧整数的连续子序列的序列和中,最大的序列和

begin

read(n);

fori:

=1tondo

read(x[i]);

lmax[1]:

=x[1];

fori:

=2tondo

iflmax[i-1]<=0thenlmax[i]:

=x[i]

else

lmax[i]:

=lmax[i-1]+x[i];

fori:

=2tondo

iflmax[i]

=lmax[i-1];

(1)

fori:

=n-1downto1do

ifrmax[i+1]<=0then

(2)

Else

(3)

fori:

=n-1downto1do

ifrmax[i]

(4)

ans:

=x[1]+x[3];

fori:

=2ton-1do

begin

sum:

=(5)

ifsum>ansthen

ans:

=sum;

end;

writeln(ans);

end.

2.(最短路径问题)无向连通图G有n个结点,依次编号为1,2,3,...,n。

用邻接矩阵的形式给出每条边的边长,要求输出以结点1为起点出发,到各结点的最短路径长度。

使用Dijkstra算法解决该问题:

利用dist数组记录当前各结点与起点的已找到的最短路径长度;每次从未扩展的结点中选取dist值最小的结点v进行扩展,更新与v相邻的结点的dist值;不断进行上述操作直至所有结点均被扩展,此时dist数据中记录的值即为各结点与起点的最短路径长度。

(第五空2分,其余3分)

const

MAXV=100;

var

n,i,j,v:

longint;

w:

array[1..MAXV,1..MAXV]oflongint;//邻接矩阵,记录边长//其中w[i,j]为连接结点i和结点j的无向边长度,若无边则为-1

dist:

array[1..MAXV]oflongint;

used:

array[1..MAXV]oflongint;

//记录结点是否已扩展(0:

未扩展;1:

已扩展)

begin

read(n);

fori:

=1tondo

forj:

=1tondo

read(w[i,j]);

dist[1]:

=0;

fori:

=2tondo

dist[i]:

=-1;

fori:

=1tondo

used[i]:

=0;

whiletruedo

begin

(1)

fori:

=1tondo

if(used[i]<>1)and(dist[i]<>-1)

and((v=-1)or(

(2)))then

(3)

ifv=-1then

break;

(4);

Fori:

=1tondo

if(w[v,i]<>-1)and((dist[i]=-1)or((5)))then

dist[i]:

=dist[v]+w[v,i];

end;

fori:

=1tondo

writeln(dist[i]);

end.

 

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2