普及组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) 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] 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. 因篇幅问题不能全部显示,请点此查看更多更全内容