2006年全国信息学奥赛初赛普及组(pascal)试题

试题与答案

第十二届全国青少年信息学奥林匹克联赛初赛试题
( 普及组 Pascal 语言 二小时完成 )
● ● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●

一、 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案.)。
1. 在下面各世界顶级的奖项中,为计算机科学与技术领域做出杰出贡献的科学家设立的奖项是( )。
A. 沃尔夫奖 B. 诺贝尔奖 C. 菲尔兹奖 D. 图灵奖
2. 在下列各软件中,不属于NOIP竞赛(复赛)推荐使用的语言环境有( )。
A. gcc/g++ B. Turbo Pascal
C. RHIDE D. free pascal
3. 以下断电之后仍能保存数据的有( )。
A. 寄存器 B. ROM C. RAM D. 高速缓存
4.Linux是一种( )。
A. 绘图软件 B. 程序设计语言 C. 操作系统 D. 网络浏览器
5. CPU是( )的简称。
A. 硬盘 B. 中央处理器 C. 高级程序语言 D. 核心寄存器

6. 在计算机中,防火墙的作用是( )。
A. 防止火灾蔓延 B.防止网络攻击
C. 防止计算机死机 D. 防止使用者误删除数据
7. 在下列关于计算机语言的说法中,不正确的是( )。
A. Pascal和C都是编译执行的高级语言
B. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上
C. C++是历史上的第一个支持面向对象的计算机语言
D. 与汇编语言相比,高级语言程序更容易阅读
8. 在下列关于计算机算法的说法中,不正确的是( )。
A. 一个正确的算法至少要有一个输入
B. 算法的改进,在很大程度上推动了计算机科学与技术的进步
C. 判断一个算法的好坏的主要标准是算法的时间复杂性与空间复杂性
D. 目前仍然存在许多涉及到国计民生的重大课题,还没有找到能够在计算机上实施的有效算法
9. 在下列各种排序算法中,不是以"比较"作为主要操作的算法是( )。
A. 选择排序 B. 冒泡排序 C. 插入排序 D. 基数排序
10.在编程时(使用任一种高级语言,不一定是Pascal),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000的double型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上( )。
A. 没有区别 B. 按行读的方式要高一些
C. 按列读的方式要高一些 D. 取决于数组的存储方式。
11.在Pascal语言中,表达式 (21 xor 2)的值是( )
A. 441 B. 42 C.23 D.24
12.在Pascal语言中,判断a不等于0且b不等于0的正确的条件表达式是( )
A. not a=0 or not b=0 B. not((a=0)and(b=0))
C. not(a=0 and b=0) D. (a<>0)and (b<>0)
13.某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时刻该车站状态为空,从这一时刻开始的出入记录为:"进,出,进,进,进,出,出,进,进,进,出,出"。假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为( )。
A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7
C. 1, 4, 3, 7, 6 D. 1, 4, 3, 7, 2
14.高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为( )。
A. 10 B. 11 C. 12 D. 13
15. 与十进制数1770 对应的八进制数是( )。
A. 3350 B. 3351 C. 3352 D. 3540
16.将5个数的序列排序,不论原先的顺序如何,最少都可以通过( )次比较,完成从小到大的排序。
A. 6 B. 7 C. 8 D. 9
17. 设A=B=D=true,C=false,以下逻辑运算表达式值为真的有( )。
A. (A∧B)∨(C∧D) B. ((A∨B∨D)∧C)
C. A∧(B∨C∨D) D. (A∧B∧C)∨ D
18. (2010)16 + (32)8的结果是( )。
A. (8234)10 B. (202B)16
C. (20056)8 D. (100000000110)2
19. 设栈S的初始状态为空,元素a, b, c, d, e 依次入栈,以下出栈序列不可能出现的有( )。
A. a, b, c, e, d B. b, c, a, e, d
C. a, e, c, b, d D. d, c, e, b, a
20. 已知6个结点的二叉树的先根遍历是1 2 3 4 5 6(数字为结点的编号,以下同),后根遍历是3 2 5 6 4 1,则该二叉树的可能的中根遍历是( )
A. 3 2 1 4 6 5 B. 3 2 1 5 4 6
C. 2 1 3 5 4 6 D. 2 3 1 4 6 5
二.问题求解(共2题,每题5分,共计10分)
1.(寻找假币) 现有80枚硬币,其中有一枚是假币,其重量稍轻,所有真币的重量都相同,如果使用不带砝码的天平称重,最少需要称几次,就可以找出假币?你还要指出第1次的称重方法。请写出你的结果:_________________________________________________。
2.(取石子游戏) 现有5堆石子,石子数依次为3,5,7,19,50,甲乙两人轮流从任一堆中任取(每次只能取自一堆,不能不取), 取最后一颗石子的一方获胜。甲先取,问甲有没有获胜策略(即无论乙怎样取,甲只要不失误,都能获胜)?如果有,甲第一步应该在哪一堆里取多少?请写出你的结果:
_________________________________________________。
三.阅读程序写结果(共4题,每题8分,共计32分)
1. Program ex301;
var
u:array[0..3] of integer;
i,a,b,x,y:integer;
begin
y:=10;
for i:=0 to 3 do
read(u[i]);
a:=(u[0]+u[1]+u[2]+u[3]) div 7;
b:=u[0] div ((u[1]-u[2]) div u[3]);
x:=(u[0]+a+2)-u[(u[3]+3) mod 4];
if (x>10) then
y:=y+(b*100-u[3]) div (u[u[0] mod 3]*5)
else
y:=y+20+(b*100-u[3]) div (u[u[0] mod 3]*5);
writeln (x,',',y);
end. {*注:本例中,给定的输入数据可以避免分母为0或下标越界。 }
输入:9 3 9 4
输出:_______________
2.Program ex302;
const
m:array[0..4] of integer=(2,3,5,7,13);
var
i,j:integer;
t: longint;
begin
for i:=0 to 4 do
begin
t:=1;
for j:=1 to m[i]-1 do
t:=t*2;
t:=(t*2-1)*t;
write (t,' ');
end;
writeln;
end.
输出:____________________
3.Program ex303;
Const
NN=7;
Type
Arr1=array[0..30] of char;
var
s:arr1;
k,p:integer;
Function fun(s:arr1; a:char;n:integer):integer;
var
j:integer;
begin
j:=n;
while (a<s[j])and(j>0) do dec(j);
fun:=j;
end;
begin
for k:=1 to NN do
s[k]:=chr(ord('A')+2*k+1);
k:=fun(s,'M',NN);
writeln(k);
end.
输出:_____________
4.program ex304;
var
x,x2:longint;
procedure digit(n,m:longint);
var n2:integer;
begin
if(m>0) then
begin
n2:=n mod 10;
write(n2:2);
if(m>1) then digit(n div 10,m div 10);
n2:=n mod 10;
write(n2:2);
end;
end;
begin
writeln('Input a number:');
readln(x);
x2:=1;
while(x2<x) do x2:=x2*10;
x2:=x2 div 10;
digit(x,x2);
writeln; 5
end.
输入:9734526
输出:______________________________
四.完善程序 (前4空,每空2.5分,后6空,每空3分,共28分)
1.(全排列)下面程序的功能是利用递归方法生成从1到n(n<10)的n个数的全部可能的排列(不一定按升序输出)。例如,输入3,则应该输出(每行输出5个排列):
123 132 213 231 321
312
程序:
Program ex401;
Var
i,n,k:integer;
a:array[1..10] of integer;
count:longint; {变量count记录不同排列的个数,这里用于控制换行}
Procedure perm(k:integer);
var j,p,t:integer;
begin
if ① then
begin
inc(count);
for p:=1 to k do
write(a[p]:1);
write(' ');
if ( ② ) then writeln;
exit;
end;
for j:=k to n do
begin
t:=a[k]; a[k]:=a[j]; a[j]:=t;
③ ;
t:=a[k]; ④ ;
end
end;
begin
writeln('Entry n:');
read(n);
count:=0;
for i:=1 to n do a[i]:=i;
⑤ ;
end.
2. 由键盘输入一个奇数 P (P<100,000,000),其个位数字不是5,求一个整数 S,使 P×S = 1111...1 ( 在给定的条件下,解 S 必存在)。要求在屏幕上依次输出以下结果:
(1)S 的全部数字。除最后一行外,每行输出 50 位数字。 (2) 乘积的数字位数。
例1:输入p=13,由于13*8547=111111,则应输出(1)8547,(2)6
例2:输入p=147,则输出结果应为(1)755857898715041572184429327286470143613
(2)42,即等式的右端有42个1。
程序:
program ex402;
var
p,a,b,c,t,n:longint;
begin
while (true) do
begin
writeln ('Input p, the last digit is 1 or 3 or 7 or 9:');
readln(p);
if (p mod 2<>0)and(p mod 5<>0) then
⑥ ; {如果输入的数符合要求,结束循环 }
end;
a:=0; n:=0;
while (a<p) do
begin
a:=a*10+1; inc(n);
end;
t:=0;
repeat
b:=a div p;
write(b:1);
inc(t);
if ( ⑦ ) then writeln;
c:= ⑧ ; a:= ⑨ inc(n);
until c<=0;
dec(n);
writeln; writeln('n=', ⑩ );
end.

第十二届全国青少年信息学联赛(普及组)答案http://www.noi.cn/noi/showNews.jsp?newsId=200190000064

普及组(Pascal语言)参考答案与评分标准
一、单项选择题:(每题1.5分)
1. D 2. B 3. B 4. C 5. B 6.B 7. C 8. A 9. D 10. D
11. C 12. D 13. C 14. B 15. C 16. B 17. B 18. A 19. C 20. B
二、问题求解:(每题 5分)
1. 4次 (1分),
第一步:分成3组:27,27,26,将前2组放到天平上(4分)。
2.有获胜策略(1分),,第1次在第5堆中取32颗石子(4分),。
三、阅读程序写结果
1. 10,10 (对1个数给4分,无逗号扣1分)
2. 6 28 496 8128 33550336
(前2个对1个数给1分,后3个对1个数给2分)
3. 5
4. 6 2 5 4 3 7 9 9 7 3 4 5 2 6(数字之间无空格扣2分)
四、完善程序(前4空(①--④),每空2.5分,后6空(⑤--⑩),每空3分)
1.① k=n (或n=k)
② count mod 5=0
③ perm(k+1)
④ a[k]:=a[j];a[j]:=t
⑤ perm(1)
2.⑥ break
⑦ t mod 50=0
⑧ a-p*b(或a-b*p)
⑨ c*10+1 (或10*c+1)
⑩ n
温馨提示:内容为网友见解,仅供参考
无其他回答

2006年的全国青少年信息学奥赛试题(1)PASCAL语言
全部答案,普及组(Pascal语言)参考答案与评分标准 一、单项选择题:(每题1.5分)1. D 2. B 3. B 4. C 5. B 6.B 7. C 8. A 9. D 10. D 11. C 12. D 13. C 14. B 15. C 16. B 17. B 18. A 19. C 20. B 二、问题求解:(每题 5分)1. 4次 (1分),...

2006年全国信息学奥赛初赛普及组(pascal)试题
取决于数组的存储方式。 11.在Pascal语言中,表达式 (21 xor 2)的值是( ) A. 441 B. 42 C.23 D.24 12.在Pascal语言中,判断a不等于0且b不等于0的正确的条件表达式是( ) A. not a=0 or not b=0 B. not((a=0)and(b=0)) C. not(a=0 and b=0) D. (a<>0)and (b<>0) 13.某个...

信息学奥赛pascal习题
1-4这些都是分段函数,对于每一段的X有不同的Y与他对应 你只要对输入的X进行判断,然后用相应的公式求出Y然后输出就可以了 5判断任意两边之和是否大于第三边 6是排序,把输入的3位数从大到小排完得到的就是最大的3位数

信息学奥赛初赛近几年的题(pascal)
1.LZW编码是一种自适应词典编码。在编码的过程中,开始时只有一部基础构造元素的编码词典,如果在编码的过程中遇到一个新的词条,则该词条及一个新的编码会被追加到词典中,并用于后继信息的编码。 举例说明,考虑一个待编码的信息串:“xyx yy yy xyx”。初始词典只有3个条目,第一个为x,编码为1;第二个为y,编...

初中信息学奥赛
2004年:初赛:BASIC、PASCAL或C\/C++:复赛:PASCAL或C\/C++。2005年及之后:初赛:PASCAL或C\/C++: 复赛:PASCAL或C\/C++。每次联赛的试题分四组:普及组初赛题A1、普及组复赛题A2、提高组初赛题B1和提高组复赛题B2。其中,A1和B1类型相同,A2和B2类型相同,但题目不完全相同,提高组难度高于普及组。...

全国青少年信息学奥林匹克联赛竞赛形式
全国青少年信息学奥林匹克联赛采用分年龄组的比赛模式,分为初中组和高中组(包括普及组和提高组)。比赛分为两轮:初试和复试。初试以笔试形式进行,主要考察计算机基础知识、编程基础能力以及知识面的广度。参与者需使用Basic(自2005年起取消)、C\/C++或Pascal等语言。每个省份的初试成绩排名前15%的学生...

信息学奥林匹克竞赛考什么
全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP)。初赛在每年的10月,复赛在每年的11月。省级联赛分为两个级别:普及组和提高组。青少年信息学(计算机)奥林匹克竞赛(早期称为青少年计算机程序设计竞赛)是指在广大青少年中普及计算机教育,推广计算机应用的一项学科...

学信息学奥赛pascal语言求推荐辅导书!山东的。
首先学基础语法的话,可以用《青少年信息学奥林匹克竞赛培训教材 pascal语言》。然后到学简单算法以及数据结构可以用同一套的《青少年信息学奥林匹克竞赛培训教材 数据结构与算法设计--pascal语言》。如果前两本书都搞定了,那么推荐学《青少年信息学奥林匹克竞赛实战辅导丛书 高级数据结构》(大部分都是...

小学生信息学奥赛考什么
信息学奥赛考的是pascal或者c,c++,初赛考一些基础知识是笔试,复赛上机,4道题,一道100分。信息学奥林匹克竞赛旨在推动计算机普及的学科竞赛活动,重在培养学生能力,使得有潜质有才华的学生在竞赛活动中锻炼和发展。全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP)...

参加信息学奥赛pascal语言用什么编译器?
去年开始测试统一用lazarus编译。但是选手可以用free pascal 1.0.10写代码调试。这些都是英文版的。信息学竞赛 也不需要中文,除了试题是中文的。

相似回答
大家正在搜