1.1综合测试

该测试样例不包含错误,实现了快速排序的功能。

  • 测试用例 ```pascal program quicksort(input,output);
    var
    n,i:integer;
    a:array[0..100000] of integer;
    b:char;

procedure kp(l,r:integer);
var
i,j,mid:integer;
begin
b:=’a’;
if l>=r then exit;
i:=l;j:=r;mid:=a[(l+r) div 2];
repeat
begin
while a[i]mid do dec(j);
if i<=j then
begin
a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];
inc(i);dec(j);
end
end
until i>j;
kp l,j);
kp(i,r)
end;

begin
readln(n);
for i:=1 to n do
read(a[i]);
kp(1,n);
for i:=1 to n do
write(a[i]);
end.

  1. - 预期结果
  2. 记号流,不包含任何报错信息
  3. - 测试结果

keyword: program identifier: quicksort delimiter: ( identifier: input delimiter: , identifier: output delimiter: ) delimiter: ; keyword: var identifier: n delimiter: , identifier: i delimiter: : type: integer delimiter: ; identifier: a delimiter: : keyword: array delimiter: [ integer:0 RANGEDOT: .. integer:100000 delimiter: ] keyword: of type: integer delimiter: ; identifier: b delimiter: : type: char delimiter: ; keyword: procedure identifier: kp delimiter: ( identifier: l delimiter: , identifier: r delimiter: : type: integer delimiter: ) delimiter: ; keyword: var identifier: i delimiter: , identifier: j delimiter: , identifier: mid delimiter: : type: integer delimiter: ; keyword: begin identifier: b ASSIGNOP: := char: a delimiter: ; keyword: if identifier: l RELOP: >= identifier: r keyword: then identifier: exit delimiter: ; identifier: i ASSIGNOP: := identifier: l delimiter: ; identifier: j ASSIGNOP: := identifier: r delimiter: ; identifier: mid ASSIGNOP: := identifier: a delimiter: [ delimiter: ( identifier: l ADDOP: + identifier: r delimiter: ) MULOP: div integer:2 delimiter: ] delimiter: ; keyword: repeat keyword: begin keyword: while identifier: a delimiter: [ identifier: i delimiter: ] RELOP: < identifier: mid keyword: do identifier: inc delimiter: ( identifier: i delimiter: ) delimiter: ; keyword: while identifier: a delimiter: [ identifier: j delimiter: ] RELOP: > identifier: mid keyword: do identifier: dec delimiter: ( identifier: j delimiter: ) delimiter: ; keyword: if identifier: i RELOP: <= identifier: j keyword: then keyword: begin identifier: a delimiter: [ integer:0 delimiter: ] ASSIGNOP: := identifier: a delimiter: [ identifier: i delimiter: ] delimiter: ; identifier: a delimiter: [ identifier: i delimiter: ] ASSIGNOP: := identifier: a delimiter: [ identifier: j delimiter: ] delimiter: ; identifier: a delimiter: [ identifier: j delimiter: ] ASSIGNOP: := identifier: a delimiter: [ integer:0 delimiter: ] delimiter: ; identifier: inc delimiter: ( identifier: i delimiter: ) delimiter: ; identifier: dec delimiter: ( identifier: j delimiter: ) delimiter: ; keyword: end keyword: end keyword: until identifier: i RELOP: > identifier: j delimiter: ; identifier: kp identifier: l delimiter: , identifier: j delimiter: ) delimiter: ; identifier: kp delimiter: ( identifier: i delimiter: , identifier: r delimiter: ) keyword: end delimiter: ; keyword: begin identifier: readln delimiter: ( identifier: n delimiter: ) delimiter: ; keyword: for identifier: i ASSIGNOP: := integer:1 keyword: to identifier: n keyword: do identifier: read delimiter: ( identifier: a delimiter: [ identifier: i delimiter: ] delimiter: ) delimiter: ; identifier: kp delimiter: ( integer:1 delimiter: , identifier: n delimiter: ) delimiter: ; keyword: for identifier: i ASSIGNOP: := integer:1 keyword: to identifier: n keyword: do identifier: write delimiter: ( identifier: a delimiter: [ identifier: i delimiter: ] delimiter: ) delimiter: ; keyword: end delimiter: . ```

  • 分析

    1. 记号流输出与源程序相符合,不包含任何错误信息。<br />** **<br />** **