2008年信息学奥林匹克竞赛第十四届信息学奥林匹克竞赛阜阳赛区C语言测试答案?

仅在p语言中

第14届全国信息学奥林匹克竞赛省预赛试题。

(提高小组的Pascal语言两个小时)

●●●所有试题的答案都要求写在答题卡上,无效●●

a、单项选择题(* * 10题,每题1.5分,* * 15分。每个问题有且只有一个正确答案)。

1.下列各项中,()不是操作系统软件。

A.Solaris B . Linux C . Sybase D . Windows Vista E . Symbian

2.在微型计算机中,控制器的基本功能是()。

A.控制机器各部分协调工作。b .实现算术运算和逻辑运算。c .存储各种控制信息。

D.访问外部信息,例如存储程序和数据

3.设字符串S =“Olympic”,S的非空字符串个数为()。

C.16 D.17 E.7

4.如果一棵完全二叉树有2*N-1个节点,则其叶节点数为()。

A.N-1 b . 2 * N C . N d . 2n-1 E . N/2

5.将数组{8,23,4,16,77,-5,53,100}中的元素由大到小排序,一次交换任意两个元素,至少交换()次。

a4 b . 5 c . 6d . 7 e . 8

6.假设堆栈S的初始状态为空,元素A、B、C、D、E、F依次放入堆栈,弹出的顺序为B、D、C、F、E、A,那么堆栈容量至少应为()。

A.6 B.5 C.4 D.3 E.2

7.等于十进制数28.5625的四进制数是()。

a . 123.21 b . 131.22 c . 130.22d . 130.21 e . 130.20

8.递归过程和函数调用通常使用一个名为()的数据结构来处理参数和返回地址。

A.队列b .多维数组c .线性表d .链表e .栈

9.TCP/IP是一组网络协议,它们构成了互联网的基础,从字面上看,互联网包括两组协议:传输控制协议(TCP)和互联网协议(IP)。TCP/IP协议将Internet网络系统描述为具有四层功能的网络模型,其中()提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择。

A.链路层b .网络层c .传输层d .应用层e .会话层

10.在有序数组{5,13,19,21,37,56,64,75,88,92,100}上做二分搜索法,在等概率下成功找到平均搜索长度。

a . 35/11 b . 34/11 c . 33/11d . 32/11 e . 34/10

二、不定选择题(* * 10题,每题1.5分,* * * 15分。每个问题的正确答案数大于或等于1。选多选少都不计分)。

11.下列关于图灵的说法正确的是()。

美国计算机协会在1966设立了一个图灵奖,专门用来鼓励那些对计算机做出重要贡献的个人。

B.图灵奖被称为“计算机科学的诺贝尔奖”。

c到目前为止,还没有中国计算机科学家获此殊荣。

图灵奖的名字取自计算机科学先驱、英国科学家艾伦。图灵

12.如果电脑在工作过程中突然断电,()中的信息不会丢失。

A.硬盘B. CPU C. ROM D. RAM

13.如果A =真,B =假,C =真,D =假,下面的逻辑运算表达式真的有()。

A.(A∧B)V(C∧DV?A) B .((?A∧B)VC)∧?B

C.(BVCVD)VD∧A D.A∧(DV?C)∧B

14.Web2.0是近年来互联网上的热门概念之一,其核心是互动和分享。以下网站中,()是Web2.0的典型应用。

A.新浪,Flickr,雅虎,谷歌

15.(2008) 10+(5b) 16的结果是()。

A.(833)16 b .(2099)10 c .(4063)8d .(100001000111)2

16.二叉树T,给定其前件遍历为1 2 4 3 5 7 6(数字为节点号,下同),后件遍历为4 2 7 5 6 3 1,则二叉树的根遍历为()。

a . 4 2 1 7 5 3 6 b . 2 4 1 7 5 3 6 c . 4 2 1 7 5 6 4d . 2 4 1 5 7 3 6

17.面向对象编程是一种编程方法论,它以对象为编程的基本单位,将数据和程序封装在对象中,以提高软件的可重用性、灵活性和可扩展性。下列关于面向对象编程的说法正确的是()。

A.面向对象的编程方法通常采用自顶向下的设计方法。

B.面向对象编程方法具有继承性、封装性和多态性等特点。

C.支持面向对象特性的称为面向对象编程语言。目前比较流行的语言有C++、JAVA、C#等。

D.面向对象编程的原型来自于Simula语言,后来在SmallTalk语言完善和标准化的过程中,又进行了扩展和重新注释。时至今日,SmallTalk语言仍被视为面向对象的基础。

18.设T是有n个不动点的树,下列说法正确的是()。

A.t连通,无环b.t连通,n-1边。

C.t是非循环的,有n-1条边。以上都不是真的。

19的推荐语言环境。NoIP竞赛是()。

A.dev-c++ B . Visual c++ C . Free Pascal D . Lazarus

20.下列关于防火墙的说法中,正确的是()。

A.防火墙是一种帮助确保信息安全的设备。它将根据特定的规则允许或限制数据的通过。

防火墙可以是专用硬件,也可以是安装在通用硬件上的一套软件。

C.网络层防火墙可以看作是一个IP包过滤,只允许符合特定要求的数据包通过,其余的都禁止通过防火墙。

d应用层防火墙工作在TCP/IP的“应用层”,可以拦截进出一个应用的所有数据包。

三、解题(***2题,每题5分,* * * 10分)

1.有6个城市,任意两个城市由一条路连接。两个城市的距离如下表所示,所以城市1到城市6的最短距离是_ _ _ _ _ _ _ _ _。

城市1城市2城市3城市4城市5城市6

城市102311215

城市2 2 0 2 5 3 12

城市3 3 2 0 3 6 5

城市4 1 5 3 0 7 9

城市5 12 3 6 7 0 2

城市6 15 12 5 9 2 0

2.书架上有21本书,编号从1到21不等。其中,有_ _ _ _ _ _ _ _ _ _ _。

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

1.var

I,a,b,c,d:整数;

f:数组[0..3]的整数;

开始

对于i:=0到3做什么

读作(f[I]);

a:= f[0]+f[1]+f[2]+f[3];

a:= a div f[0];

b:= f[0]+f[2]+f[3];

c:=(b * f[1]+a)div f[2];

d:= f[(b div c)mod 4];

if(f[(a+b+c+d)mod 4]>;f[2])那么

开始

a:= a+b;

书面记录(a)

结束

其他

开始

c:= c+d;

writeln(c);

结束;

结束。

输入:9 19 29 39

输出:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2 .过程foo(a,b,c:整数);

开始

如果a & gtb然后foo(c,a,b)

其他

writeln(a,',b,',c)

结束;

var a,b,c:整数;

开始

readln(a,b,c);

foo(a,b,c);

结束。

输入:2 1 3

输出:_ _ _ _ _ _ _ _ _ _ _ _ _ _

3 .过程f(a,b,c:整数);

开始

写(a,b,c,'/');

如果(a=3)和(b=2)和(c=1)则退出;

if(b & lt;c)然后f(a,c,b)

其他

如果a & ltb那么

如果a & ltc则f(c,a,b) else f(b,c,a);

结束;

var a,b,c:整数;

开始

readln(a,b,c);

f(a,b,c);

结束。

输入:1 3 2

输出:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.var

s:字符串;

I,j,len,k:整数;

开始

readln(s);

len:=长度(s);

for i:=1到len do

if(order(s[I])& gt;=ord('A '))和(ord(s[I])& lt;=ord('Z '))那么

s:= chr(ord(s[I])-ord(' A ')+ord(' A ');

for i:=1到len do

if(ord(s[I])& lt;order(' X '))那么s:= chr(order(s[I])+3)

其他

s:= chr(ord(s[I])-23);

写;

写('/');

对于j:=1到3 do

开始

I:= 1;

而我& lt=len-j do

开始

s[I]:= s[I+j];

I:= I+j;

结束;

结束;

书写内容;

结束。

输入:ABCDEFGuvwxyz

输出:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

5.改进程序(前6个空格3分,后5个空格2分,* * * 28分)。

1.(求第k个最大的数)给定一个长度为100000的无序正整数序列,另一个数n (1

Var a:array[1..1000000]的整数;

n,m,ans:整数;

过程交换(var a,b:整数);

var t:整数;

开始

如果(a & lt& gtb)然后开始

t:= a;a:= b;b:= t;

结束;

结束;

函数FindKth(left,right,n:integer):integer;

Var tmp,value,I,j:整数;

开始

如果left=right那么exit(left);

tmp:=random(右-左)+左;

swap(a[tmp],a[left]);

值:=____①_____

我:=左;j:=对;

而我& ltj do

开始

while(我& ltj)和(_ _ _ _ _ _ _ _②_ _ _ _ _ _ _ _)做dec(j);

如果我& lt那就开始吧

a:= a[j];inc(一);

结束else break

while(我& ltj)和(_ _ _③_ _)do Inc(I);

如果我& lt那就开始吧

a[j]:= a[I];第十届会议;

结束else break

结束;

____④_____

如果我& ltn然后开始公司(I);exit(FindKth(_ _ _ _ _ _ _⑤_ _ _ _ _);结束;

如果我& gtn然后开始dec(j);退出(_ _ _ _ _ _ _⑥_ _ _ _ _ _ _ _);结束;

退出(一);

结束;

var i:整数;

开始

随机化;

ans:=-1;

m:= 5;

对于i:=1到m do

读(a[I]);

读作(n);

ans:=FindKth(1,m,n);

writeln(a[ans]);

结束。

2.(矩阵中的数)有一个n*n(1≤n≤5000)的矩阵A,对于1 ≤ I < n,1≤j≤n,a[i,j]& lt;a[i+1,j] a[j,I]& lt;a[j,i+1].即矩阵中两个相邻的元素,右边的元素一定比左边的大。对于两个相邻的元素,下面的元素必须大于上面的元素。给定矩阵A中的一个数K,找出K所在的行和列(注意:输入的数据保证矩阵中的数是不同的)。

定义变量

n,k,answerx,answery:整数;

答:数组[1..5000,1..5000]的整数;

过程查找位置;

Var I,j:整数;

开始

I:= n;j:= n;

而j & gt0开始吧

如果a[n,j]& lt;k然后破;

第十届会议;

结束;

______①_________

而a[i,j]& lt;& gtk do

开始

while (___②_____)和(i & gt1)做dec(一);

while (___③_____)和(j & lt= n)do Inc(j);

结束;

_______④________

_______⑤________

结束;

var i,j:整数;

开始

读作(n);

对于i:=1到n do

对于j:=1到n do

read(a[i,j]);

读(k);

FindKPosition

writeln(answerx,' ',answery);

结束。NOIP2008改进小组(Pascal语言)参考答案和评分标准

1.选择题:(65438+每题0.5分)

1.C 2。A 3。B 4。C 5。B

6.D 7。D 8。E 9。B 10。C

二、不定选择题(* * 10题,每题1.5分,* * * 15分。每个问题的正确答案数大于或等于1。选多选少都不计分)。

11.ABD 12。AC 13。公元前14年。B 15。美国广播公司

16.ABD 17。BCD 18。ABC 19。ACD 20。AcceleratedBusinessCollectionandDelivery(美国邮局采用的)加快收寄投递系统

三、解题:(***2题,每题5分,* * * 10分)

1.7

2.3060

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

1.23(信心问题)

2.1,3,2(简单递归)

3.132/213/231/312/321/(全部安排)

4.defghijxyzabc/hfizxjaybcccc(字符串替换)

5.改进程序(前6个空格3分,后5个空格2分,* * * 28分)。

(注意:在下面的过程中可能有一些等价的填空方法。各省可以请自己的专家在电脑上审核,不一定要报科委审核。)

1.①a[左]

②a[j]& lt;值(或a [j] < =值)

③a[I]& gt;值(或a[i] > =值)

④ a[i] :=值;

⑤我,右,n

⑥ FindKth(左,I,n)

2.①Inc(j);(或者j:= j+1;)

② a[i,j]& gt;k

③ a[i,j]& lt;k

④answerx:= I;

⑤answery:= j;