2007-2011年noip初赛提高组试题及答案
更新时间:2023-05-13 07:35:01 阅读量: 实用文档 文档下载
第十七届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 Pascal语言 两小时完成 )
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一、单项选择题(共20题,每题1.5分。共计30分。每题有且仅有一个正确选项。) 1.在二进制下,1100011 +( )= 1110000。 A.1011
B.1101
C.1010
D.1111
2.字符“A”的ASCII码为十六进制41,则字符“Z”的ASCII码为十六进制的( )。 A.66
B.5A
C.50
D.视具体的计算机而定
3.右图是一棵二叉树,它的先序遍历是( )。
A.ABDEFC B.DBEFAC C.DFEBCA D.ABCDEF 4.寄存器是( )的重要组成部分。 A.硬盘 B.高速缓存 C.内存
D.中央处理器(CPU)
5.广度优先搜索时,需要用到的数据结构是( )。 A.链表 B.队列
C.栈
D.散列表
6.在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指( )。 A.程序运行时理论上所占的内存空间 B.程序运行时理论上所占的数组空间 C.程序运行时理论上所占的硬盘空间 D.程序源文件理论上所占的硬盘空间
7.应用快速排序的分治思想,可以实现一个求第K大数的程序。假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为( )。 A.O(n2)B.O(n log n)C.O(n)
D.O(1)
8.为解决Web应用中的不兼容问题,保障信息的顺利流通,( )制定了一系列标准,涉及HTML、XML、CSS等,并建议开发者遵循。
A.微软 B.美国计算机协会(ACM) C.联台国教科文组织 D.万维网联盟(W3C)
9.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于( )算法。
A.快速排序 B.插入排序 C.冒泡排序
D.归并排序
10.1956年( )授予肖克利(William Shockley)、巴丁(John Bardeen)和布拉顿(Walter Brattain),以表彰他们对半导体的研究和晶体管效应的发现。 A.诺贝尔物理学奖 B.约翰 冯 诺依曼奖 C.图灵奖
D.高德纳奖(Donald E.Knuth Prize)
二、不定项选择题(共10题,每题1.5分,共计15分。每题有一个或多个正确选项。多选或少选均不得分。)
1.如果根结点的深度记为1,则一棵恰有2011个叶子结点的二叉树的深度可能是( )。 A.10
B.11
C.12
D.2011
2.在布尔逻辑中,逻辑“或”的性质有( )。 A.交换律:P V Q = Q V P
B.结台律:P V ( Q V R ) = ( P V Q ) V R C.幂等律:P V P = P
D.有界律:P V 1 = 1 (1表示逻辑真)
3.一个正整数在十六进制下有100位,则它在二进制下可能有( )位。 A.399
B.400
C.401
D.404
4.汇编语言( )。
A.是一种与具体硬件无关的程序设计语言
B.在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试 C.可以直接访问寄存器、内存单元、I/O端口
D.随着高级语言的诞生,如今已完全被淘汰,不再使用
5.现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。那么,“也”字的编码长度可能是( )。 A.1
B.2
C.3
D.4
6.生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。目前,指纹识别、虹膜识别、人脸识别等技术己广泛应用于政府、银行、安全防卫等领域。以下属于生物特征
识别技术及其应用的是( )。 A.指静脉验证
B.步态验证
C.ATM机密码验证 D.声音验证
7.对于序列“7、5、1、9、3、6、8、4”,在不改变顺序的情况下,去掉( )会使逆序对的个数减少3。 A.7
B.5
C.3
D.6
8.计算机中的数值信息分为整数和实数(浮点数)。实数之所以能表示很大或者很小的数,是由于使用了( )。 A.阶码
B.补码
C.反码
D.较长的尾数
9.对右图使用Dijkstra算法计算S点到其余各点的最短路径 长度时,到B点的距离d[B]初始时赋为8,在算法的执行过程 中还会出现的值有( )。 A.3
B.7
C.6
D.5
10.为计算机网络中进行数据交换而建立的规则、标准或约定的集合成为网络协议。下列英文缩写中,( )是网络协议。 A.HTTP
B.TCP/IP
C.FTP
D.WWW
三、问题求解(共2题,每题5分,共计10分)
1.平面图是可以画在在平面上,且它的边仅在顶点上才能相交的简单 无向图。4个顶点的平面图至多有6条边,如右图所示。那么,5个顶 点的平面图至多有______条边。
2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串”BcA”,可以将A移到B之前,变成字符串”ABC”。如果要将字符串”DACHEBGIF”变成”ABCDEFGHI”,最少需要________次操作。 四、阅读程序写结果(共4题,每题8分,共计32分)
1. Const
SIZE = 100; var
n, i, sum, x : integer;
a : array[1..SIZE] of integer; begin
readln(n);
fillchar(a, sizeof(a), 0); for i:= 1 to n do begin read(x); inc(a[x]); end;
i := 0; sum := 0;
while sum < (n div 2 + 1) do begin inc(i);
sum :=sum + a[i]; end;
writeln(i); end. 输入: 11
4 5 6 6 4 3 3 2 3 2 1 输出: 2. var
n : integer;
procedure f2(x, y : integer); forward;
procedure f1(x, y : integer); begin
if x < n then f2(y, x + y); end;
procedure f2(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] of boolean; e : array[1..V, 1..V] of integer; n, m, ans, i, j, a, b, c : integer;
procedure dfs(x, len : integer); var
I : integer; begin
visited[x] := true; if len > ans then ans := len;
for i := 1 to n do
if (not visited[i]) and (e[x, i] <> -1) then dfs(i, len + e[x, i]);
visited[x] := false; end; begin
readln(n, m); for i := 1 to n do for j := 1 to n do e[i][j] := -1; for i := 1 to m do begin
readln(a, b, c); e[a][b] := c; e[b][a] := c; end;
for i := 1 to n do visited[i] := false; ans := 0;
for i := 1 to n do dfs(i, 0); writeln(ans); end. 输入: 4 6 1 2 10 2 3 20 3 4 30 4 1 40 1 3 50 2 4 60
输出:__________ 4. const
SIZE = 10000; LENGTH = 10;
var
sum : longint;
n, m, i, j : integer;
a : array[1..SIZE, 1..LENGTH] of integer;
function h(u, v : integer) : integer; var
ans, i : integer; begin ans := 0;
for i := 1 to n do
if a[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); if i > n then break; inc(m); a[m][i] :=1;
for j := i + 1 to n do a[m][j] := a[m - 1][j]; until false; sum :=0;
for i := 1 to m do for j := 1 to m do sum := sum + h(i, j);
writeln(sum);
end. 输入:7
输出:____________
五、完善程序(第1题,每空2分,第2题,每空3分,共计28分)
1. (大整数开方)输入一个正整数n(1≤n<10100),试用二分法计算它的平方根的整数部分。 const
SIZE = 200; type
hugeint = record
len : integer;
num : array[1..SIZE] of integer; end;
//len表示大整数的位数;num[1]表示个位、num[2]表示十位,以此类推 var
s : string; i : integer;
target, left, middle, right : hugeint;
function times(a, b : hugeint) : hugeint: var
i, j : integer; ans : hugeint; begin
filIchar(ans, sizeof(ans), 0); for i := 1 to a.1en do for j := 1 to b.1en do
___①___ := ans.num[i + j — 1] + a.num[i] * b.num[j]; for i := 1 to a.len + b.1en do begin
ans.num[i + 1] := ans.num[i + 1] + ans.num[i] div 10; ___②___;
if ans.num[a.1en + b.1en] > 0 then ans.len := a.1en + b.1en else ans.len :=a.1en + b.1en – 1; end;
times := ans; end;
function add(a, b : hugeint) : hugeint; var
i : integer; ans : hugeint; begin
fillchar(ans.num, sizeof(ans.num), 0); if a.1en > b.1en
then ans.len := a.1en else ans.len := b.len; for i := 1 to ans.1en do begin
ans.num[i] :=___③___;
ans.num[i + 1] := ans.num[i + 1] + ans.num[i] div 10; ans.num[i] := ans.num[i] mod 10; end;
if ans.num[ans.1en + 1] > 0 then inc(ans.len); add:=ans; end;
function average(a, b : hugeint) : hugeint; var
i : integer; ans : hugeint; begin
ans := add(a, b);
for i := ans.1en downto 2 do begin
ans.num[i - 1] := ans.num[i - 1] + (___④___) * 10;
end;
if ans.num[ans.len] = 0 then dec(ans.len); average := ans; end;
function plustwo(a : hugeint) : hugeint; var
i : integer; ans : hugeint; begin ans := a;
ans.num[1] := ans.num[1] + 2; i := 1;
while(i <= ans.len) and (ans.num[i] >= 10) do begin
ans.num[i + 1] := ans.num[i + 1] + ans.num[i] div 10; ans.num[i] := ans.num[i] mod 10; inc(i); end;
if ans.num[ans.len + 1] > 0 then___⑤___; plustwo := ans; end;
function over(a, b : hugeint) : boolean; var
i : integer; begin
if(___⑥___)then begin
over := false; exit; end;
if a.1en > b.1en then begin
over := true; exit;
for i := a.len downto 1 do begin
if a.num[i] < b.num[i] then begin
over := false; exit; end;
if a.num[i] > b.num[i] then begin
over := true; exit; end; end;
over := false; end;’ begin
readln(s);
fillchar(target.num, sizeof(target.num), 0); target.1en := 1ength(s); for i := 1 to target.1en do
target.num[i] := ord(s[target.1en – i + 1]) - ___filichar(left.num, sizeof(1eft.num), 0); left.1en := 1; left.num[i] := 1; right := target; repeat
middle := average(1eft, right); if over(___⑧___) then right := middle else 1eft := middle;
until over(plustwo(1eft), right); for i := left.1en downto 1 do
write(1eft.num[i]); writeln;
⑦___;
end.
2. (笛卡尔树)对于一个给定的两两不等的正整数序列,笛卡尔树是这样的一棵二叉树:首先,它是一个最小堆,即除了根结点外,每个结点的权值都大于父节点的权值;其次,它的中序遍历恰好就是给定的序列。例如,对于序列7、2、12、1、10、5、15、3,下图就是一棵对应的笛卡尔树。现输入序列的规模n(1≤n<100)和序列的n个元素,试求其对应的笛号尔树的深度d(根节点深度为1),以及有多少个叶节点的深度为d。 const
SIZE = 100;
INFINITY = 1000000; var
n, maxDeep, num, i : integer; a : array[1..SIZE] of integer;
procedure solve(1eft, right, deep : integer); var
i, j, min : integer; begin
if deep > maxDeep then begin
maxDeep := deep; num := 1; end
else if deep = maxDeep then ___①___;
min := INFINITY;
for i := 1eft to right do if min > a[i] then begin
min := a[i]; ___②___; end;
if left < j then ___③
___;
if j < right then
___④___; end; begin
readln(n);
for i := 1 to n do read(a[i]); maxDeep := 0; solve(1, n, 1);
writeln(maxDeep, end.
’, num); ‘
第十六届(2010年)全国青少年信息学奥林匹克联赛初赛
试题
( 提高组 Pascal语言 二小时完成 )
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一、单项选择题
1.与16进制数 A1.2等值的10进制数是 ( )A.101.2
D.177.25
A.8
B.16
C.32
D.以上都有
B.111.4
C.161.125
2.一个字节(byte)由( )个二进制组成。 可能
3.以下逻辑表达式的值恒为真的是( )。 A.P∨(┓P∧Q)∨(┓P∧┓Q) C.P∨Q∨(P∧┓Q)∨(┓P∧Q)
B.Q∨(┓P∧Q)∨(P∧┓Q) D.P∨┓Q∨(P∧┓Q)∨(┓P∧┓Q)
B. com
C. dll
D.
4.Linux下可执行文件的默认扩展名是( )。 A. exe 以上都不是
5.如果在某个进制下等式7*7=41成立,那么在该进制下等式12*12=( )也成立。 A. 100
B. 144
C. 164
D. 196
6.提出“存储程序”的计算机工作原理的是( )。 A. 克劳德 香农 B.戈登 摩尔
C.查尔斯 巴比奇
D.冯 诺依曼
B. 25
C. 37
7.前缀表达式“+ 3 * 2 + 5 12 ” 的值是( )。A. 23
D. 65
8.主存储器的存取速度比中央处理器(CPU)的工作速度慢的多,从而使得后者的效率受到影响。而根据局部性原理,CPU所访问的存储单元通常都趋于一个较小的连续区域中。于是,为了提高系统整体的执行效率,在CPU中引入了( )。A.寄存器
D.外存
B.高速缓存
C.闪存
9.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的( )号位置。 A. 2k (k+1)/2
10.以下竞赛活动中历史最悠久的是( )。A. NOIP 二、不定项选择题
1.元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。如果第1个出栈的是R3,那么第5个出栈的可能是( )。A.R1 B.R2 C.R4 D.R5
2. Pascal语言,C语言和C++语言都属于( )。A.高级语言 B.自然语言 C.解释性语言 D.编译性语言
B.NOI
C. IOI D. APIO
B. 2k+1
C. k/2下取整
D.
正在阅读:
员工聘用合同范本4篇_合同范本03-24
装修合同范本-装修合同范本(简单版)08-01
北京建委租房合同范本-合同范本模板03-12
全国校级联考Word版河南省滑县2017-2018学年高二下学期期末考试03-20
人教版语文 八年级上册 第一单元4 _就英法联军远征中国给巴特勒上尉的信 教案307-28
2009年第九届浏阳国际花炮灯谜节“中国移动G3杯”国际灯谜创作大赛获奖佳谜及敖耀寰评析摘录07-23
湘江水资源问题的现状和保护 - 图文06-14
西师大版二年级语文上册期末测试题02-28
焦油深加工基本方法简介08-06
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 初赛
- 试题
- 答案
- 提高
- 2007
- 2011
- noip
- 尿毒症患者自体动静脉内瘘43例临床护理
- 平方根与立方根及实数
- 内蒙古包头市、乌兰察布市2014年中考数学真题试题(含解析)
- 教材订购情况表题目要求
- 盘点中国烤鸭易犯的15个雅思口语错误
- 醇基液体燃料使用安全管理规定
- 蘑菇和其他食用菌罐头项目可行性研究报告方案(可用于发改委立项及银行贷款+2013详细案例范文)
- 买笔记本电脑的建议
- 公司员工安全守则
- 跨国公司对中国经济的双重影响
- 广场舞主持词及串词
- 2011年企业文化活动方案
- 2009年老旧汽车报废更新补贴资金发放范围及标准
- 2014春节期间消防安全应急预案
- 浅析《傲慢与偏见》中四种不同的婚姻类型
- 统计过程控制与诊断:第3讲 控制图的判断准则
- 从_论十大关系_看毛泽东的经济生态思想
- 中山一中2011-2012学年高一第一次段考(语文)
- 2016考研 哈尔滨工业大学计算机科学与技术学院
- 浅谈医疗IT隔离电源供电系统