1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề thi học sinh giỏi lớp 9 THCS tỉnh Ninh Bình năm 2012 - 2013 môn tin

6 598 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 106,5 KB

Nội dung

SỞ GD&ĐT NINH BÌNH ĐỀ THI CHỌN HỌC SINH GIỎI LỚP 9 THCSNăm học 2012 – 2013 MÔN:TIN HỌC Thời gian làm bài 150 phút, không kể thời gian giao đề Đề thi gồm 03 câu, trong 02 trang Yêu cầu kỹ

Trang 1

SỞ GD&ĐT NINH BÌNH ĐỀ THI CHỌN HỌC SINH GIỎI LỚP 9 THCS

Năm học 2012 – 2013 MÔN:TIN HỌC

(Thời gian làm bài 150 phút, không kể thời gian giao đề)

Đề thi gồm 03 câu, trong 02 trang

Yêu cầu kỹ thuật:

* Các file chương trình và file dữ liệu được đặt tên chính xác như sau:

Tên bài File bài làm Dữ liệu vào Dữ liệu ra Time

Bài 1: Số siêu nguyên tố (8 điểm) File bài làm: SNT.PAS

Tại Vương quốc Byte xinh đẹp, mỗi người luôn chọn cho mình một con số, theo họ số nguyên tố là số mang lại sự may mắn và ai tìm được một số siêu nguyên tố còn may mắn hơn nữa Số siêu nguyên tố là một số nguyên tố mà khi bỏ 1 số tùy ý các chữ số bên phải của nó thì phần còn lại vẫn là 1 số nguyên tố Số 2333 là 1 số siêu nguyên tố vì 2333 là một số nguyên tố và 233, 23, 2 cũng là các số nguyên tố

Dữ liệu vào: SNT.INP Chứa một số nguyên dương n (n ≤ 109)

Dữ liệu ra: SNT.OUT Nếu N là siêu nguyên tố ghi giá trị 1, ngược lại ghi giá trị 0

Ví dụ:

Bài 2 Trò chơi với băng số (8 điểm) File bài làm DIV.PAS

Cho một băng số gồm n số nguyên dương, mỗi số được viết trên một ô Hãy cắt băng số này thành nhiều đoạn nhất sao cho tổng các phần tử trong các đoạn là bằng nhau

Dữ liệu vào: DIV.INP + Dòng đầu ghi n (n ≤ 1000)

+ Dòng tiếp theo ghi n số nguyên dương a1 , a 2 , , a n

(các số nằm trên một dòng cách nhau bởi một dấu cách ai ≤ 1000)

Dữ liệu ra: DIV.OUT Ghi K là số đoạn cần chia

Ví dụ:

8

10 2 6 2 5 2 1 2

Đoạn 2: 2 + 6 + 2 =10 Đoạn 3: 5 + 2 + 1 + 2 = 10

ĐỀ THI CHÍNH THỨC

SNT.INPSNT.OUT23331 SNT.INPSNT.OUT130 SNT.INPSNT.OUT23331 SNT.INPSNT.OUT130

2 6

2 5

2

Trang 2

Bài 3: Bài toán ô vuông (4 điểm) File bài làm: SQUARE.PAS

Cho một bảng chữ nhật gồm m * n điểm (gồm m hàng ngang trên mỗi hàng có

n điểm) Các điểm liền kề trên cùng một hàng hoặc một cột có thể được nối với nhau bởi một đoạn thẳng có kích thước bằng 1 Trên mỗi hàng có nhiều nhất n - 1 đoạn thẳng nằm ngang nối các điểm liền nhau, trên mỗi cột có nhiều nhất là m - 1 đoạn thẳng thẳng đứng nối các điểm liền nhau Xem hình dưới:

Với bảng trên ta có 3 hàng ngang mỗi hàng 5 điểm Các đoạn thẳng nối chúng

tạo nên 2 ô vuông Để mô tả bảng người ta dùng hai mảng nhị phân: mảng Ngang diễn tả các đoạn thẳng nằm ngang, mảng Dọc biểu diễn các đoạn thẳng thẳng đứng

Trong các mảng, số 1 diễn tả có đoạn thẳng nối hai điểm liên tiếp, số 0 diễn tả không

có đoạn thẳng nối hai điểm liên tiếp

Yêu cầu: Lập trình đếm số lượng các ô vuông mà cạnh có độ dài bằng 1 tạo bởi các

đoạn nối có trên bảng đã cho

Dữ liệu vào: SQUARE.INP

+ Dòng đầu tiên gồm 2 số nguyên dương lần lượt là m, n (m, n ≤ 1000) Hai số cách nhau một khoảng trắng

+ m dòng tiếp theo diễn tả các đoạn thẳng nằm ngang (như bảng ngang mô tả ở phần trên) Hai số liền nhau cách nhau một khoảng trắng

+ m - 1 dòng tiếp theo diễn tả các đoạn thẳng thẳng đứng (như bảng dọc mô tả

ở phần trên) Hai số liền nhau cách nhau một khoảng trắng

Dữ liệu ra : SQUARE.OUT

+ Số lượng ô vuông có độ dài cạnh bằng 1

Ví dụ:

3 5

1 0 1 0

1 0 0 0

1 1 1 1

1 1 1 0 0

1 1 0 0 0

2

-HẾT -Ngang: Dọc:1 0 1 0

1 0 0 0

1 1 1 1

1 1 1 0 0

1 1 0 0 0

Trang 3

Họ và tên thí sinh : Số báo danh

Họ và tên, chữ ký: Giám thị 1:

Họ và tên, chữ ký: Giám thị 2:

Trang 4

SỞ GD&ĐT NINH BÌNH HDC ĐỀ THI CHỌN HSG LỚP 9 THCS

Năm học 2012 – 2013 MÔN: Tin học

(Hướng dẫn chấm gồm 03 trang)

I HƯỚNG DẪN CHUNG

Chấm tự động bằng phần mềm AMM2 với các bộ test có sẵn trên đĩa CD

II ĐÁP ÁN VÀ THANG ĐIỂM

1 Cấu trúc bộ test và thang điểm

Bài 1 Gồm 16 bộ test, mỗi bộ 0.5 điểm 8 điểm

Bài 2 Gồm 16 bộ test, mỗi bộ 0.5 điểm 8 điểm

Bài 3 Gồm 16 bộ test, mỗi bộ 0.25 điểm 4 điểm

2 Đáp án

-Hết -Bài 1:

Const fi = 'SNT.INP';

Fo = 'SNT.OUT';

var n: longint; f:text; kq: boolean;

function nt(n: longint):boolean;

var i: longint;

begin

if n<2 then exit(false);

if n=2 then exit(true);

for i:=2 to trunc(sqrt(n)) do

if n mod i = 0 then exit(false);

exit(true);

end;

begin

assign(f,fi); reset(f);

readln(f,n);

close(f);

kq:= true;

while n<>0 do

begin

kq:= kq and nt(n);

n:= n div 10;

end;

assign (f,fo); rewrite(f);

if kq then write(f,'1') else write(f,'0');

close(f);

end

Bài 2:

const

Trang 5

tfi='DIV.INP';

tfo='DIV.OUT';

var n: longint;

a, s: array[0 1001] of longint;

res: longint;

function ok(t: longint): boolean;

var i,u,tong: longint;

begin

tong:=0;

for i:=1 to n do if a[i]<>0 then

begin

tong:=tong+a[i];

if tong=t then tong:=0;

end;

exit(tong=0);

end;

procedure main;

var j,u,i,k,t: longint;

begin

assign(input,tfi); reset(input);

assign(output,tfo); rewrite(output);

read(n);

for i:=1 to n do read(a[i]);

s[0]:=0;

for i:=1 to n do s[i]:=s[i-1]+a[i];

for k:=n downto 1 do if s[n] mod k=0 then

begin

t:=s[n] div k;

if ok(t) then

begin

res:=k;

break;

end;

end;

writeln(res);

close(input); close(output);

end;

BEGIN

main;

END

Bài 3

const fi='SQUARE.INP';

fo='SQUARE.OUT';

var f:text;

a,nga,doc:array[1 1000,1 1000] of integer;

Trang 6

i,m,n,d,j:integer;

procedure nhap;

var i,j:integer;

begin

assign(f,fi); reset(f);

readln(f,m,n);

for i:=1 to m do

begin

for j:=1 to n-1 do

read(f,nga[i,j]);

readln(f);

end;

for i:=1 to m-1 do

begin

for j:=1 to n do read(f,doc[i,j]);

readln(f);

end;

end;

begin

nhap;

d:=0;

for i:=1 to m-1 do

for j:=1 to n-1 do

if nga[i,j]+nga[i+1,j]+doc[i,j]+doc[i,j+1]=4 then inc(d);

assign(f,fo); rewrite(f);

write(f,d);

close(f);

end

Ngày đăng: 24/07/2015, 16:26

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w