Tải bản đầy đủ

ĐỀ THI học SINH GIỎI TIN học 9 PASCAL 010 h yên KHÁNH 1415 k

PHÒNG GD&ĐT
YÊN KHÁNH

010

ĐỀ CHÍNH THỨC

ĐỀ THI CHỌN HỌC SINH GIỎI LỚP 9
Năm học: 2014 -2015
Môn: Tin học
Thời gian 150 phút không kể thời gian giao đề

(Đề này gồm 03 câu, 02 trang)
Chú ý:

- Thí sinh phải đặt tên file bài làm theo đúng yêu cầu.
- Các chương trình viết trên TURBO PASCAL hoặc FREE PASCAL.
- Số thực làm tròn đến 2 chữ số sau phần thập phân.

Câu 1. (Tên file bài làm là cau1.pas)
Cho a, b, c là 3 số thực.

Yêu cầu: Kiểm tra 3 số vừa nhập có là 3 cạnh của tam giác hay không.
Nếu là 3 cạnh của tam giác thì xem tam giác đó là tam giác vuông, tam giác có 3
góc nhọn hay là tam giác có 1 góc tù. Tính diện tích và bán kính đường tròn tiếp
xúc với ba cạnh của tam giác đó.
Dữ liệu vào: Ba số thực a, b, c được nhập từ bàn phím..
Dữ liệu ra: Ghi ra màn hình các thông tin sau:
- Nếu không là ba cạnh của tam giác thì ghi ra màn hình:
+ Dòng 1 ghi ra các số vừa nhập và thông báo "Khong la 3 canh cua tam giac".
+ Dòng 2 ghi ra số "0".
- Nếu là ba cạnh của tam giác thì ghi ra màn hình:
+ Dòng 1 ghi các số vừa nhập và thông báo rõ là ba cạnh của tam giác gì.
+ Dòng 2 ghi ra diện tích tam giác có 3 cạnh là a, b, c và bán kính đường
tròn tiếp xúc với ba cạnh của tam giác đó. Hai giá trị cách nhau ít nhất 1 khoảng
trắng.
Ví dụ:
Dữ liệu vào
3,00 4,00 5,00

Dữ liệu ra
3,00 4,00 5,00 la ba canh tam giac vuong
6,00 0,50

Câu 2. (Tên file bài làm là cau2.pas).
Cho 2 số tự nhiên a, b (3< a< b<109).
Yêu cầu: - Kiểm tra xem có bao nhiêu số nguyên tố nằm giữa 2 số tự
nhiên a và b.
- Tìm tổng bình phương của các số nguyên tố giữa a và b và tích
của hai chữ số tận cùng của tổng vừa tìm được với số 30102014.
- Tìm dạng tối giản của phân số a/b.
Dữ liệu vào: Hai số tự nhiên a và b thỏa mãn aDữ liệu ra: Ghi ra màn hình các thông tin sau:
- Nếu có số nguyên tố giữa a và b thì ghi kết quả như sau:
+ Dòng 1 ghi ra hai số: Số thứ nhất là số các số nguyên tố giữa hai số a và
b; số thứ hai là tổng bình phương các số nguyên tố nằm giữa a và b; mỗi số cách
nhau ít nhất một khoảng trắng.
+ Dòng 2 ghi ra tích của hai chữ số tận cùng của tổng vừa tìm được với
số 30102014,
+ Dòng 3 ghi ra dạng tối giản của phân số a/b.
1


- Nếu không có số nguyên tố nào thì ghi kết quả như sau:
+ Dòng 1 ghi ra ra thông báo: “Không”.
+ Dòng 2 ghi ra dạng tối giản của phân số a/b.
Ví dụ:
Dữ liệu vào
36

Dữ liệu ra
1 25
752550350
3/6 = 1/2

Câu 3. (Tên file bài làm là cau3.pas).
Cho dãy số thực a1, a2, … an. (1Yêu cầu: Hãy tính giá trị trung bình của dãy số trên; tìm phần tử có giá trị
gần với giá trị trung bình nhất và chỉ rõ đó là phần tử thứ mấy trong dãy(Tính từ
trái sang phải).
Dữ liệu vào: Đọc từ file văn bản có tên là dayso.inp: dòng đầu ghi số
nguyên n, các dòng tiếp theo ghi giá trị các số thực a1, a2, … an.
Dữ liệu ra: - Ghi ra file văn bản có tên là dayso.out, các giá trị nằm trên
cùng một dòng gồm: giá trị trung bình, phần tử có giá trị gần với giá trị trung
bình và chỉ số của phần tử đó, mỗi số cách nhau ít nhất một khoảng trắng.
Ví dụ:
Dữ liệu vào
5
15,00 -2,00 6,00 -9,00 4,00

Dữ liệu ra
2,80 4,00 5

------Hết-----

Họ và tên thí sinh:................................, SBD:.......................

PHÒNG GD&ĐT

HD CHẤM THI HỌC SINH GIỎI LỚP 9
2


YÊN KHÁNH

010

Môn: Tin học
Năm học: 2014- 2015
(HD này gồm 03 câu, 02 trang)

Hướng dẫn chấm:
Giám khảo chấm lần lượt từng thí sinh. Mỗi thí sinh chấm lần lượt từng
bài. Với mỗi bài chấm lần lượt từng test theo quy trình sau:
1. Sao chép bài làm của thí sinh từ đĩa bài thi vào ổ cứng.
2. Sao chép test *.inp vào cùng thư mục với bài làm(đối với bài 3).
3. Chạy chương trình của thí sinh.
4. Kiểm tra file *.out do chương trình sinh ra, nếu có , mở file đó, so sánh
với đáp án và cho điểm.
- Nếu chương trình của thí sinh không sinh được file *.out thì không cho
điểm.
- Nếu chương trình treo hoặc chạy quá lâu(20 giây), giám khảo thực hiện
CTRL+BREAK để ngắt.
5. Xóa sạch các file *.inp, *.out và quay lại bước 2 cho đến hết.
6. Cộng, tính điểm cả bài.
Biểu điểm:
Câu 1: (6 điểm)
TT
Dữ liệu nhập
Kết quả
Điểm
345
3,00 4,00 5,00 la ba canh tam giac vuong
1
1 điểm
2

223

3

100,9 300 290

4

-6 -9 -12

5

123 134 141

6

32 -2 27

6,00 0,50
2,00 2,00 3,00 Khong la 3 canh cua tam giac
0
100,90 300,00 290,00 la ba canh tam giac nhon
14591,31 21,12
-6,00 -9,00 -12,00 khong la ba canh tam giac
0
123,00 134,00 141,00 la ba canh tam giac nhon
7550,99 18,97
32,00 2,00 27,00 Khong la 3 canh cua tam giac
0

Câu 2: (6 điểm)
TT
Dữ liệu nhập
1
2
3
4

3
6
3
10
10
20000
4
29800

Kết quả
1 25
752550350
3/6 = 1/2
2 74
2227549036
3/10 = 3/10
2258 276734559026
782652364
10/20000 = 1/2000
3226 880564038586
2588773204
4/29800 = 1/7450

3

1 điểm
1 điểm
1 điểm
1 điểm
1 điểm
Điểm
1 điểm
1 điểm
1 điểm
1 điểm


TT
5
6

Dữ liệu nhập

Kết quả

142857
857142

54887 206865141999
2980099386
142857/857142 = 1/6
Khong
120/127 = 120/127

120
127

Câu 3: (8 điểm)
TT
Dữ liệu nhập
1
2
3
4
5
6
7
8

Kết quả

5
15 -2 6 -9 4
7
3 14 3 24 -1 15 18
10
549 593 716 … 624
Dayso.in3
Dayso.in4
Dayso.in5
Dayso.in6
Dayso.in7

2,80 4,00 5
10,86 14,00 2
660,50 624,00 10
1154,10 858 6
511,54 521,00 47
528,57 529,00 23
1154,10 858,00 6
506783,00 520477,00 47

Điểm
1 điểm
1 điểm
Điểm
1 điểm
1 điểm
1 điểm
1 điểm
1 điểm
1 điểm
1 điểm
1 điểm

(Tổng điểm toàn bài là 20 điểm)
Chương trình tham khảo:
Câu 1

uses crt;
var a,b,c:real;
S,Cv,p,r:real;
begin
read(a,b,c);
clrscr;
if (a+b(a+b=c) or (b+c=a) or (c+a=b) or (a<0) or (b<0) or
(c<0)
then
begin
writeln(a:1:1,' , ',b:1:1,' , ',c:1:1,' ko la 3 canh cua
tam giac. ');
writeln(' 0 ');
end;
if (a+b>c) and (b+c>a) and (c+a>b) and (a>0) and (b>0) and
(C>0)
then
begin
write(a:1:1,' , ',b:1:1,' , ',c:1:1);
Cv:=a+b+c;
p:=Cv/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
R:=s/Cv;
if (sqr(a)=(sqr(b)+sqr(c)))
or (sqr(b)=(sqr(c)+sqr(a)))
or (sqr(c)=(sqr(b)+sqr(a)))

4


then
writeln(' la ba canh tam giac vuong ');
if (sqr(a)<(sqr(b)+sqr(c)))
and (sqr(b)<(sqr(c)+sqr(a)))
and (sqr(c)<(sqr(b)+sqr(a)))
then
writeln(' la ba canh tam giac nhon ');
if (sqr(a)>(sqr(b)+sqr(c)))
or (sqr(b)>(sqr(c)+sqr(a)))
or (sqr(c)>(sqr(b)+sqr(a)))
then
writeln(' la ba canh tam giac tu ');
writeln(S:1:2,' ',r:1:2);
end;
readln;
readln
end.

Câu 2:

uses crt;
var a,b,r,d,m,n,BC:longint;
i,j,dem:integer;
kt:boolean; S:INT64;
begin
readln(a,b);
clrscr;
m:=a;n:=b;dem:=0; S:=0;
while b<>0 do
begin
r:=a mod b;
a:=b;
b:=r;
end;
d:=a;
for i:= m+1 to n-1 do
begin
if i>1 then kt:=true else kt:=false;
if i> 2 then for j:=2 to Trunc(sqrt(i)) do
if (i mod j =0)
then
kt:=false;
if kt
then
begin
S:=S+sqr(i);
dem:=dem+1;
end;
end;
if s= 0 then writeln('khong')
else
begin
writeln(dem,' ', S);
writeln((s mod 100)*30102014);
end;
writeln(m,'/',n,'=',(m div d),'/',(n div d));

5


readln;
end.

Câu 3:

uses crt;
Const fi= 'dayso.inp';
fo= 'dayso.out';
var a,b:array[1..100] of real;
imin,j,i,n,tt:Longint;
s,tb,min,c:real;
f,g:Text;
BEGIN
BEGIN
ASSign(f,fi);
RESET(F);
Read(f,n);
for i:= 1 to n do
read(f,a[i]);
Close(f);
ENd;
ASSIGN(g,fo);
REWRITE(g);
s:=0;
for i:= 1 to n do
begin
s:=S+ a[i];
end;
tb:=s/n;
begin
for j:= 1 to n do
b[j]:=abs(tb-a[j]);
min:=b[1];
for j:=1 to n do
if b[j]begin
min:=b[j];c:=a[j];
TT:=j;
end;
end;
writeln(g,tb:12:2,' ',c:2:2,' ',tt:2);
Close(g);
END.

Biểu điểm:
- Câu 1 và câu 2 mỗi câu có tổng điểm là 6 điểm; Câu 3 có tổng điểm là 8
điểm.
- Nếu bài làm của học sinh không đọc được file thì có thể trừ tối đa 25%
điểm toàn bài.
- Bài điểm quá thấp có thể kiểm tra cú pháp, thuật toán để cho điểm nhưng
không qua 50% điểm của mỗi bài.

6



×

×