Đề thi môn Tin học - Kỳ thi chọn học sinh giỏi cấp trường Lớp 11 - Năm học 2018-2019 - Trường THPT Liễn Sơn (Có đáp án)

docx 5 trang thungat 1600
Bạn đang xem tài liệu "Đề thi môn Tin học - Kỳ thi chọn học sinh giỏi cấp trường Lớp 11 - Năm học 2018-2019 - Trường THPT Liễn Sơn (Có đáp án)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docxde_thi_mon_tin_hoc_ky_thi_chon_hoc_sinh_gioi_cap_truong_lop.docx

Nội dung text: Đề thi môn Tin học - Kỳ thi chọn học sinh giỏi cấp trường Lớp 11 - Năm học 2018-2019 - Trường THPT Liễn Sơn (Có đáp án)

  1. SỞ GD VÀ ĐT VĨNH PHÚC KỲ THI CHỌN HSG CẤP TRƯỜNG LỚP 11 TRƯỜNG THPT LIỄN SƠN Năm học: 2018-2019 MÔN: TIN HỌC Thời gian 180 phút (Không kể thời gian giao đề) Tổng quan bài thi TT Tên bài Tên file CT Tên file DL vào Tên file DL ra Điểm Thời gian 1 Đếm đoạn count.pas count.inp count.out 7 1s 2 Số lớn nmax.pas nmax.inp nmax.out 7 1s 3 Chia quà tết gift.pas gift.inp gift.out 6 1s Bài 1: Đếm đoạn Tên file: count.pas Dữ liệu vào: count.inp Dữ liệu ra: count.out Cho mảng có số nguyên. Một đoạn con của là một dãy các phần tử liên tiếp trong . Hãy đếm số đoạn con của có giá trị lớn nhất lớn hơn hoặc bằng . Dữ liệu: Dòng 1: Ghi 2 số nguyên , , các số cách nhau 1 khoảng trống. Dòng 2: Ghi số nguyên của dãy , các số cách nhau 1 khoảng trống. Kết quả: Gồm 1 dòng duy nhất ghi kết quả. Ví dụ: count.inp count.out count.inp count.out 5 1 15 4 4 8 1 1 1 1 1 1 5 2 5 Giới hạn: Có 30% số test ứng với 30% số điểm có 1 ≤ ≤ 100. Có 30% số test khác ứng với 30% số điểm có 1 ≤ ≤ 5000. Có 40% số test còn lại ứng với 40% số điểm có 1 ≤ ≤ 105. 6 Trong tất cả các test có 0 ≤ 푖 ≤ 10 . Bài 2. Số lớn Tên file: nmax.pas Dữ liệu vào: nmax.inp Dữ liệu ra: nmax.out 1
  2. Peter và Bin chơi trò chơi tìm số lớn, Peter cho Bin biết trước một xâu kí tự, trong đó có ít nhất 5 chữ số. Peter yêu cầu Bin tìm số lớn nhất từ xâu đã cho bằng cách hãy loại bỏ một số kí tự ra khỏi xâu sao cho 5 kí tự cuối cùng còn lại theo đúng thứ tự đó tạo thành số lớn nhất. Dữ liệu: Dòng 1 gồm một xâu cho trước Kết quả: Một dòng duy nhất chứa số nguyên là số lớn nhất mà Bin tìm được sau khi loại bỏ các kí tự. Ví dụ: nmax.inp nmax.out 13a7b48cb7d9e68f7 89687 Bài 3: Chia quà tết Tên file: gift.pas Dữ liệu vào: gift.inp Dữ liệu ra: gift.out Trường THPT A chia quà tết cho học sinh, có X chiếc áo và Y hộp bánh để chia quà cho học sinh diện chính sách cuối năm 2018. Nhà trường chia quà cho học sinh thoả mãn điều kiện: nếu chia cho n học sinh diện chính sách thì các học sinh phải nhận được số lượng chiếc áo như nhau, số lượng hộp bánh như nhau, đồng thời phải chia hết tất cả X chiếc áo và Y hộp bánh. Em hãy giúp nhà trường liệt kê tất cả các phương án chia quà thoả mãn điều kiện nêu trên. Dữ liệu: Dòng 1: hai số nguyên X, Y (1<= X, Y <= 109) Kết quả: Dòng 1 m (m là số phương án chia quà): trên mỗi dòng ghi ba số nguyên n, a, b (mỗi số cách nhau một dấu cách) là một phương án chia quà có n học sinh được chia quà, mỗi học sinh nhận a chiếc áo và b hộp bánh. Các phương án được liệt kê ở các dòng liên tiếp theo thứ tự n tăng dần. Ví dụ: gift.inp gift.out 9 12 1 9 12 3 3 4 6 18 1 6 18 2 3 9 3 2 6 6 1 3 Hết 2
  3. Đáp án: Bài 1: Đếm đoạn uses math; var q,d,z,n,i,s,m,k,j:longint; f, g:text; a, b:array[0 1000000]of qword; begin assign(f,'nmax.inp');reset(f); assign(g,'nmax.out');rewrite(g); readln(f,n,m); // s:=0; // d:=0; for i:=1 to n do read(f,a[i]); q:=0; for i:=1 to n do begin if a[i]>=m then begin q:=i; b[i]:=b[i-1]+q; end else b[i]:=b[i-1]+q; end; writeln(g,b[n]); close(f); close(g); End. Bài 2: Tìm số lớn var f,g:text; 3
  4. s:ansistring; Procedure Nhap; Begin assign(f,'nmax.inp'); reset(f); assign(g,'nmax.out'); rewrite(g); read(f,S); close(f); end; Procedure xuly; var i,j,k:byte; begin i:=1; repeat if s[i] in ['0' '9'] then inc(i) else delete(s,i,1); until i>length(s); for i:=1 to 5 do begin k:=i; for j:=i to length(s)+i-5 do if s[k] i then delete(s,i,k-i); end; writeln(g,copy(s,1,5)); close(g); end; Begin Nhap; xuly; readln; End. Bài 3: Chia quà tết //gift.pas var i,x,y:longint; 4
  5. f,g: text; function UCLN(x,y:longint):longint; var sd:longint; begin while y<>0 do begin sd:= x mod y; x:=y; y:=sd; end; UCLN:=x; end; begin assign(f,'gift.inp'); reset(f); assign(g,'gift.out'); rewrite(g); read(f,x,y); for i:=1 to UCLN(x,y) do begin if (x mod i=0) and (y mod i =0) then writeln(g,i,' ',x div i,' ',y div i); end; close(f); close(g); readln End. 5