| 网站首页 | 学校介绍 | 德育工作 | 家长学校 | 教学教研 | 信息技术 | 书香飘逸 | 资源下载 | 靓图欣赏 | 雁过留声 | 语文 | 
最新公告:     已所不欲,勿施于人,已之所欲,施之于人!  [adminit  2007年4月19日]            生命如流水,只有在他的急流与奔向前去的时候,才美丽,才有意义。 ——张闻天  [旗峰中学  2006年7月8日]            不要让忧愁压在你的心头,也不要让犹豫缠住你的脚步,满天的阴霾终会被风吹散,而晴朗的天空就是你无比辉煌的前程。只有在遭受痛苦经历时,仍然能笑,仍然能乐观的生活的人,才称得起是真正坚强的人。生活是一面镜子,你对它笑,他就对你笑;你对它哭,他也对你哭。  [旗峰中学  2006年7月8日]            勤学如春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏。  [旗峰中学  2005年11月3日]            志不强者智不达,言不信者行不果。  [旗峰中学  2005年11月3日]        
您现在的位置: 旗峰中学校园网 >> 信息技术 >> 信息奥赛 >> 奥赛题库 >> 文章正文
专题栏目
更多内容
最新推荐 更多内容
相关文章
关于举办信息技术新课程
第十四讲 循环语句
信息化建设“金”字工程
有多少健康可以重来
第十一届青少年信息学联
初赛综合练习题
计算机基础知识试题详解
基础知识练习题(二)
基础知识练习题(一)
初赛模拟试题(七)
更多内容
[图文]初赛模拟试题(四)         
初赛模拟试题(四)
作者:admin 文章来源:本站原创 点击数: 更新时间:2005-9-30 13:46:42

题1.
[问题描述]
    输入一长度不超过80个字符的字符串(称为源串),该字符串由小写英文字母、空格组成,并以'.'结束。单词是由连续字母组成,两个单词之间至少有一个空格。
本程序的功能为:首先找出字符串中所有单词并保留一个空格作为单词分隔,存入数组ch中。然后用键盘输入一个待查找的单词,以字符'$',结束。采用顺序查找的方法在ch中进行查找,若找到,则输出该单词在ch中出现的序号(若有多个位置出现该单词,则只输出第一个序号位置)。若不存在, 则输出‘NOT FOUND’。
[程序清单]
program ex981;
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 j>m then writeln(k:4) else writeln('NOT FOUND')
end.

题2.
[问题描述]
FBZ串问题。已知一个由0,1字符串组成的长度为2n的字符串。
请按以下规则将已给出的字符串分解为FBZ串:
    若其中字符全为‘1’,,则称其为‘B’串;
    若其中字符全为‘0’,则称其为‘Z’串;
    若不全为‘0’,同时也不全为‘1’,则称‘F’串。
    若此串为F串,则应将此串分解为2个长为 2n-1的子串。
    对分解后的子串,仍按以上规则继续分解,直到全部为B串或为Z串为止。
    例如n=3时,给出01串为:'10111001'最后输出为FFFBZBFFBZFZB


[程序清单]
program ex982;
const n=8;
var
i,j,stl1,stl2,st2,s,t:integer;
str1:array[1..2*n,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]:=' ';
stl1:=1;stl2:=1;st2:=0;
for i:=1 to n do read(str1[1,i]);readln;
while (1) do
  begin
   s:=0;t:=0;
   for i:=1 to n do
    begin
     if str1[stl2,i]='1' then s:=s+1;
     if str1[stl2,i]='0' then t:=t+1;
    end;
   if    (2)    then
     begin st2:=st2+1;str2[st2]:='B' end
      else if   (3)    then
     begin st2:=st2+1;str2[st2]:='Z'; end
      else
       begin
       st2:=st2+1;str2[st2]:='F';j:=(s+t) div 2;
       for s:=n*2-2 downto  (4)  do
        for t:=1 to n do
         str1[s+2,t]:=str1[s,t];
       stl1:=stl1+2;
       for i:=1 to j do
        begin
        str1[stl2+1,i]:=str1[stl2,i];
        str1[stl2+2,i]:=   (5)  
        end;
       for i:=   (6)   do
        begin
         str1[stl2+1,i]:=' ';str1[stl2+2,i]:=' ';
        end
        end;
    stl2:=stl2+1;
   end;
   for i:=1 to st2 do write(str2[i]);writeln
end.

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

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

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |