Cộng đồng chia sẻ tri thức Lib24.vn

Đề thi HSG Tin 9 huyện Tam Dương năm 2011-2012

1d1e29bcfcb149cc8078ddd661586394
Gửi bởi: Nguyễn Minh Lệ 18 tháng 12 2021 lúc 20:52:29 | Được cập nhật: hôm qua lúc 0:48:28 | IP: 14.175.219.33 Kiểu file: DOC | Lượt xem: 86 | Lượt Download: 0 | File size: 0.070144 Mb

Nội dung tài liệu

Tải xuống
Link tài liệu:
Tải xuống

Các tài liệu liên quan


Có thể bạn quan tâm


Thông tin tài liệu

UBND HUYỆN TAM DƯƠNG

UBND HUYỆN TAM DƯƠNG

PHÒNG GD-ĐT

----------

ĐỀ CHÍNH THỨC

ĐỀ THI HỌC SINH GIỎI VÒNG 1

Môn: Tin học 9

Thời gian làm bài: 150 phút

(Không kể thời gian giao đề)

(Lưu ý đề thi có 02 trang)

Ghi chú: Học sinh có thể nhập, xuất dữ liệu từ file văn bản hoặc từ bàn phím

Bài 1: ( 3 điểm ) Tên file bài làm là: bailam1.pas

Với mỗi số tự nhiên N ( 1 N 1000). Tìm các số tự nhiên M N thoả mãn:

+/ M là một số nguyên tố.

+/ Tổng các chữ số của M cũng là một số nguyên tố.

Yêu cầu: Nhập số tự nhiên N (1 N 1000). Thông báo số lượng các số tự nhiên M thỏa mãn các yêu cầu trên, đó là các số nào?

Dữ liệu vào từ file: bailam1.inp

Dòng 1: Số tự nhiên N

Dữ liệu ra file: bailam1.out

Dòng 1: Ghi các số M thỏa mãn yêu cầu

Dòng 2: Số lượng các số tự nhiên M thỏa mãn

Ví dụ:

Dữ liệu vào từ file: bailam1.inp

10

Dữ liệu ra file: bailam1.out

2 3 5 7

4

Bài 2: ( 3 điểm) Tên file bài làm là: bailam2.pas

Dãy số a1, a2, a3, ……, an được định nghĩa như sau:

+ a1= m;

+ ai+1 là số đảo ngược của số ai + k (1 i n-1)

Yêu cầu:

1/ Với mỗi bộ 3 số tự nhiên khác 0 là m, k, n được nhập hãy in ra dãy số a1, a2, a3,… , an.

2/ In ra các chỉ số i mà tại đó ai = 1.

Dữ liệu vào từ file: bailam2.inp

Dòng 1: Số tự nhiên m, k, n

Dữ liệu ra file: bailam2.out

Dòng 1: Dãy số a1, a2, a3, ……, an.

Dòng 2: chỉ số i mà tại đó ai = 1

Ví dụ:

Dữ liệu vào từ file: bailam2.inp

1 4 10

Dữ liệu ra file: bailam2.out

15 9 31 53 75 97 101 501 505

1

Bài 3: ( 2 điểm) Tên file bài làm là: bailam3.pas

Một công ty có nhu cầu cần mua 1 máy chuyên dụng, có N xí nghiệp nhận gia công loại máy này ( 1 N 20). Với mỗi xí nghiệp thứ i ( 1 i N), thời gian gia công chiếc máy là T[i] và bán máy với giá C[i]. Yêu cầu:

a/ Liệu công ty có thể mua máy của xí nghiệp nào mà thời gian gia công nhanh nhất và bán với giá rẻ nhất không ? Nếu có đó là xí nghiệp nào ?

b/ Trong trường hợp không có xí nghiệp nào thỏa mãn cả 2 yêu cầu trên thì công ty ưu tiên mua của xí nghiệp có thời gian gia công nhanh nhất nhưng với điều kiện giá mua không cao hơn quá 10% của giá rẻ nhất. Liệu công ty có thực hiện được ý muốn không ? Nếu được thì thông báo đó là xí nghiệp nào ?

Dữ liệu vào từ file: bailam3.inp

Dòng 1: Số tự nhiên N

Dòng 2: Thời gian gia công của xí nghiệp thứ i

Dòng 3: Giá thành của xí nghiệp thứ i

Dữ liệu ra file: bailam3.out

Dòng 1: Ghi xí nghiệp được chọn, nếu không chọn được xí nghiệp nào thì ghi số 0

Ví dụ:

Ví dụ 1

Ví dụ 2

Ví dụ 3

bailam3.inp

3

5 2 7

4 3 5

4

20 6 5 12.5

15 10 11 13

3

18.5 5 9

9 8.5 4.5

bailam3.out

2

3

0

Bài 4: (2 điểm) Tên file bài làm là: bailam4.pas

Một nhóm gồm N học sinh thực hiện trò chơi loại người ra khỏi vòng tròn. Luật chơi như sau: N học sinh được đánh số hiệu từ 1 đến N xếp thành vòng tròn và học sinh thứ M bị loại ra khỏi vòng tròn tính theo chiều kim đồng hồ. Khi một học sinh bị loại khỏi vòng tròn, thì vòng tròn thu hẹp lại và đếm thứ tự từ học sinh còn lại bên cạnh để xác định học sinh bị loại tiếp theo, cứ như vậy cho đến khi nào trên vòng tròn chỉ còn một học sinh. Nhập hai số tự nhiên N, M hãy chỉ ra số hiệu của học sinh còn lại trên vòng tròn.

Dữ liệu vào từ file: bailam4.inp

Dòng 1: Số tự nhiên N, M

Dữ liệu ra file: bailam4.out

Dòng 1: Số hiệu của học sinh còn lại trên vòng tròn

Ví dụ:

Dữ liệu vào từ file: bailam4.inp

10 5

Dữ liệu ra file: bailam4.out

3

-----------------------------o0o-----------------------------------

Cán bộ coi thi không giải thích gì thêm.

UBND HUYỆN TAM DƯƠNG

PHÒNG GD-ĐT

----------

HƯỚNG DẪN CHẤM THI HSG VÒNG 1

Môn: Tin học 9

Thời gian làm bài: 150 phút

Ghi chú: Học sinh có thể nhập, xuất dữ liệu từ file văn bản hoặc từ bàn phím

Bài 1: ( 3 điểm ) bailam1.pas: Mỗi Test đúng: 0.5 điểm

bailam1.inp

15

1

0

1000

1001

7

bailam1.out

2 3 5 7 11

5

0

0

2 3 5…

89

0

2 3 5 7

4

Bài 2: ( 3 điểm) bailam2.pas

Mỗi Test đúng: 0.5 điểm

Bailam2.inp

0 0 0

1 1 1

2 5 7

4 5 50

10 6 24

2 100 50

Bailam2.out

0

0

1

1

2 7 21 62 76 18 32

0

4 1 7 31 73….

2 32

10 61 76…

7

2 201 103…

0

Bài 3: ( 2 điểm) bailam3.pas Mỗi Test đúng: 0.5 điểm

Bailam3.inp

2

1 1

1 1

3

1 2 4

5 6 3

4

15 20.5 7 12

17 16.5 8 10

7

5 7 5.5 9 6 4 6

15 9 7 20 8 7.5 10

Bailam3.out

1

2

0

3

6

Bài 4: (2 điểm) Tên bailam4.pas Mỗi Test đúng: 0.5 điểm

Bailam 4.inp

1 1

15 4

50 56

100 100

Bailam 4.out

1

13

27

22

-----------------------------o0o-----------------------------------

BỘ CHƯƠNG TRÌNH NGUỒN MẪU

(Sử dụng nhập, xuất từ bàn phím)

Program bai1;

Var m,n,i,j,k,d:Longint;

Function nto(n:Longint):Longint;

Var i:Longint;

Begin

d:=0;

For i:=2 to n div 2 do

If N mod i = 0 then Inc(d);

If (d=0)and(n<>1) then nto:=n;

End;

Function Sum(m:Longint):Longint;

Var s:Longint;

Begin

s:=0;

Repeat

s:=s+ m mod 10;

m:= m div 10;

Until m=0;

Sum:=s;

End;

Procedure XULI;

Var n,d:Longint;

Begin

Write(' N= '); Readln(N);

if (n>=1) and (n<=1000) then

begin

d:=0;

For i:= 2 to N do

If (nto(i)=i)and(nto(Sum(i))=Sum(i)) then

Begin

Inc(d);

Write(i:5);

End;

Writeln;

Writeln(' TIM THAY ',d:5,' SO THOA MAN');

End

else write('0');

END;

Begin

XULI;

Readln;

End.

Program bai2;

Var m,n,i,k,d:Longint;

a:Array[1..1000] of longint;

Function dao(n:Longint):Longint;

Var s,i:Longint;

Begin

s:=0;

Repeat

s:=s*10 + n mod 10;

n:=n div 10;

Until n=0;

dao:=s;

End;

Begin

Write('m,k,n'); Readln(m,k,n);

a[1]:=m;

For i:=1 to n-1 do a[i+1]:=dao(a[i]+k);

For i:=1 to n do write(a[i]:5);

Writeln;

Writeln(' CAC VI TRI MA a[i]=1 LA:');

For i:=1 to n do

If a[i]=1 then write(i:5);

Readln;End.

Program Bai3;

Type Mang=array[1..100] of real;

Var n,i,j,k:integer;

t,c:Mang;

min1,min2:real;

Begin

write('Nhap so xi nghiep n= '); Readln(n);

writeln('Nhap thoi gian gia cong va gia thanh:');

for i:=1 to n do

begin

write('t[', i,']='); readln(t[i]);

write('c[', i,']='); readln(c[i]);

End;

min1:=t[1];

For i:=2 to n do

If min1>t[i] then min1:=t[i];

min2:=c[1];

For i:=2 to n do min2:=c[i];

k:=0;

For i:=1 to n do

begin

if (t[i]=min1) and (c[i]=min2) then

begin

inc(k);

writeln(' Lua chon XN thu:',i)

end

else

if (t[i]=min1) and (c[i]<=min2*1.1) then

begin

inc(k);

writeln(' Lua chon XN thu:',i);

end

end;

if k=0 then Writeln(' 0 ');

Readln;

end.

Bai 4

Var m,n,i,j,d,loai:Byte;

a:array[1..100] of 0..1;

Begin

Write(' Nhap so hoc sinh:'); Readln(N);

Write(' Hoc sinh bi loai dau tien: '); Readln(M);

For i:=1 to n do a[i]:=1;

loai:=0; i:=0; d:=0;

Repeat

i:=i mod n + 1;

If (a[i]<>0) and (d<M) then

Begin

inc(d);

if d=M then

Begin

a[i]:=0;

d:=0;

Inc(loai);

End;

End;

Until loai >= N-1;

Writeln(' CON NGUOI THU:');

d:=0;

For i:=1 to N do

If a[i]=1 then

Begin

write(i:5);

Inc(d);

End;

If d=0 then write('0');

Readln;

End.