请您留下宝贵的建议吧:)
广西百色高中欢迎您!

| 网站首页 | 学校概况 | 软件下载 | 图片中心 | 雁过留声 | 视频资源 | 校长信箱 | 内 部 网 |
| 同 学 录 | 网络办公 | 教学课件 | 优秀教案 | 试卷下载 | 教学素材 | 教学论文 | 电子图书 |

 
您现在的位置: 广西百色高中校园网 >> 学校概况 >> 学生频道 >> 信息技术 >> 试题下载 >> 文章正文 用户登录 新用户注册
   
   

[组图]第四届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题          【字体:
第四届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题
作者:仔仔    文章来源:本站原创    点击数:    更新时间:2006-9-26

第四届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题

暂缺答案

第四届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题

(高中组) 

pascal 语言   竞赛用时:2小时)

●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●

一、选择填空:(23%)

1、操作系统是一类重要的系统软件,下面几个软件中不属于操作系统的是____。(1%)

(A)MS-DOS      (B)UCDOS      (C)PASCAL       (D)WINDOWS 95

2、在计算机内部,用来传送、存储、加工处理的数据或指令(命令)都是以_____形式进行的。(1%)

(A)十进制码     (B)智能拼音码   (C)二进制码       (D)五笔字型码

3、已知计算机C:\DOS下有一个正确的FORMAT.COM文件,当执行如下命令:

C:\>FORMAT A:<回车>

得到的回答是bad command or file name提示信息,下面解释正确的是_______。(2%)

(A)根目录中没有AUTOEXEC.BAT文件;

(B)在执行该命令前操作者没执行过PATH命令;

(C)C:\DOS中的FORMAT.COM文件有错

(D)由于AUTOEXEC.BAT或操作者最后执行过的PATH命令中缺少路径C:\DOS,或者根本没有执行过PATH命令。

4、将A盘上50个文件用:C:\>COPY A:*.*命令复制到C盘的当前目录中。在复制到某一个文件时,由于读数据出错,屏幕显示:

Abort, Retry, Ignore, Fail?

键入“I”后,继续复制没再出现过出错信息。最后复制的结果是_______。(2%)

(A)读数据出错的文件不正确,其他文件正确;

(B)读数据出错的文件不正确,其他文件也不正确;

(C)读数据出错的文件正确,其他文件不正确;

(D)复制的文件全正确;

5、表达式(4 MOD (-3))与(-4 MOD 3)的值为:_______。(2%)

(A)-1,-1      (B)1,-1      (C)-1,1        (D)1,1

6、小张用十六进制,八进制和十进制写了如下一个等式:

52-19=33

式中三个数是各不相同进位制的数,试问52,19,33,分别为________。(3%)

(A)八进制,十进制,十六进制    (B)十进制,十六进制,八进制

(C)八进制,十六进制,十进制     (D)十进制,八进制,十六进制

7、某班有50名学生,每位学生发一张调查卡,上写a, b, c三本书的书名,将读过的书打√,结果统计数字如下:                                                      (4%)

只读a者8人;只读b者4人;只读c者3人;全部读过的有2人;

读过a,b两本书的有4人;读过a,c两本书的有2人;读过b,c两本书的有3人;

问:(1)读过a的人数是_____。   (2)一本书也没读过的人数是______。

(A)12人     (B)30人     (C)10人     (D)24人      (E)31人

8、下列if语句中,endif表示相应if的结束:                          (2%)

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时结果为______。         (2%)

(A)y=9          (B)y=5        (C)y=10       (D)y=100       (E)y=200

9、如果用一个字节来表示整数,最高位用作符号位,其他位表示数值。      (4%)

例如:

0

0

0

0

0

0

0

1

   ↑符号位表示正              表示+1

1

0

0

0

0

0

0

1

   ↑符号位表示负              表示-1

①试问这种表示法的整数a的范围应是_______。

(A)-127≤a≤127                          (B)-128≤a≤128

(C)-128≤a<128                           (D)-128<a≤128

②在这样表示法中,以下_____说法是正确的。

(A)范围内的每一个数都只有唯一的格式

(B)范围内的每一个数都有两种格式

(C)范围内的一半数有两种格式

(D)范围内只有一个数有两种表示格式

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}

二、问题求解:(21%)

1、已知一个数列U1,U2,U3,…Un,…往往可以找到一个最小的k值和k个数a1,a2,…,ak,使得数列从某项开始都满足:

un+k=a1un+k-1+a2un+k-2+…+akun  (A)

例如对斐波拉契数列1,1,2,3,5,…可以发现:当k=2,a1=1,a2=1时,从第3项起(即n≥1)都满足un+2=un+1+un。

试对数列13,23,33,…,n3,…求k和a1,a2,…,ak使得(A)成立。         (8%)

2、给出一棵二叉树的中序遍历:DBGEACHFI与后序遍历:DGEBHIFCA画出此二叉树。 (8%)


3、用邻接矩阵表示下面的无向图:                                           (6%)

三、阅读程序写出程序的正确运行结果;(39%)

1.  program exp1(input,output);                          (6%)

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.

输入:8  9  -1  24  6  5  11  15  -28  9

输出:max=

 

2.  program exp2(input,output);                         (9%)

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(I);

     WRITELN('S=',S);

END.

 

3.  Program exp3(input,output);                        (12%)

VAR I,J,S:INTEGER;

    B    :ARRAY[0..5] OF INTEGER;

BEGIN

     S:=1;

     FOR I:=1 TO 5 DO   B[I]:=I;

     J:=1;

     WHILE J>0 DO

     BEGIN

          J:=5;

          WHILE (J>0) AND (B[J]=10+J-5) DO J:=J-1;

          IF J>0 THEN

             BEGIN

                  S:=S+1;  B[J]:=B[J]+1;

                  FOR i:=J+1 TO 5 DO  B[i]:=B[J]+i-J

             END;

     END;

     WRITELN('S=',S);

END.

 

4.  Program EXP4(input,output);                          (12%)

const n=4;

type se=array[1..n*2] of char;

var i,j,i1,j1,k,s,t,s1,L,swap:integer;

    temp                     :char;

    a                        :se;

Begin

     for i:=1 to n*2 do    read(a[i]);   readln;

     s:=0;  t:=0;

     for i:=1 to n*2 do

     if a[i]='1' then s:=s+1 else if a[i]='0' then t:=t+1;

     if (s<>n) or (t<>n) then writeln('error')

        else begin s1:=0;

                  for i:=1 to 2*n-1 do   if a[i]<>a[i+1] then s1:=s1+1;

                  writeln('jamp=',s1);  swap:=0;

                  for i:=1 to 2*n-1 do

                  for j:=i+1 to 2*n do

                  if a[i]<>a[j] then

                  begin

                       temp:=a[i];a[i]:=a[j];a[j]:=temp;

                       s:=0;

                       for L:=1 to 2*n-1 do

                       if a[L]<>a[L+1] then s:=s+1;

                       if s>swap

                          then begin swap:=s; i1:=i; j1:=j end;

                       temp:=a[i];a[i]:=a[j];a[j]:=temp

                  end;

                  if swap>0

 then writeln('maxswap=',swap-s1,' i=',i1,' j=',j1)

             end

     End.

输入:10101100   输出:

四、根据题意,补充完善以下程序:(17%)

    FBZ串问题。已知一个由0,1字符组成的长为2n的字符串。请按.以下规则将已给出的字符串分解成FBZ串:

①若其中字符全为‘1’,则称其为‘B’串;

②若其中字符全为‘0’,则称其为‘Z’串;

③若不全为‘0’,同时也不全为‘1’,则称‘F’串。若此串为F串。则应将此串分解为2个长为2n-1的子串。

对分解后的子串,仍按以上规则继续分解,直到全部为B串或为Z串为止。


例如n=3时,给出0—1串为:‘10111001’

最后输出:FFFBZBFFBZFZB

问题:给出0,1串,分解成FBZ串。

程序如下:(17%)

Program EXP5;

  const n=8;

  var

i,j,st11,st12,st2,s,t:integer;

str1           :array[1..n*2,1..n] of char;

str2           :array[1..40] of char;

      Begin

      for i:=1 to n*2 do

         for j:=1 to n do   str1[i,j]:=‘ ’;

         st11:=1;  st12:=1;  st2:=0;

      for i:=1 to n do read(str1[1,i]);   readln;

      while   ①    do                                  (4%)

        begin

          s:=0;  t:=0;

          for i:=1 to n do

            begin

              if str1[st12,i]=’1’ then s:=s+1;

              if str1[st12,i]=’0’ then t:=t+1;

            end;

          if   ②   then begin                          (2%)

                         st2:=st2+1;  str2[st2]:=’B’

                        end

                    else if   ③    then begin            (2%)

                                        st2:=st2+1;  str[st2]:=’Z’

                                      end

                                  else begin

                                       st2:=st2+1; str2[st2]:=’F’; j:=(s+t) div 2;

                                       for s:=n*2-2 downto   ④   do        (3%)

                                         for t:=1 to n do

                                           str1[s+2,t]:=str1[s,t];

                                         st11:=st11+2;

                                       for i:=1 to j do

                                         begin

                                           str1[st12+1,i]:=str1[st12,i];

                                           str1[st12+2,i]:=   ⑤   ;       (4%)

                                         end;

                    for i:=   ⑥   do begin                                 (2%)

                                     str1[st12+1,i]:=’ ’; str1[st12+2,i]:=’ ’

                                    end;

                 end;

                   st12:=st12+1;

           end;

           for i:=1 to st2 do    write(str2[i]);  writeln;

         End.

文章录入:qinjun    责任编辑:qinjun 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
          最新热点       最新推荐       相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

       
     
     
     
    广西百色高中欢迎您!   网站地图 | 联系站长 | 友情链接 | 用户排行 | 版权申明 | 管理登录
    版权所有 Copyright© 2005-2010 广西百色高中 (桂ICP备05013955号)
    学校地址:广西百色市城乡路93号 电话号码:0776-2824142 传真:0776-2847293 邮政编码:533000
    站    长:覃钧  QQ:75331465            改版时间:2007年8月20日