Tải bản đầy đủ (.doc) (6 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (150.47 KB, 6 trang )

 

!"
(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
#$%&%'()%*)"
* Các file chương trình và file dữ liệu được đặt tên chính xác như sau:
$+, /.01, 0- 20.3%4-5 20.3%67 .1
Bài 1: Số siêu nguyên tố
SNT.PAS SNT.INP SNT.OUT
2s
Bài 2: Trò chơi với băng số
DIV.PAS DIV.INP DIV.OUT
2s
Bài 3: Bài toán ô vuông
SQUARE.PAS SQUARE.INP SQUARE.OUT
2s
 " 89.$%+:%;$+)8(8 điểm) File bài làm: <=
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ố.
20.3%4-5" <Chứa một số nguyên dương n (n ≤ 10
9
)
20.3%67"<>? Nếu N là siêu nguyên tố ghi giá trị , ngược lại ghi giá trị 
@ABC"
 <6DE.4F.,+:98 (8 điểm) File bài làm @<=
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: @< + Dòng đầu ghi n (n ≤ 1000)
+ Dòng tiếp theo ghi n số nguyên dương a
1
, 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 a
i
≤ 1000)
Dữ liệu ra: @<>? Ghi K là số đoạn cần chia.
Ví dụ:
@< @<>?
.G.)A
8
10 2 6 2 5 2 1 2
3
Đoạn 1: 10
Đoạn 2: 2 + 6 + 2 =10
Đoạn 3: 5 + 2 + 1 + 2 = 10
Trang 1/ 2
ĐỀ THI CHÍNH THỨC

SNT.INfSNT.OUT23331
SNT.INfSNT.OUT130

SNT.INfSNT.OUT23331
SNT.INfSNT.OUT130
HI



H

I



 " )5J+K4%K+:(4 điểm)File bài làm: L?=MN<=
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 :7+:
diễn tả các đoạn thẳng nằm ngang, mảng  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: L?=MN<
+ 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 : L?=MN<>?
+ Số lượng ô vuông có độ dài cạnh bằng 1.

Ví dụ:
L?=MN< L?=MN<>?
3 5






HẾT
Trang 2/ 2
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
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 3/ 2
 

!".+
(Hướng dẫn chấm gồm 03 trang)
<OP?
Chấm tự động bằng phần mềm AMM2 với các bộ test có sẵn trên đĩa CD.
<QQ@R=S
<TU%)6%U,KV)19)47W)7+:X.$Y
7W. 19) .$Y

7W. Gồm 16 bộ test, mỗi bộ 0.5 điểm. 8 điểm
7W. Gồm 16 bộ test, mỗi bộ 0.5 điểm. 8 điểm
7W. Gồm 16 bộ test, mỗi bộ 0.25 điểm. 4 điểm
<7UZ7U+

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 4/ 2
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 5/ 2
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.
Trang 6/ 2

×