HomeLập trình Scratch

Đề thi HSG Tin 12 Tỉnh Bắc Giang – Năm 2017-2018

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  

Đề thi HSG Tin 12 Tỉnh Bắc Giang – Năm 2017-2018

TỔNG QUAN  VỀ BÀI THI

Phần I Câu 1

Câu 2

Thí sinh làm bài trên giấy thi
Phần II

 

Thí sinh lập trình trên máy vi tính
Tên bài Tên tệp

chương trình

Tên tệp

dữ liệu vào

Tên tệp

kết quả

Câu 3 Dãy con có tổng bằng S COUNT.* COUNT.INP COUNT.OUT
Câu 4 Số lớn nhất STRNUM.* STRNUM.INP STRNUM.OUT
Phần III Câu 5 Thí sinh sử dụng Access tạo CSDL QUANLYTHI

Chú ý: Dấu * được thay thế bởi PAS hoặc CPP của ngôn ngữ lập trình được sử dụng tương ứng là Pascal hoặc C++

Phần I (5 điểm)

Câu 1 (3 điểm). Sử dụng phương pháp liệt kê dãy các thao tác hoặc vẽ sơ đồ khối để diễn tả thuật toán giải bài toán sau?

Cho số nguyên dương (với ). Số nguyên dương x gọi là ước số của  khi và chỉ khi  chia hết cho x.

Yêu cầu: Tính tổng các ước số nguyên dương của .

Ví dụ: Cho  thì kết quả là 28 (Vì 12 có các ước số nguyên dương là 1, 2, 3, 4, 6, 12).

Câu 2 (2 điểm). Bài tập CSDL

Nhà trường cần quản lý các lớp ngoại khóa bao gồm các môn: Tin học, Cầu lông, Cắt may, Bơi, Nấu ăn. Mỗi học sinh có thể tham gia nhiều nhất là hai môn ngoại khóa và phải đóng học phí. Cán bộ văn phòng dùng Access để quản lý việc tham gia lớp ngoại khóa của học sinh có dạng bảng như sau:

Bảng NGOAI_KHOA

Stt Ho_Ten Ngay_sinh Lop Mon_1 Hoc_phi_1 Mon_2 Hoc_phi_2
1 Nguyễn Minh Tuấn 15/08/2000 12A1 Tin học 30000
2 Hoàng Văn Sơn 01/05/2001 11A5 Cầu lông 15000 Văn nghệ 20000
3 Trần Tuấn Minh 05/08/2002 10A8 Cắt may 20000 Nấu ăn 20000
4 Nguyễn Thị Bình 11/12/2000 12A2 Bơi 25000
5 Nguyễn Thúy Mai 18/08/2000 12A6 Nấu ăn 20000 Tin học 30000
  1. Với cấu trúc bảng dữ liệu trên em hãy lựa chọn kiểu dữ liệu phù hợp cho mỗi trường và lựa chọn trường làm trường khóa chính cho bảng trên?
  2. Với cấu trúc bảng như trên chưa hợp lý vì không tiết kiệm bộ nhớ, dữ liệu không nhất quán (do có thể gõ nhầm tên môn, học phí, … ). Em hãy đề xuất cấu trúc hợp lí cho cơ sở dữ liệu trên?

 

Phần II (9 điểm)

Câu 3 (5 điểm). Dãy con có tổng bằng S

Cho dãy số  có  phần tử nguyên  (với ) và một số nguyên dương .

Một dãy con liên tiếp của dãy số a có dạng . Số phần tử của dãy con liên tiếp  bằng ; Tổng các phần tử của dãy con liên tiếp  bằng ;

Yêu cầu: Đếm số lượng dãy con liên tiếp của dãy  có số phần tử lớn hơn  và có tổng các phần tử bằng ?

Dữ liệu: Đọc vào từ tệp văn bản COUNT.INP có cấu trúc như sau:

+ Dòng đầu tiên chứa 2 số nguyên  và

+ Dòng thứ 2 ghi  phần tử của dãy số ;

Các số trên cùng dòng cách nhau ít nhất một dấu cách.

Kết quả: Ghi ra tệp văn bản COUNT.OUT một số nguyên duy nhất là kết quả tìm được.

Ví dụ 1:

COUNT.INP COUNT.OUT
9 10

2 2 3 3 1 2 1 4 3

3

Giải thích: Với dãy số nguyên  và , có 3 dãy con liên tiếp có số phần tử lớn hơn 3 và tổng các phần tử bằng 10 là:

Ví dụ 2:

COUNT.INP COUNT.OUT
8 3

1 1 0 -2 2 0 -3 4

2

Giải thích: Với dãy số nguyên  và , có 2 dãy con liên tiếp có số phần tử lớn hơn 3 và tổng các phần tử bằng 3 là:

Giới hạn:

+ Có 12/25 Test có  tương ứng đạt 2,4 điểm.

+ Có 20/25 Test có  tương ứng đạt 4 điểm.

+ Có 25/25 Test có  tương ứng đạt 5 điểm.

Câu 4 (4 điểm). Số lớn nhất

Trong khoa học tính toán, các kỹ sư lập trình thường sử dụng chuỗi ký tự để biểu diễn số nguyên lớn. Mặt khác, các ngôn ngữ lập trình bậc cao luôn có sẵn các hàm và thủ tục chuẩn để xử lý các xâu ký tự. Đặc biệt với các số nguyên có tới hàng nghìn chữ số, các kỹ sư có thể dùng mảng các ký tự để biểu diễn chúng. Tuy nhiên, các thao tác xử lý từng phần tử trong mảng sẽ phức tạp hơn. Kỹ sư lập trình IBM thử thách các bạn học sinh giỏi Tin học bằng bài toán sau:

“Cho một số nguyên lớn  có  chữ số và một số nguyên dương . Hãy tìm cách xoá đi  chữ số của số nguyên lớn  đ các chữ số còn lại của  và giữ nguyên thứ tự ban đầu tạo thành số lớn nhất?”

Dữ liệu: Đọc vào từ tệp văn bản STRNUM.INP có cấu trúc như sau:

+ Dòng đầu tiên chứa 2 số nguyên  và

+ Dòng thứ 2 ghi  chữ số của số nguyên ;

Kết quả: Ghi ra tệp văn bản  STRNUM.OUT là số lớn nhất sau khi đã xoá  chữ số.

Ví dụ 1:

STRNUM.INP STRNUM.OUT
4 2
1924
94

Giải thích: Với xâu số x= ‘1924’ thì khi xóa 2 kí tự x[1] = ‘1’ và x[3] = ‘2’ thì các chữ số còn lại của x bằng ‘94’ là lớn nhất.

Ví dụ 2:

STRNUM.INP STRNUM.OUT
12 3

743019601036

749601036

Giải thích: Với xâu số x= ‘743019601036’ thì khi xóa lần lượt 3 kí tự x[4] = ‘0’; x[5] = ‘1’;  x[3] = ‘3’ thì các chữ số còn lại của x bằng ‘749601036’ là lớn nhất.

Giới hạn:

+ Có 18/24 Test có  tương ứng đạt 3 điểm.

+ Có 24/24 Test có  tương ứng đạt 4 điểm.

Phần III (6 điểm)

Câu 5 (6 điểm). Thí sinh sử dụng phần mềm Access để tạo CSDL QUANLYTHI

Dữ liệu trong CSDL QUANLYTHI được lưu trữ bởi 3 bảng có các thông tin sau:

* Bảng THI_SINH lưu trữ thông tin của các thí sinh dự thi. Mỗi thí sinh dự thi có một số báo danh duy nhất để phân biệt với các thí sinh khác.

Tên trường Mô tả Kiểu dữ liệu Ghi chú
Stt Số thứ tự AutoNumber – Học sinh chọn kích thước trường phù hợp nhất với kích thước dữ liệu mà trường biểu diễn.

– Trường khóa chính là trường SBD.

SBD Số báo danh Text
HoDem Họ và đệm Text
Ten Tên Text
NgSinh Ngày sinh Date/Time
GT Giới tính Yes/No
DT Dân tộc Text

* Bảng DIEM_THI­ lưu trữ điểm thi 3 môn Văn, Toán và Anh của các thí sinh dự thi

Tên trường Mô tả Kiểu dữ liệu Ghi chú
Stt Số thứ tự AutoNumber – Học sinh chọn kích thước trường phù hợp nhất với kích thước dữ liệu mà trường biểu diễn.

– Trường khóa chính là trường SBD.

– Điểm thi được làm tròn 2 số phần thập phân.

SBD Số báo danh Text
Diem_Toan Điểm Toán Number
Diem_Van Điểm Văn Number
Diem_Anh Điểm Anh Number

Yêu cầu:

5.1 (1,5 điểm). Xác định và khai báo cấu trúc của bảng THI_SINH và bảng DIEM_THI, chỉ định khóa chính cho các bảng, đặt tên bảng, lưu cấu trúc bảng, tạo liên kết giữa các bảng.

5.2 (1 điểm). Tạo các biểu mẫu để nhập dữ liệu cho các bảng theo mẫu sau:


+ Biểu mẫu NHAP DS HOC SINH để nhập dữ liệu cho bảng THI_SINH;

+ Biểu mẫu NHAP DIEM để nhập dữ liệu cho bảng DIEM_THI

5.3 (1 điểm). Sử dụng biểu mẫu tạo ra ở mục 5.2 để nhập dữ liệu vào CSDL QUANLYTHI theo thông tin được cho dưới đây:

* Dữ liệu của bảng THI_SINH

Stt Số báo danh Họ đệm Tên Ngày sinh Giới tính Dân tộc
1 012001 Nguyễn Bình Dương 01/04/2000 ü Kinh
2 012002 Đỗ Hà Anh 02/01/2000 Tày
3 012003 Trần Anh Đức 21/11/2000 ü Kinh
4 012004 NguyễnThu 14/05/2000 Kinh
5 012005 Nguyễn Anh Quân 29/11/2000 ü Kinh

* Dữ liệu của bảng DIEM_THI

Stt Số báo danh Điểm Toán Điểm Văn Điểm Anh
1 012001 10.00 9.25 8.50
2 012002 4.75 10.00 9.00
3 012003 9.25 5.50 9.75
4 012004 4.00 9.00 10.00
5 012005 6.50 5.75 4.75

 

5.4 (2,5 điểm). Thực hiện các thao tác sau:

+ Sắp xếp học sinh tăng dần theo Tên;

+ Tạo mẫu hỏi DIEM_10 để lọc ra danh sách học sinh có Điểm Toán hoặc Điểm Văn hoặc Điểm Anh bằng 10;

+ Tạo mẫu hỏi KET_QUA đưa ra danh sách học sinh với Tổng điểm = (Điểm Toán + Điểm Văn)*2 + Điểm Anh và sắp xếp giảm dần theo Tổng điểm;

+ Tạo mẫu hỏi DAN_TOC đưa ra danh sách học sinh là người dân tộc thiểu số;

+ Tạo báo cáo TRUNG_TUYEN đưa ra danh sách học sinh trúng tuyển, danh sách được sắp xếp giảm dần theo Tổng điểm. Học sinh trúng tuyển là học sinh có Tổng điểm từ 36.5 trở lên.

_ HẾT_

 

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *