|
第四届全国青少年信息学奥林匹克联赛初赛试题及答案
第四届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题(初中)
一、选择填空(25%) 1、 操作系统是一类重要的系统软件,下面几个软件中不属于操作系统的: A. MS-DOS B。UCDOS C。PASCAL D。WINDOWS 2、MS-DOS系统对磁盘信息进行管理和使用是以( )为单位进行的。 A. 文件 B。盘片 C。字节 D。命令 3、在计算机内部,用来传送、存储、加工处理的数据或指令(命令)都是以( )形式进行的。 A.十进制码 B。智能拼音码 C。二进制码 D。五笔字型码 4、已知在计算机C:\DOS下有一个正确的FORMAT.COM文件,当执行如下命令: C:\FORMAT A: <回车> 得到的答案是bad command or file name 提示信息,下面解释正确的是: A. 根目录下没有AUTOEXEC.BAT B. 在执行该命令前操作者没有执行过PATH命令 C. C:\DOS中的FORMAT.COM有错 D.由于AUTOEXEC.BAT或操作者最后执行过的PATH命令中缺少路径C:\DOS,或者根本没有执行PATH命令 5、将A盘上50个文件用C:\COPY A:*.*命令复制到C盘的当前目录中,在复制到某一个文件时,由于读数据出错,屏幕显示: Abort,Retry,Ignore,Fail? 键入"I"后,继续复制没再出现过出错信息。最后复制的结果是: A. 读数据出错的文件不正确,其他文件正确 B. 读数据出错的文件不正确,其他文件也不正确 C. 读数据出错的文件正确,其他文件不正确 D.复制的文件全正确 6、下面四个不同进制的数,最小的一个数是: A.(11011001)2 B. (75)10 C. (37)8 D. (A7)16 7、小张用十六进制、八进制和十进制写了如下一个等式,试问52、19、33分别为: A.八进制、十进制、十六进制 B。十进制、十六进制、八进制 C、八进制、十六进制、十进制 D、十进制、八进制、十六进制 8、如果用一个字节来表示整数,最高位作符号位,其他位表示数值。例如: 0 0 0 0 0 0 0 1 表示+1 (符号位为正) 1 0 0 0 0 0 0 1 表示-1 (符号位为负) (1) 试问这样表示法的整数a的范围是: A. -127≤a≤127 B、 -128≤a≤128 C、 -128≤a<128 D. -128≤128 (2) 在这样表示法中,以下( )说法是正确的。 A、 范围中的每一个数只有唯一的格式 B、范围中的每一个数都有两种格式 C、范围中的一半数有两种格式 D、范围中只有一个数有两种格式 9、下列IF语句中,ENDIF表示相应的IF的结束: Y=0 IF X<0 THEN Y=5 ELSE IF X<10 THEN Y=10 IF X<100 THEN Y=100 ENDIF ELSE Y=200 ENDIF ENDIF 试指出X=80时,运行的结果为( ) ,X=5时结果为( ) A、Y=9 B、Y=5 C、Y=10 D、Y=100 E、Y=200 10、设栈S的初始状态为空,现有5个元素组成的序列{1,2,3,4,5},对该序列在S栈上依次进行如下操作(从序列中的1开始,出栈后不再进栈):进栈、进栈、进栈、出栈、进栈、出栈、进栈。试问出栈的元素序列是( ) A、{5,4,3,2,1} B、{2,1} C、{2,3} D、{3,4} 二、问题求解(20%) 1、 已知一个数列U1,U2,U3,……,Un,……往往可以找到一个最小的k值和k个数a1,a2,……ak,使得数列从某项开始满足: Un+k=a1Un+k-1+……+akUn (A) 例如斐波那契数列1,1,2,3,5,……可以发现:当k=2,a1=1,a2=1时,从第3项起(即n≥1)都满足Un+2=Un+1+Un 试对数列12,22,32,……,n2,……,求k和a1,a2,……ak使得A成立。 (7%) 2、 某班有50名学生,每位学生发一张调查卡,上写a,b,c三本书的书名,将读过的书打V,结果统计数字如下: 只读a者8人;只读b者4人;只读c者4人;全部读过的有2人; 读过a,b两本书的有4人;读过a,c两本书的有2人;读过b,c两本书的有3人; (1)读过a的人数是( ) (2)一本书也没有读过的人数是( ) 3、 任给自然数n,k,1≤k≤9,按如下计算步骤(算法)求序列XjXj-1…X0的步骤:(8%) (1) j=0 (2) 如果n≥k,则转第3步,否则转第7步 (3) Xj=n mod k {DIV表示整数除法结果取整数;MOD表示整除取余数} (4) N=n div k (5) J=J+1 (6) 回第2步 (7) Xj=n (8) 结束 试求当:n=1998,k=3时,XjXj-1…X0之值。 三、阅读程序,写出程序的正确运行结果(39%) 1、 Program exp1(input,output); (7%) Var I,s,max:integer; A:array[1..10] of integer; Begin For I:=1 to 10 do read(a[i]); Max:=a[1];s:=a[1]; For I:=2 to 10 do Begin If s<0 then s:=0; S:=s+a[i]; If s>max then max:=s End; Writeln('max=',max); End. 输入: -2 13 -1 4 7 8 -1 -18 24 6 输出:max= 2、Program exp2(input,output); (10%) Const n=5; Var I,j,k:integer; A:array[1..2*n,1..2*n] of integer; Begin K:=1; For I:=1 to 2*n-1 do If I<=n then If odd(i) then For j:=I downto 1 do Begin A[I-j+1,j]:=k;k:=k+1 End Else for j:=1 to I do Begin A[I-j+1,j]:=k;k:=k+1 End Else if odd(i) then for j:=n downto I-n+1 do Begin A[I-j+1,j]:=k;k:=k+1 End Else for j:=I-n+1 to n do Begin A[I-j+1,j]:=k;k:=k+1 End For I:=1 to n do Begin For j:=1 to n do Write(a[I,j]:3); Writeln End; End. 3. program exp3(input,output); const n=10; var s,I:integer; function co(i1;integer):integer; var j1,s1:integer; begin s1:=n; for j1:=(n-1) downto (n-i1+1) do s1:=s1*j1 div (n-j1+1); co:=s1 end; begin s:=n+1; for I:=2 to n do s:=s+co(1); writeln('s=',s); end. 4. program exp4(input,output); const n=3; var I,j,s,x:integer; p:array[0..n+1] of integer; g:array[0..100] of integer; begin for I:=0 to 100 do g[i]:=0; p[0]:=0;p[n+1]:=100; for I:=1 to n do read(p[i]);readln; for I:=0 to n do for j:=I+1 to n=1 do g[abs(p[j]-p[i])]:= g[abs(p[j]-p[i])]+1; s:=0; for I:=0 to 100 do if g[i]>0 then begin write(I:4);s:=s+1 end; writeln; writeln('s=',s); writeln('input data:');readln(x); writeln(g[x]); end. 输入: 10 20 65 input data:10 输出: 四、根据题意,补充完善以下程序:(14%) 输入一长度步超过80个字符的字符串(称为源串),该字符串有小写英文字母、空格组成,并以'.'结束。单词是由连续字母组成,两个单词之间至少由一个空格。本程序的功能是;首先找出字符串中所有单词并保留一个空格作为单词分隔,存入数组ch中。然后用键盘输入一个待查找的单词,以字符'$'结束。采用顺序查找的方法在ch中进行查找,若找到,则输出该单词在ch中出现的序号(若有多个位置出现该单词,则只输出第一个序号位置)。若不存在,则输出'NOT FOUND'。 程序如下: program exp1; var a,b,ch:array[1..80] of char; I,j,k,n,m:integer; Begin N:=0; Repeat ( 1 );read(a[n]); until a[n]='.'; readln; k:=0; for I:=1 to n do if (a[i]>='a') and (a[i]<='z') then begin k:=k+1; ( 2 ); end; else if k<>0 then if ch[k] <>' 'then begin k:=k+1; ch[k]:=' ' end; m:=0;( 3 ) repeat m:=m+1;read(b[m]); until ( 4 ); I:=1;j:=1;k:=1;b[m]:=' '; While (I<=n) and (j<=m) do Begin If ( 5 ) then begin I:=I+1;j:=j+1 end Else begin While ch[i]<>' ' do ( 6 ); I:=I+1;j:=1;k:=k+1 End; End; If ( 7 ) then writeln(k:40 Else writeln('not found') End.
第四届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题(初中)答案 一、选择填空:共25分 1、不属于操作系统的软件是C。 2、MS-DOS系统对磁盘信息进行管理和使用是以(A)为单位的。 3、( C) 4、解释正确的是D。 5、最后复制的结果是A。 6、最小的一个数是C。 7、等式中的52,19,33,分别为B。 8、①这样表示法的整数a的范围应是 A 。 ②在这样表示法中,D说法是正确的。 9、当x=80时,运行的结果为E, 当x=5时,运行的结果为 D 。 10.出栈的元素序列是 D 。 二、问题求解:共20分 1、当K=3,a1,a2,·.·,ak为a1=3,a2=-3,a3=1时, 2、 (1)读过a的人数是12人。(2)一本书也没读过的人数是30人。 3、当N=1998,k=3时,XJxj-1…xo之值为2202000. 三、阅读程序,写出程序的正确运行结果:共39分 1、输出:max=42 输出结果为: 2、1 3 4 10 11 2 5 9 12 19 6 8 13 18 20 7 14 17 21 24 15 16 22 23 25 3、输出:S=1024 4、输出:10 20 35 45 55 65 80 90 100 5、输入:inputdata:10 输出:2 四.根据题意,补充完善以下程序:(14% PASCAL语言 (1) n:=n+1 (2) ch[k]:=a[i] (3)n:=k (4)b[m]='S' (5)ch[i]=b[j] (6)i:=i+1 (7)j>m-1 |