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đ: Chữ số: CHUSO.PAS Viết chương trình nhập vào một số tự nhiên n n< 1000 và xác định: - n có bao nhi[r]
Trang 1PHềNG GIÁO DỤC ĐÀO TẠO
BỐ TRẠCH
kỳ thi CHọN học sinh giỏi lớp 9
năm học 2012-2013
môn: tin học
Đề chính thức
SBD Thời gian 150 phút, không kể thời gian giao đề
đề 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:
Viết chương trỡnh nhập vào một số tự nhiờn n (n< 1000) và xỏc định:
- n cú bao nhiờu chữ số
- Tổng cỏc chữ số của n
- Chữ số đầu tiờn bờn trỏi của n
Vớ dụ: Nhap vao so nguyen: 254
254 la so co 3 chu so.
254 co tong cỏc chu so la 11
254 co chu so dau tien ben trai la 2
Viết chương trỡnh nhập vào một xõu ký tự St1 (nhỏ hơn 30 ký tự), hóy loại bỏ khỏi xõu nhúm cỏc ký tự ‘abc’ và xuất ra xõu St2 sau khi đó loại bỏ cỏc ký tự trờn
Vớ dụ:
Nhập vào xõu là: acabcababcac
Kết quả được xõu St2 là: acabac
Cho một dóy số nguyờn A gồm n phần tử A1, A2, A3, , An (1 ≤ n ≤ 20000)
(0 ≤ Ai ≤ 32000, 1 ≤ i ≤ n)
Lập chương trỡnh xỏc định số lần xuất hiện của mỗi số trong dóy A
Dữ liệu vào: Cho trong file văn bản TANSUAT.INP cú cấu trỳc như sau:
+ Dũng 1: Ghi số nguyờn dương n (n<10).
+ Dũng 2: Ghi n số nguyờn, là giỏ trị của cỏc phần tử thuộc dóy A Cỏc số được ghi
cỏch nhau ớt nhất một dấu cỏch
Dữ liệu ra: Ghi ra file văn bản TANSUAT.OUT gồm m dũng (0 ≤ m ≤ n) Mỗi dũng
ghi 02 số nguyờn dương u, v Trong đú u là giỏ trị của phần tử xuất hiện trong dóy A; v là
số lần xuất hiện của u trong dóy A
Vớ dụ:
10
1 6 5 4 1 2 3 6 5 4
1 2
2 1
3 1
4 2
5 2
6 2
==== Hết ====
Trang 2PHềNG GIÁO DỤC ĐÀO TẠO
BỐ TRẠCH
kỳ thi CHọN học sinh giỏi lớp 9
năm học 2012-2013
môn: tin học 9 Hớng dẫn chấm
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
- Chơng trình học sinh đúng một bộ test, giám khảo cho 0,5 điểm Nh vậy, nếu một bài
có 3 điểm thì giám khảo phải tạo 6 bộ test
- Riờng cõu 3 giỏm khảo tạo bộ dữ liệu vào với file TANSUAT.INP cú đủ dữ liệu để kiểm tra
II- Ch ơng trình gợi ý:
Cõu 1 (3.0đ): Chữ số:
Program Chuso;
var
BEGIN
x:= c; k:=1 end
x:= b; k:=2 end
begin x:= a; k:=3 end;
readln;
end.
Cõu 2 (3.0đ): Xúa xõu:
Program xoaxau;
VAR
st: string[30];
st1: string;
l,p: byte;
BEGIN
writeln('Chuong trinh loai bo ''abc'' :');
Trang 3write('Nhap mot xau 30 ki tu St : ');readln(st);
st1:=st;
repeat
l:=length(st1);
p:=pos('abc',st1);
if (p<>0) then st1:=copy(st1,1,p-1)+copy(st1,p+3,l-p-2); until (p=0);
writeln(' St = ',st);
writeln(' St2 = ',st1);
readln;
END
Câu 3: (4,0 điểm)
Program Tan_suat;
const fi='tansuat.inp';
fo='tansuat.out';
Type MMC =array [1 20000] of integer;
var A: MMC;
n: integer;
procedure Xuly;
VAR F:TEXT;
i,x:integer;
begin
assign(f,fi); reset(f);
readln(f,n);
fillchar(A,sizeof(A),0);
for i:=1 to n do
begin
read(f,x); A[x]:=A[x]+1;
end;
close(f);
assign(f,fo); rewrite(f);
for i:=1 to n do if a[i]>0 then writeln(f,i,' ', a[i]:4);
close(f);
end;
BEGIN
Xuly;
END