信息学奥林匹克竞赛初中组(初赛)模拟试题 下载本文

信息学奥林匹克竞赛初中组(初赛)模拟试题

(时间: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 页