Cho biết S cú phải xõu đối xứng hay khụng?. Nếu khụng, cho biết số kớ tự ớt nhất cần thờm vào xõu S để S trở thành xõu đối xứng.. Vớ dụ: Cho xõu S=’123321’ thỡ xõu s là xõu đối xứng Cho
Trang 1SỞ GD&ĐT THANH HểA
TRƯỜNG THPT THƯỜNG XUÂN 2 ĐỀ THI HỌC SINH GIỎI CẤP TRƯỜNG
NĂM HỌC 2019 – 2020 Mụn: TIN HỌC - Lớp 11 THPT
Thời gian: 180 phỳt (khụng kể thời gian giao đề)
(Đề cú 03 trang, gồm 05 cõu)
Tổng quan bài thi:
Tờn bài File chương trỡnh File dữ liệu vào File kết quả
Bài 4 Siờu đối xứng BAI4.PAS BAI4.INP BAI4.OUT
Bài 5 Tỡm đường đi BAI5.PAS BAI5.INP BAI5.OUT
Bài 1: Viết chương trỡnh nhập vào n là số học sinh của một lớp (n<=50) và điểm tổng
kết mụn Tin của cỏc học sinh đú Hóy đưa ra số học sinh cú điểm >=5.0
Vớ dụ: Cho n=10 và điểm tổng kết mụn tin của 10 học sinh như sau:
Kết quả là: Số học sinh cú điểm >=5.0 là 7
Bài 2: Cỏc số Fibonasi F1, F2,… được định nghĩa như sau:
F1= F2 = 1
FN+1 = FN + FN – 1, N > 1
Cho số nguyờn dương N (0 < N < 25), hóy tỡm số thứ N của dóy Fibonasi
Vớ dụ: Với n=3 thỡ số thứ 3 của dóy là 2
Với n=6 thỡ số thứ 6 của dóy là 8
Với n=20 thỡ số thứ 20 của dóy là 6765
Bài 3: Xõu đối xứng là xõu cú tớnh chất: đọc nú từ phải sang trỏi cũng thu được kết quả
giống như đọc từ trỏi sang phải Cho một xõu S gồm khụng quỏ 200 kớ tự Cho biết S cú
phải xõu đối xứng hay khụng? Nếu khụng, cho biết số kớ tự ớt nhất cần thờm vào xõu S
để S trở thành xõu đối xứng
Vớ dụ: Cho xõu S=’123321’ thỡ xõu s là xõu đối xứng
Cho xõu S=’abchhdcba’ thỡ xõu s khụng phải xõu đối xứng và số kớ tự cần thờm vào là k=1
Cho
xõu S=’abcdhhcba’ thỡ xõu s khụng phải xõu đối xứng và số kớ tự cần thờm vào là k=1
Câu 4: Giám đốc ngân hàng AGRIBANK cần viết chơng trình rút
tiền tại cây ATM cho khách hàng với yêu cầu sau: số tiền mà khách hàng nhận đợc có nhiều mệnh giá nhất (để tiện chi tiêu), sau khi nhận đợc nhiều mệnh giá nhất thì khách hàng chỉ phải nhận số tờ (tiền) là ít nhất
Trang 2Biết rằng tại thời điểm hiện tại, ngân hàng chỉ có các mệnh giá là: 500.000, 200.000, 100.000, 50.000, 20.000, 10.000 và 5.000
Bạn hãy viết chơng trình cho Giám đốc ngân hàng AGRIBANK, yêu cầu nhập vào số tiền n (n nguyên dơng và n<5.000.000), viết ra màn hình mệnh giá và số tờ tơng ứng, mỗi mệnh giá viết trên một dòng, dòng cuối cùng ghi số tiền còn d
Ví dụ:
Nhập vào số tiền cần rút: 732.000
Kết quả viết ra màn hình:
Mệnh giá Số tờ
2.000 Còn d
- Hết
-Thớ sinh khụng sử dụng tài liệu.
Cỏn bộ coi thi khụng giải thớch gỡ thờm.
Trang 3ĐÁP ÁN Bài 1:
Program bai1;
Var A: array [1 50] of real;
I, n: integer;
Begin
Write (‘nhap so hoc sinh trong lop’);
Readln (n);
For i:=1 to n do
Begin
Write (‘A[‘,I,’]=’);
Readln (A[i]);
End;
Dem:=0;
For i:=1 to n do
If A[i]>=5.0 then dem:=dem+1;
Writeln (‘so hoc sinh co diem mon tin lon hon 5.0 la:’, dem); Readln
End
Bài 2:
Program bai2;
Var A: array [1 30 of word;
I, n: integer;
Begin
Write (‘nhap so nguyen n=’); Readln (n);
If n<3 then write (‘so thu’, n,’ cua day la 1’)
Else begin A[1]:=1; A[2]:=1;
For i:= 3 to n do
A[i]:=A[i-1] + A[i-2];
End;
Write (‘so thu’, n, ‘cua day la’, A[n]);
Readln
End
Bài 3:
program bai3;
var s:string;
I,n,m:integer;
begin
write (‘nhap xau’);
readln (s);
n:=length (s);
m:=n;
dem:=0;
for i:= 1 to n do
begin
if s[i]<>s[m] then dem:=dem+1;
Trang 4end;
if dem=0 then writeln (‘xau’, s, ‘la xau doi xung’)
else writeln (‘xau’, s,’khong la xau doi xung, so ki tu them vao la’, dem); readln
end
Bài 4:
Program bai4;
Var n: longint;
Begin
Write (‘nhap so tien can rut:’);
Readln (n);
k:=n;
dem1:=0;
dem2:=0;
dem3:=0;
dem4:=0;
dem5:=0;
dem6:=0;
dem7:=0;
If k>700000 then
Begin k:=k-500000;
Dem1:=dem1+1;
End;
If k>300000 then
Begin k:=k-200000;
Dem2:=dem2+1;
End;
If k>185000 then
Begin k:=k-100000;
Dem3:=dem3+1;
End;
If k>85000 then
Begin k:=k-50000;
Dem4:=dem4+1;
End;
If k>35000 then
Begin k:=k-20000;
Dem5:=dem5+1;
End;
If k>15000 then
Begin k:=k-10000;
Dem6:=dem6+1;
End;
If k>5000 then
Begin k:=k-5000;
Trang 5End;
While k>=500000 do
Begin dem1:=dem1+1;
K:=k-500000;
End;
While k>=200000 do
Begin dem2:=dem2+1;
K:=k-200000;
End;
While k>=100000 do
Begin dem3:=dem3+1;
K:=k-100000;
End;
While k>50000 do
Begin dem4:=dem4+1;
K:=k-50000;
End;
While k>=20000 do
Begin dem5:=dem5+1;
K:=k-20000;
End;
While k>=10000 do
Begin dem6:=dem6+1;
K:=k-10000;
End;
While k>=5000 do
Begin dem7:=dem7+1;
K:=k-5000;
End;
Writeln (‘so to 500.000 la’, dem1); Writeln (‘so to 200.000 la’, dem2); Writeln (‘so to 100.000 la’, dem3); Writeln (‘so to 50.000 la’, dem4); Writeln (‘so to 20.000 la’, dem5); Writeln (‘so to 10.000 la’, dem6); Writeln (‘so to 5.000 la’, dem7); Readln
End