- Trong trương hợp chương trình chạy chưa đúng xem xét các ý của bài làm để cho điểm..[r]
(1)SỞ GD&ĐT NGHỆ AN
TRƯỜNG THPT DTNT CON CUÔNG
KỲ THI CHỌN HỌC SINH GIỎI CẤP TRƯỜNG KHỐI 11 NĂM HỌC 2011 – 2012
Đề thi mơn: TIN HỌC
(Đề có 01 trang) Thời gian làm bài: 150 phút Bài 1: (5,0 điểm) Xâu đảo ngược
Viết chương trình nhập vào xâu từ bàn phím đưa hình xâu viết theo thứ tự ngược lại
Ví dụ:
Xâu vào: abccegh
Xâu đảo ngược: hgeccba
Bài 2: (6,0 điểm). Đếm từ
Viết chương trình nhập vào xâu từ bàn phím in hình số từ xâu Biết từ dãy kí tự cách dấu cách?
Ví dụ:
Xâu vào: Ki thi hoc sinh gioi.
Kết in hình: Bài 3: (5,0 điểm). Cấp số cộng
Cho dãy số a Hãy kiểm tra dãy số có phải cấp số cộng hay không? Dữ liệu:Vào từ file văn CSC.INP gồm dòng:
- Dòng ghi số N ( <= N <= 10.000) số phần tử dãy a; - Dòng dãy gồm N số nguyên
Kết quả: Được ghi vào tệp CSC.OUT:
- Nếu dãy số lập thành cấp số cộng ghi số: - Ngược lại ghi số:
Ví dụ:
CSC.INP CSC.OUT CSC.INP CSC.OUT
6
1 11
1
Bài 4: (4,0 điểm). Chữ số thứ N
Viết chương trình in chữ số thứ N dãy vô hạn số ngun khơng âm chẵn: 0246810121416182022…(N có kiểu longint)
Dữ liệu: Vào từ file văn CHUSO.INP gồm số nguyên dương N. Kết quả: Ghi file văn CHUSO.OUT:
Chỉ số chữ số thứ N dãy số nói Ví d : ụ
CHUSO.INP CHUSO.OUT
15
Chú ý: Chương trình giải 1, bài2, 3, Bài ghi lên đĩa với tên File lần lượt Bai1.pas, Bai2.pas, Bai3.pas, Bai4.pas
(2)SỞ GD&ĐT NGHỆ AN
TRƯỜNG THPT DTNT CON CUÔNG
KỲ THI CHỌN HỌC SINH GIỎI CẤP TRƯỜNG KHỐI 11 NĂM HỌC 2011 – 2012
HƯỚNG DẪN CHẤM ĐỀ THI CHÍNH THỨC Mơn: TIN HỌC
(Hướng dẫn chấm gồm có trang)
Câu Nội dung Điểm
1 (5đ)
PROGRAM Bai1; USES CRT;
var i, k : Byte; S: string; BEGIN clrscr;
write('Moi nhap xau: '); readln(S); k:= length(s);
write('Xau dao nguoc la: '); For i := k downto write(S[i]);
readln; END
5đ
2 (6đ)
PROGRAM bai2; VAR s:string; i:byte; dem:integer; BEGIN
Write('Nhap vao xau s:');readln(s);
s:=' ' +s; { Cong them dau cach truoc xau de dem ca tu dau tien} dem:=0;
for i:=2 to length(s)
if (s[i-1] =' ' ) and(s[i]<> ' ') then dem:=dem+1; write('so tu:',dem);
readln; END
6đ
3 (5đ)
PROGRAM Bai3; VAR f1,f2 :text;
i,n,d: integer;
a: array[1 100] of integer; kt: boolean;
BEGIN
assign(f1,'csc.INP'); reset(f1);
(3)assign(f2,'csc.OUT'); rewrite(f2); readln(f1,n);
kt:= true; for i:=1 to n read(f1,a[i]);
d:=A[2] - A[1]; for i:= to n
if A[i] - A[i-1] <> d then kt:= false;
if kt then write(f2,1) else write(f2,0);
close(f1); close(f2); END
4 (4đ)
PROGRAM bai2; const fi='CHUSO.INP'; fo='CHUSO.OUT'; VAR N: longint;
f: text;
procedure doctep; Begin
assign(f,fi); reset(f); readln(f,N); close(f); end;
function chuso(NN:longint):char; var st: string[12];
dem,M:longint;
Begin
dem:=0;
M:=-2;
repeat
M:=M+2;
str(M,st);
dem:=dem+length(st); until dem>=NN;
chuso:=st[length(st)-(dem-NN)];
end;
(4)procedure xuli; begin
assign(f,fo); rewrite(f);
write(f,chuso(N)); close(f);
end; BEGIN
doctep; xuli; END
Chú ý: - Chương trình giải chạy 1, bài2, 3, Bài cho điểm tối đa học sinh viết chương trình chạy cho kết (cách làm khác đáp án cho điểm tối đa)