Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án)

Bài 1 (6,0 điểm): Hãy viết chương trình tính chu vi và diện tích của hình chữ nhật

Input: 2 số nguyên dương a, b

Output: ChuVi; DienTich

Bài 2 (7,0 điểm): Hãy viết chương trình nhập vào 3 số a, b, c. Kiểm tra chúng có thỏa mãn là 3 cạnh của tam giác hay không. Nếu là tam giác thì đó là tam giác gì thường, cân, đều, vuông?

Input: Từ tệp TAMGIAC.INP gồm 1 dòng duy nhất chưa 3 số a, b, c ngăn cách nhau bởi một dấu khoảng trống.

Output: Ghi ra tệp TAMGIAC.OUT kết quả kiểm tra điều kiện tạo thành tam giác của 3 số a, b, c.

Bài 3 (7,0 điểm): Mẹ cho bé Hà bỏ lợn tiết kiệm. Ngày đầu Hà bỏ vào lợn 2.000 đồng (hai nghìn đồng), cứ ngày sau bỏ hơn ngày trước 1.000 đồng (một nghìn đồng). Hỏi sau một tháng (30 ngày), ống tiết kiệm của bé Hà có bao nhiêu tiền?

Input: số tiền tiết kiệm

Output: số tiền Hà tiết kiệm được sau 30 ngày.

docx 134 trang tinhoc 18/11/2025 820
Bạn đang xem 30 trang mẫu của tài liệu "Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án)

Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án)
 Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
 ĐỀ SỐ 1
 SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỀ THI CHỌN HỌC SINH GIỎI LỚP 8
 ---------------- NĂM HỌC 2024 – 2025
 Môn thi: Tin học
 Thời gian: 120 phút, không kể thời gian giao đề
 TỔNG QUAN BÀI THI
 Tên bài Tên bài làm Điểm
 Câu 1 TỔNG LIÊN TIẾP.* 8,0
 Câu 2 SỐ ĐẢO NGƯỢC.* 7,0
 Câu 3 SỐ BỊ THIẾU.* 5,0
Lưu ý: Thí sinh tạo thư mục là D:\HSGSBD (Ví dụ D:\HSG001) và lưu các tệp bài làm vào 
thư mục vừa tạo.
Phần mở rộng: *.pas đối với NN Pascal; *.cpp đối với NN C++; *.c đối với NN C.
Lập trình giải các bài toán sau (thời gian chạy tối đa cho mỗi bài là 1 giây)
Câu 1: Tổng liên tiếp
Cho ba số nguyên dương a, b, x (a ≤ b). Hỏi có bao nhiêu số nguyên liên tiếp trong đoạn [a, 
b] có tổng các chữ số chia hết cho x?
Dữ liệu vào: Nhập từ bàn phím một dòng chứa ba số nguyên dương a, b, x (1 ≤ a ≤ b ≤ 10^9, 
1 ≤ x ≤ 100).
Kết quả: Ghi ra một số nguyên dương là kết quả bài toán.
Ví dụ:
 Dữ liệu vào Kết quả
 10 20 5 3
Câu 2: Số đảo ngược
Cho số nguyên dương n. Hãy tìm số đảo ngược của n và kiểm tra xem số đó có phải là bội 
của 7 hay không.
Dữ liệu vào: Nhập từ bàn phím một số nguyên dương n (n ≤ 10^12).
Kết quả: Ghi ra "YES" nếu số đảo ngược là bội của 7, ngược lại ghi "NO".
Ví dụ:
 Dữ liệu vào Kết quả
 123 NO
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
Câu 3: Số bị thiếu
Cho một dãy gồm n số nguyên dương đôi một khác nhau trong đoạn [1, n+1], nhưng thiếu 
đúng một số. Hãy tìm số bị thiếu.
Dữ liệu vào:
• Dòng đầu ghi số nguyên dương n (1 ≤ n ≤ 10^6).
• Dòng thứ hai chứa n số nguyên đôi một khác nhau thuộc đoạn [1, n+1].
Kết quả: In ra số nguyên bị thiếu duy nhất.
Ví dụ:
 Dữ liệu vào Kết quả
 4 3
 2 1 4 5
 ----------HẾT----------
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
 ĐÁP ÁN
Câu 1: Tổng liên tiếp
int tongChuSo(int n) {
 int s = 0;
 while (n > 0) {
 s += n % 10;
 n /= 10;
 }
 return s;
}
int main() {
 long long a, b, x, dem = 0;
 cin >> a >> b >> x;
 for (long long i = a; i <= b; i++) {
 if (tongChuSo(i) % x == 0) dem++;
 }
 cout << dem;
}
Câu 2: Số đảo ngược
long long daoNguoc(long long n) {
 long long rev = 0;
 while (n > 0) {
 rev = rev * 10 + n % 10;
 n /= 10;
 }
 return rev;
}
int main() {
 long long n;
 cin >> n;
 long long m = daoNguoc(n);
 if (m % 7 == 0) cout << "YES";
 else cout << "NO";
}
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
Câu 3: Số bị thiếu
int main() {
 int n, x, tong = 0;
 cin >> n;
 int tongDung = (n + 1) * (n + 2) / 2;
 for (int i = 0; i < n; i++) {
 cin >> x;
 tong += x;
 }
 cout << tongDung - tong;
}
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
 ĐỀ SỐ 2
 PHÒNG GD&ĐT BẢO YÊN ĐỀ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN
 NĂM HỌC 2023-2024
 Môn thi: Tin học Lớp 8
 Thời gian: 150 phút (không kể thời gian giao đề)
 TỔNG QUAN BÀI THI
 Câu Tên chương trình File dữ liệu vào File dữ liệu ra Điểm
 Câu 1 Cau1.cpp Cau1.inp Cau1.out 5.0
 Câu 2 Cau2.cpp Cau2.inp Cau2.out 5.0
 Câu 3 Cau3.cpp Cau3.inp Cau3.out 4.0
 Câu 4 Cau4.cpp Cau4.inp Cau4.out 4.0
 Câu 5 Cau5.cpp Cau5.inp Cau5.out 2.0
Thí sinh tạo 1 thư mục trong ổ D hoặc ngoài màn hình, đặt tên thư mục là Số báo danh của 
mình và lưu các bài vào thư mục này. Viết chương trình bằng ngôn ngữ C++.
Câu 1 (5,0 điểm) 
Trong một lần ra chơi Nam viết vu vơ một số tự nhiên bất kỳ có giá trị là n với 
 18
(1<=n<=10 ), Toàn thấy vậy mới đố Nam tính được tổng Sn, với tổng Sn được tính bởi công 
 2 2 2
thức sau: Sn = 1 + 2 + ..... + n . Nam loay hoay một lúc không biết tính thế nào. Các bạn 
hãy dùng ngôn ngữ C++ viết chương trình tính hộ tổng Sn giúp bạn Nam trả lời câu đố của 
bạn Toàn nhé.
Dữ liệu vào: Lấy từ tệp Cau1.inp gồm 1 dòng ghi 1 số nguyên dương n.
Dữ liệu ra: Ghi vào tệp Cau1.out gồm 1 dòng ghi tổng Sn
Ví dụ:
 Cau1.inp Cau1.out Giải thích
Câu 2 (5,0 điểm) 
Vào một buổi học tin học tại lớp Nam lại đố lại toàn. Tớ cho cậu 2 số m và n với 
1<=m<n<=105 bạn hãy tìm ra cho tớ trong khoảng m và n có bao nhiêu số nguyên tố, bao 
nhiêu số có số ước là lẻ. 
Dữ liệu vào: Lấy từ tệp Cau2.inp gồm 1 dòng ghi 2 số nguyên dương m n.
Kết quả: Ghi ra file văn bản Cau2.out là kết quả của bài toán gồm 2 dòng:
Dòng 1: ghi số các số có số ước lẻ.
Dòng 2: ghi số lượng số nguyên tố.
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
Ví dụ:
 Cau2.inp Cau2.out Giải thích
Câu 3 (4,0 điểm)
 6 6
Cho một dãy số gồm N (với 2<=N<= 10 , ai là các phần tử của dãy 45<=ai<=10 ) phần tử 
hãy sắp xếp và đưa ra dãy số đó tăng dần và tìm ra các cặp số hứa hôn (Hai số nguyên dương 
là cặp số hứa hôn khi thoả mãn quy luật sau:Tổng các ước của số này (khác chính nó) 
nhiều hơn số kia đúng 1 đơn vị). nếu không có cặp số hứa hôn nào thì in số 0.
Dữ liệu vào: Lấy từ file Cau3.inp, gồm 2 dòng
 Dòng đầu tiên là số nguyên dương N. 
Dòng thứ hai là các phần tử của mảng.
Dữ liệu ra: Ghi ra file Cau3.out, gồm 3 dòng: 
Dòng 1: là mảng sau khi sắp xếp
Dòng 2: ghi ra các cặp số hứa hôn
Ví dụ:
 Cau3.inp Cau3.out
5 45 48 55 6575
45 48 65 55 75 (48, 75) Là cặp số hứa hôn
6 50 140 150 195 256
50 150 140 200 195 256 (140, 195) Là cặp số hứa hôn
 1000 1050 1225 1650 1800 1925 2010 
8
 2225
1000 1800 1050 2010 1925 1650 2225 1225
 (1050, 1925) Là cặp số hứa hôn
Câu 4 (4,0 điểm)
Biến đổi xâu Yêu cầu: Trong bảng mã ASCII, 26 kí tự chữ cái thường từ ‘a’ đến ‘z’ được mã 
hóa tương ứng bằng các số tự nhiên từ 97 đến 122. Cho một xâu kí tự S chỉ chứa toàn các kí 
tự chữ cái thường. Gọi P là xâu mã hóa tương ứng của xâu S bằng cách mã hóa từng ký tự 
trong S (theo bảng mã ASCII) và viết liên tiếp nhau. Ví dụ: S = ‘ab’ thì P = ‘9798’. Hãy viết 
chương trình nhập vào một xâu đã mã hóa P (có không quá 255 kí tự) và in ra xâu kí tự S. 
Dữ liệu vào: Lấy từ file Cau4.inp, gồm 1 dòng là một xâu kí tự P đã được mã hoá không quá 
255 ký tự.
Dữ liệu ra: Ghi ra file Cau4.out gồm 1 dòng các ký tự xâu S
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
Ví dụ:
 Cau4.inp Cau4.out
 979899 abc
 100101102 def
Câu 5 (2,0 điểm)
Độ tuổi
Trong đợt tổng điều tra dân số vừa qua, Tuấn được tham gia với vai trò là tình nguyện viên, 
Tuấn được phân công điều tra dân số của bản Bon. Công việc của Tuấn là đến từng hộ gia 
đình trong khu hỏi số thành viên và tuổi của từng thanh viên trong gia đình mà Tuấn đến sau 
đó ghi chép lại cẩn thận. Sau khi đến hết tất cả các gia đình trong bản cuốn sổ ghi chép của 
Tuấn đã có đầy đủ thông tin cần thiết. Nhiệm của Tuấn bây giờ là thống kê xem độ tuổi nào 
trong khu là nhiều nhất. Em hãy giúp Tuấn thống kê độ tuổi nào trong bản là nhiều nhất
Dữ liệu:
Dữ liệu vào cho bỏi file văn bản CAU5.INP có cấu trúc như sau:
- Dòng đầu tiên ghi tổng số người có trong bản n (0<n<40000)
- Dòng thứ 2 ghi tuổi của từng người trong bản t (0<tuổi<100) cách nhau bằng một dấu cách 
(space)
Kết quả
Kết quả ghi ra file văn bản CAU5.OUT với 1 số là độ tuổi nhiều nhất trong bản. Dữ liệu vào 
luôn luôn đảm bảo có đúng 1 độ tuổi nhiều nhất trong bản
 CAU5.INP CAU5.OUT
20 36
2 5 10 36 59 95 45 40 30 36 5 65 36 25 36 28 6 36 9 70
Chú ý:
- Thuật toán sử dụng 3 vòng lặp lồng nhau thì sẽ giải quyết được bài toán với n ≤ 100 
- Thuật toán sử dụng 2 vòng lặp lồng nhau thì sẽ giải quyết được bài toán với n ≤ 1000 
- Thuật toán sử dụng 1 vòng lặp thì sẽ giải quyết được bài toán với n ≤ 106 
 -----------HẾT-----------
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
 ĐÁP ÁN
Yêu cầu chung: 
Học sinh có thể viết theo nhiều cách khác nhau, sử dụng thuật toán hợp lý, có thể sử dụng 
hàm hoặc thủ tục, đảm bảo logic, cho ra kết quả đúng vẫn được tính điểm.
Thực hiện chạy chương trình, kiểm tra kết quả bằng tệp *.out
 Câu Nội dung Điểm
 - Khai báo đủ các biến, kiểu dữ liệu hợp lý 0,5
 Câu 1. - Đọc được dữ liệu từ tệp 0,5
 (5,0 điểm) - Kiểm tra được số N 2,0
 - Tính được tổng 2,0
 - Khai báo đủ các biến, kiểu dữ liệu hợp lý 0,5
 Câu 2. - Đọc được dữ liệu từ tệp 0,5
 (5,0 điểm) - Viết được chương trình con số nguyên tố 1,0
 - Hiển thị được đúng kết quả 3,0
 - Khai báo đủ các biến, kiểu dữ liệu hợp lý 0.25
 - Đọc được dữ liệu từ tệp 0.25
 Câu 3.
 - Viết được chương trình con Số hoàn hảo 1.0
 (4 điểm)
 - Sắp xếp được dãy theo yêu cầu 1.0
 - Tính được số hoàn hảo và tính tổng 1.5
 - Khai báo đủ các biến, kiểu dữ liệu hợp lý 0.5
 Câu 4. - Đọc được dữ liệu từ tệp 0.5
 (4 điểm) - Thực hiện được chuẩn hóa 1.5
 - Đếm đúng số lượng chữ cái 1.5
 - Khai báo đủ các biến, kiểu dữ liệu hợp lý 0.25
 - Đọc được dữ liệu từ tệp 0.25
 Câu 5.
 - Sử dụng chương trình con số nguyên tố 0,5
 (2 điểm)
 - Tách được các chữ số để tính tổng 0,5
 - Tìm được đúng số lượng số đặc biệt 0,5
 DeThiTinHoc.net Bộ 19 Đề thi Học sinh giỏi Tin học Lớp 8 (Có đáp án) - DeThiTinHoc.net
 ĐỀ SỐ 3
 UBND THÀNH PHỐ BẮC NINH ĐỀ THI CHỌN HSG CẤP THÀNH PHỐ
PHÒNG GIÁO DỤC & ĐÀO TẠO NĂM HỌC 2023-2024
 Môn thi: Tin Học - Lớp 8
 Thời gian: 150 phút (Không kể thời gian giao đề)
I. Dùng phần mềm bảng tính Excel giải bài toán sau 
Câu 1 (5 điểm):
Viết công thức, hàm thích hợp để điền các cột trong bảng dữ liệu theo các thông tin 
sau:
1) Tính cột Thành tiền = Số lượng*Đơn giá
2) Tính Thuế như sau:
Thuế = 10% * Thành tiền nếu Loại hàng có ký tự thứ 2 là A
Thuế = 20% * Thành tiền nếu Loại hàng có ký tự thứ 2 là B
Thuế = 30% * Thành tiền nếu Loại hàng có ký tự thứ 2 là C
Thuế = 0 với các loại hàng có ký tự thứ 2 khác
3) Tính Tổng cộng tại : Tổng cột Số lượng và tổng cột thành tiền
4) Tính Phí vận chuyển như sau:
Phí vận chuyển = (Tổng cột thành tiền /Tổng cột số lượng) * Số lượng * (5% nếu mặt hàng 
có 3 ký tự cuối là 001; * 10% nếu mặt hàng có 3 ký tự cuối là 002)
5) Tổng Tiền = Thành tiền + Thuế + Phí vận chuyển
II. Dùng ngôn ngữ scratch viết chương trình giải các bài toán sau 
Câu 2 (4 điểm): Viết chương trình vẽ hình sau:
- Ân phím a (trên bàn phím) thì vẽ hình a
- Ân phím b (trên bàn phím) thì vẽ hình b
 DeThiTinHoc.net

File đính kèm:

  • docxbo_19_de_thi_hoc_sinh_gioi_tin_hoc_lop_8_co_dap_an.docx