输入一长度不超过80个字符的字符串(称为源串),该字符串由小写英文字母、空格组成,并以'.'结束。单词是由连续字母组成,两个单词之间至少有一个空格。本程序的功能为:首先找出字符串中所有单词并保留一个空格作为单词分隔,存入数组ch中。然后用键盘输入一个待查找的单词,以字符'$'结束。采用顺序查找的方法在ch中进行查找,若找到,则输出该单词在ch中出现的序号(若有多个位置出现该单词,则只输出第一个序号位置)。若不存在,则输出'NOT FOUND'。
程序如下:(14%)
PROGRAM EXP1;
VAR
A,B,CH : ARRAY[1..80] OF CHAR;
I,J,K,N,M : INTEGER;
BEGIN
N := 0;
REPEAT
_____ n:=n+1_____; READ(A[N]); 1%
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;
_______ch[k]:=a[i]________; 2%
END
ELSE IF K <> 0 THEN IF CH[K]<>'□' THEN {□表示一个空格,以下同}
BEGIN
K := K + 1;
CH[K] := '□'
END;
M := 0________n:=k________; 2%
REPEAT
M := M + 1; READ(B[M]);
UNTIL ______b[m]:='$'_________; 2%
I := 1; J := 1; K := 1; B[M]:='□';
WHILE (I<=N)AND(J<=M) DO
BEGIN
IF ________ch[i]=b[j]________ THEN BEGIN I := I + 1; J := J + 1 END 3%
ELSE BEGIN
WHILE CH[I] <> '□' DO ___i:=i+1___; 2%
I := I + 1; J := 1; K := K +1
END
END;
IF _____j>m-1________ THEN WRITELN(K:4) 2%
ELSE WRITELN('NOT FOUND')
END.