1.1 综合测试
1.1.1 快速排序
- PASCAL-S源程序 ```pascal program quicksort(input,output); var n,i:integer; a:array[0..100000] of integer;
procedure kp(l,r:integer);
var
i,j,mid:integer;
begin
if l>=r then exit;
i:=l;j:=r;mid:=a[(l+r) div 2];
repeat
begin
while a[i]
begin read(n); for i:=1 to n do read(a[i]); kp(1,n); for i:=1 to n do write(a[i],’ ‘); end.
- 预期结果没有词法、语法、语义错误,正确生成快速排序的C程序,可以用C编译器正确编译,并正确运行。<br /> C程序运行时,先读入一个数字n表示待排序的数字个数,再输入n个数字。最后输出从小到大排序的结果。<br />- 输出的C程序```cpp//Head files#include<stdio.h>#include<stdbool.h>//Overall constant definiton//Overall variable definitionint n;int i;int a[100001];//Subprogram declarationvoid quicksort();void kp(int l, int r);//Main functionint main(){quicksort();return 0;}//Subprogram definitionvoid quicksort(){scanf("%d", &n);for(i = 1; i <= n; i++)scanf("%d", &a[i]);kp(1, n);for(i = 1; i <= n; i++)printf("%d%c", a[i], ' ');}void kp(int l, int r){int i;int j;int mid;if(l >= r)return;i = l;j = r;mid = a[(l + r) / 2];do{while(a[i] < mid)i = i + 1;while(a[j] > mid)j = j - 1;if(i <= j){a[0] = a[i];a[i] = a[j];a[j] = a[0];i = i + 1;j = j - 1;}}while(!(i > j));kp(l, j);kp(i, r);}
- 控制台输出及运行结果

- 结果分析
编译程序各部分均为发现错误,且成功生成C代码,通过编译生成可执行程序。快速排序运行结果正确,所有数字按照从小到大的顺序进行了输出。
1.1.2 最大公因数
PASCAL-S源程序
program example(input,output); var n,i,x,y:integer; function gcd(a,b:integer):integer; begin if b=0 then gcd:=a else gcd:=gcd(b,a mod b); end; begin read(n); for i:= 1 to n do begin read(x,y); writeln(gcd(x,y)) end; end.
预期结果
没有词法、语法、语义错误,正确生成求最大公因数的C程序,可以用C编译器正确编译,并正确运行。
C程序运行时,先读入一个数字n表示待求最大公因数的数字对数,再输入n对数字,每对数字有一个输出,表示这对数字的最大公因数。
//Overall constant definiton
//Overall variable definition int n; int i; int x; int y;
//Subprogram declaration void example(); int gcd(int a, int b);
//Main function int main() { example(); return 0; }
//Subprogram definition void example() { scanf(“%d”, &n); for(i = 1; i <= n; i++) { scanf(“%d%d”, &x, &y); printf(“%d\n”, gcd(x, y)); } }
int gcd(int a, int b)
{
if(b == 0)
return (a);
else
return (gcd(b, a % b));
}
```
- 控制台输出及运行结果

- 结果分析
编译程序各部分均为发现错误,且成功生成C代码,通过编译生成可执行程序。求最大公因数运行结果正确。
