Viết chương trình in ra màn hình dãy gồm N số Fibonacci đầu tiên với N là số nguyên nhập từ bàn phím 10≤N≤20.. 4,0 điểm: Nhập vào một mảng có N số nguyên, in mảng vừa nhập ra màn hình...
Trang 1TỔNG QUAN BÀI THI Bài Tệp chương trình Dữ liệu vào Dữ liệu ra Điểm
- Học sinh có thể sử dụng ngôn ngữ lập trình Pascal hoặc C++ để giải các bài toán Khi
đó dấu * trong Tệp chương trình sẽ là pas hoặc cpp.
- Trong ổ đĩa D, tạo thư mục với tên SBD* (với * là số báo danh của thí sinh), các tệp tin lưu vào thư mục này, tên tệp tin là tên từng câu trong đề thi (BAI1, BAI2, BAI3, BAI4, BAI5a, BAI5b).
Bài 1 (3,0 điểm)
Viết chương trình nhập số tự nhiên N (N≤100, với N được nhập từ bàn phím) sau đó kiểm tra xem N là số chẵn hay số lẻ In kết quả kiểm tra ra màn hình
Ví dụ dữ liệu vào/ra:
Bài 2 (5,0 điểm): Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng 1 và 1,
sau đó các số tiếp theo sẽ bằng tổng của 2 số liền trước nó Viết chương trình in ra màn hình dãy gồm N số Fibonacci đầu tiên với N là số nguyên nhập từ bàn phím
(10≤N≤20).
Ví dụ dữ liệu vào/ra:
11 1 1 2 3 5 8 13 21 34 55 89
13 1 1 2 3 5 8 13 21 34 55 89 144 233
Bài 3 (4,0 điểm): Nhập vào một mảng có N số nguyên, in mảng vừa nhập ra màn hình
Đếm xem trong mảng vừa nhập có bao nhiêu số chính phương và đó là những số nào?
Ví dụ dữ liệu vào/ra:
6
12 22 25 35 36 42 Mang co 2 so chinh phuong, do la cac so: 25 36
ĐỀ THI CHÍNH THỨC KỲ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN THCS
NĂM HỌC 2021 - 2022 Môn: Tin học 8
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi:………… (Đề thi gồm: 02 trang, 05 Bài)
Trang 2Bài 4 (4,0 điểm): Cho một xâu ký tự Đếm số lượng các ký tự số, số lượng các
ký tự chữ cái
Ví dụ dữ liệu vào/ra:
Ky thi HSG nam hoc
2021 2022 So ky tu so: 8So ky tu chu cai: 14
Bài 5 (4,0 điểm):
a (2,0 điểm):
Nhập vào một dãy N số nguyên, tìm kiếm và in các cặp 2 phần tử gần nhau có tổng chia hết cho 10 Thay thế các phần tử đó bằng tổng của chúng In lại dãy
đã thay thế
Ví dụ dữ liệu vào/ra:
6
4 5 7 3 6 14 Cac cap co tong chia het cho 10 la:
7 va 3;6 va 14
4 5 10 10 20 20
b (2,0 điểm): Một điệp viên muốn gửi tin nhắn mã hóa về cho cơ quan tình báo
Cách mã hóa tin nhắn S như sau: Chia tin nhắn thành hai đoạn liên tiếp Sa và Sb (Sb có độ dài là K ký tự), viết xâu Sa theo hướng ngược lại của các ký tự rồi ghép với xâu Sb (đã được viết ngược) thì được tin nhắn mã hóa A
Ví dụ: Tin nhắn S có nội dung ban đầu là “insecurity” với khóa K=4 sẽ được chia thành hai đoạn Sb= “ytir”, Sa = “ucesni” Do đó tin nhắn mã hóa A là “ucesniytir”
Yêu cầu: Cho tin nhắn mã hóa A và khóa K (K>=0 và không vượt quá độ dài xâu
A) Hãy xác định xâu S
Ví dụ dữ liệu vào/ra:
accomplished
-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 3PHÒNG GD&ĐT SI MA CAI
KỲ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN THCS NĂM HỌC 2021 - 2022
Môn: Tin học 8 HƯỚNG DẪN CHẤM
(Hướng dẫn chấm gồm có 05 trang)
I, Nguyên tắc chấm:
Chấm vòng 1 hoàn toàn bằng phần mềm chấm tự động Themis Sau khi chấm xong vòng 1, tổ trưởng thống nhất cách chấm code và xin ý kiến trưởng ban chấm thi nếu thấy kết quả điểm thi của học sinh thấp khó xét giải thì vòng 2 kết hợp chấm code của học sinh theo nguyên tắc điểm chấm code + điểm chấm Themis (Bài nào đã lấy điểm chấm Themis thì không chấm code) không làm thay đổi thứ tự xếp hạng của học sinh
II, Quy trình chấm:
Bước 1: Chấm bài học sinh từ CD bằng phần mềm Themis
Bước 2: Xem lại những bài đúng 1 phần, chấm ý tưởng thuật toán với số
điểm không quá 70% số điểm tối đa
Bước 3: Xem lại những bài 0 điểm, chấm ý tưởng thuật toán, số điểm
không quá 50% số điểm tối đa
Bước 4: Điểm bài thi = tổng điểm của từng bài sau khi đã chấm bằng
Themis và chấm code
Chú ý: Với những bài sai sót nhỏ : sai tên tệp, khai báo thiếu mảng, quá
mảng nếu sửa lỗi này chấm lại bài thí sinh bằng Themis được điểm tối đa thì trừ 0.5 điểm/ bài
1
uses crt;
var n:integer;
begin clrscr;
write('Hay nhap so tu nhien N: ');
readln(n);
if n mod 2 = 0 then
write('So N la so chan ')
else write('So N la so le ');
readln; end
0,5
0,5 0,5 0,5 0,5 0,5
2 Uses crt;
Trang 4sothunhat,sothuhai,sothuba:integer;
i,n:integer;
Begin
Clrscr;
Repeat
Write('Nhap N (10<=N<=20): ');
Readln(n);
Until (n>=10) and (n<=20);
sothunhat:=1;
sothuhai:=1;
Writeln('Day so Fibonaci: ');
Write(sothunhat:10);
Write(sothuhai:10);
for i:= 3 to n do
begin
sothuba:=sothunhat+sothuhai;
sothunhat:=sothuhai;
sothuhai:=sothuba;
write(sothuba:10);
end;
Readln;
End
0,25 0,25
0,5 0,25 0,5 0,25 0,25 0,25 0,25 0,25 0,25
0,5 0,5 0,5 0,25
3
Uses crt;
Var
a:array[1 100] of integer;
n,i,x,d:integer;
Begin
Clrscr;
Write('Nhap N= ');
0,25 0,25
0,25
Trang 5Readln(n);
For i:=1 to N do
Begin
Write('a[',i,']=');
Readln(a[i]);
End;
Writeln('Mang vua nhap: ');
For i:=1 to n do Write(a[i]:4);
Writeln;
Writeln('Cac so chinh phuong la: ');
For i:=1 to n do
Begin
x:=trunc(sqrt(a[i]));
if sqr(x)=a[i] then
Begin
write(a[i]:4);
d:=d+1;
End;
End;
Writeln;
Write('Co tat ca ',d,' so chinh phuong');
Readln;
End
0,25 0,25
0,25 0,25
0,25 0,25
0,25 0,25
0,25 0,25
0,25 0,25
0,25
4
Uses crt;
Var
st:string;
so:char;
i,n,demso,demchu:integer;
Begin clrscr;
Write('Nhap xau: ');
0,25 0,25 0,25 0,25
Trang 6readln(st);
demso:=0;
demchu:=0;
for i:=1 to length(st) do
begin
if (st[i] in ['0' '9']) then demso:=demso+1;
if (upcase(st[i]) in ['A' 'Z']) then
demchu:=demchu+1;
end;
Writeln('So ky tu so la ',demso);
Writeln('So ky tu chu cai la ',demchu);
Readln;
End
0,25 0,25 0,25 0,25
0,5 0,5 0,5
0,25 0,25
5
{a}
Uses crt;
Var
n,i,sum:integer;
a:array[1 100] of integer;
Begin clrscr;
Write('Nhap so N: '); Readln(n);
For i:=1 to n do
Begin
Write('a[',i,']= '); Readln(a[i]);
End;
Writeln('Cac cap co tong chia het cho 10 la: ');
For i:=1 to n do
if (a[i]+a[i+1]) mod 10=0 then writeln(a[i],' va
',a[i+1]);
Readln; End
{b}
0,25 0,25
0,25 0,25 0,25
0,25 0,25 0,25
Trang 7Uses crt;
var
k,n,i:integer;
S:string;
Begin Clrscr;
Write('Nhap xau S: '); Readln(s);
Write('Nhap khoa K: '); Readln(k);
Writeln('Tin nhan ma hoa la: ');
For i:=length(s)-k downto 1 do
Write(s[i]);
For i:=length(S) downto (length(s)-k+1) do
Write(s[i]);
Readln;
End
0,25 0,25
0,25 0,25
0,25 0,25 0,25 0,25
Hết