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

Đề và đáp án thi HSG trường môn Tin 11

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 (93.95 KB, 5 trang )

SỞ GD&ĐT HÀ TĨNH
TRƯỜNG THPT CẨM BÌNH

(Đề thi có 2 trang)
ĐỀ THI CHỌN HỌC SINH GIỎI TRƯỜNG
LỚP 11 THPT
NĂM HỌC 2010-2011
Môn thi: Tin học
Thời gian: 150 phút( không kể thời gian giao đề)
Sử dụng ngôn ngữ lập trình PASCAL lập chương trình giải các bài toán sau đây:
(Bài làm bài 1, bài 2, bài 3 ghi vào các tệp tương ứng BAI1.PAS, BAI2.PAS, BAI3.PAS)
Bài 1: Phần tử yên ngựa
Cho bảng A kích thước MxN. Phần tử Aij được gọi là phần tử yên ngựa nếu nó là phần tử
nhỏ nhất trong hàng của nó đồng thời là phần tử lớn nhất trong cột của nó.
Dữ liệu vào: Lưu trong tệp yenngua.inp có cấu trúc:
- 2 dòng đầu tiên chứa 2 số nguyên M, N là kích thước của bảng A.
- Các dòng tiếp theo là các giá trị của bảng A
Dữ liệu ra: Lưu trong tệp yenngua.out có cấu trúc:
- Nếu có phần tử yên ngựa: + Dòng đầu tiên ghi ‘co phan tu yen ngua’
+ Dòng thứ hai ghi giá trị của phần tử yên ngựa
- Nếu không có phần tử yên ngựa: một dòng ghi ‘khong co phan tu yen ngua’.
Ví dụ:
yenngua.inp yenngua.out
3
3
15 3 9
55 4 6
76 1 2
‘co phan tu yen ngua’
4
Bài 2 - Số siêu nguyên tố


Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý các chữ số bên phải của nó thì
phần còn lại vẫn tạo thành một số nguyên tố.
Ví dụ 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố.
Nhiệm vụ của bạn là viết chương trình nhập dữ liệu vào là một số nguyên N (0< N <10) và
đưa ra kết quả là một số siêu nguyên tố có N chữ số cùng số lượng của chúng.
Ví dụ khi chạy chương trình:
Nhap so N: 4↵
1
Cac so sieu nguyen to có 4 chu so la: 2333 2339 2393 2399 2939 3119 3137
3733 3739 3793 3797 5939 7193 7331 7333 7393
Tat ca co 16 so_
Bài 3 - Chữ số thứ N
Khi viết các số tự nhiên tăng dần từ 1, 2, 3,… liên tiếp nhau, ta nhận được một dãy các chữ
số thập phân vô hạn, ví dụ: 1234567891011121314151617181920
Yêu cầu: Hãy tìm chữ số thứ N của dãy số vô hạn trên.
Dữ liệu vào từ file ‘Number.inp’ gồm một số dòng, mỗi dòng ghi một số nguyên dương N
(N<10
9
).
Kết quả ra file ’Number.out’, với mỗi số N đọc được từ file Number.inp, ghi trên dòng
tương ứng chữ số thứ N của dãy.
Ví dụ:
Number.inp Number.out
5
10
54
5
1
3
2

SỞ GD&ĐT HÀ TĨNH
TRƯỜNG THPT CẨM BÌNH

(Đề thi có 2 trang)
ĐÁP ÁN VÀ BIỂU ĐIỂM ĐỀ THI CHỌN HỌC SINH
GIỎI TRƯỜNG
LỚP 11 THPT
NĂM HỌC 2010-2011
Môn thi: Tin học
Thời gian: 150 phút( không kể thời gian giao đề)



Bài 1 - Phần tử yên ngựa ( 8đ)
const
Inp = 'Bai30.INP';
Out = 'Bai30.OUT';
MaxLongInt = 2147483647;
var
Min, Max: array[1 5000] of LongInt;
m, n: Integer;
{************************************}
procedure ReadInput;
var
i, j, k: Integer;
hf: Text;
begin
Assign(hf, Inp);
Reset(hf);
Readln(hf, m, n);

for i := 1 to m do Min[i] := MaxLongInt;
for j := 1 to n do Max[j] := -MaxLongInt;
for i := 1 to m do
begin
for j := 1 to n do
begin
Read(hf, k);
if Min[i] > k then Min[i] := k;
if Max[j] < k then Max[j] := k;
end;
Readln(hf);
end;
Close(hf);
end;
{************************************}
procedure WriteOutput;
var
i, j: Integer;
Result: Boolean;
hf: Text;
begin
Result := False;
Assign(hf, Out);
Rewrite(hf);
3

Writeln(hf, 'Cac phan tu yen ngua la: ');
for i := 1 to m do
for j := 1 to n do
if Min[i] = Max[j] then

begin
Result := True;
Write(hf, '(', i, ',', j, '); ');
end;
if not Result then
begin
Rewrite(hf);
Write(hf, 'Khong co phan tu yen ngua');
end;
Close(hf);
end;
{************************************}
Begin
ReadInput;
WriteOutput;
End.



Bài 2 - Số siêu nguyên tố (6đ)
Program Bai2;
var a,b: array [1 100] of longint;
N,i,k,ka,kb,cs: byte;
(************************************)
Function Prime(N: longint): boolean;
Var i: longint;
Begin
If (N=0) or (N=1) then
Prime:=false
Else

Begin
i:=2;
While (N mod i <> 0) and (i <= Sqrt(N)) do Inc(i);
If i > Sqrt(N) then
Prime:=true Else Prime:=false;
End;
End;
(************************************)
BEGIN
Write ('Nhap N: ');
Readln (N);
ka:=1; a[ka]:=0;
For i:=1 to N do
Begin
Kb:=0;
For k:=1 to ka do
For cs:=0 to 9 do
4
If Prime(a[k]*10+cs) then
Begin
Inc(kb);
b[kb]:=a[k]*10+cs;
end;
ka:=kb;
For k:=1 to ka do
a[k]:=b[k];
end;
For k:=1 to ka do
Write(a[k]:10);
Writeln;

Writeln('Co tat ca',ka,'so sieu nguyen to co',N,'chu so.');
Readln;
END.
0.5đ

0.5đ
Bài 3 - Chữ số thứ N (6đ)
Program Bai3;
Uses crt;
Var k: longInt;
(* *)
Function chuso(NN: longInt):char;
Var st:string[10];
dem,M:longInt;
Begin
dem:=0;
M:=1;
Repeat
str(M,st);
dem := dem+length(st);
inc(M);
Until dem >= NN;
chuso := st[length(st) - (dem - NN)]
(* *)
BEGIN
clrscr;;
write('Nhap k:');
Readln(k);
Writeln('Chu so thu', k,'cua day vo han cac so nguyen khong am');
write('123456789101112 la:', chu so(k));

Readln;
END.
5

×