intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Đề thi chọn học sinh giỏi cấp tỉnh môn Tin học lớp 12 năm học 2012-2013 – Sở Giáo dục và Đào tạo Hải Dương (Đề chính thức)

Chia sẻ: _ _ | Ngày: | Loại File: DOC | Số trang:12

74
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đề thi chọn học sinh giỏi cấp tỉnh môn Tin học lớp 12 năm học 2012-2013 – Sở Giáo dục và Đào tạo Hải Dương (Đề chính thức) sẽ giúp các bạn học sinh nhận ra các dạng bài tập khác nhau và cách giải của nó; gặt hái nhiều thành công trong kì thi chọn học sinh giỏi hàng năm.

Chủ đề:
Lưu

Nội dung Text: Đề thi chọn học sinh giỏi cấp tỉnh môn Tin học lớp 12 năm học 2012-2013 – Sở Giáo dục và Đào tạo Hải Dương (Đề chính thức)

  1. SỞ GIÁO DỤC & ĐÀO TẠO KÌ THI CHỌN HỌC SINH GIỎI TỈNH  HẢI DƯƠNG LỚP 12 THPT NĂM HỌC 2012 ­ 2013 MÔN THI: TIN HỌC ĐỀ CHÍNH THỨC Thời gian làm bài: 180 phút (Đề gồm 03 trang) TỔNG QUAN VỀ CÁC BÀI THI TRONG ĐỀ Tên file Giới hạn  Dữ liệu Dữ liệu Điểm của Bài chương  thời gian nhập xuất bài trình chạy 1 test 1 BAI1.* bàn phím màn hình 2,0 điểm 1 giây 2 BAI2.* bàn phím màn hình 2,5 điểm 1 giây 3 BAI3.* bàn phím màn hình 2,0 điểm 1 giây 4 BAI4.* VNMODEL.INP VNMODEL.OUT 2,0 điểm 1 giây 5 BAI5.* GEN.INP GEN.OUT 1,5 điểm 1 giây Yêu cầu các thí sinh đọc kỹ phần hướng dẫn dưới đây:  Dấu (*) trong tên file chương trình được thay thế bằng PAS hoặc CPP tuỳ theo thí sinh  viết chương trình bằng ngôn ngữ Pascal hoặc C++. Ví dụ, nếu học sinh viết bằng ngôn  ngữ  Pascal thì tên các bài lần lượt là BAI1.PAS, BAI2.PAS, BAI3.PAS, BAI4.PAS,   BAI5.PAS Với bài 4 và bài 5 tên file dữ liệu nhập và dữ liệu xuất đặt đúng như phần tổng quan ở  trên (không có đường dẫn kèm theo) HÃY LẬP TRÌNH GIẢI CÁC BÀI TOÁN SAU: Bài 1: Trong dịp nghỉ hè, bé Mai được bố mẹ cho đi tắm biển. Trên bờ biển bé nhặt được  N viên đá cuội rất đẹp mắt. Mai quyết định vẽ trên cát một lưới hình chữ nhật kích thước   a x b (a, b nguyên dương) được chia thành a x b ô vuông bằng các đường ngang dọc sao   cho có thể rải N hòn sỏi này vào các ô vuông sao cho mỗi ô vuông có nhiều nhất một viên   sỏi. Hãy giúp bé Mai chọn kích thước của hình chữ  nhật sao cho chu vi của nó là nhỏ  nhất. In ra màn hình giá trị chu vi này. Dữ liệu: Nhập vào từ bàn phím số nguyên dương N (N ≤ 109). Kết quả: Ghi ra màn hình chu vi của hình chữ nhật tìm được Ví dụ: Dữ liệu nhập vào: 15 Kết quả in ra: 16 Giải thích: Hình chữ nhật tìm được có kích thước 4 x 4 Bài 2: Xét một số N có 4 chữ  số  và không phải tất cả các chữ  số  đều giống nhau. Phép   tính độ lệch được thực hiện như sau: Tạo số thứ nhất N1 bằng cách xếp các chữ số theo trình tự giảm dần Tạo số thứ hai N2 bằng cách xếp các chữ số theo trình tự tăng dần (nếu có chữ số 0  ở đầu thì N2 sẽ không phải là số có 4 chữ số) Tính hiệu N1­N2 và gán lại cho N Các bước trên được thực hiện cho đến khi nhận được số N là 6174 hoặc 0 Ví dụ: Nếu N=1023  Trang: 1
  2. Ở bước 1: N1=3210, N2=123, N=N1­N2=3087 Ở bước 2: N1=8730, N2=378, N=N1­N2=8352 Ở bước 3: N1=8532, N2=2358, N=N1­N2=6174 Vậy ta cần thực hiện 3 lần biến đổi Yêu cầu: Hãy xác định số lần biến đổi thực hiện theo yêu cầu trên. Dữ  liệu:  Nhập từ  bàn phím số  nguyên dương N (N đảm bảo có 4 chữ  số, không   phải tất cả các chữ số đều giống nhau và N khác 6174. Không cần kiểm tra dữ liệu nhập) Kết quả: Ghi ra màn hình số lần biến đổi tương ứng với số N Ví dụ: Dữ liệu nhập: 5364 Kết quả in ra: 3 Bài 3: Số siêu nguyên tố Số siêu nguyên tố là số nguyên tố mà khi xoá bỏ dần các chữ số bên phải của nó thì  phần còn lại vẫn là số nguyên tố. Ví dụ: 2333 là số siêu nguyên tố vì 2333, 233, 23, 2 đều   là các số nguyên tố. Yêu vầu: Cho số nguyên dương M (M≤30000). Hãy tìm số  siêu nguyên tố  gần với   M nhất, tức là trị tuyệt đối của hiệu giữa số tìm được với M là nhỏ nhất) Dữ  liệu: Nhập vào từ  bàn phím số  nguyên dương M (không cần kiểm tra dữ  liệu   nhập) Kết quả: Ghi ra màn hình các số nguyên tố gần M nhất, mỗi số một dòng theo thứ  tự số nhỏ hơn ghi trước. Ví dụ: Dữ liệu nhập: 30 Kết quả in ra trên 2 dòng: 29 31 Bài 4: Bình chọn qua điện thoại Trong vòng chung kết cuộc thi “Vietnam Next Top Model” trên VTV3 các thí sinh  được đánh số báo danh là một số nguyên dương có giá trị không vượt quá 1000. Khán giả  xem truyền hình có thể bình chọn cho thí sinh mình yêu thích bằng cách nhắn tin qua điện  thoại di động. Ban tổ chức nhận được tin nhắn hợp lệ của N khán giả (các khán giả được đánh số  từ 1 đến N), khán giả thứ i bình chọn cho thí sinh mang số báo danh ai. Hãy liệt kê số  báo danh của những thí sinh được nhiều khán giả  bình chọn nhất   theo thứ tự tăng dần. Dữ liệu: Vào từ file văn bản VNMODEL.INP Dòng đầu tiên ghi số nguyên dương N là số lượng khán giả  có tin nhắn bình chọn   hợp lệ (N≤106) N dòng tiếp theo, dòng thứ  i ghi số nguyên dương ai là số báo danh của thí sinh mà  khán giả thứ i bình chọn. Kết quả: Ghi ra file văn bản VNMODEL.OUT Danh sách các thí sinh được nhiều khán giả  bình chọn nhất theo thứ tự số báo danh tăng  dần Trang: 2
  3. Ví dụ: VNMODEL.INP VNMODEL.OUT 5 2 3 3 1 3 2 2 Ghi chú: Có ít nhất 50% số điểm của bài tương ứng với các test có N≤1000. Bài 5: Quan hệ huyết thống Trung tâm nghiêm cứu gen thu thập N mẫu gen của N cá thể trong cùng một loài. N  gen này được mã hoá thành dãy N số  nguyên dương a1, a2, …, aN. Bộ  phận phân tích sau  khi xem xét đã đưa ra được kết luận sau:  Hai cá thể  là có quan hệ  huyết thống gần khi và chỉ  khi  mã gen của chúng biểu   diễn trong cơ số 2 giống nhau hoặc khác nhau đúng 1 bit Ví dụ: Hai cá thể có mã gen 7 (biểu diễn trong cơ số 2 là 111) và 5 (biểu diễn trong  cơ số 2 là 101) là có quan hệ huyết thống gần. Hãy đếm xem trong số mẫu gen của N cá thể thu thập được có bao nhiêu cặp cá thể  có quan hệ huyết thống gần. Dữ liệu: Vào từ file văn bản GEN.INP Dòng đầu tiên ghi số nguyên dương N (N≤105) N dòng tiếp theo, dòng thứ  i ghi mã gen của cá thể  thứ  i là một số  nguyên dương   trong phạm vi từ 1 đến 1000) Kết quả: Ghi ra file văn bản GEN.OUT một số nguyên duy nhất là số cặp có quan hệ  huyết thống gần đã tìm được. Ví dụ: GEN.INP GEN.OUT 5 4 1 2 3 4 5 3 3 10 10 10 Giải thích ví dụ thứ nhất: Các số 1, 2, 3, 4, 5 biểu diễn trong cơ số 2 lần l ượt là 001, 010, 011, 100, 101. Có 4   cặp có quan hệ huyết thống gần là: 1 và 3,  1 và 5,  2 và 3,  4 và 5 Ghi chú:  Có ít nhất 50% số điểm ứng với các test có N≤1000 ­­­­­­­­­­­­­­­­­­­­­HẾT­­­­­­­­­­­­­­­­­­­­­ Trang: 3
  4. Họ tên thí sinh:...................................................................................Số báo danh:........................ Giám thị số 1:......................................................................................................................................... Giám thị số 2:.......................................................................................................................................... Trang: 4
  5. SỞ GIÁO DỤC & ĐÀO TẠO KÌ THI CHỌN HỌC SINH GIỎI TỈNH  HẢI DƯƠNG LỚP 12 THPT NĂM HỌC 2012 ­ 2013 MÔN THI: TIN HỌC ĐÁP ÁN TỔNG QUAN VỀ CÁC BÀI THI TRONG ĐỀ Tên file Giới hạn  Dữ liệu Dữ liệu Điểm của Bài chương  thời gian nhập xuất bài trình chạy 1 test 1 BAI1.* bàn phím màn hình 2,0 điểm 1 giây 2 BAI2.* bàn phím màn hình 2,5 điểm 1 giây 3 BAI3.* bàn phím màn hình 2,0 điểm 1 giây 4 BAI4.* VNMODEL.INP VNMODEL.OUT 2,0 điểm 1 giây 5 BAI5.* GEN.INP GEN.OUT 1,5 điểm 1 giây CODE  GIẢI CÁC BÀI TOÁN: Bài 1: Trong dịp nghỉ hè, bé Mai được bố mẹ cho đi tắm biển. Trên bờ biển bé nhặt được  N viên đá cuội rất đẹp mắt. Mai quyết định vẽ trên cát một lưới hình chữ nhật kích thước   a x b (a, b nguyên dương) được chia thành a x b ô vuông bằng các đường ngang dọc sao   cho có thể rải N hòn sỏi này vào các ô vuông sao cho mỗi ô vuông có nhiều nhất một viên   sỏi. Hãy giúp bé Mai chọn kích thước của hình chữ  nhật sao cho chu vi của nó là nhỏ  nhất. In ra màn hình giá trị chu vi này. Dữ liệu: Nhập vào từ bàn phím số nguyên dương N (N ≤ 109). Kết quả: Ghi ra màn hình chu vi của hình chữ nhật tìm được Ví dụ: Dữ liệu nhập vào: 15 Kết quả in ra: 16 Giải thích: Hình chữ nhật tìm được có kích thước 4 x 4 Đáp án: program BAI1; var n, a, b, ds: longint; BEGIN read(n); ds:=1000000001; a:=0; repeat inc(a); b:=n div a; if n mod a0 then inc(b); if ds>2*(a+b) then ds:=2*(a+b); until b
  6. Bài 2: Xét một số N có 4 chữ  số  và không phải tất cả các chữ  số  đều giống nhau. Phép   tính độ lệch được thực hiện như sau: Tạo số thứ nhất N1 bằng cách xếp các chữ số theo trình tự giảm dần Tạo số thứ hai N2 bằng cách xếp các chữ số theo trình tự tăng dần (nếu có chữ số 0  ở đầu thì N2 sẽ không phải là số có 4 chữ số) Tính hiệu N1­N2 và gán lại cho N Các bước trên được thực hiện cho đến khi nhận được số N là 6174 hoặc 0 Ví dụ: Nếu N=1023  Ở bước 1: N1=3210, N2=123, N=N1­N2=3087 Ở bước 2: N1=8730, N2=378, N=N1­N2=8352 Ở bước 3: N1=8532, N2=2358, N=N1­N2=6174 Vậy ta cần thực hiện 3 lần biến đổi Yêu cầu: Hãy xác định số lần biến đổi thực hiện theo yêu cầu trên. Dữ  liệu:  Nhập từ  bàn phím số  nguyên dương N (N đảm bảo có 4 chữ  số, không   phải tất cả các chữ số đều giống nhau và N khác 6174. Không cần kiểm tra dữ liệu nhập) Kết quả: Ghi ra màn hình số lần biến đổi tương ứng với số N Ví dụ: Dữ liệu nhập: 5364 Kết quả in ra: 3 Đáp án: program BAI2; function gtmax(x: longint): longint; var s: string; i,j,code: integer; c: char; y: longint; begin str(x,s); for i:=1 to length(s)-1 do for j:=i+1 to length(s) do if s[i]
  7. str(x,s); for i:=1 to length(s)-1 do for j:=i+1 to length(s) do if s[i]>s[j] then begin c:=s[i]; s[i]:=s[j]; s[j]:=c; end; val(s,y,code); gtmin:=y; end; var n, n1, n2, dem: longint; BEGIN read(n); dem:=0; repeat n1:=gtmax(n); n2:=gtmin(n); n:=n1-n2; inc(dem); until (n=6174) or (n=0); writeln(dem); END. Bài 3: Số siêu nguyên tố Số siêu nguyên tố là số nguyên tố mà khi xoá bỏ dần các chữ số bên phải của nó thì  phần còn lại vẫn là số nguyên tố. Ví dụ: 2333 là số siêu nguyên tố vì 2333, 233, 23, 2 đều   là các số nguyên tố. Yêu vầu: Cho số nguyên dương M (M≤30000). Hãy tìm số  siêu nguyên tố  gần với   M nhất, tức là trị tuyệt đối của hiệu giữa số tìm được với M là nhỏ nhất) Dữ  liệu: Nhập vào từ  bàn phím số  nguyên dương M (không cần kiểm tra dữ  liệu   nhập) Kết quả: Ghi ra màn hình các số nguyên tố gần M nhất, mỗi số một dòng theo thứ  tự số nhỏ hơn ghi trước. Ví dụ: Dữ liệu nhập: 30 Kết quả in ra trên 2 dòng: 29 31 Đáp án:  program BAI3; var d: array[1..30000] of byte; M: longint; procedure sangNT; Trang: 7
  8. var i,j: longint; begin for i:=1 to 30000 do d[i]:=0; d[1]:=1; i:=1; while i*i30000) or (d[i]=0); if i*i
  9. Hãy liệt kê số  báo danh của những thí sinh được nhiều khán giả  bình chọn nhất   theo thứ tự tăng dần. Dữ liệu: Vào từ file văn bản VNMODEL.INP Dòng đầu tiên ghi số nguyên dương N là số lượng khán giả  có tin nhắn bình chọn   hợp lệ (N≤106) N dòng tiếp theo, dòng thứ  i ghi số nguyên dương ai là số báo danh của thí sinh mà  khán giả thứ i bình chọn. Kết quả: Ghi ra file văn bản VNMODEL.OUT Danh sách các thí sinh được nhiều khán giả  bình chọn nhất theo thứ tự số báo danh tăng  dần Ví dụ: VNMODEL.INP VNMODEL.OUT 5 2 3 3 1 3 2 2 Ghi chú: Có ít nhất 50% số điểm của bài tương ứng với các test có N≤1000. Đáp án: program BAI4; var d: array[1..1000] of longint; n: longint; i,u: longint; max: longint; fi, fo: text; BEGIN assign(fi,'VNMODEL.INP'); reset(fi); assign(fo,'VNMODEL.OUT'); rewrite(fo); read(fi,n); for i:=1 to n do begin read(fi,u); inc(d[u]); end; max:=d[1]; for i:=2 to 1000 do if max
  10. Bài 5: Quan hệ huyết thống Trung tâm nghiêm cứu gen thu thập N mẫu gen của N cá thể trong cùng một loài. N  gen này được mã hoá thành dãy N số  nguyên dương a1, a2, …, aN. Bộ  phận phân tích sau  khi xem xét đã đưa ra được kết luận sau:  Hai cá thể  là có quan hệ  huyết thống gần khi và chỉ  khi  mã gen của chúng biểu   diễn trong cơ số 2 giống nhau hoặc khác nhau đúng 1 bit Ví dụ: Hai cá thể có mã gen 7 (biểu diễn trong cơ số 2 là 111) và 5 (biểu diễn trong  cơ số 2 là 101) là có quan hệ huyết thống gần. Hãy đếm xem trong số mẫu gen của N cá thể thu thập được có bao nhiêu cặp cá thể  có quan hệ huyết thống gần. Dữ liệu: Vào từ file văn bản GEN.INP Dòng đầu tiên ghi số nguyên dương N (N≤105) N dòng tiếp theo, dòng thứ  i ghi mã gen của cá thể  thứ  i là một số  nguyên dương   trong phạm vi từ 1 đến 1000) Kết quả: Ghi ra file văn bản GEN.OUT một số nguyên duy nhất là số cặp có quan hệ  huyết thống gần đã tìm được. Ví dụ: GEN.INP GEN.OUT 5 4 1 2 3 4 5 3 3 10 10 10 Giải thích ví dụ thứ nhất: Các số 1, 2, 3, 4, 5 biểu diễn trong cơ số 2 lần l ượt là 001, 010, 011, 100, 101. Có 4   cặp có quan hệ huyết thống gần là: 1 và 3,  1 và 5,  2 và 3,  4 và 5 Ghi chú:  Có ít nhất 50% số điểm ứng với các test có N≤1000 Đáp án:  Cách 1: program BAI5; var d: array[1..1000] of longint; n: longint; function anhem(x,y: longint): boolean; var a, b: array[1..12] of longint; na, nb, nn: longint; i,dem: longint; begin Trang: 10
  11. na:=0; repeat inc(na); a[na]:=x mod 2; x:=x div 2; until x=0; nb:=0; repeat inc(nb); b[nb]:=y mod 2; y:=y div 2; until y=0; if na
  12. z:=x xor y; dem:=0; repeat dem:=dem+z mod 2; z:=z div 2; until z=0; anhem:=(dem
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2