Tin tức thư viện

Chức năng Dừng xem quảng cáo trên violet.vn

12087057 Kính chào các thầy, cô! Hiện tại, kinh phí duy trì hệ thống dựa chủ yếu vào việc đặt quảng cáo trên hệ thống. Tuy nhiên, đôi khi có gây một số trở ngại đối với thầy, cô khi truy cập. Vì vậy, để thuận tiện trong việc sử dụng thư viện hệ thống đã cung cấp chức năng...
Xem tiếp

Hỗ trợ kĩ thuật

  • (024) 62 930 536
  • 091 912 4899
  • hotro@violet.vn

Liên hệ quảng cáo

  • (024) 66 745 632
  • 096 181 2005
  • contact@bachkim.vn

đề thi hsg tin 8

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Ngô Thị Lộc
Ngày gửi: 17h:09' 04-04-2026
Dung lượng: 26.7 KB
Số lượt tải: 17
Số lượt thích: 0 người
ĐỀ 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 làm bài: 120 phút, không kể thời gian giao đề
Đề thi gồm: 02 trang

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.

TỔNG QUAN BÀI THI
Tên bài

Tên bài làm

Điểm

Câu 1

HIỆU CHỮ SỐ.*

5,0

Câu 2

SỐ LẶP.*

5,0

Câu 3

TỔNG ĐOẠN CON.*

5,0

Câu 4

SỐ NGUYÊN TỐ BỊ THIẾU.*

5,0

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: Hiệu chữ số (HIEUCHUSO)
Cho số nguyên dương n. Tính hiệu giữa tổng các chữ số chẵn và tổng các chữ số lẻ của n.
Dữ liệu vào: Một dòng chứa số nguyên dương n (1 ≤ n ≤ 10^18).
Kết quả: Một số nguyên là hiệu tổng chẵn – tổng lẻ.

Câu 2: Số lặp (SOLAP)
Cho mảng gồm n số nguyên dương. Hãy tìm số đầu tiên xuất hiện nhiều hơn một lần.
Dữ liệu vào:
• Dòng đầu chứa số nguyên n (1 ≤ n ≤ 10^6).
• Dòng thứ hai chứa n số nguyên.
Kết quả: Ghi ra số đầu tiên bị lặp. Nếu không có thì in ra -1.

Câu 3: Tổng đoạn con (TONGDOAN)
Cho mảng gồm n số nguyên. Tìm đoạn con liên tiếp có tổng lớn nhất.

Dữ liệu vào:
• Dòng đầu ghi số nguyên dương n (1 ≤ n ≤ 10^6).
• Dòng thứ hai ghi n số nguyên.
Kết quả: Ghi ra tổng lớn nhất của đoạn con liên tiếp.

Câu 4: Số nguyên tố bị thiếu (SOTHIEU)
Cho một mảng gồm n số nguyên tố khác nhau trong đoạn từ 1 đến m. Hãy tìm số nguyên tố
nhỏ nhất chưa có trong mảng.
Dữ liệu vào:
• Dòng đầu chứa hai số nguyên dương n và m (1 ≤ n ≤ 10^5, m ≤ 10^6).
• Dòng thứ hai chứa n số nguyên tố khác nhau ≤ m.
Kết quả: In ra số nguyên tố nhỏ nhất không xuất hiện trong mảng.

GỢI Ý TRẢ LỜI

Câu 1: Hiệu chữ số
int main() {
long long n;
cin >> n;
int tongChan = 0, tongLe = 0;
while (n > 0) {
int d = n % 10;
if (d % 2 == 0) tongChan += d;
else tongLe += d;
n /= 10;
}
cout << tongChan - tongLe;
}

Câu 2: Số lặp
int main() {
int n, x;
cin >> n;
map mp;
for (int i = 0; i < n; i++) {
cin >> x;
mp[x]++;
if (mp[x] == 2) {
cout << x;
return 0;
}
}
cout << -1;
}

Câu 3: Tổng đoạn con
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) cin >> a[i];
int maxSum = a[0], currSum = a[0];

for (int i = 1; i < n; i++) {
currSum = max(a[i], currSum + a[i]);
maxSum = max(maxSum, currSum);
}
cout << maxSum;
}

Câu 4: Số nguyên tố bị thiếu
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i*i <= n; i++)
if (n % i == 0) return false;
return true;
}
int main() {
int n, m, x;
cin >> n >> m;
set s;
for (int i = 0; i < n; i++) {
cin >> x;
s.insert(x);
}
for (int i = 2; i <= m + 100; i++) {
if (isPrime(i) && s.find(i) == s.end()) {
cout << i;
break;
}
}
}
 
Gửi ý kiến