PHÒNG GIÁO DỤC & ĐÀO TẠO HUYỆN SƠN DƯƠNG ĐỀ CHÍNH THỨC KỲ THI CHỌN HỌC SINH GIỎI LỚP 9 HUYỆN SƠN DƯƠNG, NĂM HỌC 2015 – 2016 ĐỀ THI MÔN: TIN HỌC Thời gian: 150 phút (không kể thời gian giao nhận đề) (Đề thi gồm có 02 trang) Tổng quan đề thi: Tên bài Bài 1 Bài 2 Bài 3 Bài 4 File bài làm Bai1.pas Bai2.pas Bai3.pas Bai4.pas Dữ liệu vào Bàn phím Bàn phím Bàn phím Bàn phím Dữ liệu ra Màn hình Màn hình Màn hình Màn hình Điểm 4 4 6 6 Chú ý: 1. Bài thi được làm trên ngôn ngữ lập trình Pascal. 2. Chương trình của Bài 1, Bài 2, Bài 3, Bài 4, phải ghi lên đĩa với tên tương ứng là Bai1.pas, Bai2.pas, Bai3.pas, Bai4.pas trong thư mục đặt tên SBD của mình ví dụ: D:\SBD01\Bai1.pas. ĐỀ BÀI Bài 1. Viết chương trình tính tổng sau: s=1.23.4+2.34.5+3.45.6++N(N+1)(N+2)(N+3) Với N nhập từ bàn phím sao cho 5<N≤100, nếu nhập sai yêu cầu nhập lại khi nào đúng tính tổng (kết quả lấy đến 3 chữ số thập phân). Ví dụ Input Output N = 6 S = 2.462 Bài 2. Viết chương trình nhập một dãy số nguyên gồm N (N<20) phần tử A1, A2, A3,,AN và số nguyên S. Yêu cầu: Hãy tìm một dãy con của dãy trên có tổng bằng S. Ví dụ Input Output N = 4 S = 9 7 5 6 4 Day con la: 5 4 N = 6 S = 9 7 2 4 5 6 3 Day con la: 7 2 4 5 6 3 N =4 S =6 7 5 8 9 Khong co day con nao bang 6 Bài 3. Viết chương trình nhập vào từ bàn phím một số nguyên dương N (N≤100) và dãy A gồm N số nguyên A1, A2, A3,,AN. Yêu cầu: a) Tìm giá trị và vị trí của số chẵn nhỏ nhất trong dãy; b) Tìm giá trị và vị trí của số âm lớn nhất trong dãy. Ví dụ: Input Output N = 5 1 3 25 7 55 Day vua nhap la: 1 3 25 7 55 Day khong co so chan Day khong co so am N = 6 1 4 25 26 55 100 Day vua nhap la: 1 4 25 26 55 100 Gia tri chan nho nhat trong day la 4 o vi tri 2 Day khong co so am N = 6 1 -2 25 7 -9 -100 Day vua nhap la: 1 -2 25 7 -9 -100 Gia tri chan nho nhat trong day la -100 o vi tri 6 Gia tri am lon nhat trong day la -2 o vi tri 2 Bài 4. Một nhóm gồm K học sinh góp tiền mua một phần mềm dùng chung. Khi cài đặt phần mềm này, người sử dụng cần phải nhập vào một mật khẩu. Khi biết các khách hàng của mình là các học sinh say mê tin học, chủ cửa hàng thay vì đưa mật khẩu đã đưa cho mỗi bạn một con số khác nhau và sau đó nói rằng: Mật khẩu để cài đặt phần mềm là số nguyên dương nhỏ nhất gồm không quá chín chữ số chia hết cho bất cứ số nào trong các số tôi đã đưa cho các bạn. Yêu cầu: Biết tất cả các số mà chủ cửa hàng đã đưa cho các học sinh, hãy tìm mật khẩu để cài đặt phần mềm. Input: Dòng đầu tiên chứa số học sinh K (K<20). Dòng thứ hai chứa K số nguyên dương nhỏ hơn 20 mà ông chủ cửa hàng đã đưa cho các học sinh, hai số liên tiếp cách nhau bởi dấu cách. Output: Mật khẩu tìm được. Ví dụ: Input Output K = 3 4 6 3 Mat khau la: 12 Cán bộ coi thi không giải thích gì thêm ------------------------------ HẾT ------------------------------- PHÒNG GIÁO DỤC VÀ ĐÀO TẠO SƠN DƯƠNG KỲ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN LỚP 9 THCS NĂM HỌC 2015-2016 ĐỀ THI MÔN: TIN HỌC ĐÁP ÁN Thời gian làm bài: 150 phút (không kể thời gian giao đề) (Đáp án đề thi có 04 trang) Bài Nội dung kiến thức Điểm 1 Program bai1; Uses crt; Var N,i:integer; S:real; Begin Clrscr; Write(‘Nhap so tu nhien n=’); readln(n); While ((n100)) do Begin Write(‘Nhap lai n thoa man 5<n<=100, n=’); readln(n); End; S:=0; For i:=1 to n do S := s + i*(i+1)/((i+2)*(i+3)); Write(‘Tong la:’,s:6:3); Readln; End. 4đ 0,25đ 1,75đ 2đ 2 Program bai2; Uses crt; Var a:array[1..100] of longint; n,s,i,j,vt:longint; Begin Clrscr; repeat write('nhap vao so luong phan tu n=');readln(n); until n<=20; write('Nhap vao tong S='); readln(s); for i:=1 to n do begin write('Nhap vao phan tu thu a[',i,']:'); readln(a[i]); end; writeln('Day vua nhap la:'); for i:=1 to n do write(a[i]:6); writeln; vt:=1; while (vts) do vt:=vt+1; if vt=n+1 then writeln('Khong co day con bang ',s) else begin Writeln('Day con:'); for i:=1 to n do begin for j:=i+1 to n do if (s=a[i]+a[j]) then writeln(a[i]:6,a[j]:6); end; end; readln; End. 4đ 0,25đ 1,25đ 1đ 1,5đ 3 Program bai3; Uses crt; Var a:array[1..100] of longint; n,i,vt,min,max:integer; Begin Clrscr; repeat write('nhap vao so luong phan tu n=');readln(n); until n<=100; for i:=1 to n do begin write('nhap vao phan tu thu a[',i,']=');readln(a[i]); end; writeln('mang vua nhap la='); for i:=1 to n do write(a[i]:6); writeln; vt:=1; while (vt0) do vt:=vt+1; if vt=n+1 then writeln('Day khong co so chan') else begin min:=a[vt]; for i:=vt+1 to n do if (a[i] mod 2=0) and (a[i]<min) then Begin vt:=i; min:=a[i]; end; writeln('Gia tri chan nho nhat trong day la ',min,' o vi tri ',vt); end; writeln; vt:=1; while (vt=0) do vt:=vt+1; if vt=n+1 then writeln('Day khong co so am') else begin max:=a[vt]; for i:=vt+1 to n do if (a[i]max) then Begin vt:=i; max:=a[i]; end; writeln('Gia tri am lon nhat trong day la ',max,' o vi tri ', vt); end; Readln; End. 6đ 0,25đ 1đ 0,25đ 0,75đ 1,5đ 0,75đ 1,5đ 4 Program bai4; Uses crt; Var a:array[1..100] of integer; k,i,du,t,kq:longint; Begin clrscr; write('nhap vao so k=');readln(k); for i:=1 to k do begin write('Nhap vao so thu a[',i,']=');readln(a[i]); end; write(‘Cac so vua cho la:'); for i:=1 to k do write(a[i]:6); writeln; kq:=a[1]; for i:=2 to k do begin t:=kq*a[i]; du:=kq mod a[i]; while du0 do begin kq:=a[i]; a[i]:=du; du:=kq mod a[i]; end; kq:=t div a[i]; end; writeln(‘Mat khau la:',kq); readln; End. 6đ 0,25đ 1đ 0,5đ 1,75đ 2,5đ
Tài liệu đính kèm: