搜索
您的当前位置:首页正文

2012信息学奥林匹克程序设计普及组初赛试卷及答案pascal版

来源:筏尚旅游网
第十八届全国青少年信息学奥林匹克联赛初赛

普及组Pascal语言试题

竞赛时间:2012年10月13日14:30~16:30

选手注意:

● 试题纸共有10页,答题纸共有2页,满分100分。请在答题纸上作答,写在试题纸上 的一律无效。

● 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共20题,每题1.5分,共计30分:每题有且仅有一个正确选项) 1.计算机如果缺少( ),将无法正常启动。

A. 内存 B. 鼠标 C.U盘 D. 摄像头 2.( )是一种先进先出的线性表。

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

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

A.硅 B. 铜 c. 锗 D. 铝 4.十六进制数9A在( )进制下是2 32。

A. 四 B. 八 C. 十 D. 十二 5. ( )不属于操作系统。

A.Windows B.DOS C.PhotoShop D.NOI Linux

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

7.目前个人电脑的( )市场占有率最靠前的厂商包括Intel、AMD等公司。 A. 显示器 B. CPU C. 内存 D. 鼠标

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

5, 4, 3, 2, 1

需要执行( )次交换操作,才能完成冒泡排序。 A.0 B.5 C. 10 D. 15

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

A. 电子管 B. 晶体管 c.集成电路 D.超大规模集成电路

10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被 归入某一层中。如果用现实生活中的例子来比喻这些“层”,以下最恰当的是( )。 A.中国公司的经理与缅甸公司的经理交互商业文件 第4层 中国公司经理 ↑↓ 中国公司经理秘书 ↑↓ 中国公司翻译 ↑↓ 缅甸公司经理 ↑↓ 缅甸公司经理秘书 ↑↓ 缅甸公司翻译 ↑↓ 第3层 第2层 第1层 中国邮递员 ←→ 缅甸邮递员

B.军队发布命令 第4层 司令 ↓ 军长1 ↓ 师长l ↓ 团长1团长2 师长2 ↓ 团长3团长4 师长3 ↓ 军长2 ↓ 师长4 ↓ 第3层 第2层 第l层 团长5 团长6 团长7 团长8

c.国际会议中,每个人都与他国地位对等的人直接进行会谈 第4层 第3层 第2层 第1层 英国女王 英国首相 英国外交大臣 英国驻瑞典大使 ←→ ←→ ←→ ←→ 瑞典国王 瑞典首相 瑞典外交大臣 瑞典驻英国大使

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

第4层 奥运会 ↑ 全运会 ↑ 省运会 ↑ 市运会 第3层 第2层 第1层

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

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

B.用点、直线或者多边形等基于数学方程的几何图元来表示图像 c.每个像素点的颜色信息均用矢量表示

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

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

C. a,c,b,d

D. d,a,b,c

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

A.资源管理器 B.洲览器 c. 电子邮件 D.编译器 14.( )是目前互联网上常用的E-mail服务协议。 A.HTTP B.FTP C.POP3 D.Telnet

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

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

16.地址总线的位数决定了CPU可直接寻址的内存空间大小。例如地址总线为16位,其最 大的可寻址空间为64KB。如果地址总线是32位,则理论上最大可寻址的内存空间为 ( )。

A.128KB B.1MB C.1GB D.4GB 17.蓝牙和Wi-Fi都是( )设备。

A.无线广域网 B. 无线城域网 c. 无线局域网 D. 无线路由器 18.在程序运行过程中,如果递归调用的层数过多,会因为( )引发错误。 A. 系统分配的栈空间溢出 B. 系统分配的堆空间溢出

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

19.原字符串中任意一段连续的字符组成的新字符串称为子串。则字符串“AAABBBCCC”共有( )个不同的非空子串。

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

20.仿生学的问世开辟了独特的科学技术发展道路。人们研究生物体的结构、功能和工作原理,并将这些原理移植于新兴的工程技术之中。以下关于仿生学的叙述,错误的是( )。 A. 由研究蝙蝠,发明雷达 B. 由研究蜘蛛网,发明因特网 c. 由研究海豚,发明声纳 D. 由研究电鱼,发明伏特电池

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

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

2.在NOI期间,主办单位为了欢迎来自全国各地的选手,举行了盛大的晚宴。在第十八 桌,有5名大陆选手和5名港澳选手共同进膳。为了增进交流,他们决定相隔就坐,即每个大陆选手左右相邻的都是港澳选手、每个港澳选手左右相邻的都是大陆选手。那么,这一桌共有_________种不同的就坐方案。注意:如果在两个方案中,每个选手左边相邻的选手均相同,则视为同一个方案。

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

1. Var

a,b,c,d,e,ans:integer; begin

readln(a,b,c); d:=a+b; e:=b+c; ans:=d+e;

writeln(ans); end.

输入:1 2 5 输出: 2. Var

n,i,ans:integer; begin readln(n); ans:=0;

for i:=1 to n do if (n mod i) =0 then ans:=ans+1; writeln(ans); end. 输入:8 输出:

3. var

n,i,j:integer; a:array[1..100,1..100] of integer; function solve(x,y:integer):integer; Var

u,v:integer; begin

if x=n then begin

solve:=a[x,y]; exit;

end;

u:=solve(x+1,y); v:=solve(x+1,y+1); if u>v then

solve:=a[x,y]+u else

solve:=a[x,y]+v; end; begin readln(n); for i:=1 to n do for j:=l to i do read(a[i, j]);

writeln(solve(1,1)); end. 输入: 5

2

-1 4

2 -1 -2 -1 6 4 0 3 2 -1 5 8

输出:

4. var

n,ans,i,j:integer; s:string;

function get(i:integer):char; begin

if i<=n then get:=s[i] else

get:=s[i-n]; end; begin

readln(s); n:=length(s); ans:=1;

for i:= 2 to n do begin

for j:=O to n-1 do

if get(i+j)ans:=i;

break; end

else if get(i+j)>get(ans+j) then break; end;

for j:=0 to n-1 do

write(get(ans+j));

Writeln; end. 输入:CBBADADA 输出:

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

1. (坐标统计)输入n个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即x、y坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)。

Const

SIZE= 100; Var

x,y,f:array[1..SIZE] of integer; n,i,j,max_f,ans:integer; begin

readln(n);

for i:=1 to n do readln(x[i],y[i]); max_f:=0; for i:=1 to n do begin

f[i]:=_______________ ; for j:= 1 to n do

begin

if (x[j]if ______________then begin

max_f:=f[i]; ___________________; end; end;

for i :=1 to n do writeln(f[i]); writeln(ans);

end.

2. (排列数)输入两个正整数n,m(1≤n≤20,1≤m≤n),在l~n中任取m个数,按字典序从小到大输出所有这样的排列。例如 输入:3 2 输出:1 2 1 3 2 1 2 3 3 1

3 2

const

SIZE=25;

Var

used:array[1..SIZE] of boolean; data:array[1..SIZE] of integer; n,m,i,j,k:integer; flag:boolean;

begin

readln(n,m);

fillchar(used,sizeof(used),false); for i:=1 to m do begin

data[i]:=i; used[i]:=true; end;

flag:=true; while flag do begin

for i:=1 to m-1 do write(data[i],’ ’); writeln(data[m]);

flag:= _____________ ; for i:=m downto 1 do begin

_____________;

for j:=data[i]+1 to n do if used[j]=false then begin

used[j]:=true;

data[i]:= ____________________ ; flag:=true; break; end; if flag then begin

for k:=i+1 to m do

for j:=1 to_______________do if used[j] =false then begin

data[k]:=j; used[j] :=true;

break

end; __________ end; end; end; end.

因篇幅问题不能全部显示,请点此查看更多更全内容

Top