SỞ GIÁO DỤC VÀ ĐÀO TẠO TỈNH YÊN BÁI HD chấm đề thi chính thức Hướng dẫn chấm có 04 trang... Chỉ đúng Test1 được 05 điểm.[r]
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO
TỈNH YÊN BÁI
HD chấm đề thi chính thức
(Hướng dẫn chấm có 04 trang)
HƯỚNG DẪN CHẤM
KỲ THI CHỌN HỌC SINH GIỎI LỚP 11 THPT
NĂM HỌC 2012 – 2013
Môn thi: TIN HỌC 11
Ngày thi: 08/10/2012
Uses crt;
Const
Nmax=1000;
Var
A: array[1 Nmax] of longint;
N,dmax,dmax2,slmax2,i,j,tg: longint;
Begin
Clrscr;
Write('Nhap N='); Readln(N);
For i:=1 to N do
begin write('a[',i,']=');
readln(a[i]);
end;
//Sap xep
For i:=1 to n-1 do
For j:=i+1 to n do
if a[i]>a[j] then
Begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
End;
write('Max=',a[n]);
// Dem so luong max
i:=n-1;
while (i>0) and (a[i]=a[n]) do dec(i);
dmax:=n-i;
// Tim max2
if dmax<> N then dmax2:=a[n-dmax]
else dmax2:=-1;
// Dem so luong Max2
if dmax2>0 then
begin
i:= n-dmax;
while (i>0) and (a[i]=dmax2) do dec(i);
slmax2:=n-dmax-i;
end;
// Ghi ket qua
For i:=1 to N do write(a[i],#32);
writeln;
writeln('Gia tri lon nhat:',a[n]);
writeln('So luong phan tu lon nhat: ',dmax);
writeln('Gia tri lon thu 2: ',dmax2);
writeln('So luong phan tu lon thu 2 : ',slmax2);
Readln;
End
-1,0 đ
1,0 đ
1,0 đ
1,0 đ
0,5 đ
0,5 đ
1,0 đ
Trang 2- Chấm bài và tính điểm như sau:
Test 1: N= 5 và dãy số 4 2 4 5 1
Kết quả sau khi thực hiện yêu cầu:
Dãy số sau khi sắp xếp là: 1 2 4 4 5
Số lượng phần tử đạt Max: 1
Phần tử lớn thứ hai trong dãy số: 4
Số lượng phần tử lớn thứ hai là: 2
-Test 2: N= 5 và dãy 6 6 6 6 6
Kết quả sau khi thực hiện yêu cầu:
Dãy số sau khi sắp xếp là: 6 6 6 6 6
Số lượng phần tử đạt Max: 5
Phần tử lớn thứ hai trong dãy số: -1
Số lượng phần tử lớn thứ hai là: 0
Chỉ đúng Test1 được 05 điểm
Đúng cả test1 và test2 được
06 điểm
Uses Crt;
Var
S: string;
i: byte;
Begin
Write('Nhap xau s='); Readln(s);
Writeln('Do dai cua xau: ', length(s));
//xoa dau cach
while s[1]=' ' do delete(s,1,1);
while s[length(s)]=' ' do delete(s,length(s),1);
i:=1;
While i<= length(s) do
begin
while (s[i]=' ') and (s[i+1]= ' ') do delete(s,i,1);
inc(i);
end;
//Xu li chu hoa dau Tu
s[1]:=upcase(s[1]);
For i:=2 to length(s) do
if s[i]=' ' then s[i+1]:=upcase(s[i+1]);
Writeln('Xau S da xu li: ',s);
Readln;
End
- Chấm bài và tính điểm như sau:
Test 1: S = 'Toi Di Thi Hoc Sinh Gioi Mon Tin Hoc'
(Ở ví dụ này: Giữa các từ có 03 dấu cách)
Kết quả: Độ dài của xâu S: 39
Xâu S sau khi xử lí là: 'Toi Di Thi Hoc Sinh Gioi Mon Tin Hoc' Test 2: S = 'hoc'
(Ở ví dụ này: Đầu xâu S có 0 dấu cách)
Kết quả: Độ dài của xâu S: 3
Xâu S sau khi xử lí là: 'Hoc'
6,0 đ
1,0 đ 1,0 đ 1,0 đ
1,0 đ
1,0 đ 1,0 đ
Đúng test1 được 05 điểm
Đúng cả test 1 và test2 được
06 điểm
Uses Crt;
Const
5,0 đ
Trang 3Nmax=1000+2;
Var
a: array[0 Nmax,0 Nmax] of longint;
m,n,dem,i,j: longint;
Begin
Write('Nhap M=');readln(M);
Write('Nhap N=');readln(N);
For i:=1 to m do
For j:=1 to n do
Begin
Write('a[',i,',',j,']=');
readln(a[i,j]);
End;
dem:=0;
For i:=1 to m do
For j:=1 to n do
if (a[i-1,j] >= a[i,j]) and (a[i+1,j] >= a[i,j]) and (a[i,j-1] >= a[i,j]) and (a[i,j+1] >=
a[i,j]) then
Begin
inc(dem);
writeln(i,#32,j);
End;
if dem=0 then Write(dem);
Readln;
End. - Chấm bài và tính điểm như sau:
1,0 đ
1,0 đ
2,0 đ
1,0 đ
Đúng test1
và test2 được 04 điểm
Đúng cả 03 test được
05 điểm
Uses crt;
Const
fi='cau4.inp';
fo='cau4.out';
Nmax=405;// 405 - int64; 121- longint
Var
f: text;
N: longint;
P: array[0 Nmax,0 Nmax] of longint;
Procedure doctep;
Begin
Assign(f,fi);
Reset(f);
readln(f,N);
Close(f);
p[0,0]:=1;
End;
3,0 đ
1.0 đ
4 5
3 2 3 2 3
3 2 1 2 3
1 3 1 3 1
2 2 2 2 2
3 2
3 3
3 3
4 4 4
4 4 4
4 4 4
2 2
3 3
4 4 4
4 4 3
4 4 4
0
Trang 4Procedure xuli(u: longint);
Var v: longint;
Begin
if u=N+1 then exit
else
begin
For v:=1 to N do
begin
if u<v then p[u,v]:=p[u,v-1]
else p[u,v]:=p[u,v-1]+p[u-v,v];
end;
xuli(u+1);
end;
End;
Procedure ghikq;
Begin
Assign(f,fo);
Rewrite(f);
write(f,p[n,n]);
Close(f);
End;
Begin
Doctep;
Xuli(0);
Ghikq;
End
- Chấm bài và tính điểm như sau:
Test 1: N=5 => Kq=7 được 1,5đ /3đ
Test 2: N=122 =>Kq=2291320912 được 2,0đ /3đ
Test 3: N= 500 => Kq= 2300165032574323995027 được 3,0đ /3đ
1,5 đ
0,5đ