Đang tải... (xem toàn văn)
TỔNG QUAN BÀI THI
BàiTệp chương trìnhDữ liệu vàoDữ 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 tinlư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 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
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:
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 THCSNĂ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ế.
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.
-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 3II, 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.
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,50,50,50,50,50,52 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;
0,5 0,250,50,250,250,250,250,250,250,50,50,50,25
Uses crt;Var
a:array[1 100] of integer; n,i,x,d:integer;
Begin Clrscr;
Write('Nhap N= ');
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;
Uses crt;Var
st:string; so:char;
i,n,demso,demchu:integer;Begin clrscr;
Write('Nhap xau: ');
0,250,250,250,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;
{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,250,250,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.
Hết