- Học sinh có cách giải khác, nhưng chính xác vẫn cho đủ số điểm.[r]
(1)3/2
SỞ GIÁO DỤC VÀ ĐÀO TẠO LÀO CAI
ĐÁP ÁN – THANG ĐIỂM
TUYỂN SINH VÀO LỚP 10 THPT CHUYÊN Môn thi: Tin học – chuyên
(Đáp án-thang điểm gồm có 05 trang)
Lưu ý:
- Học sinh khơng sử dụng chương trình để giải, vẫn cho đủ số điểm điểm
- Học sinh có cách giải khác, xác cho đủ số điểm
Nội dung Điểm
Câu (2 điểm)
program bai1; uses crt;
procedure bai1a; {tinh dien tich, chu vi hinh tron?} var a,b,c:integer;
begin
write('Nhap vao dai canh hinh vuong: '); readln(a);
0,25đ
writeln('Dien tich cua hinh tron la: ',a*a*3.14159/2:-8:3); 0.25đ writeln('Chu vi hinh tron la: ',a*sqrt(2)*3.14159:-8:3);
end; 0.25đ
procedure bai1b; {Kiem tra so canh tam giac} var t:integer;
begin
write('Nhap vao so nguyen a,b,c: '); readln(a,b,c);
0,25đ
if (a>b) then begin t:=a; a:=b; b:=t; end; if (b>c) then begin t:=b; b:=c; c:=t; end;
if (a+b>c) then writeln('YES') else writeln('NO'); end;
0.5
BEGIN
clrscr; bai1a; writeln; bai1b; readln; END
(2)4/2
Câu (2,0 điểm)
Program PHUONG_TRINH_BAC_II; Uses crt;
Var a,b,c,delta, x1, x2: real; Begin
Clrscr;
Write('Nhap he so a: '); readln(a); Write('Nhap he so b: '); readln(b); Write('Nhap he so c:'); readln (c);
0,25 đ
Delta := b*b - 4*a*c;
if (delta = 0) then Writeln ('Phuong trinh co nghiem kep x1 = x2 =', -b/2*a: 5: 2)
else if delta < then writeln('Phuong trinh vo nghiem') 0,25 đ else
begin
x1 := (-b - sqrt(delta))/ (2*a); x2 := (- b+ sqrt (delta))/( 2*a);
0,25 đ
Writeln('Phuong trinh co hai nghiem phan biet:'); Write ('x1 = ', x1: 5:2, ' x2 = ', x2 : 5:2);
end; Readln
End
0,25 đ
Program TIM_SO_LON_NHAT; Uses crt;
Var a,b,c,d,max:real; Begin
Clrscr;
Writeln('TIM SO LON NHAT TRONG BON SO A, B, C, D'); Writeln(' -'); Write('Nhap a='); Readln(a);
Write('Nhap b='); Readln(b); Write('Nhap c='); Readln(c); Write('Nhap d='); Readln(d);
0,25 đ
max:=a;
If b>max then max:=b; 0,25 đ
If d>max then max:=d; 0,25 đ
Writeln('So lon nhat la:',max:4:2); Readln;
End 0,25 đ
(3)5/2 program bai3;
uses crt;
procedure bai3a; {Tinh tong s=1/2-1/3+1/4-1/5+…+1/n} var n,i:integer;
s:real; begin
write('Nhap vao so n: '); readln(n);
0,25đ
s:=0;
for i:=2 to n begin
if (i mod =0) then s:=s+1/i else s:=s-1/i; end;
writeln('Tong cua day so la: ',s:8:7); end;
0,5đ
procedure bai3b;
Var i,j,k:integer; Begin
Writeln(‘Cac so thoa man la :'); 0,25 đ
1 for i:=1 to for j:=0 to for k:=0 to
if (100*i+10*j+k)=(i*i*i + j*j*j + k*k*k) then
0,5đ
Writeln(i,j,k,' = ',i,'^3 + ',j,'^3 + ',k,'^3');
End; 0,25đ
BEGIN
clrscr; bai3a; writeln; bai3b; readln; END
0,25đ
Câu (3,0 điểm)
program bai4; var n:integer;
a:array[1 35] of integer; procedure init; {Nhap du lieu} var i:integer;
begin
write('Nhap so hoc sinh cua lop: '); readln(n);
writeln('Nhap diem cua ',n,' ban, moi diem cach dau cach');
for i:=1 to n read(a[i]); end;
0.25đ
procedure bai4a; {Tim GTLN ~ max} var max,i:integer;
begin
max:=1;
for i:=1 to n
if (a[i]>max) then max:=a[i]; writeln('Diem cao nhat la: ',max); end;
(4)6/2
procedure bai4b; {in diem sap xep, su dung sap xep don gian} var i,j,t:integer;
b:array[1 35] of integer; begin
for i:=1 to n b[i]:=a[i]; for i:=1 to n-1
for j:=i+1 to n
if (b[i]>b[j]) then begin t:=b[i];b[i]:=b[j];b[j]:=t; end;
write('Diem duoc sap xep tang dan la: '); for i:=1 to n write(b[i],' ');
writeln; end;
0,5đ
procedure bai4c; {dem so lan xuat hien cua loai diem nhieu nhat} var b:array[1 10] of integer;
i,imax,max:integer; begin
max:=0;imax:=0;
fillchar(b,sizeof(b),0); for i:=1 to n
inc(b[a[i]]);
0,5đ
for i:=1 to 10
if (b[i]>max) then begin max:=b[i]; imax:=i; end; writeln('Diem xuat hien nhieu lan nhat la: ',imax); end;
0,25đ
procedure bai4d; {Doan khong giam dai nhat} var count,max,i:integer;
begin
count:=1;max:=1; i:=1;
while (i<n) begin
while (a[i+1]>=a[i]) begin
inc(count); inc(i); end;
if (count>max) then max:=count; inc(i);
count:=1; end;
write('Do dai doan diem khong giam dai nhat la: ',max); end;
0,75đ
BEGIN init; bai4a; bai4b; bai4c; bai4d; readln; readln; END
(5)7/2
Câu (1,0 điểm)
program bai5;
var n,i,imax,max,count:integer; a:array[1 10000] of integer; BEGIN
write('Nhap so phan tu cua day, n= '); readln(n);
write('Nhap ',n,' phan tu cua day, moi phan tu cach dau cach: ');
for i:=1 to n read(a[i]);
0.25đ
{xu li}
count:=1;max:=1;i:=1; while (i<n)
begin
while (a[i]=a[i+1]) begin
inc(count); inc(i); end;
if (count>max) then begin max:=count;imax:=i; end; inc(i);
count:=1; end;
writeln;
0.5đ
write('Mat bang lon nhat la: ');
for i:=1 to max write(a[imax],' '); END