Đề thi học sinh giỏi cấp trường môn Tin học Lớp 11 - Năm học 2019-2020 - Trường THPT Triệu Sơn 5 (Có đáp án)

doc 7 trang thaodu 3960
Bạn đang xem tài liệu "Đề thi học sinh giỏi cấp trường môn Tin học Lớp 11 - Năm học 2019-2020 - Trường THPT Triệu Sơn 5 (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:

  • docde_thi_hoc_sinh_gioi_cap_truong_mon_tin_hoc_lop_11_nam_hoc_2.doc

Nội dung text: Đề thi học sinh giỏi cấp trường môn Tin học Lớp 11 - Năm học 2019-2020 - Trường THPT Triệu Sơn 5 (Có đáp án)

  1. TRƯỜNG THPT TRIỆU SƠN 5 ĐỀ THI HỌC SINH GIỎI CẤP TRƯỜNG NĂM HỌC 2019 - 2020 Môn thi:TIN HỌC – KHỐI 11 ĐỀ CHÍNH THỨC Thời gian: 180 phút(không kể thời gian giao đề) (Đề thi gồm có 3 trang) Tổng quan bài thi: Bài Tên bài File chương trình File dữ liệu File kết quả 1 Xoá kí tự trong số nguyên BAI1.PAS SONGUYEN.INP SONGUYEN.OUT 2 Xóa kí tự trong xâu BAI2.PAS KITU.INP KITU.OUT 3 T ìm xâu dài nhất BAI3.PAS XAU.INP XAU.OUT 4 Sự xuất hiện của các kí tự BAI4.PAS KIEMTRA.INP KIEMTRA.OUT 5 Tìm dãy con BAI5.PAS DAYCON.INP DAYCON.OUT Hãy lập trình giải các bài toán sau: Câu 1(5 điểm): Nhập vào số nguyên N và xóa đi k kí tự để N là nhỏ nhất Dữ liệu vào : Từ tệp vă bản SONGUYEN.INP chứa số nguyên N và K Dữ liệu ra: Ghi kết quả vào tệp SONGUYEN.OUT số nguyên N nhỏ nhất sau khi xóa k kí tự Ví dụ: SONGUYEN.INP SONGUYEN.OUT 124512 1212 2 Câu 2(5 điểm): Nhập vào một xâu, nếu tính từ trái sang phải thì kí tự ? là dấu hiệu xóa đi một kí tự đứng ngay trước nó nếu có. Sau đó in ra màn hình xâu đã chỉnh sửa Dữ liệu vào:Từ tệp văn bản KITU.INP gồm một xâu Dữ liệu ra: Ghi kết quả ra tệp văn bản KITU.OUT là xau sau khi xóa Ví dụ: KITU.INP KITU.OUT Ho1?c sin12?a???nh Hoc sinh Câu 3(4 điểm): Nhập vào một dãy gồm N xâu. Hãy đưa ra màn hình xâu nào có độ dài lớn nhất. 1
  2. Dữ liệu vào: từ tệp văn bản XAU.INP gồm: - Dòng đầu là một số nguyên N - N dòng tiếp theo mỗi dòng chứa một xâu Dữ liệu ra: Xâu có độ dài nhiều nhất ghi vào tệp văn bản XAU.OUT Ví dụ: XAU.INP XAU.OUT 3 Hbghjghjghj FHDFHD Hbghjghjghj Hgf Câu 4(3 điểm): Cho một dãy số nguyên gồm N số và một số nguyên K. Hãy cho biết K có trong dãy số đó hay không? Nếu có nó xuất hiện bao nhiêu lần? Dữ liệu vào: Từ tệp văn bản KIEMTRA.INP gồm: - Dòng thứ nhất là N - Dòng thứ hai là dãy N phần tử, mỗi phần tử cách nhau một dấu cách - Dòng thứ 3 là số nguyên K Dữ liệu ra: Số lần xuất hiện của K có trong dãy số ghi vào tệp KIEMTRA.OUT Ví dụ: KIEMTRA.INP KIEMTRA.OUT 4 1 12 45 78 2 12 4 0 45 58 5 6 12 Câu 5(3 điểm): Cho một mảng gồm N phần tử. Hãy tìm dãy con gồm M phần tử (M<N) Sao cho dãy con này có tổng lớn nhất Dữ liệu vào: Từ tệp văn bản DAYCON.INP gồm: - Dòng đầu là N - Dòng thứ hai là N phần tử - Dòng thứ 3 là M Dữ liệu ra: Dãy con có tổng lớn nhất ghi vào tệp DAYCON.OUT 2
  3. Ví dụ DAYCON.INP DAYCON.OUT 5 78 45 26 1 78 45 26 3 3 Hết (Cán bộ coi thi không giải thích gì thêm) 3
  4. TRƯỜNG THPT TRIỆU SƠN 5 ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM ĐỀ THI HỌC SINH GIỎI CẤP TRƯỜNG NĂM HỌC 2019- 2020 Môn thi :TIN HỌC Câu Nội dung Điểm Kiểm tra chương trình với 5 test tương ứng với 5 số N. 5điểm - Mỗi test đúng ứng . 1điểm - Chương trình: Program bai1; Var t1,t2:text; N,i,j,k:int64; St: ansistring; 1 Kt:b oolean; Begin Assign(t1,’SONGUYEN.INP’); Assign(t2,’SONGUYEN.OUT’); Reset(t1); Rewrite(t2); Readln(n); Str(n,st); Readln(k); For i:=1 to k do Begin Kt:=true; For j:=1 to length(st)-1 do if st[j] >st[j+1] then Begin Delete(st,j,1); Kt:=false; Break; End; If kt then delete(st,length(st), 1); End; While (st[1] = ‘0’) and (length(st)>1) do delete(st,1,1); Writeln(st); Close(t1); close(t2); End. Kiểm tra chương trình với 5 test ứng với 5 xâu 5điểm 4
  5. - Mỗi test đúng ứng với 1điểm - Chương trình: Program bai1; Var t1,t2:text; a: string; i:integer; 2 Begin Assign(t1,’KITU.INP’); Assign(t2,’KITU.OUT’); Reset(t1); Rewrite(t2); Readln(A); For i:=1 to length(a) do if a[i]= ‘? ‘ then delete(a,i+1,1); Write(a); Readln; End. Kiểm tra chương trình với 4 test ứng với 4 dữ liệu vào 4điểm - Mỗi test đúng ứng với 1điểm - Chương trình: Program bai1; Var t1,t2:text; A:string; 3 Max: array[1 10000] of integer; N,i,j,lonnhat:integer; Begin Assign(t1,’XAU.INP’); Assign(t2,’XAU.OUT’); Reset(t1); Rewrite(t2); Readln(N); For i:=1 to N do Begin Readln(a); Max[i]:=length(a); End; Lonnhat:=max[1]; For i:=2 to N do if max[i]>lonnhat then lonhat:=max; For j:=1 to lonnhat write(a); Readln; End. Kiểm tra chương trình với 3 test ứng với 4 xâu 3điểm 5
  6. - Mỗi test đúng ứng với 1điểm - Chương trình: 4 Program bai1; Var t1,t2:text; a: array[1 10000] of int64; i,k,n:integer; Begin Assign(t1,’KIEMTRA.INP’); Assign(t2,’KIEMTRA. OUT’); Reset(t1); Rewrite(t2); Readln(n); For i:=1 to n readln a[i]; Readln(k); For i:=1 to n do if a [i] =k then inc(dem); Write(dem); Readln; End. Kiểm tra chương trình với 3 test ứng với 3 dữ liệu vào 3điểm - Mỗi test đúng ứng với 1điểm - Chương trình: Program bai1; Var t1,t2:text; a: array[1 10000] of integer; i,j n,m ,k,s,max:integer; Begin Assign(t1,’DAYCON.INP’); Assign(t2,’DAYCON.OUT’); Reset(t1); Rewrite(t2); 5 readln(n); For i:=1 to n do readln(a[i]); Readln(m); Max:=0; K:=1 For i:=1 to m do max:=max+a[i]; For i:=2 to n-m+1 do Begin S:=0; For j:=i to i+m-1 do s:= s+a[i]; If s>max then 6
  7. Begin Max:=s; K:=i; End; End; For i:=k to k+m-1 do write(a[i]); Readln; End. 7