- Học sinh có cách giải khác, nhưng chính xác vẫn cho đủ số điểm.[r]
Trang 13/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 có thể không sử dụng chương trình con để giải, nhưng đúng vẫn cho đủ số điểm điểm
- Học sinh có cách giải khác, nhưng chính xác vẫn cho đủ số điểm
Câu 1 (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 do 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);
procedure bai1b; {Kiem tra so do 3 canh tam giac}
var t:integer;
begin
write('Nhap vao 3 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
0,5đ
CHÍNH THỨC
Trang 24/2
Câu 2 (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 < 0 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;
Writeln('So lon nhat la:',max:4:2);
Readln;
Câu 3 (2,0 điểm)
Trang 35/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 do
begin
if (i mod 2 =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 9 do
for j:=0 to 9 do
for k:=0 to 9 do
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');
BEGIN
clrscr;
bai3a;
writeln;
bai3b;
readln;
END
0,25đ
Câu 4 (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 nhau 1 dau
cach');
for i:=1 to n do read(a[i]);
end;
0.25đ
procedure bai4a; {Tim GTLN ~ max}
var max,i:integer;
begin
max:=1;
for i:=1 to n do
if (a[i]>max) then max:=a[i];
writeln('Diem cao nhat la: ',max);
end;
0,5đ
Trang 46/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 do b[i]:=a[i];
for i:=1 to n-1 do
for j:=i+1 to n do
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 do 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 do
inc(b[a[i]]);
0,5đ
for i:=1 to 10 do
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) do
begin
while (a[i+1]>=a[i]) do
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
0,25đ
Trang 57/2
Câu 5 (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 nhau 1
dau cach: ');
for i:=1 to n do read(a[i]);
0.25đ
{xu li}
count:=1;max:=1;i:=1;
while (i<n) do
begin
while (a[i]=a[i+1]) do
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 do write(a[imax],' ');
END
0.25đ