三、阅读程序写结果。(共4题,每题8分,共计32分) 1. var
a,b,c,d,e,ans: integer;
begin readln(a,b,c); d:=a+b; e:=b+c; ans:=d+e; writeln(ans);
end.
输入:1 2 5
输出:__10____________
2. var n,i,ans: integer;
begin readln(n); ans:= 0;
for i:= 1 to n do
if (n mod i)= 0 then ans := ans+1; writeln(ans); end.
输入:18
输出:_______6______
mod 函数是取余数函数(两数相除,取其余数)
if (n mod i)= 0 的意思是假如n能整除i(余数为0) 3. var
n,i,j: integer;
a: array[1..100,1..100] of integer;
function solve(x,y:integer): integer;
var u,v: integer; begin if x = n then begin solve:= a[x,y];
exit;
end;
u:= solve(x+1,y); v:= solve(x+1,y+1); if u>v then
solve := a[x,y] + u else
solve := a[x,y] + v; end;
begin
read(n);
for i:= 1 to n do for j:=1 to i do read(a[i,j]);
writeln(solve(1,1)); end.
输入: 5
2 -1 4 2 -1 -2 -1 6 4 0 3 2 -1 5 8
输出:_____14_________ 4. var
n,ans,i,j: integer; S: string;
Function get(i: integer) : char; begin
if i<= n then get:= s[i]
else get:=s[i-n]; end;
begin readln(s); n:= length (s);
ans:= 1;
for i:= 2 to n do
begin for j:=0 to n-1 do
if get(i+j) < get(ans+j) then begin ans:=i; break; end
else if get(i+j)> get(ans+j) then break; end;
for j:=0 to n-1 do
write(get(ans+j)); writeln; end.
答案:
四、 输入:CBBADADA
1: 输出:_ ACBBADAD___________
1. 0
2. y[j]
2 used[data[i]]:=flase
3.j Const 4.n SIZE= 100; 5.break Var
X,y,f:array[1..SIZE] of integer; N,i,j,max_f,ans: integer;
Begin readln(n); For i:=1 to n do Readln (x[i],y[i]]); Max_f :=0;
For i:=1 to n do Begin f[i]:= ① ; For j:= 1 to n do
Begin if(x[j]< x[i]) and ( ② ) then ③ ; End;
If ④ then
Begin max_f:= f[i]; ⑤ ; End; End;
For i:= 1 to n do Writeln(f[i]); Writeln(ans);
End.
2. (排列数)输入两个正整数n,m(1 3 1 3 2 const SIZE:=25; var used: array[1.. SIZE] of boolean; data: array[1.. SIZE] or integer; n,m,i,j,k : integer; flag: boolean; begin readln(n,m); fillchar (used,sizeof(used), false); for i:=1 to m do begin data[i]:=i; used[i]:= true; end; flag:= true; While flag do begin for i:= 1 to m-1 do write(data[i],’ ‘); writeln(data[m]); flag:= ① ; for i:=m downto 1 do begin ② ; for j:= data[i]+1 to n do if used[j]= false then begin used[j]:= true; data[i]:= ③ ; flag:= true; Break; end; if flag then begin for k:=i+1 to m do for j:=1 to ④ do if used[j]= false then begin data[k]:= j; used[j]:= true; Break; end; ⑤ ; end; end; end; end. ================================== 参考答案: 一、 1-10:ABABC CBCAB 11-20:BDBCC DCACB 二、1. 5 2. 2880 三、 10 6 14 ACBBADAD 四、 1. 0 2. y[j] 3.f[i]:=f[i]+1; 4.(i>1)and (f[i]>f[i-1]) 5.ans:=max_f 2.1 false 2 used[data[i]]:=flase 3.j 4.n 5.break