ĐỀ THI học SINH GIỎI TIN học PASCAL 048 049 QUẾ sơn 1112 FULL

8 447 0
ĐỀ THI học SINH GIỎI TIN học  PASCAL  048 049 QUẾ sơn 1112 FULL

Đang tải... (xem toàn văn)

Thông tin tài liệu

UBND HUYỆN QUẾ SƠN PHÒNG GD&ĐT 048 KỲ THI HỌC SINH GIỎI LỚP CẤP HUYỆN NĂM HỌC 2011-2012 Môn: Tin học - Lớp Thời gian làm bài: 150 phút (Khơng kể thời gian giao đề) ĐỀ CHÍNH THỨC - VỊNG I Bài (2,0 điểm): Tam giác vng ABC (Â=900) có AH đường cao Viết chương trình cho phép nhập BH CH từ bàn phím thực hiện: a Tính cạnh AB tam giác b Tính diện tích tam giác ABC Ví dụ: Dữ liệu vào Nhap BH: Nhap CH: Nhap BH: Nhap CH: Dữ liệu AB = 2.83 Dien tich tam giac ABC: 4.00 Nhap BH: (Yêu cầu nhập lại BH >0) Bài 2(3,0 điểm): Viết chương trình cho phép nhập dãy gồm n số nguyên (Số n phần tử dãy nhập từ bàn phím) Thực hiện: a Cho biết giá trị lớn dãy b In phần tử dãy số phương c Dãy đan dấu dãy có tính chất: khơng có hai phần tử cạnh có dấu giống Cho biết dãy vừa nhập (khơng chứa phần tử 0) có đan dấu khơng? Ví dụ: Dữ liệu vào Nhap so phan tu: Nhap day: -4; 3; -2; Nhap so phan tu: Nhap day: -4; 3; 2; -1; Dữ liệu Gia tri lon nhat: Cac phan tu chinh phuong la: Day dan dau Gia tri lon nhat: Cac phan tu chinh phuong la: Day khong dan dau Bài 3(3,0 điểm): Viết chương trình cho phép nhập số nguyên dương N thực hiện: a In tất ước số nguyên dương N b In số ước số nguyên dương số N c In số M nhỏ thỏa: < M  N có nhiều ước số ngun dương Ví dụ: Dữ liệu vào Nhap so N: 10 Nhap so N: 30 Dữ liệu Cac uoc cua N la: 1; 2; 5; 10 So uoc cua N la: So M la: Cac uoc cua N la: 1; 2; 3; 5; 6; 10; 15; 30 Nhap so N: So uoc cua N la: So M là: 24 Nhap so N: (Yêu cầu nhập lại số N) Bài (2,0 điểm): Xét chữ số từ đến Nếu chữ số có đường khép kín ta gọi chữ số có lỗ hổng, có hai đường khép kín ta gọi số có lỗ hổng, khơng có đường khép kín ta gọi chữ số có lỗ hổng Vậy chữ số 0, 4, 6, có lỗ hổng, chữ số có lỗ hổng chữ số 1, 2, 3, 5, có lỗ hổng Số lỗ hổng số tự nhiên N tổng số lỗ hổng chữ số Hãy viết chương trình cho phép đếm số lỗ hổng số tự nhiên N (0 ≤ N ≤ 2147483647) Ví dụ: Dữ liệu vào Nhap N: 388247 Nhap N: Nhap N: 123 Dữ liệu So lo hong la: So lo hong la: So lo hong la: ==HẾT== UBND HUYỆN QUẾ SƠN PHÒNG GD&ĐT 049 KỲ THI HỌC SINH GIỎI LỚP CẤP HUYỆN NĂM HỌC 2011-2012 Môn: Tin học - Lớp Thời gian làm bài: 150 phút (Không kể thời gian giao đề) ĐỀ CHÍNH THỨC - VỊNG II Bài (2,5 điểm): Viết chương trình nhập vào từ bàn phím số ngun dương n (n≤1000), sau tính in lên hình giá trị biểu thức sau (kết lấy đến chữ số thập phân): a T=    n (có n dấu bậc hai) 1 1    1.2 1.2.3 1.2 n b S   Bài 2: (2,5 điểm) Tìm tất số có bốn chữ số thỏa mãn tính chất: Nếu chọn xóa chữ số thích hợp số giảm lần Ví dụ: Số 1350 chọn xóa số ta 150 Vì 150 = 1350 nên 1350 số cần tìm Bài 3: (2,5 điểm) Viết chương trình cho phép nhập ngày, tháng, năm in ngày, tháng, năm ngày hôm sau Biết rằng: Các tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày Các tháng 4, 6, 9, 11 có 30 ngày Tháng 2: - Năm nhuận có 29 ngày - Năm khơng nhuận có 28 ngày Năm nhuận năm chia hết cho không chia hết cho 100 Ví dụ: Dữ liệu vào Ngay: 10 - Thang: - Nam: 2012 Ngay: 31 - Thang: 12 - Nam: 2011 Ngay: 28 - Thang: - Nam: 2000 Ngay: 28 - Thang: - Nam: 2012 Dữ liệu 11/1/2012 1/1/2012 1/3/2001 29/2/2012 Bài 4: (2,5 điểm) Số tự nhiên N có k chữ số gọi số AmStrong N tổng lũy thừa bậc k chữ số nó: Ví dụ: Số 153 có chữ số 153 = 13 + 53 + 33 nên số AmStrong Hãy viết chương trình in số Amstrong nhỏ n với n nhập từ bàn phím ==HẾT== UBND HUYỆN QUẾ SƠN PHÒNG GD&ĐT KỲ THI HỌC SINH GIỎI LỚP CẤP HUYỆN NĂM HỌC 2011-2012 Môn: Tin học - Lớp Thời gian làm bài: 150 phút (Không kể thời gian giao đề) HƯỚNG DẪN CHẤM - VÒNG I Bài 1: (2,0 điểm) Khai báo Program Bai1; Nhập liệu Tính AB Tính diện tích Var BH,CH,AB,AC:Real; Begin Repeat Write('Nhap BH: ');Readln(BH); Until BH>0; Repeat Write('Nhap CH: ');Readln(CH); Until CH>0; AB:=sqrt(BH*(BH+CH)); Writeln('AB = ',AB:4:2); AC:=sqrt(CH*(BH+CH)); Writeln('Dien tich tam giac ABC: ',AB*AC/2:4:2); Readln; End 0,50 0,50 0,50 0,50 Cụ thể: - Khai báo: Nếu khai báo kiểu số nguyên cho 0,25 điểm - Nhập liệu: Nhập liệu (BH, CH) cho 0,25 điểm - Tính in: Do có nhiều cách tính khác nên GK cần xem xét phương pháp cách tính để định điểm theo khung Nếu in không định dạng (Ví dụ: thiếu:4:2 lệnh in) trừ 0,25 điểm cho hai câu Bài 2:(3,0 điểm) Program Bai2; Khai báo Nhập mảng Tìm phần tử lớn Tìm phần tử phương Kiểm tra tc đan dấu In kết luận Var n,i,max:integer; M:array[1 20] of integer; ok:boolean; Begin Write('Nhap so phan tu:');Readln(n); For i:=1 to n Begin Write('M[',i,']=');Readln(M[i]); End; max:=M[1]; For i:=2 to n if M[i]>Max then Max:=M[i]; Writeln('Gia tri lon nhat la: ',Max); Write('Cac phan tu chinh phuong la: '); For i:=1 to n if (M[i]>=0) and (sqr(int(sqrt(M[i])))=M[i]) then write(M[i],';'); ok:=true; For i:=1 to n-1 if M[i]*M[i+1]>0 then ok:=false; if ok then Writeln('Day dan dau') else Writeln('Day khong dan dau'); Readln End Chi tiết: - Tìm phần tử phương: + Cần kiểm tra M[i]>0 khơng có trừ 0,25 điểm + Có thể thay int trunc + Nếu khơng có phần tử phương in 'Cac phan tu chinh phuong la: ' để trống 0,50 0,50 0,50 0,75 0,50 0,25 - Kiểm tra t/c đan dấu: Có thể thay For i:=1 to n-1 if M[i]*M[i+1]>0 For i:=2 to n if M[i]*M[i-1]>0 - In kết luận: if ok thay if ok = true Bài 3:(3,0 điểm) Program Bai3; Khai báo Nhập N Tìm ước N Tìm số ước Duyệt số J0 Write('Cac uoc cua N la: '); For i:=1 to N if N mod i = then Writeln; SU:=0; For i:=1 to N if N mod i = then Writeln('So N co ',SU,' uoc so'); Max:=0; For j:=1 to N Begin SU:=0; For i:=1 to j if j mod i = SU:=SU+1; if SU > Max then Begin Max:=SU; M:=j; End; End; Write('So ',M,' co nhieu uoc nhat va Readln End 0,25 0,25 Write(i,';'); 0,50 SU:=SU+1; 0,50 0,25 then 0,50 0,50 so uoc la ',max); 0,25 Cụ thể: Trong trường hợp có nhiều số có số ước nhiều u cầu in số Ví dụ: Với N = 32 có hai số M thỏa 24 30 có số ước nhiều Lúc in 24 30 hai số Bài 4: (2,0 điểm) Khai báo Program Bai4; Nhập N, khởi tạo lh Lấy chữ số cuối Kiểm tra để tính cộng số lỗ hổng Xóa chữ số cuối ĐK lặp In lh Var N: longint; cs,lh:integer; Begin Write('Nhap so N: ');Readln(N); lh:=0; Repeat cs:=N mod 10; if cs = then lh:=lh+2 else if (cs=0) or(cs=4) or(cs=6) or(cs=9) then lh:=lh+1; N:=N div 10; until N = 0; Writeln('So N co ',lh,' lo hong'); Readln End Chi tiết: -Khai báo: Cần khai báo biến N kiểu Longint thỏa giới hạn N đề Tìm lh: Nếu dùng vòng lặp while N>0 trường hợp N = tính lh = kết Trường hợp trừ 0,25 điểm 0,25 0,25 0,25 0,50 0,25 0,25 0,25 UBND HUYỆN QUẾ SƠN PHÒNG GD&ĐT KỲ THI HỌC SINH GIỎI LỚP CẤP HUYỆN NĂM HỌC 2011-2012 Môn: Tin học - Lớp HƯỚNG DẪN CHẤM - VÒNG II Bài 1: (2,5 điểm) Khai báo Program Tinh_B_Thuc; Nhập liệu Gán GT đầu Tính T Var n,i:integer; T,S,PS:real; Begin Write('Nhap n: ');Readln(n); T:=0; In S End For i:=1 to n Begin PS:=PS/i; S:=S+PS; End; Write('S = ',S:10:8); Readln Bài 2: (2,5 điểm) Khai báo Program Xoa_so; Duyệt qua tất số có bốn chữ số Lập số Xét điều kiện In số thỏa mãn Var a,b,c,d:byte; So4,So31,so32,so33,so34:integer; Begin For a:=1 to For b:=0 to For c:= to For d:=0 to Begin So4:=a*1000+b*100+c*10+d; So31:=b*100+c*10+d; So32:=a*100+c*10+d; So33:=a*100+b*10+d; So34:=a*100+b*10+c; if (So4=So31*9) or (So4=So32*9) or (So4=So33*9) or (So4=So34*9) then End End; Readln; 0,25 0,25 For i:=n downto T:=SQRT(T+i); Writeln('T = ',T:10:8); PS:=1; S:=0; In T Gán GT đầu Tính S 0,25 0,50 0,25 0,25 0,50 0,25 0,25 0.50 1.00 0,50 Writeln(So4:6,So4 div 9:6); 0,25 Cụ thể: - Khai báo: Có thể sử dụng kiêu liệu nguyên khác để khai báo - Đối với vòng lặp: Biến a chạy từ đến 9; biến b,c,d chạy từ đến Nếu sai cho trường hợp a: -0,25 điểm; b,c,d: -0,25 điểm Bài 3: (2,5 điểm) Program Ngay_Hom_Sau; Khai báo; Nhập liệu Var Ngay,Thang,Nam:integer; Tăng lên Tháng đủ, Begin Write('Ngay: ');Readln(ngay); Write('Thang: ');Readln(thang); Write('Nam:');Readln(nam); ngay:=ngay+1; Case thang of 0,25 0,25 0,50 1,3,5,7,8,10,12: if > 31 then Begin ngay:=1; thang:=thang+1; if thang>12 then Begin thang:=1; nam:=nam+1; End; End; 4,6,9,11: if > 30 then Begin ngay:=1; thang:=thang+1; End; 2: if (nam mod = 0) and (nam mod 100 0) then Begin if > 29 then Begin ngay:=1; thang:=thang+1; End; end else if > 28 then Begin ngay:=1; thang:=thang+1; End; End; Writeln('Ngay hom sau: ', ngay,'/',thang,'/',nam); Readln ngày > 31 sang ngày tháng Nếu tháng >12 sang tháng năm Tháng thiếu ngày >30 sang ngày tháng Năm nhuận, ngày >29 Năm không nhuận, ngày >28 In kết End Bài 4: (2,5 điểm) Program So_AmStrong; Khai Var k:byte; báo Hàm tính lũy thừa Nhập liệu Tách lấy chữ số tìm số chữ số Lập giá trị biểu thức Xét điều kiện in kết M:array[1 10] of byte; n,i,ii,S:longint; Function Mu(a,b:integer):Longint; Var T:Longint;i:byte; Begin T:=1; For i:=1 to b T:=T*a; Mu:=T End; Begin Write('Nhap so n: ');Readln(n); {Duyet qua cac so tu den n} For i:=1 to n {Tach lay cac chu so } Begin k:=0; ii:=i; while ii Begin k:=k+1; m[k]:=ii mod 10; ii:=ii div 10 End; {lap so va xet} S:=0; For ii:=1 to k S:=S +Mu(M[ii],k); if S = i then writeln(i); End; Readln; End 0,25 0,25 0,50 0,25 0,25 0,25 0,50 0,25 0,75 0,50 0,25 ... ==HẾT== UBND HUYỆN QUẾ SƠN PHÒNG GD&ĐT 049 KỲ THI HỌC SINH GIỎI LỚP CẤP HUYỆN NĂM HỌC 2011-2012 Môn: Tin học - Lớp Thời gian làm bài: 150 phút (Khơng kể thời gian giao đề) ĐỀ CHÍNH THỨC - VỊNG... phím ==HẾT== UBND HUYỆN QUẾ SƠN PHỊNG GD&ĐT KỲ THI HỌC SINH GIỎI LỚP CẤP HUYỆN NĂM HỌC 2011-2012 Môn: Tin học - Lớp Thời gian làm bài: 150 phút (Không kể thời gian giao đề) HƯỚNG DẪN CHẤM - VÒNG... giới hạn N đề Tìm lh: Nếu dùng vòng lặp while N>0 trường hợp N = tính lh = kết Trường hợp trừ 0,25 điểm 0,25 0,25 0,25 0,50 0,25 0,25 0,25 UBND HUYỆN QUẾ SƠN PHÒNG GD&ĐT KỲ THI HỌC SINH GIỎI LỚP

Ngày đăng: 26/09/2019, 10:47

Từ khóa liên quan

Mục lục

  • Xét các chữ số từ 0 đến 9. Nếu chữ số có một đường khép kín thì ta gọi chữ số đó có 1 lỗ hổng, có hai đường khép kín thì ta gọi số đó có 2 lỗ hổng, và không có đường khép kín nào thì ta gọi chữ số đó có 0 lỗ hổng. Vậy các chữ số 0, 4, 6, 9 có 1 lỗ hổng, chữ số 8 có 2 lỗ hổng và các chữ số 1, 2, 3, 5, 7 có 0 lỗ hổng. Số lỗ hổng của một số tự nhiên N là tổng số lỗ hổng của các chữ số của nó.

  • Hãy viết chương trình cho phép đếm số lỗ hổng của một số tự nhiên N (0 ≤ N ≤ 2147483647).

  • ==HẾT==

  • ==HẾT==

Tài liệu cùng người dùng

Tài liệu liên quan