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

Đề thi học sinh giỏi môn tin học 9 tỉnh quảng bình năm học 2015 2016(có đáp án)

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 (287.59 KB, 6 trang )

SỞ GD&ĐT QUẢNG BÌNH

KÌ THI CHỌN HSG TỈNH NĂM HỌC 2015-2016
Khóa thi ngày 23 - 3 - 2016
ĐỀ CHÍNH THỨC
Môn: Tin học
LỚP 9 THPT
Họ và tên: ………………………….. Thời gian: 150 phút (không kể thời gian giao đề)

Số báo danh: ………..……………...

Đề gồm có 2 trang

ĐỀ RA
Sử dụng ngôn ngữ lập trình Turbo Pascal để lập trình giải các bài toán sau:
Câu 1:(3.0 Điểm) Đếm số
DEMSO.PAS
Cho dãy số nguyên A gồm N phần tử a1, a2, ... , aN
(1 ≤ N ≤ 32000; 1 ≤ ai ≤ 32000).
Yêu cầu: Hãy đếm số lượng các số chẵn trong dãy A.
Dữ liệu vào: Cho trong file văn bản DEMSO.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N.
- Dòng 2: Ghi N số nguyên mỗi số cách nhau một dấu cách.
Dữ liệu ra: Ghi ra file văn bản DEMSO.OUT theo cấu trúc như sau:
- Dòng 1: Ghi K là số lượng các số chẵn.
Ví dụ:
DEMSO.INP DEMSO.OUT
5
2
12345
Câu 2: (3,5 điểm) Xếp chữ


XEPCHU.PAS
Cuối giờ học cô giáo mầm non sắp xếp N tấm bìa có ghi các chữ cái lấy trong
tập [’A’..’Z’], sắp xếp theo từng loại chữ cái và đếm số lượng của chúng. ( với 1 ≤ N
≤ 400000). Các em hãy giúp cô giáo thực hiện công việc trên.
Yêu cầu: Hãy đếm số lượng tấm bìa theo các chữ cái.
Dữ liệu vào: Cho trong file văn bản XEPCHU.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N là số lượng tấm bìa.
- Dòng 2: Ghi N chữ cái là ký hiệu của N tấm bìa.
Dữ liệu ra: Ghi ra file văn bản XEPCHU.OUT theo cấu trúc như sau:
- Dữ liệu được ghi trên nhiều dòng, dòng thứ i ghi ký hiệu của tấm bìa Si và số lượng
của nó là Ti. Si và Ti được viết liền nhau.
Ví dụ:
TANCHU.INP
TANCHU.OUT
6
A2
AABBCC
B2
C2

Trang 1


Câu 3: (3,5 điểm) Tính tổng
TONG.PAS
Cho số X gồm N chữ số, Số Y gồm M chữ số (1<=M<=32000; 1<=N<=32000)).
Yêu cầu: Tính tổng 2 số X và Y.
Dữ liệu vào: Cho trong file văn bản TONG.INP có cấu trúc như sau:
Dòng 1: Ghi 2 số nguyên dương N M mỗi số cách nhau một dấu cách.
Dòng 2: Ghi số X

Dòng 3: Ghi số Y
Dữ liệu ra: Ghi ra file TONG.OUT, theo cấu trúc như sau:
Dũng 1: Ghi số lượng các chữ số của tổng tính được.
Dũng 2: Ghi giá trị tổng.
Ví dụ:
TONG.INP
TONG.OUT
34
4
333
5769
5436

Trang 2


HƯỚNG DẪN VÀ ĐÁP ÁN CHẤM
ĐỀ THI CHỌN HSG LỚP 9 THCS –NĂM HỌC 2015-2016
Môn: Tin học
Khóa thi ngày 23 - 3 - 2015
I- Phương pháp:
- Giám khảo tạo bộ dữ liệu vào, tính toán kết quả. Thực hiện chương trình của
học sinh và so sánh kết quả.
- Giám khảo có thể sử dụng chương trình gợi ý dưới đây để tính toán kết quả của
dữ liệu vào.
- Đối với câu 1: Giám khảo phải tạo được 06 bộ test, chương trình học sinh đúng
01 bộ test giám khảo cho 0.5 điểm.
- Đối với câu 2:
+ Giám khảo phải tạo được 07 bộ test, chương trình học sinh đúng 01 bộ test
thì giám khảo cho 0.5 điểm.

- Đối với câu 3:
+ Giám khảo phải tạo được 07 bộ test, chương trình học sinh đúng 01 bộ test
thì giám khảo cho 0.5 điểm.
+ Giám khảo phải tạo 3 bộ test với N và M >256
II- Chương trình gợi ý:
{$r+}
const fi='demso.inp';
fo='demso.out';
max=32000;
var a: array[1..max] of INTEGER;
g,f:text;
d,i,n:integer;
PROCEDURE SINH;
BEGIN
ASSIGN(F,FI); REWRITE(F);
WRITELN(F,MAX);
FOR I:=1 TO MAX DO
WRITE(F,I,' ');
CLOSE(F);
END;
procedure doc;
begin
assign(f,fi);
reset(f);
read(f,n);
for i:=1 to n do
read(f,a[i]);
close(f);
end;
procedure xl;

begin
assign(g,fo);
rewrite(g);
for i:=1 to n do

Trang 3


if a[i] mod 2 =0 then
d:=d+1;
write(g,d);
close(g);
end;
begin
SINH;
doc;
xl;
end.

{$R+}
CONST

fi='XEPCHU.inp';
fo='XEPCHU.out';
var st:array['A'..'Z'] of longint;
i,j,N:longint;
f:text;
procedure sinh;
begin
assign(F,fi); rewrite(f);

writeln(f,1000000);
for i:=1 to 200000 do
write(f,'A','B','C','D','E');
close(f);
end;
procedure doc;
var x:CHAR;
begin
assign(f,fi); reset(f);
readln(f,n);
for i:=1 to n do
begin
read(f,x);
ST[x]:=ST[x]+1;
end;
close(f);
end;
procedure xuly;
var x:char;
begin
assign(f,fo); rewrite(f);
for x:='A' to 'Z' do
if st[x]<>0 then
writeln(f,x, st[X]);
close(f);
end;
BEGIN

Trang 4



sinh;
DOC;
XULY;
END.
{$R+}
uses crt;
const fi='tong.inp';
fo='tong.out';
MAX=32001;
type mmc=array[1..MAX] of byte;
var
f:text;a,B:mmc;D,N,M:INTEGER;
PROCEDURE SINH;
VAR I:INTEGER;
BEGIN
ASSIGN(F,FI); REWRITE(F);
WRITELN(F,32000,' ',32000);
FOR I:=1 TO 32000 DO
WRITE(F,8);
WRITELN(F);
{ WRITELN(F,32000);}
FOR I:=1 TO 32000 DO
WRITE(F,8);
CLOSE(F);
END;
procedure doc;
var
x:char; I,J,so,code:integer;
begin

assign(f,fi);reset(f);
readln(f,n,m);
for i:=1 to MAX do begin a[i]:=0;b[i]:=0;end;
j:=n;
for i:=1 to n do
begin
read(f,x);
val(x,so,code);
a[j]:=a[j]+so;
j:=j-1;
end;
readln(f);
j:=m;
for i:=1 to m do
begin
read(f,x);
val(x,so,code);
b[j]:=b[j]+so;
j:=j-1;
end;

Trang 5


if m>n then d:=m else d:=n;
close(f);
end;
procedure xl;
var i:INTEGER;
S,V:BYTE;

begin
s:=0;
v:=0;
for i:=1 to D+1 do
begin
s:=a[i]+b[i]+v;
b[i]:=0;
b[i]:=s mod 10;
v:=s div 10;
end;
end;
procedure xuat;
var i,dem:integer;
begin
assign(f,fo);rewrite(f);
DEM:=0;
for i:=D+1 downto 1 do if b[i]<>0 then begin dem:=i;break;end;
writeln(f,DEM);
for i:=dem downto 1 do write(f,b[i]);
close(f);
end;
BEGIN
SINH;
doc;
xl;
xuat;
END.

Trang 6




×