Cộng đồng chia sẻ tri thức Lib24.vn

Đề thi HSG Tin 9 huyện Krông Ana năm 2015-2016

03681932165c2dd5ebb79f76cb8d2718
Gửi bởi: Nguyễn Minh Lệ 21 tháng 8 2021 lúc 21:55:56 | Được cập nhật: 26 tháng 3 lúc 14:05:00 bởi: pascaltinhoc8 | IP: 14.243.134.238 Kiểu file: DOC | Lượt xem: 114 | Lượt Download: 2 | File size: 0.242688 Mb

Nội dung tài liệu

Tải xuống
Link tài liệu:
Tải xuống

Các tài liệu liên quan


Có thể bạn quan tâm


Thông tin tài liệu

PHÒNG GD&ĐT KRÔNG ANA KỲ THI HỌC SINH GIỎI CẤP HUYỆN NĂM HỌC 2015 - 2016 ĐỀ CHÍNH THỨC Đề thi môn: Tin học 9 Thời gian làm bài: 150 phút Bài 1: (4,0 điểm) SỐ LƯỢNG Viết chương trình nhập vào dãy N 1  N  100 số nguyên và các phần tử A  a1 , a2 ,......aN  và số nguyên K nhập từ bàn phím. Hãy cho biết trong dãy vừa nhập có bao nhiêu phần tử chia hết cho K và vị trí các phần tử đó trong dãy. Kết quả in ra màn hình theo cấu trúc sau: - Dòng 1: Ghi số lượng các phần tử chia hết cho K. - Dòng 2: Ghi vị trí các phần tử chia hết cho K. Các số cách nhau 1 dấu cách. - Dòng 3: Ghi giá trị các phần tử chia hết cho K. Các số cách nhau 1 dấu cách. Nếu trong dãy không có giá trị nào chia hết cho K thì in ra thông báo: Trong dãy không có phần tử nào chia hết cho K. Ví dụ 1: Dữ liệu nhập từ bàn phím Kết quả in ra màn hình N=5 So luong: 3 A={258109} Vi tri: 1 3 4 K=2 Gia tri: 2 8 10 Ví dụ 2: Dữ liệu nhập từ bàn phím Kết quả in ra màn hình N=4,A={1356},K=8 Khong co phan tu chia het cho K Bài 2: (4,0 điểm) CHUẨN HÓA XÂU Viết chương trình nhập vào 1 xâu bất kỳ từ bàn phím. Hãy chuẩn hóa xâu theo quy tắc sau: - Xóa các dấu cách ở đầu xâu nếu có. - Xóa các dấu cách ở cuối xâu nếu có. - Thay dãy nhiều dấu cách liên tiếp giữa các từ trong xâu bằng 1 dấu cách. Yêu cầu: In kết quả ra màn hình. - Xâu vừa chuẩn hóa theo quy tắc trên. - Số lượng chữ cái in thường, chữ cái in hoa và chữ số có trong xâu. Ví dụ: Dữ liệu nhập từ bàn phím Kết quả in ra màn hình Xau chuan hoa: HoC sINh89 gIoI 2016 HoC sINh89 gIoI 2016 So luong chu cai in thong : 5 So luong chu cai in hoa :6 So luong chu so trong xau : 6 Câu 3: (6 điểm) DÃY CON CHUNG Cho dãy số nguyên A gồm N phần tử a1, a2, ..., aN và dãy số nguyên B gồm M phần tử b1, b2, ..., bM. Các phần tử trong một dãy số có giá trị khác nhau từng đôi một. Dãy C được gọi là dãy con của dãy A nếu dãy C nhận được từ dãy A bằng cách xóa đi một số phần tử và giữ nguyên thứ tự của các phần tử còn lại. -1- Nếu dãy C là dãy con của dãy A và cũng là dãy con của dãy B thì dãy C được gọi là dãy con chung của hai dãy A và B. Yêu cầu: Hãy tìm dãy C là dãy con chung của hai dãy A và B sao cho số lượng phần tử của dãy C là lớn nhất. Dữ liệu vào: Nhập từ bàn phím. Dữ liệu ra: Ghi ra file văn bản BAI3.OUT theo cấu trúc như sau: - Dòng 1: Ghi số nguyên dương K là số lượng phần tử của dãy C. - Dòng 2: Ghi giá trị phần tử trong dãy C, các số được ghi cách nhau một dấu cách. - Dòng 3: Ghi K số nguyên dương lần lượt là chỉ số của các phần tử trong dãy A ứng với các giá trị của phần tử đó trong dãy C, các số được ghi cách nhau một dấu cách. - Dòng 4: Ghi K số nguyên dương lần lượt là chỉ số trong dãy B tương ứng với các giá trị của phần tử đó trong dãy C, các số được ghi cách nhau một dấu cách. Ví dụ: BÀN PHÍM BAI3.OUT 7 5 8 31126154 3 12 6 15 4 6 2 4 5 67 31276154 12 456 Bài 4: (6,0 điểm) TÌM SỐ Cho số nguyên dương X, khi đảo ngược trật tự các chữ số của X ta sẽ thu được một số nguyên dương Y, Y được gọi là số đảo ngược của X. Ví dụ: X = 97 thì Y = 79 là số đảo ngược của X. Số nguyên dương Y được gọi là số nguyên tố nếu nó chỉ có hai ước số là 1 và chính nó, số 1 không phải là số nguyên tố. Cho hai số nguyên dương P và Q (1 ≤ P ≤ Q ≤ 2107; Q - P ≤ 105). Yêu cầu: Hãy tìm tất cả các số nguyên dương X nằm thỏa mãn P ≤ X ≤ Q và số đảo ngược của số X là số nguyên tố. Dữ liệu vào: Cho trong file văn bản BAI4.INP có cấu trúc như sau: - Dòng 1: Ghi số nguyên dương P, Q. Hai số được ghi cách nhau ít nhất một dấu cách. Dữ liệu ra: Ghi ra file văn bản BAI4.OUT trên nhiều dòng, mỗi dòng ghi một số nguyên X tìm dược. Ví dụ: BAI4.INP BAI4.OUT 10 19 11 13 14 16 17 --------------------- Hết --------------------(Cán bộ coi thi không giải thích gì thêm) Họ và tên thí sinh ..................................................... SBD........................... Chữ ký giám thị 1 Chữ ký giám thị 2 -2- PHÒNG GD&ĐT KRÔNG ANA KỲ THI HỌC SINH GIỎI CẤP HUYỆN NĂM HỌC 2015-2016 ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM Môn: Tin học 9 Yêu cầu chung: - Chương trình chạy cho kết quả đúng (có thể làm theo cách khác đáp án): khai báo đầy đủ, trình bày có cấu trúc rõ ràng cho điểm tối đa. Không khai báo mỗi biến trừ 0.25 điểm. - Chương trình cho kết quả sai: Chỉ chấm phần các ý chính của thuật toán, mỗi ý đúng cho điểm không vượt quá 50% số điểm của câu. BÀI 1(4,0 điểm): SỐ LƯỢNG Chương trình tham khảo PROGRAM BAI_1; USES CRT; VAR A,B,C:ARRAY[1..100]OF INTEGER; N,I,J,K,L,D:INTEGER; BEGIN CLRSCR; WRITE('NHAP N= ');READLN(N);WRITELN; WRITE('NHAP GIA TRI DAY A: '); WRITELN; FOR I:=1 TO N DO BEGIN WRITE('A[',I,']= '); READLN(A[I]); END; WRITELN; WRITE('DAY VUA NHAP: '); FOR I:=1 TO N DO WRITE(A[I]:4); WRITELN; WRITE('NHAP K= ');READLN(K); WRITELN; J:=1;L:=1;D:=0; FOR I:=1 TO N DO IF A[I] MOD K = 0 THEN BEGIN D:=D+1; B[J]:=I; C[L]:=A[I]; J:=J+1; L:=L+1; END; IF D
0 THEN BEGIN WRITE('SO LUONG PHAN TU CHIA HET: ',D:2); WRITELN; WRITE('VI TRI CAC PHAN TU: '); FOR I:=1 TO D DO WRITE(B[I]:3);WRITELN; WRITE('GIA TRI CAC PHAN TU: '); FOR I:=1 TO D DO WRITE(C[I]:3);WRITELN; END ELSE WRITE('KHONG CO PHAN TU NAO CHIA HET CHO ',K); READLN END. Điểm 1.0 1.0 1.0 1.0 -3- BỘ TEST CHƯƠNG TRÌNH: TEST 1: Dữ liệu nhập từ bàn phím N=5 A={258109} K=2 Kết quả in ra màn hình So luong: 3 Vi tri: 1 3 4 Gia tri: 2 8 10 Dữ liệu nhập từ bàn phím N=6 A={31281597} K=3 Kết quả in ra màn hình So luong: 4 Vi tri: 1 2 4 5 Gia tri: 3 12 15 9 Dữ liệu nhập từ bàn phím N=7,A={121081356}, K=7 Kết quả in ra màn hình Khong co phan tu chia het cho K TEST 2: TEST 3: BÀI 2(4,0 điểm): CHUẨN HÓA XÂU Chương trình tham khảo PROGRAM BAI_1; USES CRT; VAR ST:STRING; I,D,d1,d2:INTEGER; BEGIN WRITE('NHAP XAU: '); READLN(ST); WRITELN; WHILE ST[1]=' ' DO DELETE(ST,1,1); WHILE ST[LENGTH(ST)]=' ' DO DELETE(ST,LENGTH(ST),1); WHILE POS(' ',ST)
0 DO DELETE(ST,POS(' ',ST),1); WRITE('XAU CHUAN HOA: ',ST);WRITELN; Điểm 1.0 0.5 1.0 -4- D:=0; D1:=0; D2:=0; FOR I:=1 TO LENGTH(ST) DO BEGIN IF ST[I]IN['a'..'z'] then D:=D+1; IF ST[I]IN['A'..'Z'] then D1:=D1+1; IF ST[I]IN['0'..'9'] then D2:=D2+1; end; WRITE('SO LUONG KY TU IN THUONG: ',D) ;WRITELN; WRITE('SO LUONG KY TU IN HOA : ',D1);WRITELN; WRITE('SO LUONG KY TU CHU SO : ',D2);WRITELN; 1.0 0.5 READLN END. -5- BỘ TEST CHƯƠNG TRÌNH: TEST 1: Dữ liệu nhập từ bàn phím HoC sINh89 gIoI 2016 Kết quả in ra màn hình Xau chuan hoa: HoC sINh89 gIoI 2016 So luong chu cai in thong : 5 So luong chu cai in hoa : 6 So luong chu so trong xau : 6 TEST 2: Dữ liệu nhập từ bàn phím TiN hOc Lop 9 Kết quả in ra màn hình Xau chuan hoa: TiN hOc Lop 9 So luong chu cai in thong : 5 So luong chu cai in hoa : 4 So luong chu so trong xau : 1 TEST 3: Dữ liệu nhập từ bàn phím SACH GIAO KHOA Kết quả in ra màn hình Xau chuan hoa: SACH GIAO KHOA So luong chu cai in thong : 0 So luong chu cai in hoa : 12 So luong chu so trong xau : 0 BÀI 3(6,0 điểm): DÃY CON CHUNG Chương trình tham khảo VAR A,B,C,D,G:ARRAY[1..100]OF INTEGER; M,N,I,J,L,DEM,T,K:INTEGER; F:TEXT; BEGIN WRITE('NHAP N:= ');READLN(N); WRITELN; FOR I:=1 TO N DO BEGIN WRITE('A[',I,']= '); READLN(A[I]); END; WRITELN; WRITE('NHAP M:= ');READLN(M); WRITELN; FOR I:=1 TO M DO BEGIN WRITE('B[',I,']= '); READLN(B[I]); END; WRITELN; ASSIGN(F,'BAI3.OUT');REWRITE(F); DEM:=0;T:=1;K:=1; FOR I:=1 TO N DO BEGIN FOR J:=1 TO M DO Điểm 1.0 1.5 1.0 -6- IF A[I]=B[J] THEN BEGIN DEM:=DEM+1; C[T]:=I; D[K]:=J; T:=T+1; K:=K+1; END; END; WRITE(F,DEM);WRITELN(F); FOR I:=1 TO N DO BEGIN FOR J:=1 TO M DO IF A[I]=B[J] THEN WRITE(F,A[I]:3); END; WRITELN(F); FOR I:=1 TO DEM DO WRITE(F,C[I]:3); WRITELN(F); FOR I:=1 TO DEM DO WRITE(F,D[I]:3); CLOSE(F); END. BỘ TEST CHƯƠNG TRÌNH: TEST 1: BÀN PHÍM 5 3 1131126 3 4 2 3 1276 1 TEST 2: BÀN PHÍM 6 2 457810 5 4 5789 1.0 1.5 BAI3.OUT 12 6 4 5 2 4 BAI3.OUT 4 4 5 7 8 2 3 45 1 2 34 TEST 3: BÀN PHÍM 7 1347108 9 6 1 4 6 10 12 9 BAI3.OUT 4 1 4 10 9 1 3 57 1 2 46 -7- BÀI 4(6,0 điểm): TÌM SỐ Chương trình tham khảo FUNCTION NG_TO(X:INTEGER):BOOLEAN; VAR J: INTEGER; KT: BOOLEAN; BEGIN KT:= TRUE; IF X = 1 THEN KT:= FALSE ELSE FOR J:= 2 TO X DIV 2 DO IF X MOD J = 0 THEN KT:= FALSE; NG_TO:= KT; END; FUNCTION DAO_SO(Y: INTEGER): INTEGER; VAR S:INTEGER; BEGIN S:=0; WHILE Y
0 DO BEGIN S:=S*10 + (Y MOD 10); Y:= Y DIV 10; END; DAO_SO:=S; END; VAR X,Y,P,Q,I:INTEGER; F,F1: TEXT; BEGIN ASSIGN(F,'BAI4.INP'); RESET(F); ASSIGN(F1,'BAI4.OUT');REWRITE(F1); WRITE(F1,'CAC SO CAN TIM');WRITELN(F1); READ(F,P,Q); FOR I:= P TO Q DO IF NG_TO(DAO_SO(I))=TRUE THEN WRITELN(F1,I:3); CLOSE(F); CLOSE(F1); END. BỘ TEST CHƯƠNG TRÌNH: Điểm 1.5 1.5 1.0 1.5 0.5 TEST 1: BAI4.INP 5 20 BAI4.OUT 5 7 11 13 14 -8- TEST 2: BAI4.INP 10 25 BAI4.OUT 11 13 14 16 17 20 BAI4.INP 25 50 BAI4.OUT 30 31 32 34 35 37 38 50 TEST 3: Ghi chú: - Học sinh có thể viết chương trình khác nhưng chạy đúng kết quả test vẫn cho điểm tối đa. - Nếu học sinh không đọc được dữ liệu từ file hoặc không ghi dữ liệu vào file được thì giám khảo trừ 75% số điểm của phần đó. -9-