UBND HUYỆN QUẾ SƠN PHÒNG GD&ĐT KỲ KHẢO SÁT HỌC SINH GIỎI LỚP 6,7,8 CẤP HUYỆN NĂM HỌC 2013-2014 Môn: Tin học - Lớp 8 Thời gian làm bài: 120 phút (Không kể thời gian giao đề) ĐỀ CHÍNH THỨC Bài 1 (3,0 điểm): Giai thừa N! (N giai thừa) được định nghĩa: là tích của N số tự nhiên dương đầu tiên. Viết chương trình cho phép nhập số tự nhiên N từ bàn phím (với 0<N£12) rồi thực hiện: a) Tìm N! = 1.2.3...N. b) Tìm . c) Xóa tất cả các chữ số 0 tận cùng của N! rồi xuất kết quả ra màn hình. Ví dụ: Bài 2(3,5 điểm): Dãy số Viết chương trình cho phép nhập dãy gồm N số nguyên a1, a2, ... an từ bàn phím rồi thực hiện: a) Tìm số có giá trị tuyệt đối lớn nhất trong dãy số vừa nhập. Trong trường hợp có nhiều số có giá trị tuyệt đối lớn nhất bằng nhau thì ghi ra số đầu tiên tìm được. b) So sánh số lượng số nguyên dương với số lượng số nguyên âm có trong dãy. c) Nhập k từ bàn phím và cho biết vị thứ của phần tử ak trong dãy. Việc xếp vị thứ được thực hiện: Số có giá trị lớn nhất được xếp vị thứ 1, hai số có cùng giá trị thì được xếp cùng một vị thứ. Khi có hai hoặc nhiều số sắp vị thứ k thì không có số được xếp vị thứ k+1 (Ví dụ: Có 2 số có vị thứ 1 thì không có số có vị thứ 2). Ví dụ: Bài 3(3,5 điểm): Tam giác Viết chương trình cho phép nhập số đo hai góc và của tam giác ABC từ bàn phím rồi thực hiện: a) Cho biết tam giác ABC là tam giác gì (Tam giác thường, tam giác vuông, tam giác cân, tam giác vuông cân, tam giác đều)? Câu trả lời không được thừa (Ví dụ: Đã trả lời là tam giác đều thì không trả lời là tam giác cân; đã trả lời là tam giác vuông cân thì không trả lời là tam giác vuông và cũng không trả lời là tam giác cân). b) Xác định cạnh lớn nhất của tam giác. Trong trường hợp có nhiều cạnh lớn nhất bằng nhau cần chỉ ra tất cả các cạnh đó. c) Xét xem số đo ba góc của tam giác ABC có là ba số hạng liên tiếp của một cấp số cộng không. Biết rằng một dãy số gọi là cấp số cộng nếu phần tử đứng sau bằng phần tử đứng trước cộng với một số không đổi. Dãy 30, 60, 90 là cấp số cộng do số sau bằng số trước cộng 30. 60, 60, 60 cũng là cấp số cộng do số sau bằng số trước cộng 0. Ví dụ: UBND HUYỆN QUẾ SƠN PHÒNG GD&ĐT KỲ KHẢO SÁT HỌC SINH GIỎI LỚP 6,7,8 CẤP HUYỆN NĂM HỌC 2013-2014 Môn: Tin học - Lớp 8 HƯỚNG DẪN CHẤM Bài 1: (3,0 điểm) a) Code tham khảo: Program bai1; Var i,n:integer; p:longint; x,s: real; Begin repeat Write('Nhap so N: ');Readln(n); until (n>0) and (n<=12); p:=1; for i:=1 to n do p:=p*i; Writeln('a) ',n,'!= ',p); 1,0 x:=1; s:=0; For i:=1 to n do Begin x:=x/i; s:=s+x; End; Writeln('b) S = ',s:12:10); 1,0 while p mod 10 = 0 do p:=p div 10; Writeln('c) Sau khi xoa chu so khong: ',p); Readln; End. 1,0 b) Yêu cầu xây dựng test: Yêu cầu Số test Số điểm Khống chế được n 1 0,25 Khai báo biến chứa giá trị giai thừa phù hợp (longint) 1 0,25 Tính được n! 2 0,50 Tính được giá trị biểu thức S 4 1,00 Xóa được các chữ số 0 tận cùng của N! 4 1,00 (Tổng số test cần xây dựng: 5) Bài 2 (3,5 điểm): Program Bai2; Var n,i, am, duong, max, vt_max, k, vthu:integer; M: array[1..20] of integer; Begin Write('Nhap N: ');Readln(n); For i:=1 to n do begin Write('M[',i,']='); Readln(M[i]); End; 0,5 Max:=abs(M[1]); vt_max:=1; For i:=2 to n do if abs(M[i])> Max then Begin Max:=abs(M[i]); vt_max:=i; End; Writeln('a)So co gia tri tuyet doi lon nhat trong day la: ',M[vt_max]); 1,0 am:=0; duong:=0; For i:=1 to n do Begin if M[i]>0 then duong:=duong+1; if M[i]<0 then am:=am+1; End; Write('b) So sanh: '); if am so so am'); if am > duong then writeln('so so duong < so so am'); if am = duong then writeln('so so duong = so so am'); 1,0 repeat write('Nhap k: ');Readln(k); until (k>0) and (k<=n); vthu:=1; for i:=1 to n do if M[k]<M[i] then vthu:=vthu+1; Write('c) So thu k co vi thu la: ',vthu); readln; End. 1,0 b) Yêu cầu xây dựng test: Yêu cầu Số test Số điểm Nhập được dãy số nguyên 1 0,50 Tìm được phần tử có giá trị tuyệt đối lớn nhất 4 1,00 So sánh được số số âm và số số dương. 4 1,00 Khống chế được k 1 0,25 Tìm được vị thứ của k 3 0,75 (Tổng số Test cần xây dựng: 4) Bài 3 (3,5 điểm): Program bai3; Var A,B,C:real; ok:boolean; Begin repeat Write('Nhap so do goc ABC: ');Readln(B); Write('Nhap so do goc BCA: ');Readln(C); until B+C<180; A:=180-(B+C); if (A=B) and (B=C) then writeln('a) ABC la tam giac deu'); if ((A=90) or (B=90) or (C=90)) then if ((A=45) or (B=45) or (C=45)) then writeln('a) ABC la tam giac vuong can') else writeln('a) ABC la tam giac vuong'); if ((A=B) or (A=C) or (B=C)) and (A90) and (B90) and (C90) and (A60) then writeln('a) ABC la tam giac can'); if (AB) and (BC) and (CA) and (A90) and (B90) and (C90) then writeln('a) ABC la tam giac thuong'); 1,5 if (A>=B) and (A>=C) then writeln('b) Canh lon nhat la BC'); if (B>=A) and (B>=C) then writeln('b) Canh lon nhat la AC'); if (C>=A) and (C>=B) then writeln('b) Canh lon nhat la AB'); 1,0 ok:=false; if A-B=B-C then ok:=true; if A-C=C-B then ok:=true; if B-A=A-C then ok:=true; if B-C=C-A then ok:=true; if C-A=A-B then ok:=true; if C-B=B-A then ok:=true; if ok then Writeln('c)Cap so cong') else Writeln('c)Khong cap so cong'); readln; End. 1,0 b) Yêu cầu xây dựng test: Yêu cầu Số test Số điểm Khống chế được giá trị của hai góc (Tổng < 180) 1 0,25 Xác định được loại tam giác (Thường, cân, vuông, vuông cân, đều) 5 1,25 Xác định được cạnh lớn nhất 4 1,00 Xác định được số đo các góc có tạo thành cấp số cộng không 4 1,00 (Tổng số test cần xây dựng: 6) (Việc xây dựng test cần đảm bảo các yêu cầu vừa kết hợp đánh giá được nhiều yêu cầu trên cùng một test để giảm thời gian chấm)
Tài liệu đính kèm: