NOIP初赛模拟试题(Pascal语言、提高组)

更新时间:2024-03-02 08:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

NOIP初赛模拟试题 by OI Store (提高组 Pascal语言 二小时完成)

一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案。)

1. 建立了计算机最主要的结构原理的人是( )。

A. 图灵 B. 比尔·盖茨 C. 冯·诺伊曼 D. 克拉拉·丹 E. 哥德尔 2. 设a、b、c是三个布尔型(boolean)的变量,则表达式(a∨?b)∧(b∨?c)∧(c∨?a)∧(a∧?a)∧(b∧?b)的值( )。 A. 始终为true B. 始终为false

C. 当且仅当c为true时为false

D. 当且仅当a与b均为true时为true E. 依赖于a、b、c三者的值 3. 设a、b为两个浮点(float)型变量,下面的表达式中最有可能为真的是( )。 A. a=b

B. a*a+2*a*b+b*b=(a+b)*(a+b) C. (a+b)*(a-b)+b*b-a*a<0.0001 D. a/b=1/(b/a)

E. sqrt(a)*sqrt(b)=sqrt(a*b) 4. 下面的数据中,在编程中用长整型(longint)表示最恰当的是( )。 A. 宇宙中的原子数目

B. 一头大象的体重(用吨表示) C. 姚明的身高(用厘米表示) D. 一个山村的准确人口数

E. 从现在(2006年)到2008奥运会开幕的倒计时秒数 5. 一个三叉树(即每个节点最多有三个孩子)中,有k个孩子的结点数目表示为S(k),则下列关系一定成立的是( )。 A. S(0)=2*S(3)+S(2)-1 B. S(0)>3*S(3)+2*S(2)-1 C. S(0)<3*S(3)+2*S(2)+1 D. S(0)<2*S(3)+S(2) E. S(0)<=3*S(3)+2*S(2)

6. 佳佳在网上购买了一个空间,建设了一个网站。那么,他向网站上上传网页时最有可能采用的网络协议是( )。

A. HTTP B. TCP C. POP3 D. FTP E. BT 7. 一个音乐爱好者收藏有100首MP3格式的音乐,这些音乐的编码率都是192Kbps,平均每首音乐的时长为3min,他要通过网络将这些音乐传送给另一个人,假设网络速度恒定为512KB/s,则他传送这些音乐大概需要( )。

A. 72s B. 843s C. 112.5min D. 3h48min16s E. 超过24小时 8. 假设用双核CPU运行我们平常编写的信息学竞赛程序,相对于同等规格的单核CPU而言,运行时间( )。 A. 会缩短为原来的1/9 B. 会缩短为原来的1/4 C. 会缩短为原来的1/2 D. 基本没有差别 E. 会比原来略长 9. 将一台多媒体PC的某个部件拔下来后,仍能正常启动进入Windows,这个部件可能是( )。

A. CMOS B. 内存 C. 硬盘 D. 声卡 E. 显卡 10.中国自主研发的通用CPU“龙芯一号”和“龙芯二号”的问世时间分别是( )。

A. 2002,2005 B. 2003,2005 C. 2002,2004 D. 2003,2006 E. 2001,2004 二、不定项选择题(共10题,每题1.5分,共计15分。多选或少选均不得分) 11.(7f)16 + (10010101)2 的运算结果等于( )。

A. (114)16 B. (276)10 C. (100010100)2 D. (11d)16 E. (731)8 12.设a、b、c是三个布尔(boolean)型变量,若表达式a∧?b∧c为true,则下列表达式一定为true的是( )。 A. (a∧(b∨c))∨(?a)

B. (b∧a)∨(a∧c)∨(c∧b) C. a∧b∧c

D. (b∨a)∧(?(a∨b)) E. 以上皆错 13.下面的前序遍历结果不可能是由一棵排序二叉树产生的有( )。 A. 1、2、3、4、5、6、7、8 B. 1、4、3、6、7、8、5、2 C. 8、7、6、5、4、3、2、1

D. 6、7、8、5、4、3、2、1 E. 以上皆错

14.设想这样一种数据结构,它有PUSH和POP两个操作。其中PUSH操作就是将一个元素加入到这个数据结构中,而当第k次调用POP元素时(保证这个数据结构中有元素),选择其中的一个元素返回并删除,若k是奇数,选择的是元素中的最大值,若k是偶数,选择的是元素中的最小值。如果调用PUSH操作放入数据结构中的元素依次是1、2、3、4、5、6,则下列序列中可能通过适当的POP操作产生的有( )。 A. 1、2、3、4、5、6 B. 1、2、3、4、6、5 C. 6、1、5、2、4、3 D. 2、1、6、3、5、4 E. 3、1、4、2、6、5 15.下面的软件必须在联网状态下才能正常使用的有( )。

A. BitTorrent B. Mozilla Firefox C. Red Hat Linux D. MSN Messenger E. WinZip 16.下面的软件可以免费无限制使用的有( )。

A. WinRAR B. RealPlayer C. Internet Explorer D. FreeBSD E. ACDSee 17.下面的硬件接口中既不可以连接声卡、又不可以连接鼠标的通讯设备或外设接口有( )。

A. PCI B. USB C. BlueTooth D. 红外 E. 以上皆错 18. 将一个分辨率为800*600的显示器调整为1024*768的分辨率后(调整前与调整后显示器均为最佳显示状态),下列现象中可能会出现的有( )。 A. 屏幕上原来1cm长的线段变成了1.28cm B. 屏幕上原来10.24cm长的线段变成了8.00cm C. 屏幕上原来面积为7.68cm2的图形变成了6.00cm2 D. 屏幕上原来面积为10.24cm2的图形变成了6.25cm2 E. 桌面上原来不到三行的图标排列成了两行 19.下面的行为不符合网络道德的有( )。 A. 制作“恶搞”短片 B. 利用QQ聊天 C. 在blog上留言 D. 下载非法文件 E. 进入色情网站 20.以下各项正确的有( )。

A. Pascal语言的出现时间早于C语言

B. Java是目前对面向对象编程的支持最完善的语言

C. 目前出现的任何计算机语言都能够使用编译器编译成机器码 D. 编译好的程序只能在特定的操作系统和硬件平台上使用

E. 一个使用Pascal语言编写并编译好的程序,我们可以将其还原成原来的Pascal代码

三.问题求解(共2题,每题5分,共计10分)

21.四个红色球、四个蓝色球,按顺序任意放成一排,并以1-8编号。如果相同颜色的球之间不加区分的话,那么四个红色球的编号总和超过四个蓝色球的编号总和的概率是(用最简真分数表示):______________。 22.有五个工人A、B、C、D、E需要做工作一、二、三、四、五,下表显示了每个人做每项工作所要花费的最短时间。则完成所有5项工作所需要的最短时间是______________。(说明:不同的工作可以由不同的人同时做,但同一个工作只能由一个人来完成)

A B C D E 一 7 5 8 6 4 二 4 3 5 4 6 三 5 8 6 7 3 四 6 7 3 4 5 五 4 3 6 5 3 四、阅读程序(共4题,每题8分,共计32分) 23.

program ex1; var a,b,c,i:integer; s:array[0..300]of integer; begin 程 read(a,b,c); 序: s[0]:=a; s[1]:=b; for i:=2 to c do s[i]:=a*s[i-2]+b*s[i-1]; writeln(s[c]); end. 输2 3 7

入: 输 出: 24.

program ex2; procedure get; var c:char; begin read(c); 程 if c<>'!' then get; 序: write('.',c,'.'); end; begin get; end. 输Hello, World! 入: 输 出: 25.

program ex3; var a:real; b,i:integer; function f(var d:real):real; begin 程 f:=1.0/(1-d); 序: end; begin read(a,b); for i:=b downto 1 do a:=f(a); write(a:2:1); end. 输0.5 1000 入: 输

出: 26.

program ex4; var s:array[0..99]of integer; ii,i,j,n,swap:integer; r:boolean; procedure swp(i:integer; j:integer); var tmp:integer; begin tmp:=s[i]; 27. 四、完善程序(前5空,每空2分,后6空,每空3分,共28分) s[i]:=s[j]; s[j]:=tmp; end; procedure rev(i:integer; j:integer); begin while i

if a=0 then break; a:=a*10; t[i]:=a;

s[i]:=a div b; a:=a mod b;

for j:=0 to i-1 do

if (s[j]=s[i])and(t[j]=t[i]) then begin dec(d); ②; end; if d=0 then break; write(s[i]); ③; end; end; begin

read(a,b);

if (a>b) then g:=gcd(a,b) else ④; a:=a div g; b:=b div g; ⑤;

a:=a mod b; work(a,b); end.

28.题目描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。

每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。

因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。

例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。

输入:输入包括两行,第一行是一个整数n(1<=n<=10000),表示果子的种

类数。第二行包含n个整数,用空格分隔,第i个整数ai(1<=ai<=20000)是第i种果子的数目。

输出:输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于2^31。

program fill2; var

s1,s2:array[0..15000] of longint; s1low,s1hi,s2low,s2hi:integer; r,l,s,x,i,min1,min2:longint; function peeksmall:longint; begin

min1:=1000000000;min2:=1000000000; if s1low<>s1hi then min1:=s1[s1low]; if s2low<>s2hi then min2:=s2[s2low];

if ① then begin peeksmall:=s1[s1low];inc(s1low); end

else begin peeksmall:=s2[s2low];inc(s2low); end; end;

procedure swap(l:integer;r:integer); var tmp:longint; begin

tmp:=s1[r]; s1[r]:=s1[l]; s1[l]:=tmp; end;

procedure sort(low:integer; hi:integer); var l:longint; begin

if low>=hi then ② else x:=s1[(low+hi)div 2]; swap(low,③); l:=low; r:=hi;

while l

while ((l=x)) do dec(r); s1[l]:=s1[r];

while ((l

sort(low,l-1); sort(r+1,hi); end; begin

read(s1hi);

for i:=0 to s1hi-1 do read(s1[i]); sort(0,⑤); s:=0;

for i:=s1hi-1 downto 1 do begin

s2[s2hi]:=peeksmall+⑥; s:=s+s2[s2hi]; inc(s2hi); end;

write(s); end.

本文来源:https://www.bwwdw.com/article/ypda.html

Top