2004年第十届全国信息学分区联赛初赛试题(普及组)
第十届全国青少年信息学奥林匹克联赛初赛试题
(普及组 Pascal语言 二小时完成)
一、选择一个正确答案代码( A/B/C/D/E )填入每题的挂号内
1 .美籍匈牙利数学家 冯•诺依曼 对计算机科学发展所做出的贡献是:( )
A 、提出理想计算机数学模型,成为计算机科学理论基础
B 、是世界上第一个编写计算机程序的人
C 、提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机 EDVAC
D 、采用集成电路作为计算机的主要功能部件
E 、指出计算机性能将以每两年翻一番的速度向前发展
2 .下列哪个不是 CPU (中央处理单元)( )
A 、 Intel Itanium B 、 DDR SDRAM C 、 AMD Athlon64 D 、 AMD Opteron E 、 IBM Power 5
3 、下列网络中常用的名字缩写对应的中文解释错误的是( )
A 、 WWW(World Wide Web) :万维网
B 、 URL ( Uinform Resource Locator ):统一资源定位器
C 、 HTTP ( Hypertext Transfer Protocol ):超文本传输协议
D 、 FTP (File Transfer Protocol) :快速传输协议
E 、 TCP ( Transfer Control Protocol ):传输控制协议
4 、下面哪个部件对于个人桌面电脑的正常运行不是必需的( )
A 、 cpu B 、显卡(图形卡) C 、光驱 D 、主板 E 、内存
5 、下列哪个软件属于操作系统软件( )
A 、 Microsoft Word B 、金山词霸 C 、 Foxmail D 、 WinRAR E 、 Red Hat Linux
6 、下列哪个不是计算机存储设备( )、
A 、文件管理器 B 、内存 C 、高速缓存 D 、硬盘 E 、 U 盘
7 、下列说法中错误的是( )
A 、 CPU 的基本功能就是执行指令
B 、 CPU 访问内存的速度快于访问高速缓存的速度
C 、 CPU 的主频是指 CPU 在 1 秒内完成的指令周期数
D 、在一台计算机内部,一个内存地址编码对应唯一的一个内存单元
E 、数据中线的宽度决定了一次传递数据量的大小
8 、彩色显示器所显示的五彩斑斓的色彩,是由红色,蓝色和( )色混合而成的
A 、紫色 B 、白色 C 、黑色 D 、绿色 E 、橙色
9 、用静电吸附磨粉后转移到纸张上,是那种输出设备的工作方式( )
A 、针式打印机 B 、喷墨打印机 C 、激光打印机 D 、笔式绘图仪 E 、喷墨绘图仪
10 、一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行互相转换的设备,这种设备是( )
A 、调制解调器 B 、路由器 C 、网卡 D 、网关 E 、网桥
11 、下列哪个不是数据库软件的名称( )
A 、 MYSQL B 、 SQL Sever C 、 Oracle D 、金山影霸 E 、 Foxpro
12 、下列哪个程序设计语言不支持面向对象的程序设计方法( )
A 、 C++ B 、 Object Pascal C 、 C D 、 Smalltalk E 、 Java
13 、由 3 个 a , 1 个 b 和 2 个 c 构成的所有字符串中,包含子串“ abc ”的共有( )个
A 、 20 B 、 8 C 、 16 D 、 12 E 、 24
14 、某车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时该车站站台为空,从这一时刻开始出入记录为:“进出进进出进进进出出进出”。假设车辆入站的顺序为 1,2,3 ……,则车辆出站的顺序为( )
A 、 1 , 2 , 3 , 4 , 5
B 、 1 , 2 , 4 , 5 , 7
C 、 1 , 3 , 5 , 4 , 6
D 、 1 , 3 , 5 , 6 , 7
E 、 1 , 3 , 6 , 5 , 7
15 、二叉树 T ,已知其前序遍历序列为 1 2 4 3 5 7 6 ,中序遍历序列为 4 2 1 5 7 3 6 ,其后序遍历序列为
A 、 4 2 5 7 6 3 1
B 、 4 2 7 5 6 3 1
C 、 4 2 7 5 3 6 1
D 、 4 7 2 3 5 6 1
E 、 4 5 2 6 3 7 1
16 、满二叉树的叶节点为 N ,则它的节点总数为( )
A 、 N B 、 2N C 、 2N-1 D 、 2N+1 E 、 2^N-1
17 、十进制 2004 等于八进制数( )
A 、 3077 B 、 3724 C 、 2766 D 、 4002 E 、 3755
18 、( 2004 ) 10 + ( 32 ) 16 的结果是( )
A 、 ( 2036 ) 10
B 、 ( 2054 ) 16
C 、 ( 4006 ) 10
D 、 ( 100000000110 ) 2
E 、 ( 2036 ) 16
19 、在下图,从端点( )出发存在一条路径可以遍历图中的每条边一次,而且仅遍历一次
20 、某大学计算机专业的必修课及期先修课程如下表所示:
课程
代号 C0 C1 C2 C3 C4 C5 C6 C7
课程
名称 高等
数学 程序
设计
语言 离散
数学 数据
结构 编译
技术 操作
系统 普通
物理 计算
机原
理
先修
课程 C0,C1 C1,C2 C3 C3,C7 C0 C6
请判断下列课程安排哪个是不合理的( )
A 、 C0,C6,C7,C1,C2,C3,C4,C5
B 、 C0,C1,C2,C3,C4,C6,C7,C5
C 、 C0,C1,C6,C7,C2,C3,C4,C5
D 、 C0,C1,C6,C7,C5,C2,C3,C4
E 、 C0,C1,C2,C3,C6,C7,C5,C4
二、问题求解( 5 分一题,共 10 分)
1 、一个家具公司生产桌子和椅子。现有 113 个单位的木材。每张桌子要使用 20 个单位的木材,售价是 30 元;每张椅子要用 16 个单位的木材,售价是 20 元。使用已有的木材生产桌椅(不一定要用光木材)做多可以买 _____ 元钱。
2 、 75 名儿童去游乐场玩。他们可以骑旋转木马,坐滑行轨道,乘宇宙飞船。已知其中 20 人这三种东西都玩过, 55 人 至少 玩过其中两种。若每玩一样的费用为 5 元,游乐场总共收入 700 ,可知有 _____ 名儿童没有玩过其中任何一种。
三、阅读程序( 8’ 一题,共 32’ )
1 、 -------------------------------------------
program program1;
Var
a,b,c,d,e:integer;
begin
a:=79 ; b:=34; c:=57;d:=0 ; e:=-1;
if (a<c) or (b>c) then d:=d+e
else if (d+10<e) then d:=e+10
else d:=e-a;
writeln(d);
end.
输出: _____________________ 。
2 、 -------------------------------------------
program program2;
var
i,j:integer;
str1,str2:string;
begin
str1:='pig-is-stupid';
str2:='clever';
str1[1]:='d'; str1[2]:='o';
i:=8;
for j:=1 to 6 do begin
str1:=str2[j];inc(i);
end;
writeln(str1);
end.
输出: _____________________ 。
3 、 -------------------------------------------
program program3;
var
u:array[0..3] of integer;
a,b,c,x,y,z:integer;
begin
read(u[0],u[1],u[2],u[3]);
a:=u[0]+u[1]+u[2]+u[3]-5;
b:=u[0]*(u[1]-u[2] div u[3]+8);
c:=u[0]*u[1] div u[2] * u[3];
x:=(a+b+2)*3-u[(c+3) mod 4];
y:=(c*100-13) div a div (u[b mod 3]*5);
if ((x+y) mod 2=0) then z:=(a+b+c+x+y) div 2;
z:=(a+b+c-x-y)*2;
writeln(x+y-z);
read(a);
end.
输出: _____________________ 。
4 、 -------------------------------------------
program program4 ;
var c:array[1..2] of string[200];
s:array[1..10] of integer;
m,n,i:integer ;
procedure numara;
var cod:boolean;
i,j,nr:integer;
begin
for j:=1 to n do begin
nr:=0;cod:=true;
for i:=1 to m do
if c[i,j]='1' then begin
if not cod then begin
cod:=true;inc(s[nr]);nr:=0;
end
end
else begin
if cod then begin
nr:=1;cod:=false ;
end
else inc(nr);
end;
if not cod then inc(s[nr]);
end;
end;
begin
readln(m,n);
for i:=1 to m do readln(c);
numara;
for i:=1 to m do
if s <>0 then write(i,' ',s,' ');
read(i);
end.
输出: _____________________ 。
四、完善程序(共 28 分)
1 、三角形内切圆的面积
题目描述:给出三角形三边的边长,求此三角形内切圆的面积。
输入:三个正实数 a 、 b 、 c (满足三角形三边关系),表示三角形三边边长。
输出:三角形内切圆的面积,结果四舍五入到小数点后 2 位
输入样例: 3 4 5
输出样例: 3.14
程序:①②③④⑤
Program program1;
Var
a,b,c,r,s,t:real;
begin
read(a,b,c);
s :=( ① )/2;
t:= ② (s*(s-a)*(s-b)*(s-c));
r:=t/s;
writeln(3.1415927 * r * ③ :0: ④ ;
END.
2..Joseph
题目描述:
原始的 Joseph 问题的描述如下:有 n 个人围坐在一个圆桌周围,把这 n 个人依次编号为 1 ,……, n 。从编号是 1 的人开始报数,数到 m 个人出列,然后从出列的下一个人重新开始报数,数到第 m 个人又出列,……,如此反复直到所有的人全部出列为止。比如当 n=6,m=5 的时候,出列的顺序依次是 5 , 4 , 6 , 2 , 3 , 1 。
现在的问题是:假设有 k 个好人和 k 个坏人。好人的编号是 1 到 k ,坏人的编号是 k+1 到 2k 。我们希望求出 m 的最小值,使得最先出列的 k 个人都是坏人。
输入:
仅有的一个数字是 k (0<K<14) 。
输出:
使得最先出列的 k 个人都是坏人的 m 的最小值。
输入样例:
4
输出样例:
30
程序:
program progaram1;
var
i,k,m,start : longint;
find : boolean;
function check ( remain:integer ): boolean;
var result : integer;
begin
result : =____(1)____ mod remain;
if ____(2)____ then begin
start : =result; check : =true;
end
else check : =false;
end;
begin
find : =false;
read(k);
m : =k;
while ____(3)____ do begin
find : =true; start ; =0 ;
for i : =0 to k-1 do
if (not check(____(4)____)) then begin
find : =false; break;
end;
inc(m);
end;
writeln(____(5)____);
end.
第十届分区普及组初赛参考答案
一、 1.C 2.B 3.D 4.C 5.E 6.A 7.B 8.D 9.C 10.A
11.D 12.C 13.D 14E 15.B 16.C 17.B 18.D 19.E 20.D
二、 1. 160元 2.10人
三、 1.- 80 2. Dog-is-clever
3 . 263 4 . 1 12588 2 12337 3 12339
四、 1 . a+b+c SQRT R 2
2 . start+m-1 result>=k not(find) 2*k-I m-1