Tải bản đầy đủ (.docx) (7 trang)

Đề thi học sinh giỏi Tin học 8 cấp huyện

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (80.08 KB, 7 trang )

ĐỀ 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)
TỔNG QUAN BÀI THI
Bài
Tệp chương trình
Dữ liệu vào
Dữ liệu ra
Điểm
1
BAI01.*
BAI01.INP
BAI01.OUT
3,0
2
BAI02.*
BAI02.INP
BAI02.OUT
5,0
3
BAI03.*
BAI03.INP
BAI03.OUT
4,0
4
BAI04.*
BAI04.INP
BAI04.OUT
4,0


5
BAI05.*
BAI05.INP
BAI05.OUT
4,0
- 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 tố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:
BAI01.INP
BAI01.OUT
15
So N la so le
07
So N la so le
19
So N la so le
90
So N la so chan
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:

BAI02.INP
BAI02.OUT
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:
BAI03.INP
BAI03.OUT
6
Mang co 2 so chinh phuong, do la
12 22 25 35 36 42
cac so: 25 36


Bà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:
BAI04.INP
BAI04.OUT
Ky thi HSG nam hoc So ky tu so: 8
2021 2022
So 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:
BAI5a.INP
BAI5b.OUT
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:
BAI5b.INP
BAI5b.OUT
Tin nhắn
pmoccadehsil
accomplished
Khóa K
6
-------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


PHÒ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 hồn tồ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 tốn với số
điểm khơng q 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 tốn, số điểm
khơng q 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.
Bài

Đáp án

Điểm

uses crt;
var n:integer;


0,5

begin clrscr;
1

write('Hay nhap so tu nhien N: ');

0,5

readln(n);

0,5

if n mod 2 = 0 then

0,5

write('So N la so chan ')

0,5

else write('So N la so le ');
2

readln; end.
Uses crt;

0,5



Var
sothunhat,sothuhai,sothuba:integer;

0,25

i,n:integer;

0,25

Begin
Clrscr;
Repeat
Write('Nhap N (10<=N<=20): ');

0,5

Readln(n);

0,25

Until (n>=10) and (n<=20);

0,5

sothunhat:=1;

0,25

sothuhai:=1;


0,25

Writeln('Day so Fibonaci: ');

0,25

Write(sothunhat:10);

0,25

Write(sothuhai:10);

0,25

for i:= 3 to n do

0,25

begin
sothuba:=sothunhat+sothuhai;

0,5

sothunhat:=sothuhai;

0,5

sothuhai:=sothuba;


0,5

write(sothuba:10);

0,25

end;
Readln;
End.
Uses crt;
Var

3

a:array[1..100] of integer;

0,25

n,i,x,d:integer;

0,25

Begin
Clrscr;
Write('Nhap N= ');

0,25


Readln(n);


0,25

For i:=1 to N do

0,25

Begin
Write('a[',i,']=');

0,25

Readln(a[i]);

0,25

End;
Writeln('Mang vua nhap: ');

0,25

For i:=1 to n do Write(a[i]:4);

0,25

Writeln;
Writeln('Cac so chinh phuong la: ');

0,25


For i:=1 to n do

0,25

Begin
x:=trunc(sqrt(a[i]));

0,25

if sqr(x)=a[i] then

0,25

Begin
write(a[i]:4);

0,25

d:=d+1;

0,25

End;
End;
Writeln;
Write('Co tat ca ',d,' so chinh phuong');

0,25

Readln;

End.
Uses crt;
Var

4

st:string;

0,25

so:char;

0,25

i,n,demso,demchu:integer;

0,25

Begin clrscr;
Write('Nhap xau: ');

0,25


readln(st);

0,25

demso:=0;


0,25

demchu:=0;

0,25

for i:=1 to length(st) do

0,25

begin
if (st[i] in ['0'..'9']) then demso:=demso+1;

0,5

if (upcase(st[i]) in ['A'..'Z']) then

0,5

demchu:=demchu+1;

0,5

end;
Writeln('So ky tu so la ',demso);

0,25

Writeln('So ky tu chu cai la ',demchu);


0,25

Readln;
End.
{a}
Uses crt;
Var

5

n,i,sum:integer;

0,25

a:array[1..100] of integer;

0,25

Begin clrscr;
Write('Nhap so N: '); Readln(n);

0,25

For i:=1 to n do

0,25

Begin
Write('a[',i,']= '); Readln(a[i]);


0,25

End;
Writeln('Cac cap co tong chia het cho 10 la: ');
For i:=1 to n do

0,25

if (a[i]+a[i+1]) mod 10=0 then writeln(a[i],' va

0,25

',a[i+1]);
Readln; End.
{b}

0,25


Uses crt;
var
k,n,i:integer;
S:string;

0,25

Begin Clrscr;

0,25


Write('Nhap xau S: ');

Readln(s);

Write('Nhap khoa K: ');

Readln(k);

Writeln('Tin nhan ma hoa la: ');

0,25
0,25

For i:=length(s)-k downto 1 do
Write(s[i]);

0,25

For i:=length(S) downto (length(s)-k+1) do

0,25

Write(s[i]);

0,25

Readln;

0,25


End.
Hết



×