[r]
(1)Sở Giáo Dục & Đào Tạo NGhệ an TRờng THPT DTNT Quỳ HợP
(Đề thi gồm cã 02 trang)
Kú thi häc sinh giái trêng lớp 11 THPT năm học 2011 - 2012
Môn thi: tin học Hình thức thi: Thực hành
Thi gian: 180 phút (không kể thời gian giao đề) Bài 1: (7,0 điểm) Đếm từ
Cho xâu s, đếm xem xâu s có từ (từ dãy kí tự liên tiếp, khụng cha du cỏch)
Dữ liệu vào: File văn Demtu.inp gồm số dòng dòng xâu kí tự không 255 kí tự
Kết ghi ra: File văn Demtu.out dòng số nguyên dơng tơng ứng với số từ xâu liệu vào
Ví dụ:
Bài 2: (6,0 điểm) Sắp xếp dÃy
theo thứ tự tăng dần Dữ liệu vào: File văn SX.inp:
- Dòng ghi số nguyên m
- Dòng thứ ghi m số nguyên số cách dấu cách Kết ghi ra: File văn SX.out dãy đợc xếp
VÝ dô:
Demtu.inp Demtu.out Lop Tin hoc
File van ban Thi HSG Tin hoc 11
(2)Bài (7,0 điểm) Tổng cặp số Xét dãy số nguyên dơng a1, a2, , an, có thể có số Với số nguyên x cho trớc (1 Ê x Ê 200000) xác định số cặp (ai, aj) thỏa mãn điều kiện:
ai + aj = x.
£i < j£n
Dữ liệu vào: Từ file văn SUMX.INP:
Dòng chứa số nguyên n
N dòng chứa n số nguyên a1, a2, , an (víi mäi i = 1, 2, , n)
Dòng cuối chứa số nguyên x
Kết Ghi ra: file văn SUMX.OUT, số nguyên số cặp tìm đợc
VÝ dơ:
………HÕt……….
Họ tên thí sinh: Số báo danh: Chú ý: - Chơng trình giải bai1, 2, lần lợt ghi lên đĩa với tên Bai1.pas; Bai2.pas; Bai3.pas.
- Giám thị giải thích thêm
-Sở Giáo Dục & Đào Tạo NGhệ an
TRêng THPT DTNT Q HỵP Kú thi häc sinh giái trờng lớp 11 THPTnăm học 2011 - 2012
P ÁN TIN 11 B i 1:à §Õm tõ
Var f1,f2:text;
SX.inp SX.out
5
4
1
SUMX.INP SUMX.OUT
9 12 10 11 13
(3)s:string; dem,i:byte; Begin
Assign(f1,'demtu.inp');Reset(f1); Assign(f2,'demtu.out');Rewrite(f2); while not eof(f1)
Begin
dem:=0; Readln(f1,s);
for i:=1 to length(s)-1
if(s[i]<>‘ ‘) and(s[i+1]=‘ ‘) then inc(dem); if(s[length(s)]<>‘ ‘) then inc(dem);
writeln(f2,dem); End;
Close(f1); Close(f2); End
B i 2à : Sắp xếp dÃy theo thứ tự tăng dần Var f1,f2:text;
tg,m,i,j:integer;
a:array[1 100] of integer; Begin
Assign(f1,'sapxep.inp');Reset(f1); Read(f1,m);
Readln(f1);
for i:=1 to m read(f1,a[i]);
Assign(f2,'sapxep.out');Rewrite(f2); for i:=1 to m-1
for j:=i+1 to m if a[i]>a[j] then Begin
tg:=a[i]; a[i]:=a[j]; a[j]:=tg; End;
for i:=1 to m write(f2,a[i],#32); Close(f1); Close(f2);
End
B i 3à : Tỉng cỈp sè Var n,i,j,x,dem:integer;
a:array[1 100] of integer; f1,f2:text;
Begin
Assign(f1,‘Sumx.inp’); Reset(f1);
Read(f1,n);
For i:=1 to n readln(f1,a[i]); Read(f1,x);
dem:=0;
for i:=1 to n-1 for j:=2 to n
(4)