Tải bản đầy đủ (.pdf) (7 trang)

Đề thi chọn học sinh giỏi cấp tỉnh lớp 12

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 (1.53 MB, 7 trang )

--Trang 1--

SỞ GIÁO DỤC VÀ ĐÀO TẠO
TUYÊN QUANG



ĐỀ THI CHỌN HỌC SINH GIỎI CẤP TỈNH LỚP 12
NĂM HỌC 2009-2010
Môn: Tin học
Thời gian: 180 phút (Không kể thời gian giao đề)
Đề thi có 02 trang

Tổng quan đề thi:
Tên bài Tính điểm Số nguyên tố
cùng nhau
Đếm xâu đối
xứng
Yên ngựa
File bài làm
Bai1.pas Bai2.pas Bai3.pas Bai4.pas
Dữ liệu vào
Bàn phím NTCN.INP PALIN.INP YENNGUA.INP
Dữ liệu ra
Màn hình NTCN.OUT PALIN.OUT YENNGUA.OUT
Điểm
5 5 5 5
Chú ý:
1. Bài thi được làm trên ngôn ngữ lập trình Pascal.
2. Chương trình của Bài 1, Bài 2, Bài 3, Bài 4 phải ghi lên đĩa với tên tương ứng là Bai1.pas,
Bai2. pas, Bai3. pas, Bai4. pas trong thư mục D đặt tên SBD của mình ví dụ: D:\SBD01\Bai1. pas



Bài 1.
Trong kỳ thi vào trường Chuyên, lớp chuyên Hóa học: điểm môn Hóa tính hệ số 3,
Toán và Ngữ văn tính hệ số 1; xếp loại kết quả thi theo điểm trung bình (ĐTB) với quy
tắc:
- ĐTB dưới 5,0: Yếu
- ĐTB từ 5,0 đến dưới 7,0: Trung bình
- ĐTB từ 7,0 đến dưới 8,0: Khá
- ĐTB từ 8,0 đến 10,0: Giỏi
Lập chương trình tính điểm trung bình và xếp loại kết quả thi của các thí sinh dự thi
vào lớp chuyên Hóa học (số lượng học sinh bất kỳ nhập từ bàn phím) và đưa họ tên,
điểm trung bình, kết quả xếp loại ra màn hình.
Bài 2.
Hai số tự nhiên được gọi là hai số nguyên tố cùng nhau nếu ước số chung lớn nhất của
hai số đó bằng 1.
Yêu cầu: Hãy xác định hai số tự nhiên x, y (1 < x, y < 65535) có phải là hai số nguyên
tố cùng nhau hay không?
Dữ liệu vào: Được lấy từ file văn bản NTCN.INP, có cấu trúc như sau:
Ghi 2 số tự nhiên x, y trên cùng một dòng và cách nhau bởi một kí tự dấu cách.
Dữ liệu ra: Ghi ra file văn bản NTCN.OUT, theo cấu trúc như sau:
Nếu x và y là hai số nguyên tố cùng nhau thì ghi số 1, ngược lại thì ghi số 0.
Ví dụ:
NTCN.INP NTCN.OUT
8 15 1

ĐỀ CHÍNH THỨC
--Trang 2--

Bài 3.
Một xâu kí tự được gọi là xâu đối xứng (Palindrome) nếu ta đọc từ trái sang phải hay

đọc từ phải sang trái đều giống nhau. Một kí tự cũng được coi là một xâu đối xứng.
Xâu con của S là xâu gồm một số kí tự liên tiếp trong S.
Yêu cầu: Cho trước một xâu kí tự S (kí tự đầu và kí tự cuối khác kí tự dấu cách). Hãy
xác định số xâu đối xứng là xâu con của nó.
Dữ liệu vào: Được lấy từ file văn bản PALIN.INP gồm nhiều dòng (không quá 100
dòng), mỗi dòng là một xâu có chiều dài không quá 80 kí tự.
Dữ liệu ra: Được ghi vào file văn bản PALIN.OUT có số dòng bằng số dòng của
PALIN.INP, mỗi dòng chứa một số nguyên biểu thị số xâu con đối xứng của dòng
tương ứng trong PALIN.INP
Ví dụ:
PALIN.INP PALIN.OUT
J
IOI
MIT TIM
1
4
10

Bài 4.
Cho một ma trận hai chiều A cấp m x n. Phần tử A[i,j] được gọi là yên ngựa nếu nó là
số lớn nhất trong cột j và là số nhỏ nhất trong hàng i.
Yêu cầu: Tìm số phần tử yên ngựa của ma trận A.
Dữ liệu vào: Được lấy từ file YENNGUA.INP có cấu trúc như sau:
- Dòng thứ nhất gồm hai số nguyên dương m, n (m,n ≤100)
- m dòng tiếp theo mỗi dòng gồm n số nguyên, các số nguyên cách nhau bởi một
dấu cách là ma trận A (A[i,j] có giá trị tuyệt đối ≤ 10000)
Dữ liệu ra: Được ghi vào file YENNGUA.OUT gồm một số nguyên duy nhất là số
lượng yên ngựa trong ma trận A
VÝ dô:
YENNGUA.INP YENNGUA.OUT

3 4
4 3 6 5
9 -2 -9 4
6 0 7 2
1

(Ví dụ trên có duy nhất một yên ngựa là phần tử A[1,2] )


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

----------------HẾT-----------------



--Trang 3--

SỞ GIÁO DỤC VÀ ĐÀO TẠO
TUYÊN QUANG



ĐÁP ÁN ĐỀ THI CHỌN HỌC SINH GIỎI
CẤP TỈNH NĂM 2009
Môn: Tin học Lớp: 12
(Đáp án gồm 01 trang)


Cách chấm điểm:
Dùng các bộ test, chạy trực tiếp chương trình để chấm trực tiếp trên máy: Với các bộ

test sau:

Bài InPut OutPut Điểm
Bài 1:
Chạy trực tiếp chương trình, cho kết quả đúng
5
Bài 2:

5

8 15 1 2

2 2009 1 2

2010 2000 0 1
Bài 3:

5

A 1 2

AYA 4 2
TIK KIT 10 1
Bài 4:

5

3 4
4 3 6 5
9 -2 -9 4

6 0 7 2
1 2

2 2
1 2
2 1
0 1

4 5
8 9 5 7 5
6 8 5 6 5
4 2 4 9 3
0 1 3 5 2
4 2

--Trang 4--

LƠI GIAI THAM KHAO

Bài 1
Có nhiều phương án giải quyết bài toán này (GV tự nghiên cứu)
Bài 2. Số nguyên tố
Program NTCN;
Const fi='NTCN.inp';
fo='NTCN.out';
Var m,n:Longint;
Procedure doc;
Var f:text;
Begin
Assign(f,fi);

Reset(f);
Readln(f,m,n);
Close(f);
End;
Function Ucln(m,n:Longint):Longint;
Var r:longint;
Begin
r := m mod n;
While r <> 0 do
Begin
m:=n;
n:=r;
r:= m mod n;
end;
Ucln:=n;
End;
Procedure Ghi;
Var f:text;
Begin
Assign(f,fo);
ReWrite(f);
If ucln(m,n) = 1 then
Writeln(f,1)
Else
Writeln(f,0);
Close(f);
End;
BEGIN
Doc;
--Trang 5--


Ghi;
END.
Bài 3. Xâu
Program Bai1;
Const fi='PALIN.INP';
fo='PALIN.OUT';
maxN=100;
Var A:array[0..maxN+1] of string;
N:longint;
f,g:text;
Procedure Input;
Var s:string;
Begin
assign(f,fi);
reset(f);
assign(g,fo);
rewrite(g);
n:=0;
while not eof(f) do
begin
readln(f,s);
inc(n);
A[n]:=s;
end;
close(f);
End;
Function Check_Palin(s:string;i,k:longint):boolean;
Var temp:string;
j:longint;

Begin
check_palin:=false;
temp:=copy(s,i,k);
for j:=1 to length(temp) div 2 do
if temp[j]<>temp[length(temp)-j+1] then exit;
check_palin:=true;
End;
Function Count_Palin(s:string):longint;
Var count,i,k:longint;
Begin
count:=0;
for i:=1 to length(s) do
for k:=1 to length(s)-i+1 do
if check_palin(s,i,k) then inc(count);
count_palin:=count;

×