信息学奥林匹克竞赛初中组(初赛)模拟试题
(时间:120分钟)
班级_________ 姓名_________ 学号______ 成绩_________ 一、选择题:(本题共20题,每题1.5分,共计30分。前10题为单选题,后10题为不定项选择题。)
1、在计算机内部用来传送、存贮、加工处理的数据或指令(命令)都是以( )形式进行的。 A、二进制码 B、八进制码 C、十进制码 D、智能拼音码 2、计算机的软件系统通常分为( )
A、硬件系统和软件系统 B、高级软件和一般软件 C、系统软件和应用软件 D、军用软件和民用软件
3、关于软盘读写孔,正确的说法是( )。 A.从该孔读信息 B.从该孔写信息
C.当该孔处于开状态时,不能删除盘中文件。 D.该孔没有作用
4、一棵二叉树的中序遍历序列为:DGBAECHF,后序遍历序列为:GDBEHFCA,则前序遍历的序列是( )
A、ABCDFGHE B、ABDGCEFH C、ACBGDHEF D、ACEFHBGD 5、下列叙述中错误的是( )。 A.微型计算机应避免置于强磁场之中
B.微型计算机使用时间不宜过长,而应隔几个小时关机一次 C.微型计算机应避免频繁关开,以延长其使用寿命 D.计算机应经常使用,不宜长期闲置不用 6、计算机网络最主要的优点是( )。
A、运算速度快 B、共享资源 C、精度高 D、存储容量大 7、下列4个不同进制表示的数中,最大的一个数是( )
A、(220.1)10 B、(11011011.1)2 C、(334.1)8 D、(DC.1) 16 8、为了区分汉字与ASCII码,计算机中汉字编码的最高位为( ) A、1 B、0 C、-1 D、2 9、下列正确的文件名是()。 A. command。Com B. command_com C. command,com D. command.com
10、.一般来说,TCP/IP的IP提供的服务是( )
A.运输层服务 B.会话层服务 C.表示层服务 D.网络层服务 11、通信时,模拟信号也可以用数字信道来传输,无法实现模拟信号与数字信号之间转换功能的是( ) A、D/A B、A/D C、Modem D、Codec
12、一个栈的输入顺序为1、2、3、4、5,下列序列中可能是栈的输出序列是( )。 A、54312 B、24135 C、21543 D、12534 13、属于Internet的功能是( )
A、聊天 B、远程教育 C、查询资料 D、传送能量 14、下列描述计算机病毒的特性中,( )是正确的。 A. 潜伏性. B. 传染性. C.. 高速性 D. 危害性
15、一棵n个节点的完全二叉村,则该二叉树的高度h为( ) A、n/2 B、log(n) C、log(n)/2 D、[log(n)]+1
16、某计算机的硬盘容量为40G,这里40G容量是( )字节。 A、40 B、40960MB C、40000MB D、40*1024*1024*1024B 17、下面属于网络操作系统的是( )
A、UNIX B、WINDOWS C、NETWARE D、DOS 18、如果A的ASCII码为65,则Z的ASCII码为( )
第 1 页 共 6 页
A、(90)10 B、(132)8 C、(1011101)2 D、(5B)16
19、对一般的二维数组G而言,当( )时,其按行存储的G[I,J]的地址与按列存储 的G[I,J]的地址相同。 A、 G的列数与行数相同。
B、 G的列的上界与G的行的上界相同。 C、 G的列的下界与行的下界相同。 D、 G的列的上界与行的下界相同。 20、根据《计算机软件保护条例》,中国公民开发的软件享有权的是( ) A、 不论何人、何地及发表与否的软件。 B、 只有公开发表的软件。 C、 只有单位发表的软件。
D、 只有个人在国内公开发表的软件。
二、问题求解题:(本题共2题,每题5分,共计10分。)
第1题:有雌雄一对兔子,假定两个月便可以繁殖雌雄各一的一对兔子。问12个月后共有多少对兔子? 请你写出计算12个月后兔子数的公式:
第2题:某校足球队有球衣30件,篮球有球衣15件,排球队有球衣18件,三队队员总数为50人,其中有3人同时参加3个队,那么同时只参加两个队的队员有 。
三、程序阅读理解题:(本题共4题,每题8分,共计32分)
第1题:
program ex001; var
x,y:integer;
procedure swap(x,y:integer); var
temp:integer; begin
temp:=x; x:=y; y:=temp; writeln(x,y) end; begin x:=1; y:=2;
writeln(x,y); swap(x,y); writeln(x,y) end.
输出:
第2题:
program ex002; type
arr=array[1..100] of integer; var a:arr;
s,n,m,i,j,k,bot:integer; begin
read(n,m,k); s:=0;
for i:=1 to n do s:=s+1; for i:=1 to n do a[i]:=s; i:=0;j:=0;bot:=0;
第 2 页 共 6 页
repeat i:=i+1;
if i=n+1 then i:=1; if a[i]=s then j:=j+1;
if j=m then begin a[i]:=-100;bot:=bot+1;j:=0;write(i,' '); end; until bot=k; end.
输入:100 36 6
输出:
第3题:
program ex003; const n=200;
var si,pr:set of 2..n; x,j,m:integer; begin
writeln('please input m:');readln(m); si:=[2..m];pr:=[]; x:=2; repeat
while not(x in si) do x:=succ(x); pr:=pr+[x]; j:=x;
while j<=m do
begin si:=si-[j];j:=j+x; end; until si=[]; j:=0;
for x:=2 to m do
if x in pr then begin
write(x:5);inc(j);if j mod 10 =0 then writeln; end; writeln end. 输入:20
输出:
第4题:
program ex004; const maxn=1000; var
i,j,k,n,r,p,g:longint;
a:array[1..maxn] of longint;
function gcd(m,n:longint):longint; var r:longint; begin
while n<>0 do begin
r:=m mod n; m:=n; n:=r end; gcd:=m end;
第 3 页 共 6 页
begin
n:=1000; r:=202;
for i:=1 to n-r do a[i]:=n-i+1; for i:=2 to r do begin k:=i;
for j:=1 to n-r do if gcd(k,a[j])>1 then begin
g:=gcd(k,a[j]); k:=k div g;
a[j]:=a[j] div g; if k=1 then break end end;
p:=1;g:=0;
for i:=1 to n-r do begin
p:=p*a[i];
while p mod 5 =0 do begin
p:=p div 5; g:=g+1 end; p:=p mod 5 end;
writeln(g) end.
输出:
四、程序完善题:(本题共2题,每题14分,共计28分)
第1题: [问题描述]
求具有下列特征的一个六位数:
1、 该数各数位上的6个数字互不相同;
2、 该数分别乘2,3,4,5,6得到新的5个六位数,它们也都由组成原数的6个数字组成。
程序中,函数check(a,s)判断六位数a的各倍数的组成数字集合是否与a的组成数字集合相同。p10[0..6]是为了减少计算方幂,存储10的各幂次的数组。 [程序清单]
program ex02; const n=6;
type dset=set of 0..9; var
a:real;s:dset;i:integer; p10:array[0..n]of real;
function check(a:real;s:dset):boolean; var i,j,d:integer;b:boolean; ss:dset;t:real; begin
i:=2;b:=6*a while (1) begin ss:=s;t:=i*a;j:=n; while (j>=1) and b do 第 4 页 共 6 页 begin d:= (2) ; t:=t-d*p10[j-1]; b:=d in ss; j:=j-1; ss:=ss-[d] end; i:=i+1 end; check:=b end; function try(i:integer):boolean; var j:integer;b1:boolean; begin b1:=false;j:=0; if i=n then (3) ; repeat if not(j in s) then begin a:= (4) ; s:=s+[j]; if i=1 then b1:=check(a,s) else b1:=try(i-1); if not b1 then begin s:= (5) ; (6) end end; (7) ; until (j>9) or b1; try:=b1 end; begin a:=0;s:=[];p10[0]:=1.0; for i:=1 to n do p10[i]:=p10[i-1]*10.0; if try(n) then writeln(a:10:0); writeln('Finish!') end. 第2题: [问题描述] 给定两个自然数n,r(n>r),输出从数I到n中按降序顺序取r个自然数的所有组合。例如,n=5,r=3时,输出的结果是 5 4 3 5 4 2 5 4 1 5 3 2 5 3 1 5 2 1 4 3 2 4 3 1 4 2 1 3 2 1 程序中用a1,a2,…ar表示一个降序排列的r个数的组合,要求a1≥r。为了能够穷举出全部降序排列的r个数的组合,按递减顺序调整前一个组合的部分元素生成下一个组合。调整时,当ar=1就要回溯; 第 5 页 共 6 页