Năm: 2025

200 Câu hỏi trắc nhiệm tin học ứng dụng công nghệ thông tin 2026

Phần 4: 200 Câu hỏi trắc nhiệm tin học ứng dụng công nghệ thông tin mới nhất năm 2025 – 2026

Câu 4.01: Trong Microsoft Excel 2010, ô A1 chứa giá trị 15, B1 chứa giá trị 0. Tại D1 lập công thức =A1/B1 thì nhận được kết quả:

  1. 0
  2. DIV/0!
  3. #VALUE!
  4. 15

Đáp án: B

 

Câu 4.02: Trong Microsoft Excel 2010, ô A1 chứa nội dung “TTNNTHHUFLITT”. Khi thực hiện công thức =LEN(A1) thì giá trị trả về là giá trị:

  1. 6
  2. 12
  3. 5
  4. 0

Đáp án: B

 

Câu 4.03: Trong Microsoft Excel 2010, tổ hợp phím nào thực hiện việc tạo mới một bảng tính:

  1. Shift + Ctrl + N
  2. Ctrl + N
  3. Ctrl + A
  4. Ctrl + O

Đáp án: B

 

Câu 4.04: Trong Microsoft Excel 2010, để lưu tập tin đang mở dưới một tên khác, ta chọn:

  1. File – Save As
  2. File – Save
  3. File – New
  4. File – Replace

Đáp án: A

 

Câu 4.05: Trong Microsoft Excel cho các giá trị như sau: ô A4=4, ô A3=6, ô A7=7; tại vị trí ô B2 lập công thức B2=Sum(A4,A2,Count(A3,A4)) cho biết kết quả ô B2 sau khi Enter:

  1. 10
  2. 9
  3. 11
  4. Lỗi

Đáp án: C

 

Câu 4.06: Trong Microsoft Excel, công thức =COUNTA(10,“C”,15) cho kết quả là:

  1. Báo lỗi
  2. 1
  3. 2
  4. 3

Đáp án: D

 

Câu 4.07: Trong Microsoft Excel ta gõ công thức tại ô B1 là: =AVERAGE(3,4,5,6) thì nhận được kết quả:

  1. 3
  2. 6
  3. 18
  4. 4.5

Đáp án: D

 

Câu 4.08: Trong Microsoft Excel ta gõ công thức tại ô B1 là: =MAX(12,3,9,15,8) thì nhận được kết quả là:

  1. 15
  2. 3
  3. 20
  4. 5

Đáp án: A

 

Câu 4.09: Trong Microsoft Excel ta gõ công thức tại ô B1 là: =MOD(20,3) thì nhận được kết quả:

  1. 2
  2. 1
  3. 0
  4. 20

Đáp án: A

 

Câu 4.10: Trong Microsoft Excel tại ô $A$4 (A4) dấu $ có ý nghĩa:

  1. Cố định ô A4
  2. Định dạng ô A4
  3. Được quyền chỉnh sửa ô A4
  4. Không được xóa ô A4

Đáp án: A

 

Câu 4.11: Trong Microsoft Excel tại ô A1=5. Hãy cho biết kết quả công thức tại ô B1=A1/0

  1. 5
  2. 10
  3. DIV/0
  4. #Value!

Đáp án: C

 

Câu 4.12: Trong Microsoft Excel tại ô A1 chứa chuỗi TINHOC.TA gõ công thức tại ô B1 là: =LEFT(A1,3) thì nhận được kết quả:

  1. !INH
  2. TIN
  3. HOC
  4. NHO

Đáp án: B

 

Câu 4.13: Trong Microsoft Excel tại ô A1 chứa chuỗi TINHOC. Ta gõ công thức tại ô B1 là: =MID(A1,2,3) thì nhận được kết quả:

  1. INH
  2. TIN
  3. HOC
  4. NHO

Đáp án: A

 

Câu 4.14: Trong Microsoft Excel tại ô A1 chứa chuỗi TINHOC. Ta gõ công thức tại ô B1 là: =RIGHT(A1,3) thì nhận được kết quả:

  1. INH
  2. TIN
  3. HOC
  4. NHO

Đáp án: C

 

Câu 4.15: Trong Microsoft Excel để rút trích dữ liệu ta vào chức năng:

  1. Data – Sort & Filter – Advanced
  2. Data – Sort & Filter – Filter
  3. Data – Data tools – Data validation
  4. Data – Data tools – Consolidate

Đáp án: B

 

Câu 4.16: Trong Microsoft Excel, các ô có chứa giá trị lần lượt: A1= “X”, A2= “01”, A3= “02”, A4= “03”. Hãy cho biết kết quả công thức tại ô B1=AVERAGE(A2:A4)

  1. 6
  2. 4
  3. 9
  4. DIV/0!

Đáp án: D

 

Câu 4.17: Trong Microsoft Excel, giá trị trả về của công thức =LEN(“TRUNG TAM TIN HOC”):

  1. 15
  2. 16
  3. 17
  4. 18

Đáp án: B

 

Câu 4.18: Trong Microsoft Excel, ô A1 chứa giá trị 8, công thức =IF(A1>=5, “TB”, IF(A1>=7, “Khá”, IF(A1>=8, “Giỏi”, “Xuất sắc”))) trả về kết quả bao nhiêu?

  1. Khá
  2. Giỏi
  3. Xuất sắc
  4. TB

Đáp án: D

 

Câu 4.19: Trong Microsoft Excel, ô A1 chứa giá trị ngày tháng năm: 22/05/2020. Khi thực hiện công thức =Day(A1) thì giá trị trả về là giá trị nào:

  1. 5
  2. #VALUE!
  3. #NAME?
  4. 22

Đáp án: D

 

Câu 4.20: Trong Microsoft Excel, tại ô A2 có giá trị là số 10; ô B2 có giá trị là số 3. Tại ô C2 gõ công thức =MOD(A2,B2) thì nhận được kết quả:

  1. 10
  2. 3
  3. #Value
  4. 1

Đáp án: D

 

Câu 4.21: Trong Microsoft Excel, để chuyển con trỏ về ô đầu tiên (ô A1) của bảng tính bạn sử dụng tổ hợp phím:

  1. Shift + Home
  2. Alt + Home
  3. Ctrl + Home
  4. Shift + Control + Home

Đáp án: C

 

Câu 4.22: Trong Microsoft Excel, để lưu tập tin đang mở với một tên mới hoặc một nơi khác, ta chọn:

  1. File – Save As
  2. File – Save
  3. File – New
  4. File – Replace

Đáp án: A

 

Câu 4.23: Trong Microsoft Excel, để mở một tập tin Microsoft Excel đã có, ta sử dụng tổ hợp phím:

  1. Ctrl + O
  2. Ctrl + F
  3. Alt + F
  4. Alt + O

Đáp án: A

 

Câu 4.24: Trong Microsoft Excel, để tạo đồ thị ta vào:

  1. Insert – Charts – chọn mẫu đồ thị cần tạo
  2. Insert – Illustration – Chart
  3. Insert – Text – Chart
  4. Insert – Pages – Chart

Đáp án: A

 

Câu 4.25: Trong Microsoft Excel, để định dạng chữ đậm cho dữ liệu, ta dùng tổ hợp phím:

  1. Ctrl + A
  2. Ctrl + B
  3. Ctrl + C
  4. Ctrl + D

Đáp án: B

 

Câu 4.26: Trong Microsoft Excel 2010, giá trị trả về công thức =LEN(“ĐH GTVT”) là bao nhiêu?

  1. 7
  2. 6
  3. 5
  4. 4

Đáp án: A

Câu 4.27: Trong Microsoft Excel 2010, hàm Today() trả về:

  1. Số ngày trong tháng
  2. Số tháng trong năm
  3. Ngày hiện hành trên hệ thống
  4. Số giờ trong ngày

Đáp án: C

 

Câu 4.28: Trong Microsoft Excel 2010, khi nhập liệu thì giá trị nào sau đây được hiểu là dữ liệu dạng chuỗi:

  1. 123
  2. -123
  3. 2000
  4. 20/20/2020

Đáp án: D

 

Câu 4.29: Trong Microsoft Excel 2010, tổ hợp phím nào được dùng để lưu file:

  1. Ctrl + O
  2. Ctrl + P
  3. Ctrl + S
  4. Ctrl + N

Đáp án: C

 

Câu 4.30: Trong ô D1 có công thức =A1+B1 vậy khi sao chép công thức này đến ô E3 thì công thức sẽ là:

  1. B3+E3
  2. B2+C2
  3. B4+C4
  4. B3+C3

Đáp án: D

 

Câu 4.31: Để chọn toàn bộ các ô trên bảng tính bằng tổ hợp phím bạn chọn:

  1. Nhấn tổ hợp phím Ctrl + A
  2. Nhấn tổ hợp phím Ctrl + All
  3. Nhấn tổ hợp phím Ctrl + Alt + Space
  4. Nhấn tổ hợp phím Ctrl + S

Đáp án: A

 

Câu 4.32: Để lưu một số bảng tính dạng mở dưới một tên khác, bạn vào thực đơn lệnh File, chọn lệnh:

  1. Open
  2. Save
  3. Save As
  4. Send To

Đáp án: C

 

Câu 4.33: Để thực hiện nội dung chữ trong một ô thành nhiều dòng ta dùng chức năng:

  1. Home – Agliment – Wrap Text
  2. Home – Agliment – Shrink to Fit
  3. Home – Agliment – Merge Cells
  4. Home – Agliment – Context

Đáp án: A

 

Câu 4.34: Địa chỉ B$3 là địa chỉ:

  1. Tương đối
  2. Tuyệt đối
  3. Hỗn hợp
  4. Biểu diễn sai

Đáp án: C

 

Câu 4.35: Trong bảng tính Microsoft Excel, tại ô A1 có giá trị số 16, tại ô B1 gõ vào công thức =SQRT(A1) thì nhận được kết quả là:

  1. 0
  2. #Value
  3. 4
  4. #Name!

Đáp án: C

 

Câu 4.36: Trong bảng tính Microsoft Excel, hàm nào sau đây cho phép đếm các giá trị thỏa mãn một điều kiện cho trước:

  1. SUMIF
  2. COUTIF
  3. COUNT
  4. SUM

Đáp án: B

 

Câu 4.37: Trong bảng tính Microsoft Excel, công thức = Lower(“ht CNTT”) cho kết quả:

  1. HT CNTT
  2. ht cntt
  3. Ht Cntt
  4. D: #NAME?

Đáp án: B

 

Câu 4.38: Trong bảng tính Microsoft Excel, công thức =Right(“TTTTTH”,2) cho kết quả:

  1. TH
  2. TT
  3. TTTH
  4. TTTT

Đáp án: A

 

Câu 4.39: Trong bảng tính Microsoft Excel, công thức =Mid(“m1234”,2,3) cho kết quả:

  1. Số 123
  2. Số 12
  3. Chuỗi “123”
  4. Số 23

Đáp án: C

Câu 4.40: Trong bảng tính Microsoft Excel, tại ô A2 có giá trị số 10, tại ô B2 gõ công thức =PRODUCT(A2,5) cho kết quả:

  1. #Value!
  2. 50
  3. 10
  4. 2

Đáp án: B

 

Câu 4.41: Trong bảng tính Microsoft Excel, tại ô A2 có giá trị chuỗi “a”, tại ô B2 gõ công thức =5/A2 cho kết quả:

  1. 0
  2. 5
  3. #Value!
  4. #DIV/0!

Đáp án: C

 

Câu 4.42: Trong bảng tính Microsoft Excel, tại ô A1 có giá trị chuỗi 2020, tại ô B1 gõ công thức =Len(A1) cho kết quả:

  1. 4
  2. 2020
  3. 1
  4. #DIV/0!

Đáp án: A

 

Câu 4.43: Trong bảng tính Microsoft Excel 2010, để thiết lập nhãn in, ta thực hiện:

  1. Thẻ Insert – Page Setup – Print Titles
  2. Thẻ Page Layout – Page Setup – Print Titles
  3. Thẻ File – Page Setup – Print Titles
  4. Thẻ Format – Page Setup – Print Titles

Đáp án: B

 

Câu 4.44: Trong bảng tính Microsoft Excel, để tách dữ liệu trong một ô thành hai hoặc nhiều ô, ta thực hiện:

  1. Thẻ Insert – Text to Columns – Delimited
  2. Thẻ Home – Text to Columns – Delimited
  3. Thẻ Fomulas – Text to Columns – Delimited
  4. Thẻ Data – Text to Columns – Delimited

Đáp án: D

 

Câu 4.45: Trong bảng tính Microsoft Excel, để thay đổi kiểu trang in ngang hoặc dọc, ta thực hiện:

  1. Thẻ Page Layout – Orientation – Portrait/Landscape
  2. Thẻ File – Page Setup – Portrait/Landscape
  3. Thẻ Format – Page Setup – Portrait/Landscape
  4. Thẻ Home – Orientation – Portrait/Landscape

Đáp án: A

 

Câu 4.46: Trong bảng tính Microsoft Excel, để giữ cố định hàng hoặc cột trong cửa sổ soạn thảo, ta đánh dấu hàng hoặc cột, chọn:

  1. Thẻ Review – Freeze Panes
  2. Thẻ View – Freeze Panes
  3. Thẻ Page Layout – Freeze Panes
  4. Thẻ Home – Freeze Panes

Đáp án: B

 

Câu 4.47: Trong bảng tính Microsoft Excel, tại ô A2 có giá trị TINHOC, tại ô B2 gõ công thức =6/VALUE(A2) cho kết quả:

  1. #DIV/0!
  2. #VALUE!
  3. 6
  4. TINHOC

Đáp án: B

 

Câu 4.48: Trong bảng tính Microsoft Excel, điều kiện trong hàm IF được phát biểu dưới dạng một phép so sánh. Khi cần so sánh đồng thời nhiều điều kiện thì sử dụng công thức nào?

  1. AND
  2. OR
  3. NOT
  4. &

Đáp án: A

 

Câu 4.49: Trong bảng tính Microsoft Excel, tại ô A1 có giá trị chuỗi “Excel”, ô B1 có giá trị số 2020, tại ô C1 gõ công thức =A1+B1 cho kết quả:

  1. Excel
  2. #VALUE!
  3. 2020
  4. Excel2020

Đáp án: B

 

Câu 4.50: Trong bảng tính Microsoft Excel, tại ô A2 gõ vào công thức =MAX(3,14,-25,5) cho kết quả:

  1. 3
  2. 4
  3. -25
  4. 14

Đáp án: D

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

  • Hotline: 093.717.9278 ( Gặp Tấn Dân Cử Nhân Công Nghệ Thông Tin)

 

Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!

  1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi

150 Câu hỏi trắc nhiệm tin học ứng dụng công nghệ thông tin 2026

Phần 3: 150 Câu hỏi trắc nhiệm tin học ứng dụng công nghệ thông tin mới nhất 2025 – 2026

Câu 3.01: Trong Microsoft Word, để tạo chỉ số dưới như ví dụ bạn bấm tổ hợp phím nào?

  1. Ctrl + Alt + “=”
  2. Ctrl + Shift + “=”
  3. Ctrl + “=”
  4. Alt + Shift + “=”

Đáp án: C

 

Câu 3.02: Trong Microsoft Word, để tạo một bảng biểu, bạn sử dụng:

  1. Insert – Tables – Table – Insert Table
  2. Insert –Text – Table – Insert Table
  3. Format – Tables – Table – Insert Table
  4. Insert – Text – Insert Table

Đáp án: A

 

Câu 3.03: Với Microsoft Word 2010, để tắt tính năng kiểm tra lỗi chính tả ta chọn:

  1. File – Options – Proofing – bỏ chọn check spelling as you type
  2. File – Options – Save – When correcting spelling and grammar in word
  3. File – Options – Add-in – When correcting spelling and grammar in word
  4. File – Options – Advanced – Typing replaces selected text

Đáp án: A

 

Câu 3.04: Trong Microsoft Word, để tô màu và đóng khung cho đoạn văn bản ta chọn công cụ:

  1. Border and shading
  2. Paragraph
  3. Page Setup
  4. Styles

Đáp án: A

 

Câu 3.05: Với Microsoft Word 2010, để in các trang chẵn của văn bản ta thực hiện:

  1. File – Print – Settings – Chọn Only Print Odd Pages
  2. File – Print – Settings – Chọn Only Print Even Pages
  3. Home – Print – Chọn Only Print Odd Pages
  4. Home – Print – Chọn Only Print Even Pages

Đáp án: B

 

Câu 3.06: Với Microsoft Word 2010, muốn chia đôi màn hình soạn thảo, ta thực hiện:

  1. View – Window – Split
  2. Page Layout – Page Setup – Breaks
  3. Home – Paragraph – Multilevel List
  4. View – Zoom – Two Pages

Đáp án: A

 

Câu 3.07: Để chuyển đổi giữa chế độ gõ tiếng Việt và tiếng Anh của bộ gõ Unikey, bạn thực hiện:

  1. Ctrl + Shift
  2. Ctrl + Alt
  3. Ctrl + Alt + Delete
  4. Ctrl + Enter

Đáp án: A

 

Câu 3.08: Trong Microsoft Word, tổ hợp phím Ctrl + D là để:

  1. Mở hộp thoại Font
  2. Mở hộp thoại Paragraph
  3. Mở hộp thoại Page Setup
  4. Mở hộp thoại Clipboard

Đáp án: A

 

Câu 3.09: Với Microsoft Word 2010, để thực hiện thao tác trộn các ô trong bảng biểu, ta thực hiện:

  1. Bôi đen các ô cần trộn, chuột phải chọn Select
  2. Bôi đen các ô cần trộn, chuột phải chọn Merge Cells
  3. Bôi đen các ô cần trộn, chuột phải chọn AutoFit
  4. Bôi đen các ô cần trộn, chuột phải chọn Table Properties

Đáp án: B

 

Câu 3.10: Trong Microsoft Word, chức năng Dropcap dùng để:

  1. Làm tăng cỡ chữ cho văn bản trong đoạn
  2. Chữ hoa đầu từ cho toàn bộ đoạn văn bản
  3. Làm to kí tự đầu tiên của đoạn
  4. Chữ hoa cho toàn bộ đoạn văn bản

Đáp án: C

 

Câu 3.11: Với Microsoft Word 2010, để tăng khoảng cách đoạn chứa con trỏ với đoạn dưới nó, ta thực hiện:

  1. Page Layout – Paragraph – Spacing After
  2. Page Layout – Paragraph – Spacing Before
  3. Page Layout – Spacing After
  4. Page Layout – Spacing Before

Đáp án: A

 

Câu 3.12: Với Microsoft Word 2010, để thực hiện thao tác gõ văn bản bên trong hình vẽ Shapes, ta thực hiện:

  1. Chuột phải vào hình – Chọn Add Text
  2. Chuột phải vào hình – Chọn Edit Points
  3. Chuột phải vào hình – Chọn Wrap Text
  4. Chuột phải vào hình – Chọn Insert Caption

Đáp án: A

 

Câu 3.13: Khi soạn thảo văn bản Microsoft Word, trình tự nào sau đây là hợp lý nhất?

  1. Gõ văn bản – Định dạng – Chỉnh sửa – In
  2. Gõ văn bản – Định dạng – In – Chỉnh sửa
  3. Chỉnh sửa – Định dạng – Gõ văn bản – In
  4. Định dạng – Gõ văn bản – In – Chỉnh sửa

Đáp án: A

 

Câu 3.14: Khi soạn thảo văn bản Microsoft Word, bôi đen một cụm từ rồi lần lượt thực hiện thao tác Ctrl + B rồi đến Ctrl + I, cụm từ được bôi đen sẽ:

  1. Được in đậm và nghiêng
  2. Được in nghiêng
  3. Được in đậm
  4. Được gạch chân

Đáp án: A

 

Câu 3.15: Trong Microsoft Word, để thực hiện thao tác tách ô trong bảng biểu, ta sử dụng lệnh:

  1. Merge Cells
  2. Delete Table
  3. Delete Cells

 

  1. Split Cells

Đáp án: D

 

Câu 3.16: Để tạo một văn bản mới trong Microsoft Word, ta thực hiện:

  1. File – Exit
  2. File – Open
  3. File – Print
  4. File – New

Đáp án: D

 

Câu 3.17: Trong Microsoft Word, muốn trình bày văn bản trong khổ giấy dọc, ta chọn mục:

  1. Portrait
  2. Landscape
  3. Right
  4. Left

Đáp án: A

 

Câu 3.18: Trong Microsoft Word, lệnh Merge Cells dùng để:

  1. Trộn nhiều ô thành 1 ô
  2. Chia 1 ô thành nhiều ô
  3. Canh giữa bảng biểu
  4. Trộn nhiều bảng biểu

Đáp án: A

 

Câu 3.19: Khi soạn thảo Microsoft Word, muốn định dạng chỉ số trên cho văn bản ta dùng:

  1. Ctrl + “=”
  2. Ctrl + Shift + “=”
  3. Ctrl + Alt + “=”
  4. Shift + “=”

Đáp án: B

 

Câu 3.20: Microsoft Word là:

  1. Chương trình dùng để soạn thảo văn bản
  2. Một hệ điều hành
  3. Chương trình để xử lý bảng tính
  4. Chương trình dùng để vẽ

Đáp án: A

 

Câu 3.21: Với Microsoft Word 2010, để cài chức năng tự động lưu văn bản sau một khoảng thời gian, ta dùng:

  1. File – Option – General
  2. File – Option – Save
  3. File – Option – Display
  4. File – Option – Advanced

Đáp án: B

 

Câu 3.22: Trong Microsoft Word, tổ hợp phím Ctrl + ] dùng để:

  1. Giảm cỡ chữ (mỗi lần giảm đi 2 cỡ chữ)
  2. Tăng cỡ chữ (mỗi lần tăng lên 2 cỡ chữ)
  3. Giảm cỡ chữ (mỗi lần giảm đi 1 cỡ chữ)
  4. Tăng cỡ chữ (mỗi lần tăng lên 1 cỡ chữ)

Đáp án: D

 

Câu 3.23: Với Microsoft Word 2010, lệnh Home – Paste tương đương với:

  1. Ctrl + V
  2. Ctrl + X
  3. Ctrl + C
  4. Ctrl + O

Đáp án: A

 

Câu 3.24: Trong Microsoft Word, muốn về đầu văn bản ta bấm:

  1. Ctrl + Home
  2. Ctrl + Page Up
  3. Ctrl + Down
  4. Ctrl + End

Đáp án: A

 

Câu 3.25: Để chỉnh sửa văn bản được soạn thảo bằng tiếng Việt sử dụng font chữ .VnTime, bạn dùng bảng mã nào?

  1. TCVN3(ABC)
  2. Unicode
  3. Vni-Windows
  4. VIQR

Đáp án: A

 

Câu 3.26: Với Microsoft Word 2010, con trỏ đang nằm trong bảng, để chèn dòng mới vào phía dưới con trỏ, ta dùng lệnh:

  1. Insert Cells
  2. Insert Rows Above
  3. Insert Rows Below
  4. Insert Columns to the left

Đáp án: C

 

Câu 3.27: Với Microsoft Word 2010, lệnh Insert – Illustrations – Shapes dùng để:

  1. Vẽ một số hình đặc biệt
  2. Tạo chữ nghệ thuật
  3. Chèn hình ảnh
  4. Chèn kí tự đặc biệt

Đáp án: A

 

Câu 3.28: Trong Microsoft Word, tổ hợp phím nào có tác dụng di chuyển con trỏ về cuối văn bản hiện tại?

  1. End
  2. Ctrl + End
  3. Ctrl + Page Down
  4. Home

Đáp án: B

 

Câu 3.29: Trong soạn thảo Microsoft Word, muốn chuyển đổi giữa hai chế độ: chế độ gõ chèn và chế độ gõ đè, ta bấm phím:

  1. Insert
  2. Delete
  3. CapsLock
  4. Tab

Đáp án: A

 

Câu 3.30: Muốn định dạng dữ liệu trong Microsoft Word, trước hết ta phải:

  1. Home – Copy
  2. Home – Paste
  3. Chọn (bôi đen) dữ liệu
  4. Xóa dữ liệu

Đáp án: C

 

Câu 3.31: Trong Microsoft Word, tổ hợp phím Ctrl + End có tác dụng:

  1. Chuyển con trỏ đến đầu văn bản
  2. Chuyển con trỏ đến cuối văn bản
  3. Chuyển con trỏ đến đầu trang văn bản hiện hành
  4. Chuyển con trỏ đến cuối trang văn bản hiện hành

Đáp án: B

 

Câu 3.32: Trong khi soạn thảo Microsoft Word, nếu nhấn phím số 1 khi có một khối văn bản đang được chọn thì:

  1. Số 1 sẽ chèn vào sau khối văn bản đang chọn
  2. Số 1 sẽ chèn vào trước khối văn bản đang chọn
  3. Khối văn bản đó biến mất
  4. Khối văn bản đó biến mất và thay thế vào đó là số 1

Đáp án: D

 

Câu 3.33: Với Microsoft Word 2010, để hiển thị mục Replace trong hộp thoại Find and Replace, từ văn bản hiện tại ta ấn tổ hợp phím:

  1. Ctrl + G
  2. Ctrl + Y
  3. Ctrl + H
  4. Ctrl + F

Đáp án: C

 

Câu 3.34: Với Microsoft Word 2010, để thay đổi khoảng cách giữa hai đoạn văn bản ta thiết lập tại:

  1. Before và After trong thẻ Page Layout
  2. Left và Right trong thẻ Page Layout
  3. Above và Below trong thẻ Page Layout
  4. Line Spacing trong thẻ Page Layout

Đáp án: A

 

Câu 3.35: Với Microsoft Word 2010, lệnh Home – Copy tương đương với tổ hợp phím:

  1. Ctrl + C
  2. Ctrl + V
  3. Ctrl + O
  4. Ctrl + X

Đáp án: A

 

Câu 3.36: Trong Microsoft Word, để căn chỉnh một đoạn văn bản vào chính giữa, ta đưa con trỏ đến đoạn văn bản đó và nhấn:

  1. Ctrl + E
  2. Ctrl + J
  3. Ctrl + L
  4. Ctrl + R

Đáp án: A

 

Câu 3.37: Trong Microsoft Word, khi con trỏ đang ở cuối đoạn trên, để nối đoạn dưới vào cuối đoạn trên ta nhấn phím nào?

  1. Backspace
  2. Tab
  3. Enter
  4. Delete

Đáp án: D

 

Câu 3.38: Với Microsoft Word 2010, để chèn đồ thị vào văn bản, ta chọn:

  1. Insert – Illustrations – Picture
  2. Insert – Illustrations – ClipArt
  3. Insert – Illustrations – Shapes
  4. Insert – Illustrations – Chart

Đáp án: D

 

Câu 3.39: Khi soạn thảo Microsoft Word, để đánh dấu chọn một từ trong văn bản ta có thể:

  1. Nhấp đúp chuột vào từ cần chọn
  2. Bấm Ctrl + Z
  3. Bấm Ctrl + A
  4. Bấm chuột phải

Đáp án: A

 

Câu 3.40: Với Microsoft Word 2010, tổ hợp phím Ctrl + X sẽ tương đương lệnh gì?

  1. Home – Paste
  2. Home – Cut
  3. Home – Copy

 

  1. Home – Format Painter

Đáp án: B

 

Câu 3.41: Định dạng mặc định khi sử dụng siêu liên kết trong Word?

  1. Chữ màu xanh dương và có đường gạch chân đơn
  2. Chữ màu đỏ và có đường gạch chân đôi
  3. Siêu liên kết sẽ nằm trong table
  4. Chữ in đậm màu đen

Đáp án: A

 

Câu 3.42: Trong chế độ tạo bảng (Table) của phần mềm Microsoft Word 2010, muốn tách một ô thành nhiều ô, ta thực hiện:

  1. Table – Cells
  2. Table tools – Layuot – Split Cells
  3. Tools – Layout
  4. Table – Split Cells

Đáp án: D

 

Câu 3.43: Trong Microsoft Word 2010 để chuyển đổi giữa chế độ: gõ chèn và chế độ gõ đè, ta thực hiện:

  1. Nhấn phím Insert
  2. Nhấn phím CapsLock
  3. Vào MS Office Button – Word Options – Advance – bỏ chọn mục Use Overtype Mode
  4. Vào MS Office Button – Word Options – Advance – bỏ chọn mục Use Smart cut and paste

Đáp án: A

 

Câu 3.44: Khi soạn thảo văn bản, để khai báo thời gian tự lưu văn bản, ta thực hiện:

  1. File – Options – Save chọn thời gian tại mục Save AutoRecover info every
  2. Home – Options – Save chọn thời gian tại mục Save AutoRecover info every
  3. View – Options – Save chọn thời gian tại mục Save AutoRecover info every
  4. Insert – Options – Save chọn thời gian tại mục Save AutoRecover info every

Đáp án: A

 

Câu 3.45: Trong Microsoft Word 2010 để định dạng văn bản theo kiểu danh sách, ta thực hiện:

  1. Thẻ Home – Paragraph – nhấn vào nút Bullets hoặc Numbering
  2. Tools – Bullets and Numbering
  3. Format – Bullets and Numbering
  4. Edit – Bullets and Numbering

Đáp án: A

 

Câu 3.46: Trong Microsoft Word 2010 để chèn header hoặc footer trên trang văn bản, ta thực hiện:

  1. View – Header and Footer
  2. Thẻ Insert – Header and Footer – nhấn nút Header hoặc Footer
  3. Insert – Header and Footer
  4. Format- Header and Footer

Đáp án: B

 

Câu 3.47: Trong Microsoft Word 2010 để bật/tắt hiển thị thanh thước kẻ trên của sổ soạn thảo, ta thực hiện:

  1. View – Ruler
  2. View – Outline
  3. View – Show/Hide – đánh dấu/bỏ đánh dấu vào mục Ruler
  4. Thẻ Insert – đánh dấu vào mục Ruler

Đáp án: A

 

Câu 3.48: Trong Microsoft Word 2010 để thực hiện vẽ các đường thẳng, ô vuông, ta thực hiện:

  1. View – Toolbars – Drawing
  2. View – Toolbars – Standard
  3. Thẻ Insert – Illustrations – Shapes
  4. View – Show/Hide – Ruler

Đáp án: A

 

Câu 3.49: Trong Microsoft Word 2010 để ngắt trang ta thực hiện:

  1. Thẻ View – Page Break
  2. Thẻ References – Captions – Break
  3. Thẻ Review – Create – Page Break

 

  1. Thẻ Insert – Pages – Page Break

Đáp án: D

 

Câu 3.50: Trong Microsoft Word 2010 để thay đổi khoảng cách giữa các ký tự, ta thực hiện:

  1. Thẻ Home – Font nhấn nút mũi tên bên dưới – chọn thẻ Advance – chọn Expanded hoặc Condensed tại mục Character Spacing.
  2. Thẻ Insert – Font nhấn nút mũi tên bên dưới – chọn thẻ Spacing – chọn Expanded hoặc Condensed tại mục Character Spacing.
  3. Thẻ Page Layout – Font nhấn nút mũi tên bên dưới – chọn thẻ Spacing – chọn Expanded hoặc Condensed tại mục Character Spacing.
  4. Thẻ Review – Font nhấn nút mũi tên bên dưới – chọn thẻ Character Spacing – chọn Expanded hoặc Condensed tại mục Character Spacing.

Đáp án: A

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

  • Hotline: 093.717.9278 ( Gặp Tấn Dân Cử Nhân Công Nghệ Thông Tin)

 

Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!

  1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi

100 Câu hỏi trắc nhiệm tin học ứng dụng công nghệ thông tin 2026

Phần 2: 100 Câu hỏi trắc nhiệm tin học ứng dụng công nghệ thông tin mới nhất năm 2026

Câu 2.01: Thư mục A có thể chứa:

  1. Thư mục 20/11/2019 và tập tin NhaGiao.txt
  2. Thư mục 20_11_2019 và tập tin NhaGiao.txt
  3. Chỉ chứa các thư mục con
  4. Chỉ chứa các tập tin

Đáp án: B

 

Câu 2.02: Thư mục A có thể chứa:

  1. Thư mục 20/11/2019 và tập tin NhaGiao.txt
  2. Thư mục 20\11\2019 và tập tin NhaGiao.txt
  3. Chỉ chứa các thư mục con và tập tin
  4. Chỉ chứa các tập tin

Đáp án: C

 

Câu 2.03: Thư mục A có thể chứa:

  1. Thư mục A&B và các tập tin a&b.txt
  2. Thư mục AB và các tập tin ab.txt
  3. Chỉ chứa các tập tin
  4. Chỉ chứa các thư mục

Đáp án: B

 

Câu 2.04: Thư mục A có thể chứa:

  1. Thư mục A+B và các tập tin a+b.txt
  2. Thư mục Toan/Hoc và tập tin PhepCong.txt
  3. Thư mục ToanHoc và tập tin PhepCong.txt
  4. Chỉ chứa các thư mục

Đáp án: C

 

Câu 2.05: Thư mục A có thể chứa:

  1. Thư mục A+B
  2. C và tập tin a+b
  3. Thư mục ToanHoc và tập tin BieuThuc.txt
  4. Chỉ chứa các thư mục

Đáp án: C

 

Câu 2.06: Thư mục A có thể chứa:

  1. Chỉ thư mục A, không thể chứa thư mục B
  2. Thư mục B và thư mục B
  3. Thư mục A
  4. Thư mục B

Đáp án: D

 

Câu 2.07: Thư mục A có thể chứa:

  1. Thư mục Phantram và tập tin T>.txt
  2. Thư mục >T và tập tin Tien.txt
  3. Thư mục @T và tập tin Tien.txt
  4. Thư mục T/T và tập tin Tien.txt

Đáp án: C

 

Câu 2.08: Tổ hợp phím nào dùng để đóng một ứng dụng đang chạy trên Windows?

  1. Ctrl+X
  2. Ctrl+F4
  3. Alt+F4
  4. Ctrl+W

Đáp án: C

Câu 2.09: Trên hệ điều hành Windows, để chuyển đổi cửa sổ chương trình cần làm việc ta:

  1. Nháy chọn biểu tượng chương trình tương ứng trên thanh Standard.
  2. Nhấn giữ phím Alt và gõ phím Tab cho đến khi chọn được cửa sổ chương trình.
  3. Nháy vào nút Close trên cửa sổ chương trình muốn kích hoạt.
  4. Click đúp chuột vào thanh TaskBar.

Đáp án: B

 

Câu 2.10: Trên Windows Explorer thành phần “Status Bar” có ý nghĩa:

  1. Hiển thị thông tin của thư mục hiện hành đang được chọn.
  2. Không có thành phần “Status Bar” trên Windows Explorer.
  3. Hiển thị các lệnh làm việc.
  4. Hiển thị các nút lệnh làm việc.

Đáp án: A

 

Câu 2.11: Trong các nhóm kí tự sau đây nhóm kí tự nào không được sử dụng để đặt tên của tập tin, thư mục:

  1. /, \, *, <, >
  2. @, 1, %
  3. –(,)
  4. , ”, @,

Đáp án: A

 

Câu 2.12: Trong hệ điều hành Windows chức năng disk Defragment là ứng dụng dùng để:

  1. Dọn rác ổ cứng.
  2. Làm tăng tuổi thọ ổ đĩa cứng.
  3. Làm giảm tuổi thọ ổ đĩa cứng.
  4. Chống phân mảnh ổ đĩa cứng.

Đáp án: D

 

Câu 2.13: Trong hệ điều hành Windows, muốn khôi phục đối tượng đã xoá. Ta mở cửa sổ Recycle Bin, chọn đối tượng muốn khôi phục.

  1. Nháy Edit và Restore
  2. Nháy Edit và Delete
  3. Nháy File và Restore
  4. Nháy File và Delete

Đáp án: C

 

Câu 2.14: Trong hộp thoại Run nhập lệnh nào để khởi động chương trình PowerPoint?

  1. PowerPoint.exe
  2. PowerPoint2010.exe
  3. PowerPnt.exe
  4. PowerPoint.cmd

Đáp án: C

 

Câu 2.15: Trong hộp thoại Run nhập lệnh nào để khởi động chương trình Microsoft Excel?

  1. Msconfig
  2. Regedit
  3. Excel
  4. Cmd

Đáp án: C

 

Câu 2.16: Trong quá trình soạn thảo văn bản bằng NotePad, ta có thể:

  1. Chèn một hình ảnh
  2. Soạn thảo văn bản tiếng Việt
  3. In nghiêng đoạn văn bản
  4. Gạch dưới đoạn văn bản

Đáp án: B

 

Câu 2.17: Trong quá trình soạn thảo văn bản bằng NotePad, ta có thể:

  1. Không định dạng đoạn văn bản
  2. Canh giữa, canh đều hai bên đoạn văn bản
  3. In đậm đoạn văn bản
  4. Canh trái, canh phải đoạn văn bản

Đáp án: A

 

Câu 2.18: Trong quá trình soạn thảo văn bản bằng NotePad:

  1. Ta chỉ có thể canh lề trái đoạn văn bản
  2. Ta không thể vẽ hình tròn, hình chữ nhật
  3. Ta có thể định dạng văn bản
  4. Ta có thể chèn hình ảnh vào văn bản

Đáp án: B

 

Câu 2.19: Trong quá trình soạn thảo văn bản trong Microsoft Word (WordpaD), ta có thể:

  1. Canh trái, canh phải đoạn văn bản
  2. Canh giữa đoạn văn bản
  3. Định dạng đoạn văn bản
  4. Không thể chèn hình

Đáp án: C

 

Câu 2.20: Trong thư mục A có tập tin tên GHICHU.TXT. Một người muốn tạo mới một tập tin trong thư mục A n2hưng không tạo được. Những lí do nào sau đây là đúng:

  1. Tên tập tin có chứa các kí tự đặc biệt ( / \ : ? < > * | )
  2. Tên tập tin mới là GHI_CHU.TXT
  3. Tên tập tin chưa đủ số kí tự yêu cầu
  4. Tên tập tin không có dấu ”?”

Đáp án: A

 

Câu 2.21: Trong thư mục A xó chứa 3 thư mục con. Một người muốn tạo mới một thư mục trong thư mục A nhưng không tạo được. Những lí do nào sau đây là đúng (trong Windows):

  1. Tên thư mục mới chưa có trong thư mục tên A
  2. Tên của thư mục mới có chưa những kí tự đặc biệt ( / \ : ? < > * | )
  3. Tên của thư mục mới đã có ở ổ đĩa khác
  4. Tên thư mục mới chưa có trong thư mục B

Đáp án: B

 

Câu 2.22: Trong ứng dụng Windows Explorer, để chọn nhiều tập tin hay thư mục không liên tục ta thực hiện thao tác kết hợp phím … với Click Mouse chọn:

  1. Shift
  2. Alt
  3. Tab
  4. Ctrl

Đáp án: D

 

Câu 2.23: Trong ứng dụng Windows Explorer, để chọn nhiều tập tin hay thư mục rời rạc ta thực hiện thao tác kết hợp phím … với Click Mouse chọn:

  1. Shift
  2. Alt
  3. Tab
  4. Ctrl

Đáp án: D

 

Câu 2.24: Trong Windows Explorer muốn tạo thư mục mới ta thực hiện:

  1. File – New – Folder
  2. Edit – New – Folder
  3. Tool – New – Folder
  4. View – New – Folder

Đáp án: A

 

Câu 2.25: Trong Windows Explorer để đổi tên một thư mục ta dùng thao tác nào sau đây:

  1. Click chọn tên thư mục đó và ấn phím F2
  2. Click chọn tên thư mục đó và dùng lệnh Edit – Cut
  3. Click chọn tên thư mục đó và dùng lệnh Edit – Paste
  4. Edit – Copy

Đáp án: A

 

Câu 2.26: Trong Windows Explorer, muốn sửa đổi tên của một thư mục, tập tin ta phải nhấp chuột trên thư mục, tập tin đó và chọn:

  1. Properties
  2. Create Shorcut
  3. Search
  4. Rename

Đáp án: D

 

Câu 2.27: Trong Windows Explorer, muốn xem hoặc thay đổi thuộc tính của một thư mục, tập tin ta phải nhấp chuột trên thư mục, tập tin đó và chọn:

  1. Properties
  2. Create Shorcut
  3. Search
  4. Rename

Đáp án: A

 

Câu 2.28: Trong Windows Explorer, người dùng có thể:

  1. Sao chép hoặc Di chuyển tập tin từ thư mục này sang thư mục khác.
  2. Định dạng đĩa mềm.
  3. Định dạng ổ đĩa, Tạo mới, Xoá, Đổi tên tập tin (hay thư mục)
  4. Chỉ có thể sao chép tập tin và thư mục

Đáp án: C

 

Câu 2.29: Trong Windows Explorer, ta có thể sử dụng chuột để:

  1. Không thể chọn tập tin hay thư mục
  2. Kéo thả tập tin từ thư mục này sang thư mục khác
  3. Kéo tập tin này sang tập tin khác
  4. Sao chép thư mục thành nhiều thư mục khác

Đáp án: B

 

Câu 2.30: Trong Windows Explorer, ta có thể:

  1. Chọn nhiều tập tin bằng bàn phím và chuột
  2. Chọn nhiều tập tin và thư mục bằng chuột
  3. Kết hợp phím tắt để chọn nhiều tập tin như Ctrl + C
  4. Không thể chọn nhiều thư mục và tập tin cùng một lúc

Đáp án: B

 

Câu 2.31: Trong Windows Explorer, ta có thể:

  1. Chia sẻ tập tin, thư mục, ổ đĩa cho những người khác trên mạng
  2. Chia sẻ máy in, máy fax cho những người khác trên mạng
  3. Chia sẻ toàn bộ dữ liệu trong máy tính
  4. Chia sẻ tài nguyên trên máy tính

Đáp án: B

 

Câu 2.32: Trong Windows Explorer, để xoá tất cả các tập tin và thư mục con có trong thư mục A người dùng phải:

  1. Đánh dấu chọn tất cả tập tin và thư mục con có trong thư mục A, Nhấn phím Delete
  2. Đánh dấu chọn thư mục A, nhấn phím Delete
  3. Đánh dấu chọn thư mục A, nhấn tổ hợp phím Shift + Delete
  4. Đánh dấu chọn tất cả các tập tin và thư mục con có trong thư mục A, nhấn phím Esc

Đáp án: A

 

Câu 2.33: Trong Windows Explorer:

  1. Ta có thể đặt thuộc tính cho nhiều tập tin cùng một lúc
  2. Không thể đồng thời chọn nhiều tập tin, thư mục trong cùng một thư mục
  3. Sao chép, xoá tập tin và thư mục
  4. Sao chép thư mục và chỉ di chuyển tập tin

Đáp án: C

 

Câu 2.34: Trong Windows Explorer:

  1. Ta có thể đặt thuộc tính cho nhiều tập tin cùng một lúc
  2. Không thể đồng thời chọn nhiều tập tin, thư mục ở nhiều thư mục khác nhau
  3. Tìm kiếm tập tin trên máy tính
  4. Chỉ có thể tìm kiếm thư mục

Đáp án: C

 

Câu 2.35: Trong Windows Explorer:

  1. Ta có thể xem dung lượng của ổ đĩa logic (Ví dụ: ổ C, D…)
  2. Ta có thể xem dung lượng còn trống của ổ đĩa logic (Ví dụ: ổ C, D…)
  3. Xem dung lượng còn trống của ổ đĩa logic (Ví dụ: ổ C, D…)
  4. Xem toàn bộ dung lượng ổ cứng

Đáp án: B

 

Câu 2.36: Trong Windows Explorer:

  1. Ta có thể sắp xếp các biểu tượng (tập tin, thư mục…) theo tên, kích thước
  2. Ta có thể sao chép các tập tin, thư mục
  3. Sắp xếp các biểu tượng (tập tin, thư mục…) theo tên
  4. Chỉ sắp xếp thư mục không sắp xếp tập tin

Đáp án: C

 

Câu 2.37: Trong Windows làm thế nào để hiển thị nhanh vào menu Start? (Cho phép chọn nhiều)?

  1. Ctrl + ESC + Enter
  2. Ctrl + Alt + Esc
  3. Nhấn phím Windows
  4. Không có cách nào khác, phải nhấn nút Power Off

Đáp án: C

 

Câu 2.38: Trong Windows, các biểu tượng trên Desktop có thể sắp xếp theo:

  1. Không thể sắp xếp theo tên (Name) hoặc Kiểu
  2. Kích thước (Size) hoặc ngày tạo (Date)
  3. Ta có thể sắp xếp theo tên (Name) hoặc Kiểu (Type)
  4. Sắp xếp theo tên (Name) hoặc Kiểu (Item Type), Size, Date Modify

Đáp án: D

 

Câu 2.39: Trong Windows, muốn đổi tên tập tin hay thư mục, ta thực hiện thao tác:

  1. Right Click Mouse vào đối tượng cần đổi tên – Rename – gõ tên mới
  2. Tools – Rename
  3. File – Copy
  4. Windows – Rename

Đáp án: A

 

Câu 2.40: Trong Windows, người dùng có thể tìm kiếm tập tin dựa theo các điều kiện tìm:

  1. Ta có thể tìm kiếm theo nội dung, ngày tạo, kích thước tập tin
  2. Nội dung được chứa trong tập tin
  3. Ngày tạo tập tin, thích thước
  4. Ngày tạo tập tin

Đáp án: B

 

Câu 2.41: Trong Windows, ở cửa sổ Explorer, để chọn một lúc nhiều tập tin hoặc thư mục nằm liền kề nhay trong một danh sách, bạn sử dụng lựa chọn nào?

  1. Giữ phím Ctrl và nháy chuột vào từng mục muốn chọn trong danh sách
  2. Giữ phím Alt và nháy chuột vào từng mục muốn chọn trong danh sách
  3. Nháy chuột ở mục đâu, ấn và giữ Shift nháy chuột ở mục cuối
  4. Giữ phím Tab và nháy chuột vào từng mục muốn chọn trong danh sách

Đáp án: C

 

Câu 2.42: Trong Windows, phát biểu nào sau đây là đúng:

  1. Có thể xoá một tập tin nếu tập tin đó đang được sử dụng
  2. Trong một thư mục bất kỳ, không bao giờ tồn tại 2 thư mục con cùng tên
  3. Một thư mục không thể chưa bất kỳ tập tin nào
  4. Cùng một thư mục, tập tin con có thể cùng tên

Đáp án: B

 

Câu 2.43: Trong Windows, ta có thể mở tối đa bao nhiêu chương trình NotePad tại một thời điểm:

  1. Không giới hạn
  2. 1
  3. 2
  4. 4

Đáp án: A

 

Câu 2.44: Trong Windows, tập tin Shortcut được tạo ra với mục đích:

  1. Khởi động nhanh một ứng dụng nào đó
  2. Di chuyển nhanh đến một thư mục nào đó
  3. Mở nhanh một tập tin nào đó
  4. Liên kết đến các icon

Đáp án: A

 

Câu 2.45: Trong Windows, tên tập tin có thể:

  1. Không có phần mở rộng
  2. Rỗng
  3. Có các kí tư đặc biệt ( / \ : ? < > * | )
  4. Có thể dài hơn 255 kí tự

Đáp án: A

 

Câu 2.46: Trong Windows, tên tập tin không được phép:

  1. Có khoảng trắng
  2. Có các ký tự đặc biệt ( / \ : ? < > * | )
  3. Có dấu gạch dướ ‘_’
  4. Có các dấu (+, -)

Đáp án: B

 

Câu 2.47: Trong Windows, trong thư mục A có thư mục B và thư mục C, người dùng không thể:

  1. Tạo thư mục A trong thư mục A
  2. Tạo thư mục A trong thư mục B
  3. Tạo thư mục B trong thư mục C
  4. Tạo thư mục C trong thư mục A

Đáp án: D

 

Câu 2.48: Trong Windows, để thiết đặt lại tuỳ chọn chức năng nhấn Mouse, ta vào nhóm ứng dụng:

  1. Control Windows
  2. Control Panel
  3. Control System
  4. Control Desktop

Đáp án: B

 

Câu 2.49: Trong Windows để xoá tất cả các tập tin và thư mục có trong Recycle Bin ta sẽ:

  1. Click phím phải của chuột lên biểu tượng Recycle Bin, rồi chọn Empty Recycle Bin
  2. Mở Recycle Bin, xoá tất cả các tập tin và thư mục có trong Recycle Bin
  3. Chọn Empty Recycle Bin
  4. Chỉ cần Click vào Empty Recycle Bin

Đáp án: A

 

Câu 2.50: Trong Windows, để đóng cửa sổ ứng dụng đang hoạt động:

  1. Nhấn nút Minimize bên phải thanh tiêu đề
  2. Nhấp phải chuột trên thanh tiêu đề chọn và close
  3. Nhấn Alt + F5
  4. Nhấn Ctrl + F4

Đáp án: B

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

  • Hotline: 093.717.9278 ( Gặp Tấn Dân Cử Nhân Công Nghệ Thông Tin)

 

Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!

  1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi

50 Câu hỏi trắc nhiệm tin học ứng dụng công nghệ thông tin 2026

Phần 1: 50 Câu hỏi trắc nhiệm tin học ứng dụng công nghệ thông tin mới nhất năm 2025 – 2026

Câu 1.01: Thiết bị nào vừa là thiết bị vào vừa là thiết bị ra?

  1. Máy in
  2. Màn hình
  3. Modem
  4. Bàn phím

Đáp án: C

 

Câu 1.02: Thiết bị nào được gọi là thiết bị lưu trữ dữ liệu trong máy tính?

  1. Bàn phím
  2. Loa
  3. Đĩa cứng
  4. Máy chiếu

Đáp án: C

 

Câu 1.03: Thiết bị nào được gọi là thiết bị nhập trong máy tính?

  1. Màn hình
  2. Bàn phím
  3. Loa
  4. Máy in

Đáp án: B

 

Câu 1.04: Thiết bị nhập chuẩn máy tính bao gồm gì, bạn sử dụng lựa chọn nào?

  1. Màn hình, Máy in
  2. Máy in, Chuột
  3. Chuột, Bàn phím
  4. Bàn phím, Máy in

Đáp án: C

 

Câu 1.05: Thiết bị nhập, xuất của máy tính không bao gồm:

  1. Loa, Máy in, Đĩa CD-ROM
  2. RAM, ROM, các thanh ghi
  3. CPU, Chuột, Máy quét ảnh
  4. Màn hình, Máy in, ROM

Đáp án: B

 

Câu 1.06: Thiết bị xuất của máy tính gồm có?

  1. Bàn phím, Màn hình, Chuột
  2. Màn hình, Máy in
  3. Chuột, Màn hình, CPU
  4. Bàn phím, Màn hình, Loa

Đáp án: B

 

Câu 1.07: Thiết bị xuất của máy tính là:

  1. Màn hình
  2. Webcam
  3. Bàn phím
  4. Máy quét

Đáp án: A

 

Câu 1.08: Trình tự xử lý thông tin của máy tính điện tử là:

  1. Màn hình – CPU – Đĩa cứng
  2. Đĩa cứng – Màn hình – CPU
  3. Nhập thông tin – Xử lý thông tin – Xuất thông tin
  4. Màn hình – Máy in – CPU

Đáp án: C

 

Câu 1.09: Trong các máy vi tính, bộ nhớ ngoài thường bao gồm:

  1. CD-ROM, HDD, FDD
  2. Đĩa mềm (Flopy Disk), CPU (Central Processing Unit)
  3. Đĩa cứng (HDD)
  4. Đĩa cứng (HDD), CPU (Central Processing Unit)

Đáp án: A

 

Câu 1.10: Trong mạng máy tính, thuật ngữ Share có ý nghĩa gì?

  1. Chia sẻ tài nguyên
  2. Nhãn hiệu của một thiết bị kết nối mạng
  3. Thực hiện lệnh in trong mạng cục bộ
  4. Một phần mềm hỗ trợ sử dụng mạng cục bộ

Đáp án: A

 

Câu 1.11: Trong ứng dụng Windows Explorer, di chuyển là kết hợp 2 lệnh:

  1. Cut và Copy
  2. Copy và Cut
  3. Copy và Paste
  4. Cut và Paste

Đáp án: D

 

Câu 1.12: Trong ứng dụng Windows Explorer, sao chép là kết hợp 2 lệnh:

  1. Cut và Copy
  2. Copy và Cut
  3. Copy và Paste
  4. Cut và Paste

Đáp án: C

 

Câu 1.13: Trong Win 7 để khởi động lại máy, phát biểu nào sau đây là sai:

  1. Nhấn tổ hợp phím Ctrl – Alt – Del, chọn mục Restart
  2. Từ cửa sổ màn hình nền nhấn nút Start – Shutdown, sau đó chọn mục Restart
  3. Bấm nút Power trên hộp máy
  4. Bấm nút Reset trên hộp máy

Đáp án: C

 

 

Câu 1.14: Trong Win 7 để tắt máy tính đúng cách ta chọn:

  1. Nhấn nút Start ở góc dưới bên trái màn hình nền, chọn mục Shutdown
  2. Tắt nguồn điện
  3. Bấm nút Power trên hộp máy
  4. Bấm nút Reset trên hộp máy

Đáp án: A

 

Câu 1.15: Trong Windows, phím tắt nào giúp bạn truy cập nhanh Menu Start để có thể Shutdown máy?

  1. Alt + Esc
  2. Ctrl + Esc
  3. Ctrl + Alt + Esc
  4. Không có cách nào khác, phải nhấn nút Power Off

Đáp án: B

 

Câu 1.16: Từ viết tắt chỉ bộ nhớ ngoài của máy vi tính là:

  1. RAM
  2. ROM
  3. HDD
  4. Cache

Đáp án: C

 

Câu 1.17: Virus tin học thực chất là gì, bạn sử dụng lựa chọn nào?

  1. Một loại vi sinh vật sống ký sinh trên các thiết bị vật lý của máy tính
  2. Một kháng thể tồn tại bên ngoài không khí
  3. Một đoạn chương trình có kích thước cực kỳ nhỏ bé nhưng lại bao hàm trong nó những chức năng rất đa dạng
  4. Loại virus tự sinh ra trong CPU trong quá trình sử dụng

Đáp án: C

 

Câu 1.18: Đặc điểm nào không có ở bộ nhớ RAM (Random Access Memory):

  1. Bộ nhớ trong cho phép truy xuất ngẫu nhiên
  2. Sẽ mất dữ liệu trong bộ nhớ khi mất điện hay tắt máy
  3. Cho phép các chương trình nạp vào để hoạt động
  4. Bộ nhớ cho phép lưu trữ dữ liệu dài lâu

Đáp án: D

 

Câu 1.19: Để liên kết các máy tính trong một khu nhà có hai toà nhà cách nhau khoảng 500m, người ta dùng mạng gì?

  1. Internet
  2. Man
  3. Lan
  4. Mạng cục bộ

Đáp án: B

 

Câu 1.20: Để máy tính có thể làm việc hệ điều hành được cài đặt ở đâu?

  1. RAM
  2. Ổ đĩa cứng
  3. ROM
  4. CD-ROM

Đáp án: B

 

Câu 1.21: Để máy tính có thể làm việc được, hệ điều hành cần đưa thông tin vào đâu để xử lý?

  1. RAM
  2. Bộ nhớ ngoài
  3. Chỉ nạp vào bộ nhớ trong khi chạy chương trình ứng dụng
  4. ROM

Đáp án: A

 

Câu 1.22: Để mở rộng một cửa sổ chương trình phóng to hết màn hình:

  1. Nhắp vào biểu tượng Restore Down
  2. Nhắp vào biểu tượng Maximize
  3. Nhắp vào biểu tượng Minimize
  4. Nhắp vào biểu tượng Close

Đáp án: B

 

Câu 1.23: Để tăng tốc độ vi xử lý trung tâm thì người ta nâng cấp bộ phận nào sau đây?

  1. RAM
  2. CPU
  3. Đĩa cứng
  4. Card đồ hoạ

Đáp án: B

 

Câu 1.24: Để truy cập trang Web ta phải sử dụng phần mềm nào dưới đây?

  1. Windows Media Player
  2. Internet Explorer
  3. Microsoft Word
  4. Networking Manager

Đáp án: B

 

Câu 1.25: Đơn vị Byte trên máy tính bằng bao nhiêu Bit:

  1. 04 Bit
  2. 08 Bit
  3. 16 Bit
  4. 32 Bit

Đáp án: B

 

Câu 1.26: Đơn vị đo dung lượng nào nhỏ nhất?

  1. Kilobyte
  2. Megabyte
  3. Ghigabyte
  4. Bit

Đáp án: D

Câu 1.27: Đơn vị đo tốc độ CPU là?

  1. Megabit (Mbps)
  2. Kylobyte (KBps)
  3. Kylobit (Kbps)
  4. Gigaherts (GHz)

Đáp án: D

 

Câu 1.28: Mỗi track trên đĩa cứng được chia thành các phần nhỏ được gọi là gì?

  1. Sector
  2. Head
  3. Cylinder
  4. Cluster

Đáp án: A

 

Câu 1.29: Tiện ích nào được sử dụng để chống phân mảnh ổ đĩa?

  1. Disk Compression
  2. Antivirus Software
  3. Disk Check
  4. Disk Defragmentation

Đáp án: D

 

Câu 1.30: Kiểu định dạng ổ cứng luận lý (partition) nào sau đây hỗ trợ bảo mật dữ liệu tốt hơn?

  1. Volume
  2. NTFS
  3. FAT32
  4. Ext3

Đáp án: B

 

Câu 1.31: Kiểu định dạng ổ cứng luận lý (partition) nào sau đây chỉ hỗ trợ lưu trữ file có kích thước tối đa 4GB?

  1. Volume
  2. NTFS
  3. FAT32
  4. Ext3

Đáp án: C

 

Câu 1.32: Phương thức nào sau đây liên quan đến khái niệm trực tuyến:

  1. e-learning
  2. e-town
  3. C. Đào tạo từ xa, Hội nghị trực tuyến
  4. D. A và C là đúng

Đáp án: D

 

Câu 1.33: Dịch vụ nào sau đây sau đây không phải là dịch vụ Internet cho người dùng:

  1. A. e-banking
  2. B. e-government
  3. e-town
  4. e-commerce

Đáp án: C

 

Câu 1.34: Ứng dụng bán hàng trực tuyến (online shop) là thuộc loại dịch vụ Internet nào:

  1. A. e-banking
  2. e-government
  3. e-learning
  4. e-commerce

Đáp án: D

 

Câu 1.35: Câu nào sau đây không phải là ưu điểm của học trực tuyến (e-learning):

  1. A. Người học có thể ngồi ở nhà
  2. B. Người học không cần kết nối internet
  3. C. Người học có thể học trong khi đi công tác
  4. D. Người học không cần phải đến lớp

Đáp án: B

 

Câu 1.36: Khi các bác sĩ muốn hội chẩn cho một người bệnh ở xa thì họ cần sử dụng dịch vụ nào:

  1. A. Học trực tuyến
  2. B. Đào tạo trực tuyến
  3. C. Đào tạo từ xa
  4. D. Hội nghị trực tuyến

Đáp án: D

 

Câu 1.37: Để thanh toán tiền qua mạng, người dùng sẽ sử dụng dịch vụ Internet nào:

  1. A. e-banking
  2. B. e-government
  3. e-learning
  4. teleconference

Đáp án: A

 

Câu 1.38: Thiết bị nào không cần thiết trong hội nghị trực tuyến

  1. A. Loa
  2. Micro
  3. Máy quay video
  4. Lò vi sóng

Đáp án: D

 

Câu 1.39: Trang nào sau đây là trang tin điện tử:

  1. A. Báo điện tử, Trang tin điện tử cá nhân
  2. B. Tờ báo Tuổi trẻ
  3. C. Trang tin điện tử nội bộ
  4. D. A và C đúng

Đáp án: D

 

Câu 1.40: Điều nào không súng khi nói về điều kiện làm việc của nghề Tin học văn phòng:

  1. A. Làm việc trong nhà
  2. Ảnh hưởng thị lực
  3. C. Ảnh hưởng cột sống
  4. D. Tiếp xúc với độc hại

Đáp án: D

 

Câu 1.41: Bệnh nào là bệnh liên quan đến việc sử dụng máy tính nhiều:

  1. A. Bệnh ho gà
  2. B. Bệnh đau cột sống
  3. C. Cận thị
  4. Bệnh đau bao tử

Đáp án: C

 

Câu 1.42: Chọn mức độ ánh sáng ở màn hình máy tính và môi trường xung quanh cân bằng là giúp cho điều gì:

  1. A. Đỡ buồn ngủ
  2. B. Đỡ mỏi mắt
  3. C. Đỡ đau lưng
  4. D. Đỡ khát nước

Đáp án: B

 

Câu 1.43: Điều gì sau đây không phải là lợi ích của tái chế hộp mực in:

  1. A. Tiết kiệm tiền
  2. B. Bảo vệ môi trường
  3. C. Giảm rác thải
  4. D. Tiết kiệm nước

Đáp án: D

 

Câu 1.44: Điều gì sau đây không phải là nguy cơ ô nhiễm môi trường của pin máy tính phế thải:

  1. A. Ô nhiễm chì
  2. B. Ô nhiễm thủy ngân
  3. C. Ô nhiễm kẽm
  4. D. Ô nhiễm phóng xạ

Đáp án: D

 

Câu 1.45: Khi lựa chọn máy tính ở chế độ tự động tắt màn hình sau 20 giây, màn hình máy tính tự động tắt khi:

  1. A. Không đụng tới máy tính trong 20 giây
  2. B. Không sử dụng máy in trong 20 giây
  3. Không sử dụng Internet trong 20 giây
  4. Xuất ra máy in sau 20 giây

Đáp án: A

 

Câu 1.46: Với thiết lập nào của Control panel để giúp cài đặt chế độ tiết kiệm năng lượng:

  1. Display
  2. System and Security
  3. Devices and Printers
  4. Power options

Đúng: D

 

Câu 1.47: Lựa chọn nào sau đây tiết kiệm năng lượng cho máy tính:

  1. A. Không chạy các ứng dụng đồ hoạ trên máy tính.
  2. B. Đặt máy tính ở chế độ ngủ
  3. C. Tự động tắt màn hình, tự động tắt máy
  4. D. B và C đúng

Đáp án: D

 

Câu 1.48: Khi giao dịch trực tuyến nên làm gì để bảo vệ an toàn thông tin:

  1. Cảnh giác với thư giả mạo
  2. B. Cảnh giác với người lạ, cảnh giác khi thao tác trên máy tính của người lạ
  3. C. Không sử dụng USB
  4. D. A và B là đúng

Đáp án: D

 

Câu 1.49: Mật khẩu nào sau đây không phải là mật khẩu tốt:

  1. A. a921680b
  2. 123c2518
  3. C. 12345678
  4. abc123DE

Đáp án: C

 

Câu 1.50: Tại sao việc thay đổi mật khẩu thường xuyên có ích trong việc đảm bảo an toàn thông tin:

  1. A. Để dễ nhớ
  2. B. Để khó bị phát hiện
  3. C. Để hệ thống hoạt động nhanh
  4. D. Để dễ bị phát hiện

Đáp án: B

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

10 Đề ứng dụng công nghệ thông tin cơ bản mới nhất 2025-2026

Đề 1: ĐỀ ỨNG DỤNG CÔNG NGHỆ THÔNG TIN CƠ BẢN

PHẦN THI: THỰC HÀNH

Thời gian : 90 phút

(Thí sinh KHÔNG được sử dụng tài liệu)

_____

PHẦN I: Sử dụng hệ điều hành (1 điểm)              

Câu 1: Trong thư mục lưu bài của thí sinh

tạo cây thư mục như hình bên: (0,25 điểm)

Câu 2: Tìm 2 file hình ảnh bất kỳ, lưu vào

thư mục TƯ-LIỆU. (0,25 điểm)

Câu 3: Đổi thuộc tính của các tập tin trong

TƯ-LIỆU sang chỉ đọc. (0,25 điểm)

Câu 4: Nén toàn bộ thư mục TƯ-LIỆU này thành tập tin TULIEU.zip và chép vào thư mục CHÍNH-SÁCH. (0,25 điểm)

ĐỀ ỨNG DỤNG CÔNG NGHỆ THÔNG TIN CƠ BẢN

PHẦN II: Sử dụng trình chiếu cơ bản (2 điểm)

Câu 1: Sử dụng hình ảnh có trên máy tính của thí sinh (không nhất thiết phải giống như hình trong đề thi) để thiết kế đúng định dạng bài thuyết trình theo mẫu như đề thi (gồm 2 slide). (1 điểm)

Câu 2: Thiết kế hiệu ứng chuyển trang (Transition) bất kỳ cho các slide trong bài thuyết trình. (0,5 điểm)

Câu 3: Thiết lập hiệu ứng động (Animation) bất kỳ cho slide số 2 với yêu cầu hình ảnh xuất hiện trước, nội dung xuất hiện sau. (0,5 điểm)

2 De thi tin học cơ bản có đáp an

PHẦN III: Xử lý văn bản cơ bản (3 điểm)

Câu 1: Tạo đoạn văn bản sau (1 điểm)

        3 Tài liệu ôn thi chứng chỉ tin học cơ bản

Câu 2: Tạo biểu mẫu sau (1 điểm)

4 Mẹo thi tin học cơ bản

Câu 3: Tạo biểu thức (1 điểm)

 

5 Tài liệu ứng dụng công nghệ thông tin cơ bản

 

* Lưu ý: Thí sinh có thể sử dụng loại font, kích thước chữ, hình ảnh,…. khác với đề bài để thực hiện. Tuy nhiên cần đảm bảo sự thẩm mỹ, hợp lý.

PHẦN IV: Sử dụng bảng tính cơ bản (4 điểm)

Nhập nội dung và định dạng bảng sau: (1 điểm)

300 câu hỏi trắc nghiệm tin học có đáp An

Thực hành Excel ứng dụng công nghệ thông tin cơ bản

Mô tả:

  • 4 ký tự 3-4-5-6 của Phiếu bán quy định Mã SP.
  • 3 ký cuối của Phiếu bán quy định Số lượng bán.

Yêu cầu:

1- Điền thông tin cột Mã SP: dựa vào Phiếu bán. (0,5 điểm)

2- Điền thông tin cột Loại bánh: dựa vào Mã SP Bảng 1. (0,5 điểm).

3- Điền thông tin cột Giá: dựa vào Mã SP Bảng 2. (0,5 điểm).

4- Tính Tính tiền: = Số lượng x Giá. (0,5 điểm).

Định dạng dữ liệu cột này có dấu phân định hàng nghìn, không có số lẻ thập phân và tiền tệ là “Đồng” sau số tính.

5- Xếp hạng theo cột Thành tiền. (0,5 điểm)

6- Rút trích (ra một vùng riêng và có ghi rõ điều kiện rút trích) danh sách loại hàng có Phiếu bán chứa “BONG”. (0,5 điểm)

 

* Lưu ý : với các câu không giải được, thí sinh có thể nhập dữ liệu giả (phải chính xác) để làm các câu tiếp theo.

GIÁM THỊ KHÔNG GIẢI THÍCH GÌ THÊM ./.

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

100 bài tập C++ từ cơ bản đến nâng cao PDF có lời giải 2025-2026

Lời mở đầu

Ngôn ngữ lập trình C++ từ lâu đã trở thành một công cụ quan trọng trong việc học tập và nghiên cứu Tin học. Không chỉ giúp rèn luyện tư duy logic, C++ còn là nền tảng vững chắc để học sinh, sinh viên tiếp cận các kiến thức chuyên sâu hơn về cấu trúc dữ liệu, giải thuật và lập trình thi đấu.

Tài liệu “100 bài tập C++ từ cơ bản đến nâng cao – Có lời giải (2025-2026)” được biên soạn nhằm hỗ trợ các em học sinh, sinh viên cũng như những người yêu thích lập trình có một bộ bài tập thực hành đa dạng, hệ thống và có lời giải chi tiết. Các bài tập được sắp xếp từ mức độ cơ bản (cấu trúc rẽ nhánh, vòng lặp, mảng, chuỗi) đến nâng cao (đệ quy, quy hoạch động, đồ thị, thuật toán tham lam, cấu trúc dữ liệu).

Mỗi bài toán không chỉ đưa ra đề bài rõ ràng mà còn có hướng dẫn và lời giải bằng C++, giúp người học dễ dàng đối chiếu, rút kinh nghiệm và mở rộng tư duy. Bộ tài liệu này đồng thời cũng là nguồn tham khảo hữu ích cho các bạn học sinh chuẩn bị cho các kỳ thi Tin học, từ thi học sinh giỏi đến các kỳ thi tuyển sinh chuyên Tin.

Hy vọng rằng với tài liệu này, người học sẽ:

  • Củng cố kiến thức lập trình C++.

  • Nâng cao khả năng phân tích và giải quyết vấn đề.

  • Tự tin hơn khi bước vào các kỳ thi lập trình và ứng dụng thực tế.

tai ngay vi tính tấn dân

  • Còn em nào muốn học lý thuyết thì hãy vào đường dẫn phía dưới nhé ! chép từ bài 1 đến bài 21 là giỏi liền kha kha ! có tài liệu pdf tải về thoải mái !
    1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học 

Danh sách 100 bài tập C++ từ cơ bản đến nâng cao

Bài 1: SỐ MAY MẮN 2025

  • Năm 2025 là một năm đặc biệt đối với bạn An. An muốn tạo ra một “số may mắn” mới từ số nguyên n bằng cách cộng thêm 2025 vào số đó.
  • Yêu cầu:
    Viết chương trình nhập vào một số nguyên n và in ra số may mắn của An.
  • Input
    Một số nguyên n (−10^9 ≤ n ≤ 10^9).
  • Output
    Một số nguyên duy nhất là n + 2025.

Ví dụ

Ví dụ 1:

Input
10
Output
8

Ví dụ 2:

Input
-5
Output
-7
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int res=n+2025;
    cout<<res;
    return 0;
}

Bài 2: HIỆU HAI ĐƠN VỊ

  • Cho một số nguyên a. Hãy tính giá trị của số đó sau khi giảm đi 2 đơn vị.
  • Yêu cầu:
    Viết chương trình nhập vào một số nguyên a và in ra kết quả a − 2.
  • Input
    Một số nguyên a (−10^9 ≤ a ≤ 10^9).
  • Output
    Một số nguyên duy nhất là a − 2.

Ví dụ

Ví dụ 1:

Input
10
Output
8

Ví dụ 2:

Input
-5
Output
-7
#include <iostream>
using namespace std;
int main()
{
    int a;
    cin>>a;
    int res=a-2;
    cout<<res;
    return 0;
}

Bài 3: XOÁ KÝ TỰ

  • Cho một chuỗi ký tự s và một ký tự c. Hãy xoá tất cả các lần xuất hiện của ký tự c trong chuỗi s và in ra chuỗi kết quả.
  • Yêu cầu:
    Viết chương trình nhập vào chuỗi s và ký tự c, sau đó in ra chuỗi sau khi đã xoá hết các ký tự c trong s.
  • Input
  • Dòng 1: Chuỗi s (không quá 1000 ký tự).

  • Dòng 2: Một ký tự c.

  • Output
  • Chuỗi kết quả sau khi xoá ký tự c.

Ví dụ

Ví dụ 1:

Input
hello world
l
Output
heo word

Ví dụ 2:

Input
mississippi
s
Output
miippi
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    char c;
    getline(cin, s);
    cin >> c;
    string kq = "";
    for (int i = 0; i < s.length(); i++)
    {
        if (s[i] != c) kq += s[i];
    }
    cout << kq;
    return 0;
}

Bài 4: CHIA CHO 4

  • Cho một số nguyên n. Hãy tính giá trị của n chia cho 4 và in ra kết quả với 2 chữ số thập phân.
  • Input
    Một số nguyên n (−10^9 ≤ n ≤ 10^9).
  • Output
    Một số thực là n/4 với 2 chữ số thập phân.

Ví dụ

Ví dụ 1:

Input
10
Output
2.50

Ví dụ 2:

Input
7
Output
1.75
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n;
    cin>>n;
    double res=(double)n/4;
    cout<<setprecision(2)<<fixed<<res;
    return 0;
}

Bài 5: LŨY THỪA CỦA SỐ NGUYÊN

  • Cho một số nguyên n. Hãy tính và in ra:
  • Giá trị n²
    Giá trị n⁵
  • Input
    Một số nguyên n (−1000 ≤ n ≤ 1000).
  • Output
    Giá trị n² và n⁵, mỗi kết quả in trên một dòng.

Ví dụ

Ví dụ 1:

Input
2
Output
4
32

Ví dụ 2:

Input
-3
Output
9
-243
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int n;
    cin>>n;
    int res1=pow(n,2);
    int res2=pow(n,5);
    cout<<res1<<"\n";
    cout<<res2;
    return 0;
}

Bài 6: CĂN BẬC HAI

  • Cho một số nguyên n. Hãy tính căn bậc hai của n và in ra kết quả với 2 chữ số thập phân.
  • Input
    Một số nguyên n (0 ≤ n ≤ 10^9).
  • Output
    Căn bậc hai của n với 2 chữ số thập phân.

Ví dụ

Ví dụ 1:

Input
9
Output
3.00

Ví dụ 2:

Input
2
Output
1.41
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
    int n;
    cin>>n;
    double res=sqrt(n);
    cout<<setprecision(2)<<fixed<<res;
    return 0;
}

Bài 7: NGHỊCH ĐẢO SỐ NGUYÊN

  • Cho một số nguyên n. Hãy tính giá trị nghịch đảo của n (tức 1/n) và in ra kết quả với 5 chữ số thập phân.
  • Input
    Một số nguyên n (n ≠ 0, |n| ≤ 10^9).
  • Output
    Giá trị 1/n với 5 chữ số thập phân.

Ví dụ

Ví dụ 1:

Input
2
Output
0.50000

Ví dụ 2:

Input
7
Output
0.14286
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n;
    cin>>n;
    double res= 1/double(n);
    cout<<setprecision(5)<<fixed<<res;
    return 0;
}

Bài 8: TÍNH TOÁN BIỂU THỨC

  • Cho hai số nguyên a và b. Hãy tính các giá trị sau:
  • P = 21·a + 5·b − 2009
    Q = 21·(a² − 5·b) / (2009·b²)
    R = (21·a + 5·b²) / (2009·b + 15)

Input
Hai số nguyên a và b (−1000 ≤ a, b ≤ 1000, b ≠ 0).

Output
Dòng 1: Giá trị P và Q (cách nhau một khoảng trắng).
Dòng 2: Giá trị R.

Ví dụ

Ví dụ 1:

Input
1 2
Output
-1983 -0.00174
0.00196

Ví dụ 2:

Input
5 3
Output
-1889 0.00696
0.01140
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    int P=21*a+5*b-2009;
    double Q=(21*(pow(a,2)-5*b))/(2009*(pow(b,2)));
    double R=((21*a+(5*pow(b,2)))/(2009*b+15));
    cout<<P<<" "<<Q<<"\n";
    cout<<R;
    return 0;
}

Bài 9: CHIA NGUYÊN VÀ DƯ

  • Cho hai số nguyên a và b. Hãy tính thương nguyên và số dư khi chia a cho b.
  • Input
    Hai số nguyên a và b (−10^9 ≤ a, b ≤ 10^9, b ≠ 0).
  • Output
    Hai số nguyên q và r, trong đó q là thương nguyên và r là số dư khi chia a cho b.

Ví dụ

Ví dụ 1:

Input
17 5
Output
3 2

Ví dụ 2:

Input
20 4
Output
5 0
#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    int q = a / b;
    int r = a % b;
    cout << q << " " << r;
    return 0;
}

Bài 10: CHIA HAI SỐ NGUYÊN

  • Cho hai số nguyên a và b. Hãy tính thương nguyên và số dư của phép chia a cho b.
  • Input
    Hai số nguyên a và b (−10^9 ≤ a, b ≤ 10^9, b ≠ 0).
  • Output
    Thương nguyên và số dư, in trên một dòng, cách nhau một khoảng trắng.

Ví dụ

Ví dụ 1:

Input
17 5
Output
3 2

Ví dụ 2:

Input
20 4
Output
5 0
#include <iostream>
using namespace std;

int main() {
int a, b;
cin >> a >> b;
cout << a / b << " " << a % b;
return 0;
}

Bài 11: CHIA LẤY PHẦN NGUYÊN VÀ DƯ

  • Cho hai số nguyên n và m. Hãy tính thương nguyên và số dư của phép chia m cho n.
  • Input
    Hai số nguyên n và m (−10^9 ≤ n, m ≤ 10^9, n ≠ 0).
  • Output
    Thương nguyên và số dư, in trên một dòng, cách nhau một khoảng trắng.

Ví dụ

Ví dụ 1:

Input
5 17
Output
3 2

Ví dụ 2:

Input
4 20
Output
5 0
#include <iostream>
using namespace std;

int main() {
int n, m;
cin >> n >> m;
cout << m / n << " " << m % n;
return 0;
}

Bài 12: TÁCH CHỮ SỐ

  • Cho một số nguyên n có hai chữ số. Hãy in ra chữ số hàng đơn vị và chữ số hàng chục của n.
  • Input
    Một số nguyên n (10 ≤ n ≤ 99).
  • Output
    Chữ số hàng đơn vị và chữ số hàng chục của n, in trên một dòng, cách nhau một khoảng trắng.

Ví dụ

Ví dụ 1:

Input
57
Output
7 5

Ví dụ 2:

Input
42
Output
2 4
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    int donvi = n % 10;
    int chuc = n / 10;
    cout << donvi << " " << chuc;
    return 0;
}

Bài 13: TỔNG CÁC CHỮ SỐ

  • Cho một số nguyên n có bốn chữ số. Hãy tính tổng các chữ số của n.
  • Input
    Một số nguyên n (1000 ≤ n ≤ 9999).
  • Output
    Tổng các chữ số của n.
  • Ví dụ

Ví dụ 1:

Input
1234
Output
10

Ví dụ 2:

Input
2025
Output
9
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    int nghin = n / 1000;
    int tram = (n / 100) % 10;
    int chuc = (n / 10) % 10;
    int donvi = n % 10;
    cout << nghin + tram + chuc + donvi;
    return 0;
}

Bài 14: TỔNG HAI CHỮ SỐ HÀNG ĐƠN VỊ

  • Cho hai số nguyên a và b. Hãy tính tổng của chữ số hàng đơn vị của a và chữ số hàng đơn vị của b.
  • Input
    Hai số nguyên a và b (−10^9 ≤ a, b ≤ 10^9).
  • Output
    Tổng chữ số hàng đơn vị của a và b.

Ví dụ

Ví dụ 1:

Input
27 35
Output
12

Ví dụ 2:

Input
123 456
Output
9
#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << (a % 10) + (b % 10);
    return 0;
}

Bài 15: TỔNG HAI CHỮ SỐ

  • Cho hai số nguyên ab. Hãy tính tổng của chữ số hàng đơn vị của a và chữ số hàng chục của b.
  • Input
  • Hai số nguyên ab (−10^9 ≤ a, b ≤ 10^9).
  • Output
  • Một số nguyên là tổng cần tìm.

Ví dụ

Ví dụ 1:

Input
27 35
Output
10

Giải thích: chữ số hàng đơn vị của 27 là 7, chữ số hàng chục của 35 là 3. Tổng = 7 + 3 = 10.

Ví dụ 2:

Input
123 456
Output
8

Giải thích: chữ số hàng đơn vị của 123 là 3, chữ số hàng chục của 456 là 5. Tổng = 3 + 5 = 8.

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << (a % 10) + ((b / 10) % 10);
    return 0;
}

Bài 16: Tách số có 3 chữ số

Nhập vào một số nguyên n có 3 chữ số. Hãy in ra lần lượt:

  • Chữ số hàng trăm

  • Chữ số hàng chục

  • Chữ số hàng đơn vị

  • Input
    Một số nguyên n (100 ≤ n ≤ 999).
  • Output
    Ba chữ số tách ra, cách nhau bởi khoảng trắng.

Ví dụ 1

Input
345
Output
3 4 5

Ví dụ 2

Input
907
Output
9 0 7
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    cout << n / 5000 << " " << n % 5000;
    return 0;
}

Bài 17. Đổi tiền (5000, 2000, 1000)

  • Đề bài
  • Nhập vào một số nguyên n (số tiền, bội số của 1000). Hãy đổi số tiền đó thành các tờ 5000, 2000, 1000 sao cho số tờ tiền là ít nhất.
    In ra lần lượt số tờ 5000, số tờ 2000 và số tờ 1000.

Ví dụ 1

Input

17000

Output

3 1 0

Ví dụ 2

Input

9000

Output

1 2 0
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    int to5000 = n / 5000;
    n %= 5000;
    int to2000 = n / 2000;
    n %= 2000;
    int to1000 = n / 1000;
    cout << to5000 << " " << to2000 << " " << to1000;
    return 0;
}

Bài 18. Đổi giây sang giờ:phút:giây

  • Đề bài
  • Nhập vào một số nguyên n (số giây). Hãy đổi n giây thành dạng giờ:phút:giây và in ra kết quả theo đúng định dạng.

Ví dụ 1

Input

3661

Output

1:1:1

Ví dụ 2

Input

7322

Output

2:2:2
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    int h = n / 3600;
    n %= 3600;
    int m = n / 60;
    int s = n % 60;
    cout << h << ":" << m << ":" << s;
    return 0;
}

Bài 19. Số bàn học tối thiểu

  • Đề bài
  • Trong một trường học có 3 lớp, lần lượt có a, b, c học sinh.
    Mỗi bàn có thể ngồi được 2 học sinh.
    Hãy tính số bàn học tối thiểu cần chuẩn bị cho 3 lớp.

Ví dụ 1

Input

20 21 22

Output

32

Ví dụ 2

Input

15 15 15

Output

23
#include <iostream>
using namespace std;

int main() {
    long long a, b, c;
    cin >> a >> b >> c;
    long long desks = (a + 1) / 2 + (b + 1) / 2 + (c + 1) / 2;
    cout << desks;
    return 0;
}

Bài 20. Chia đoạn thẳng

Đề bài

Cho một đoạn thẳng có độ dài L. Người ta muốn chia đoạn thẳng này thành các đoạn nhỏ có cùng độ dài d.
Hãy tính:

  • Số đoạn nhỏ chia được.

  • Độ dài đoạn thừa (nếu có).

Ví dụ 1

Input

25 4

Output

6 1

Ví dụ 2

Input

20 5

Output

4 0
#include <iostream>
using namespace std;

int main() {
    int L, d;
    cin >> L >> d;
    int soDoan = L / d;
    int du = L % d;
    cout << soDoan << " " << du;
    return 0;
}

Bài 21. Chu vi và diện tích hình vuông

Đề bài

Nhập vào độ dài cạnh của một hình vuông a.
Hãy tính:

  • Chu vi của hình vuông.

  • Diện tích của hình vuông.

Ví dụ 1

Input

5

Output

20 25

Ví dụ 2

Input

10

Output

40 100
#include <iostream>
using namespace std;

int main() {
    int a;
    cin >> a;
    int chuVi = 4 * a;
    int dienTich = a * a;
    cout << chuVi << " " << dienTich;
    return 0;
}

Bài 22. Chu vi và diện tích hình tròn

Đề bài

Nhập vào bán kính r của hình tròn.
Hãy tính:

  • Chu vi hình tròn.

  • Diện tích hình tròn.
    Kết quả in ra với 2 chữ số thập phân.

Ví dụ 1

Input

5

Output

31.42 78.54

Ví dụ 2

Input

10

Output

62.83 314.16
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

int main() {
    int r;
    cin >> r;
    double chuVi = 2 * M_PI * r;
    double dienTich = M_PI * r * r;
    cout << fixed << setprecision(2) << chuVi << " " << dienTich;
    return 0;
}

Bài 23. Chu vi và diện tích hình chữ nhật

Đề bài

Nhập vào 2 số nguyên dương a, b là chiều dài và chiều rộng của hình chữ nhật.
Hãy tính:

  • Chu vi hình chữ nhật.

  • Diện tích hình chữ nhật.

Ví dụ 1

Input

5 3

Output

16 15

Ví dụ 2

Input

7 4

Output

22 28
#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    int cv = (a + b) * 2;
    int dt = a * b;
    cout << cv << " " << dt;
    return 0;
}

Bài 24. Diện tích tam giác

Đề bài

Nhập vào độ dài cạnh đáy a và chiều cao h của một tam giác.
Tính diện tích của tam giác theo công thức:

S=(a×h)/2

Kết quả in ra với 1 chữ số thập phân.

Ví dụ 1

Input

6 4

Output

12.0

Ví dụ 2

Input

10 3

Output

15.0
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double a, h;
    cin >> a >> h;
    double S = (a * h) / 2;
    cout << fixed << setprecision(1) << S;
    return 0;
}

25. Tính diện tích tam giác 2

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main() {
    double a, b, c;
    cin >> a >> b >> c;

    double cv = a + b + c;
    double p = cv / 2.0;
    double s = sqrt(p * (p - a) * (p - b) * (p - c));

    cout << fixed << setprecision(0) << cv << endl;
    cout << fixed << setprecision(3) << s << endl;

    return 0;
}

26. Tính bán kính hình tròn ngoại tiếp tam giác

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main() {
    double a, b, c;
    cin >> a >> b >> c;

    double p = (a + b + c) / 2.0;
    double S = sqrt(p * (p - a) * (p - b) * (p - c));
    double R = (a * b * c) / (4.0 * S);

    cout << fixed << setprecision(3) << R << endl;

    return 0;
}

27. Tính trung bình cộng

 

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    double tbc = (a + b + c) / 3.0;
    cout << fixed << setprecision(1) << tbc;

    return 0;
}

28. Tính điểm trung bình

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double toan, van, anh;
    cin >> toan >> van >> anh;

    double tbc = (2*toan + 2*van + anh) / 5.0;

    cout << fixed << setprecision(1) << tbc;
    return 0;
}

29. Tính diện tích hình tròn

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

int main() {
    double C;
    cin >> C;
    double S = (C * C) / (4 * M_PI);
    cout << fixed << setprecision(2) << S << endl;
    return 0;
}

30. Tính diện tích hình vuông

#include <iostream>
using namespace std;

int main() {
    int C;
    cin >> C;
    int a = C / 4;      
    int S = a * a;       
    cout << S << endl;
    return 0;
}

31. So sánh điểm

#include <iostream>
using namespace std;

int main() {
    float an, binh;
    cin >> an >> binh;

    if (an > binh)
        cout << "An gioi hon" << endl;

    if (binh > an)
        cout << "Binh gioi hon" << endl;

    if (an == binh)
        cout << "Bang nhau" << endl;

    return 0;
}

32. So sánh thời gian chạy

#include <iostream>
using namespace std;

int main() {
    int an, binh;
    cin >> an >> binh;

    if (an < binh)
        cout << "An nhanh hon" << endl;

    if (binh < an)
        cout << "Binh nhanh hon" << endl;

    if (an == binh)
        cout << "Bang nhau" << endl;

    return 0;
}

33. Chuyển số sang chữ

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n == 1) cout << "One";
    if (n == 2) cout << "Two";
    if (n == 3) cout << "Three";
    if (n == 4) cout << "Four";
    if (n == 5) cout << "Five";
    if (n == 6) cout << "Six";
    if (n == 7) cout << "Seven";
    if (n == 8) cout << "Eight";
    if (n == 9) cout << "Nine";
    if (n == 10) cout << "Ten";

    return 0;
}

34. Tìm số lớn nhất

#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    if (a > b && a > c) cout << a;
    if (b > a && b > c) cout << b;
    if (c > a && c > b) cout << c;

    return 0;
}

35. Tính niên

#include <iostream>
using namespace std;

int main() {
    int t;
    cin >> t;

    if (t > 0 && t <= 11) cout << "Thieu nhi";
    if (t > 11 && t <= 25) cout << "Thieu nien";
    if (t > 25 && t <= 50) cout << "Trung nien";
    if (t > 50) cout << "Lao nien";

    return 0;
}

36. Xếp loại học sinh

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double HKI, HKII;
    cin >> HKI >> HKII;

    double TBCN = (HKI + HKII * 2) / 3.0;
    cout << fixed << setprecision(1) << TBCN << endl;

    if (TBCN >= 8.0) cout << "Gioi";
    if (TBCN >= 6.5 && TBCN < 8.0) cout << "Kha";
    if (TBCN >= 5.0 && TBCN < 6.5) cout << "Trung binh";
    if (TBCN >= 3.5 && TBCN < 5.0) cout << "Yeu";
    if (TBCN < 3.5) cout << "Kem";

    return 0;
}

37.Tính mùa trong năm 1

#include <iostream>
using namespace std;

int main() {
    int thang;
    cin >> thang;

    if (thang == 2 || thang == 3 || thang == 4) cout << "Mua Xuan";
    if (thang == 5 || thang == 6 || thang == 7) cout << "Mua Ha";
    if (thang == 8 || thang == 9 || thang == 10) cout << "Mua Thu";
    if (thang == 11 || thang == 12 || thang == 1) cout << "Mua Dong";

    return 0;
}

38. Tính mùa trong năm 2

#include <iostream>
using namespace std;

int main() {
    int t;
    cin >> t;

    if (t >= 0 && t <= 20) cout << "Mua Dong";
    if (t >= 21 && t <= 25) cout << "Mua Xuan";
    if (t >= 26 && t <= 30) cout << "Mua Thu";
    if (t > 30) cout << "Mua Ha";

    return 0;
}

39. Kiểm tra số nguyên dương hay âm

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n > 0) cout << "So duong";
    if (n < 0) cout << "So am";
    if (n == 0) cout << "So khong";

    return 0;
}

40. Kiểm tra hai số nguyên cùng dấu hay khác dấu

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    if (a == 0 || b == 0) cout << 0;
    if ((a > 0 && b > 0) || (a < 0 && b < 0)) cout << 1;
    if ((a > 0 && b < 0) || (a < 0 && b > 0)) cout << -1;

    return 0;
}

41. Kiểm tra số nguyên có chia hết cho 6?

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n % 6 == 0)
        cout << "Yes";
    else
        cout << "No";

    return 0;
}

42. Kiểm tra số nguyên có lớn hơn 100?

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n > 100)
        cout << "Yes";
    else
        cout << "No";

    return 0;
}

43. Kiểm tra cân nặng

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n > 80) {
        cout << "Beo phi";
    } else if (n < 45) {
        cout << "Suy dinh duong";
    } else {
        cout << "Binh thuong";
    }

    return 0;
}

44. Kiểm tra chiều cao

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n > 180) {
        cout << "Huu cao co";
    } else if (n < 100) {
        cout << "Nam lun cute";
    } else {
        cout << "Binh thuong";
    }

    return 0;
}

45. Tìm số ngày của một tháng

#include <iostream>
using namespace std;

int main() {
    int t, n;
    cin >> t >> n;

    int ngay;

    // Kiểm tra năm nhuận
    bool namNhuan = (n % 400 == 0) || (n % 4 == 0 && n % 100 != 0);

    if (t == 2) {
        if (namNhuan) {
            ngay = 29;
        } else {
            ngay = 28;
        }
    } else if (t == 4 || t == 6 || t == 9 || t == 11) {
        ngay = 30;
    } else {
        ngay = 31;
    }

    cout << ngay;

    return 0;
}

46. Tính nút của biển số xe

#include <iostream>
using namespace std;

int main() {
    int soXe;
    cin >> soXe;

    int tong = 0, tmp = soXe;

    while (tmp > 0) {
        tong += tmp % 10;
        tmp /= 10;
    }

    int nut = tong % 10;

    cout << nut << endl;

    if (nut == 9) {
        cout << "Yes";
    } else {
        cout << "No";
    }

    return 0;
}

47. Kiểm tra số nguyên có phải là số chính phương?

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n < 0) {

        cout << "No";
    } else {
        int sq = sqrt(n);
        if (sq * sq == n) {
            cout << "Yes";
        } else {
            cout << "No";
        }
    }

    return 0;
}

48.Kiểm tra tam giác

#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    if (a + b > c && a + c > b && b + c > a) {
        cout << "Yes" << endl;

        // Kiểm tra tam giác đều
        if (a == b && b == c) {
            cout << "Deu";
        }
        else if (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a) {
            cout << "Vuong";
        }
        else if (a == b || b == c || a == c) {
            cout << "Can";
        }
        else {
            cout << "Thuong";
        }
    } else {
        cout << "No";
    }

    return 0;
}

49. Tính tiền taxi

#include <iostream>
using namespace std;

int main() {
    int km;
    cin >> km;
    int tien = 0;

    if (km <= 0) {
        tien = 0;
    } else if (km == 1) {
        tien = 12000;
    } else if (km <= 30) {
        tien = 12000 + (km - 1) * 10000;
    } else {
        tien = 12000 + 29 * 10000 + (km - 30) * 9000;
    }

    cout << tien;

    return 0;
}

50. Tính tiền điện

#include <iostream>
using namespace std;

int main() {
    int kWh;
    cin >> kWh;
    int tien = 0;

    if (kWh <= 50) {
        tien = kWh * 600;
    } else if (kWh <= 100) {
        tien = 50 * 600 + (kWh - 50) * 800;
    } else if (kWh <= 200) {
        tien = 50 * 600 + 50 * 800 + (kWh - 100) * 1100;
    } else {
        tien = 50 * 600 + 50 * 800 + 100 * 1100 + (kWh - 200) * 1500;
    }

    cout << tien;

    return 0;
}

51. Kiểm tra số nguyên chẵn lẻ, âm dương?

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    if (n % 2 == 0) {
        cout << "Chan" << endl;
        if (n > 0) {
            cout << "Duong";
        } else if (n < 0) {
            cout << "Am";
        } else {
            cout << "Khong";
        }
    } else {
        cout << "Le" << endl;
        if (n > 0) {
            cout << "Duong";
        } else {
            cout << "Am";
        }
    }

    return 0;
}

52. Đánh giá kết quả học tập theo tổng điểm

#include <iostream>
using namespace std;

int main() {
    int diem;
    cin >> diem;

    if (diem >= 85) {
        cout << "Loai A" << endl;
    } else if (diem >= 60) {
        cout << "Loai B" << endl;
    } else {
        cout << "Loai C" << endl;
    }

    if (diem >= 90) {
        cout << "Xuat sac";
    } else if (diem >= 80) {
        cout << "Gioi";
    } else if (diem >= 70) {
        cout << "Kha";
    } else if (diem >= 60) {
        cout << "Trung binh";
    } else if (diem >= 50) {
        cout << "Yeu";
    } else {
        cout << "Kem";
    }

    return 0;
}

53. Kiểm tra tuổi của một người đang ở giai đoạn nào?

#include <iostream>
using namespace std;

int main() {
    int age;
    cin >> age;

    if (age <= 15) {
        cout << "Tre em" << endl;
    } else if (age <= 60) {
        cout << "Nguoi truong thanh" << endl;
    } else {
        cout << "Nguoi cao tuoi" << endl;
    }

    if (age <= 5) {
        cout << "Tre mam non";
    } else if (age <= 10) {
        cout << "Tre tieu hoc";
    } else if (age <= 15) {
        cout << "Tre trung hoc";
    } else if (age <= 22) {
        cout << "Sinh vien";
    } else if (age <= 60) {
        cout << "Nguoi di lam";
    } else if (age <= 65) {
        cout << "Sap nghi huu";
    } else {
        cout << "Da nghi huu";
    }

    return 0;
}

54. Tìm 2 chữ số đầu và 2 chữ số cuối

#include <iostream>
using namespace std>
#include <iomanip> 

int main() {
    int n;
    cin >> n;

    int firstTwo = n / 10;      
    int lastTwo = n % 100;      

    cout << firstTwo << " " << setw(2) << setfill('0') << lastTwo;

    return 0;
}

55. Tìm số lớn nhất trong 4 số

#include <iostream>
using namespace std;

int main() {
    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if (a == b && b == c && c == d) {
        cout << "=";
    } else {
        int maxVal = a;
        if (b > maxVal) maxVal = b;
        if (c > maxVal) maxVal = c;
        if (d > maxVal) maxVal = d;
        cout << maxVal;
    }

    return 0;
}

56. Kiểm tra ba số có là 3 cạnh của một tam giác và tính chu vi, diện tích

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main() {
    double a, b, c;
    cin >> a >> b >> c;

    if (a + b > c && a + c > b && b + c > a) {
        cout << "Day la 3 canh cua mot tam giac" << endl;

        double chuVi = a + b + c;
        double p = chuVi / 2; // nửa chu vi
        double dienTich = sqrt(p * (p - a) * (p - b) * (p - c)); 

        cout << fixed << setprecision(2) << chuVi << " " 
             << fixed << setprecision(1) << dienTich;
    } else {
        cout << "Day khong phai la 3 canh cua mot tam giac";
    }

    return 0;
}

57. Kiểm tra 2 số a, b có là 2 kích thước của hình chữ nhật và tính chu vi, diện tích

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    if (a > 0 && b > 0) {
        cout << "Day la 2 kich thuoc cua mot hinh chu nhat" << endl;
        int chuVi = 2 * (a + b);
        int dienTich = a * b;
        cout << chuVi << " " << dienTich;
    } else {
        cout << "Day khong phai la 2 kich thuoc cua mot hinh chu nhat" << endl;
        if (a <= 0 && b <= 0) {
            cout << "a va b la so am";
        } else if (a <= 0) {
            cout << "a la so am";
        } else {
            cout << "b la so am";
        }
    }

    return 0;
}

58. In ra các chữ số lẻ của một số có 8 chữ số

#include <iostream>
using namespace std;

int main() {
    long long n;
    cin >> n;

    string s = to_string(n);
    bool hasLe = false;

    for (char c : s) {
        int digit = c - '0';
        if (digit % 2 != 0) {
            if (hasLe) cout << " ";
            cout << digit;
            hasLe = true;
        }
    }

    if (!hasLe) {
        cout << "-";
    }

    return 0;
}

59. Tính tổng các chữ số chẵn của một số có 8 chữ số

#include <iostream>
using namespace std;

int main() {
    long long n;
    cin >> n;

    string s = to_string(n);
    int tong = 0;

    for (char c : s) {
        int digit = c - '0';
        if (digit % 2 == 0) {
            tong += digit;
        }
    }

    if (tong == 0) {
        cout << "-";
    } else {
        cout << tong;
    }

    return 0;
}

60. Tìm chữ số lớn nhất và nhỏ nhất của một số có 8 chữ số

#include <iostream>
#include <string>
using namespace std;

int main() {
    long long a;
    cin >> a;

    string s = to_string(a);
    int maxDigit = s[0] - '0';
    int minDigit = s[0] - '0';

    for (char c : s) {
        int digit = c - '0';
        if (digit > maxDigit) maxDigit = digit;
        if (digit < minDigit) minDigit = digit;
    }

    cout << maxDigit << " " << minDigit;

    return 0;
}

61. In những số tự nhiên từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    for (int i = 1; i <= n; i++) {
        if (i > 1) cout << " "; 
        cout << i;
    }

    return 0;
}

62. Tính tổng những số tự nhiên từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    int tong = 0;
    for (int i = 1; i <= n; i++) {
        tong += i;
    }

    cout << tong;

    return 0;
}

63. In những số tự nhiên chia hết cho 3 từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    for (int i = 3; i <= n; i += 3) {
        if (i > 3) cout << " ";
        cout << i;
    }

    return 0;
}

64. Đếm số lượng số tự nhiên chia hết cho 3 từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    int count = n / 3; 

    cout << count;

    return 0;
}

65. Tính tổng những số tự nhiên chẵn từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    int tong = 0;
    for (int i = 2; i <= n; i += 2) {
        tong += i;
    }

    cout << tong;

    return 0;
}

66. Tính tổng những số tự nhiên chia hết cho 3 và 5 từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    int tong = 0;
    for (int i = 15; i <= n; i += 15) {
        tong += i;
    }

    cout << tong;

    return 0;
}

67. Tính tổng những số tự nhiên chia hết cho 3 hoặc 5 từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    int tong = 0;
    for (int i = 1; i <= n; i++) {
        if (i % 3 == 0 || i % 5 == 0) {
            tong += i;
        }
    }

    cout << tong;

    return 0;
}

68. Tính trung bình cộng những số tự nhiên chẵn từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    int tong = 0;
    for (int i = 1; i <= n; i++) {
        if (i % 3 == 0 || i % 5 == 0) {
            tong += i;
        }
    }

    cout << tong;

    return 0;
}

69. Tính trung bình cộng những số tự nhiên chia hết cho 5 từ 1 đến n

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int n;
    cin >> n;

    int tong = 0, dem = 0;
    for (int i = 1; i <= n; i++) {
        if (i % 5 == 0) {
            tong += i;
            dem++;
        }
    }

    if (dem == 0) {
        cout << "-";
    } else {
        double trungBinh = (double)tong / dem;
        cout << fixed << setprecision(1) << trungBinh;
    }

    return 0;
}

70. Tính trung bình cộng những số tự nhiên chia hết cho 3 và 5 từ 1 đến n

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int n;
    cin >> n;

    int tong = 0, dem = 0;
    for (int i = 15; i <= n; i += 15) {
        tong += i;
        dem++;
    }

    if (dem == 0) {
        cout << "-";
    } else {
        double trungBinh = (double)tong / dem;
        cout << fixed << setprecision(1) << trungBinh;
    }

    return 0;
}

71. In những số tự nhiên từ m đến n

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    for (int i = a; i <= b; i++) {
        if (i > a) cout << " "; 
        cout << i;
    }

    return 0;
}

72. Tính tổng những số nguyên từ m đến n

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int tong = 0;
    for (int i = a; i <= b; i++) {
        tong += i;
    }

    cout << tong;

    return 0;
}

73. Đếm số lượng số nguyên chia hết cho 3 từ m đến n

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int count = 0;
    for (int i = a; i <= b; i++) {
        if (i % 3 == 0) {
            count++;
        }
    }

    cout << count;

    return 0;
}

74. In những số nguyên chẵn từ m đến n

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    bool hasEven = false;
    for (int i = a; i <= b; i++) {
        if (i % 2 == 0) {
            if (hasEven) cout << " ";
            cout << i;
            hasEven = true;
        }
    }

    if (!hasEven) cout << "-";

    return 0;
}

75. Đếm số lượng số nguyên chẵn từ m đến n

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int dem = 0;
    for (int i = a; i <= b; i++) {
        if (i % 2 == 0) {
            dem++;
        }
    }

    cout << dem;

    return 0;
}

76. Tính tổng những số nguyên chẵn từ m đến n

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int count = 0;
    for (int i = a; i <= b; i++) {
        if (i % 2 == 0) {
            count++;
        }
    }

    cout << count;

    return 0;
}

77. Tính trung bình cộng những số nguyên chẵn từ m đến n

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int tong = 0, dem = 0;
    for (int i = a; i <= b; i++) {
        if (i % 2 == 0) {
            tong += i;
            dem++;
        }
    }

    if (dem == 0) {
        cout << "-";
    } else {
        cout << tong / dem; 
    }

    return 0;
}

78. Tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến n

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int tong5 = 0;
    int tong2_3 = 0, dem2_3 = 0;

    for (int i = a; i <= b; i++) {
        if (i % 5 == 0) {
            tong5 += i;
        }
        if (i % 2 == 0 && i % 3 == 0) {
            tong2_3 += i;
            dem2_3++;
        }
    }

    int trungBinh2_3 = (dem2_3 == 0) ? 0 : tong2_3 / dem2_3;

    cout << tong5 << " " << trungBinh2_3;

    return 0;
}

79. Tính trung bình cộng những số nguyên chia hết cho 2 hoặc 3 từ m đến n

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int dem7 = 0;
    int tong2_3 = 0, dem2_3 = 0;

    for (int i = a; i <= b; i++) {
        if (i % 7 == 0) {
            dem7++;
        }
        if (i % 2 == 0 || i % 3 == 0) {
            tong2_3 += i;
            dem2_3++;
        }
    }

    double trungBinh2_3 = (dem2_3 == 0) ? 0.0 : (double)tong2_3 / dem2_3;

    cout << dem7 << " " << fixed << setprecision(1) << trungBinh2_3;

    return 0;
}

80. Đếm số nguyên chia hết cho 5 và in những số nguyên chia hết cho 5 từ m đến n

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    vector<int> chia5;
    for (int i = a; i <= b; i++) {
        if (i % 5 == 0) {
            chia5.push_back(i);
        }
    }

    cout << chia5.size() << " -";
    for (int num : chia5) {
        cout << " " << num;
    }

    return 0;
}

81. Tìm ước chung lớn nhất của hai số nguyên a và b

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    a = abs(a);
    b = abs(b);

    while (b != 0) {
        int r = a % b;
        a = b;
        b = r;
    }

    cout << a;

    return 0;
}

82. Rút gọn phân số

#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main()
{
    string s;
    getline(cin,s);
    stringstream ss(s);
    string w;
    vector<string>ws;
    while (ss>>w)
    {
        ws.push_back(w);
    }
    for (int i=0; i<ws.size()-1;i++)
    {
        cout<<ws[i]<<" ";
    }
    return 0;
}

83. Tìm số lượng chữ số của một số nguyên n

#include <iostream>
using namespace std;

int main() {
    long long so;
    cin >> so;
    if (so == 0) {
        cout << 1;
        return 0;
    }
    if (so < 0) so = -so;

    int dem = 0;
    while (so > 0) {
        so /= 10;
        dem++;
    }

    cout << dem;

    return 0;
}

84. In các chữ số của một số nguyên n

#include <iostream>
#include <vector>
using namespace std;

int main() {
    long long so;
    cin >> so;
    if (so < 0) so = -so;

    vector<int> chu_so_vec;
    if (so == 0) chu_so_vec.push_back(0);
    while (so > 0) {
        chu_so_vec.push_back(so % 10);
        so /= 10;
    }

    for (int i = chu_so_vec.size() - 1; i >= 0; i--) {
        cout << chu_so_vec[i];
        if (i > 0) cout << " ";
    }

    return 0;
}

85. Tính tổng các chữ số của một số nguyên n

#include <iostream>
using namespace std;

int main() {
    long long so;
    cin >> so;
    if (so < 0) so = -so;

    int tong = 0;
    while (so > 0) {
        tong += so % 10;
        so /= 10;
    }

    cout << tong;

    return 0;
}

86. In các chữ số chẵn của một số nguyên n

#include <iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[20],k=0;
    while (n>0)
    {
        int res=n%10;
        if (res%2==0)
        {
            a[k++]=res;

        }
        n/=10;
    }
    for (int i=k-1; i>=0;i--)
    {
        cout<<a[i]<< " ";

    }
    return 0;
}

87. Tính tổng các chữ số chẵn của một số nguyên n

#include <iostream>
using namespace std;
string kt_so_chia_het_cho_5(int n)
{
    if (n%5==0)
    {
        return "Yes";
    }
    return "No";
}
int main()
{
    int n;
    cin>>n;
    string res=kt_so_chia_het_cho_5(n);
    cout<<res<<"\n";
    return 0;
}

88. Tính tổng các chữ số lớn hơn số x của một số nguyên n

#include <iostream>
using namespace std;
int ucln(int a,int b)
{
    while (a!=b)
    {
        if (a>b)
        {
            a-=b;
        }
        else
        {
            b-=a;
        }
    }
    return a;
}
int main()
{
    int a,b;
    cin>>a>>b;
    int U=ucln(a,b);
    int tu=a/U;
    int mau=b/U;
    cout<<tu<<"/"<<mau;
    return 0;
}

89. Đếm số lượng chữ số lẻ của một số nguyên n

#include <iostream>
using namespace std;

int main() {
    long long so;
    cin >> so;
    if (so < 0) so = -so;

    int dem_le = 0;
    while (so > 0) {
        int chu_so = so % 10;
        if (chu_so % 2 != 0) {
            dem_le++;
        }
        so /= 10;
    }

    cout << dem_le;

    return 0;
}

90. Đảo ngược chữ số của một số nguyên n

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int k, x;
    cin >> k >> x;
    int a, n;
    int result = 0;
    for (int i = 0; i < k; i++) {
        cin >> a >> n;
        result += a * pow(x, n);
    }
    cout << result << endl;
    return 0;
}

91. Tìm chữ số lớn nhất của một số nguyên n

#include <iostream>
using namespace std;

void in_dong(int d) {
    for (int i = 0; i < d; i++) cout << '*';
    cout << endl;
}

void in_dong_rong(int d) {
    cout << '*';
    for (int i = 0; i < d - 2; i++) cout << ' ';
    if (d > 1) cout << '*';
    cout << endl;
}

int main() {
    int d, r;
    cin >> d >> r;

    if (r >= 1) in_dong(d);
    for (int i = 0; i < r - 2; i++) in_dong_rong(d);
    if (r > 1) in_dong(d);

    return 0;
}

92. Tìm chữ số nhỏ nhất của một số nguyên n

#include <iostream>
#include <iomanip>
using namespace std;
int cong(int a, int b) {
    return a + b;
}

double chia(double a, double b) {
    return a / b;
}

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    int tong = cong(a, cong(b, c));

    double thu2 = (double)a/b+c;

    double thu3 = chia(a, (b + c));
    cout << tong << " ";
    cout << fixed << setprecision(2) << thu2 << " ";
    cout << fixed << setprecision(3) << thu3 << endl;

    return 0;
}

93.Tìm chữ số lẻ lớn nhất của một số nguyên n

#include <iostream>
using namespace std;
int min2(int x, int y) {
    return (x < y) ? x : y;
}

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    int res = min2(a, min2(b, c));
    cout << res << endl;

    return 0;
}

94. Tìm chữ số chẵn nhỏ nhất của một số nguyên n

#include <iostream>
using namespace std;

int main() {
    long long so;
    cin >> so;
    if (so < 0) so = -so;

    int chan_nho_nhat = 10;
    while (so > 0) {
        int chu_so = so % 10;
        if (chu_so % 2 == 0 && chu_so < chan_nho_nhat) {
            chan_nho_nhat = chu_so;
        }
        so /= 10;
    }

    if (chan_nho_nhat == 10) cout << "-";
    else cout << chan_nho_nhat;

    return 0;
}

95. Tính số gốc của một số nguyên n

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n];
    int t=0,d=n;
    for (int i=0;i<n;i++)
    {
        cin>>a[i];
        t+=a[i];
    }
    double tbc=(double)t/d;
    cout<<setprecision(1)<<fixed<<tbc;
    return 0;
}

96.In ra k số nguyên dương chẵn đầu tiên

#include <iostream>
#include <iomanip>
#include <sstream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n],t=0,d=0;
    for (int i=0; i<n; i++)
    {
        cin>>a[i];
        if (a[i]%2==0)
        {
            d++;
            t+=a[i];
        }
    }
    if (d==0) cout<<"-";
    else
    {
    double tbc=(double)t/d;
    cout<<setprecision(2)<<fixed<<tbc;
    }
    return 0;
}

97. Tìm số chia hết cho 3 mà không chia hết cho 9 thứ k

#include <iostream>
#include <sstream>
#include <bits/stdc++.h>
using namespace std;
bool ktnt(int n)
{
    if (n<2) return 0;
    for (int i=2; i*i<=n; i++)
    {
        if (n%i==0) return 0;
    }
    return 1;
}
int main()
{
    string line;
    getline(cin,line);
    stringstream ss(line);
    int x,d=0;
    while (ss>>x)
    {
        if (ktnt(x)) d++;
    }
    if (d==0) cout<<"-";
    else
    {
        cout<<d;
    }
    return 0;
}

98.Tính tổng k số chẵn đầu tiên

#include <iostream>
using namespace std;
int ktnt(int n)
{
    if (n<2) return 0;
    for (int i=2; i*i<=n;i++)
    {
        if (n%i==0) return 0;
    }
    return 1;
}
int main()
{
    int n;
    cin>>n;
    int i=0,d=0,t=0;
    while (d<n)
    {
        if (ktnt(i) && ktnt(i+2))
        {
            d++;
            t+=i;
        }
        i++;
    }
    cout<<t;
    return 0;

}

99. Tính trung bình cộng k số tự nhiên đầu tiên không chia hết cho 3

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int d=0,t=0,i=0;
    while (d<n)
    {
        if (i%3!=0)
        {
            d++;
            t+=i;
        }
        i++;
    }
    double tbc=t*1.0/d;
    cout<<setprecision(1)<<fixed<<tbc;
    return 0;
}

100. Tính số tháng gửi tiền tiết kiệm để được số tiền n

#include <iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    int d=0,t=a,k=a*0.02;
    while (t<=b)
    {
        t=t+k;
        k=t*0.02;
        d++;
    }
    cout<<d;
    return 0;

}

Lời kết

Bộ tài liệu 100 bài tập C++ từ cơ bản đến nâng cao ra đời nhằm cung cấp cho các bạn học sinh, sinh viên và những người yêu thích lập trình một hành trang vững chắc để rèn luyện kỹ năng lập trình C++ một cách toàn diện. Qua 100 bài tập, từ những bài cơ bản về biến, kiểu dữ liệu, cấu trúc điều kiện, vòng lặp, mảng, chuỗi, đến những bài nâng cao về hàm, con trỏ, cấu trúc dữ liệu, thuật toán, lập trình hướng đối tượng và các bài toán thực tiễn, người học sẽ từng bước củng cố lý thuyết, nâng cao tư duy giải quyết vấn đề và phát triển khả năng tự học.

Điểm đặc biệt của tài liệu là mọi bài tập đều kèm lời giải chi tiết, hướng dẫn từng bước thực hiện và giải thích thuật toán. Điều này không chỉ giúp người học hiểu rõ cách giải mà còn rèn luyện kỹ năng đọc hiểu code, tối ưu thuật toán và phát hiện lỗi. Thêm vào đó, các bài tập được sắp xếp theo mức độ khó tăng dần, từ dễ đến khó, giúp người học dễ dàng theo dõi, luyện tập theo năng lực, đồng thời tạo nền tảng để tiếp cận các bài toán phức tạp trong các kỳ thi tin học, lập trình, hoặc ứng dụng trong thực tế.

Trong quá trình học, người học được khuyến khích thử sức với các biến thể của bài tập, tự viết code và kiểm tra kết quả. Sự kết hợp giữa lý thuyết, thực hành và tự đánh giá sẽ giúp nâng cao kỹ năng lập trình một cách bền vững. Đây cũng là cơ hội để rèn luyện tư duy logic, khả năng phân tích và sáng tạo, những yếu tố quan trọng trong nghề lập trình.

Hy vọng tài liệu này sẽ là người bạn đồng hành hữu ích, giúp các bạn tự tin giải quyết các bài toán lập trình C++, từ cơ bản đến nâng cao, và mở rộng khả năng ứng dụng kiến thức trong học tập, thi cử và dự án thực tế. Chúc các bạn học tập hiệu quả, yêu thích lập trình và gặt hái nhiều thành công trong năm học 2025-2026 và các chặng đường lập trình tiếp theo.

Lần cuối cùng xin chúc các bạn thành công trong bài học này

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

 

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

2 Đề thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang có đáp án

2 Đề thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang có đáp án

SỞ GIÁO DỤC VÀ ĐÀO TẠO
TỈNH TIỀN GIANG
KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH

TrUnG học Cơ Sở

Năm học 2023-2024
Môn thi: TIN HỌC

Thời gian làm bài: 150 phút, không kể thời gian phát đề
Ngày thi: 27/3/2024

ĐỀ THI CHÍNH THỨC
(Đề thi có 04 trang, gồm 05 bài)

Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!

  1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  3. Giải đề 3 thi học sinh giỏi tin học lập trình Python có đáp án
  4. Giải đề 4 ôn thi học sinh giỏi Tin Học THCS lập trình Python có đáp án
  5. Giải đề 5 và đáp án thi HSG Tin Python có số Pell.
  6. Giải đề 6 và đáp án bồi dưỡng học sinh giỏi tin 10 có số Armstrong
  7. Giải đề 7 và đáp án  thi học sinh giỏi tin học 10 Python có số Collatz
  8. Giải đề 8 trong 20 đề Bồi dưỡng học sinh giỏi Tin học lớp 9 có số Kaprekar.
  9. Giải đề 9 thi HSG Tin học lớp 8 lập trình Python có số Happy
  10. Giải đề 10 thi tin học trẻ THPT có bài  In các xâu con trong xâu s.
TỔNG quan các bài thi

Thứ tự Tên bài File chương trình File dữ liệu vào File kết quả
1 Tiền điện ELCOST.* ELCOST.INP ELCOST.OUT
2 Độ mạnh của xâu STRONG.* STRONG.INP STRONG.OUT
3 Tổng dòng cột SUM.* SUM.INP SUM.OUT
4 Xâu lặp SUBSTR.* SUBSTR.INP SUBSTR.OUT
5 Phần thưởng GIFT.* GIFT.INP GIFT.OUT

Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

 

Học sinh chỉ được chọn một trong các môi trường quy định ở trên lập trình để làm toàn bộ bài thi.

Bài 1: Tiền điện (4,0 điểm) Tên chương trình: ELCOST.*

Giá bán lẻ điện sinh hoạt được tính theo 3 bậc gồm:

  • Bậc 1: 100 Kwh đầu tiên, có giá là 2500 đồng/Kwh
  • Bậc 2: Từ Kwh 101 đến 200, có giá là 3000 đồng/Kwh
  • Bậc 3: Từ Kwh 201 trở lên, có giá là 3500 đồng/Kwh

Yêu cầu: Tính tổng tiền điện phải trả của một khu phố gồm n hộ gia đình.

Dữ liệu vào: Đọc từ file văn bản ELCOST.INP gồm hai dòng:

  • Dòng 1: Chứa số nguyên dương n (1 < n < 104) là số lượng hộ gia đình.
  • Dòng 2: Chứa n số nguyên dương ai (1 < i < n, 1 < ai < 104), với mỗi ai là số Kwh sử dụng của hộ gia đình thứ i. Giữa hai số liên tiếp được cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản ELCOST.OUT một số nguyên dương là tổng tiền điện của n hộ gia đình.

Ví dụ:

ELCOST.INP ELCOST.OUT
3

15 165 205

1050000

 

 

Giải thích:

Có 3 hộ gia đình sử dụng số Kwh lần lượt là: 15, 165 và 205

Số tiền hộ thứ nhất: 15*2500 = 37500

Số tiền hộ thứ hai: 100*2500 + 65*3000 = 445000

Số tiền hộ thứ ba: 100*2500 + 100*3000 + 5*3500 = 567500

Nên tổng số tiền là: 37500 + 445000 + 567500 = 1050000

Bài 2: Độ mạnh của xâu (4,0 điểm) Tên chương trình: STRONG.*

Cho xâu s chỉ gồm các kí tự in thường trong bảng chữ cái Tiếng Anh và kí tự số từ ‘0’ đến ‘9’.

Yêu cầu: Tìm độ mạnh của xâu. Biết rằng độ mạnh của xâu là tích của số kí tự phân biệt xuất hiện trong xâu với số lần xuất hiện nhiều nhất của một kí tự trong xâu.

Dữ liệu vào: Đọc từ file văn bản STRONG.INP gồm một dòng chứa xâu s có chiều dài không quá 103 kí tự. Trong xâu không chứa khoảng trắng và kí tự đặc biệt.

Kết quả: ghi ra file văn bản STRONG.OUT một số nguyên dương là độ mạnh của xâu.

Ví dụ:

STRONG.INP STRONG.OUT
xy11z2yyzxy0y 30
ggggg__________________ 5

Giải thích:

Ở test 1: Xâu s = ‘xy11z2yyzxy0y’. Số kí tự phân biệt trong xâu s là 6 (gồm ‘x’, ‘y’, ‘1’, ‘z’, ‘2’, ‘0’) và số lần xuất hiện nhiều nhất của một kí tự là 5 (kí tự ‘y’). Nên độ mạnh của xâu là 6 * 5 = 30.

Ở test 2: Xâu s = ‘ggggg’. Số kí tự phân biệt trong xâu s là 1 (kí tự ‘g’) và số lần xuất hiện nhiều nhất là 5. Nên độ mạnh của xâu là 1 * 5 = 5.

Bài 3: Tổng dòng cột (4,0 điểm)  Tên chương trình: SUM.*

Cho ma trận a gồm m dòng và n cột. Ma trận b được tạo bằng cách: bij = (tổng dòng i trên ma trận a + tổng cột j trên ma trận a) – aij Yêu cầu: Tìm giá trị nhỏ nhất trong ma trận b.

Dữ liệu vào: Đọc từ file văn bản SUM.INP gồm nhiều dòng:

  • Dòng 1: Chứa hai số nguyên dương theo thứ tự là m, n (1 < m, n < 102). Giữa hai số cách nhau bởi một dấu cách.
  • m dòng tiếp theo, mỗi dòng chứa n số nguyên dương aij (0 < aij < 109). Giữa hai số liên tiếp được cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản SUM.OUT một số nguyên dương là giá trị nhỏ nhất tìm được trong ma trận b.

Ví dụ:

SUM.INP SUM.OUT
2 3 10
3 2 4
2 1 5

Giải thích: Ma trận b là 11 10 14 11 10 12

Nên giá trị nhỏ nhất trong ma trận b là 10.

Bài 4: Xâu lặp (4,0 điểm) Tên chương trình: SUBSTR.*

Xâu lặp là một xâu có đoạn đầu ngắn nhất của nó được lặp lại nhiều lần. Ví dụ ‘xyxyxyxy’ là một xâu lặp vì nó có đoạn đầu ngắn nhất là ‘xy’ được lặp lại nhiều lần. ‘xyxy’ cũng được lặp lại nhưng không được tính là đoạn đầu vì nó không ngắn nhất.

Yêu cầu: Cho n xâu. Hãy ghép đoạn đầu của mỗi xâu lặp theo thứ tự xuất hiện của xâu (nếu xâu đó là xâu lặp).

Dữ liệu vào: Đọc từ file văn bản SUBSTR.INP gồm nhiều dòng:

  • Dòng 1: Chứa số nguyên dương n (1 < n < 103) là số lượng xâu.
  • n dòng tiếp theo, mỗi dòng chứa một xâu có độ dài không quá 103 kí tự.

Lưu ý: Trong xâu chỉ chứa kí tự thường từ ‘a’ đến ‘z’ trong bảng chữ cái Tiếng Anh (không chứa khoảng trắng, kí tự số và các kí tự đặc biệt). Dữ liệu vào đảm bảo luôn có xâu lặp.

Kết quả: Ghi ra file văn bản SUBSTR.OUT là xâu ghép thu được.

Ví dụ:

SUBSTR.INP SUBSTR.OUT
4 xyabach
xyxyxyxy
abcab
abacabac
hhh

 

 

Giải thích:

Trong 4 xâu, có 3 xâu lặp theo thứ tự là: ‘xyxyxyxy’, ‘abacabac’, ‘hhh’. Ba đoạn đầu tương ứng là ‘xy’, ‘abac’, ‘h’. Nên xâu ghép là: ‘xyabach’.

Bài 5: Phần thưởng (4,0 điểm)  Tên chương trình: GIFT.*

An được mẹ cho một số phần thưởng. Có nhiều phần thưởng được xếp thành một hàng, mỗi phần thưởng có giá trị trong khoảng từ 1 đến 109. An muốn chọn những phần thưởng có giá trị tăng dần liên tiếp nhiều nhất.

Yêu cầu: Cho biết số lượng phần thưởng mà An chọn được như mong muốn.

Dữ liệu vào: Đọc từ file văn bản GIFT.INP gồm một dòng chứa các số nguyên dương là giá trị của các phần thưởng. Giữa hai số liên tiếp nhau cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản GIFT.OUT một số nguyên dương là số lượng phần thưởng An chọn được.

Ví dụ:

GIFT.INP GIFT.OUT
2 4 3 5 7 8 6 4
1 5 4 3 5 6 6 5 8 6 3

 

 

Giải thích:

Ở test 1: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 4 (2 4 3 5 7 8 6)

Ở test 2: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 3 (1 5 4 3 5 6 6 58 6) ……. -…………… ……………….. HET……… –

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

Họ và tên thí sinh:     Số báo danh:

PDF Loading...

Đáp án bài 1: Tiền điện (ELCOST)

Ý tưởng tối ưu

  • Tính tiền theo từng mức giá:
    • 100 Kwh đầu tiên: 2500 đ/Kwh
    • 101 → 200 Kwh: 3000 đ/Kwh
    • 201 Kwh trở lên: 3500 đ/Kwh
  • Duyệt qua từng hộ gia đình, tính tổng tiền.

Code Python

import sys

sys.stdin = open("ELCOST.INP", "r")
sys.stdout = open("ELCOST.OUT", "w")

n = int(input().strip())
ds_kwh = list(map(int, input().split()))

tong_tien = 0
for so_kwh in ds_kwh:
    if so_kwh <= 100:
        tong_tien += so_kwh * 2500
    elif so_kwh <= 200:
        tong_tien += 100 * 2500 + (so_kwh - 100) * 3000
    else:
        tong_tien += 100 * 2500 + 100 * 3000 + (so_kwh - 200) * 3500

print(tong_tien)

Độ phức tạp: O(n).


Đáp án bài 2: Độ mạnh của xâu (STRONG)

Ý tưởng tối ưu

  • Sử dụng dictionary (hash map) để đếm số lần xuất hiện của từng ký tự.
  • Tìm số ký tự phân biệt (O(1) mỗi ký tự).
  • Tìm số lần xuất hiện nhiều nhất (O(1) mỗi lần cập nhật).

Code Python

 

import sys
from collections import Counter

sys.stdin = open("STRONG.INP", "r")
sys.stdout = open("STRONG.OUT", "w")

s = input().strip()
tan_suat = Counter(s)

so_ky_tu_phan_biet = len(tan_suat)
tan_suat_max = max(tan_suat.values())

print(so_ky_tu_phan_biet * tan_suat_max)

 

Độ phức tạp: O(n).


Đáp án bài 3: Tổng dòng cột (SUM)

Ý tưởng tối ưu

  • Tiền xử lý tổng hàng và tổng cột để tính giá trị của ma trận B trong O(1).
  • Duyệt nhanh để tìm giá trị nhỏ nhất.

Code Python

 

import sys

sys.stdin = open("SUM.INP", "r")
sys.stdout = open("SUM.OUT", "w")

m, n = map(int, input().split())
ma_tran = [list(map(int, input().split())) for _ in range(m)]

tong_dong = [sum(hang) for hang in ma_tran]
tong_cot = [sum(ma_tran[i][j] for i in range(m)) for j in range(n)]

gia_tri_nho_nhat = float('inf')
for i in range(m):
    for j in range(n):
        b_ij = tong_dong[i] + tong_cot[j] - ma_tran[i][j]
        gia_tri_nho_nhat = min(gia_tri_nho_nhat, b_ij)

print(gia_tri_nho_nhat)

 

Độ phức tạp: O(m × n).


Đáp án bài 4: Xâu lặp (SUBSTR)

Ý tưởng tối ưu

  • Duyệt từ 1 → len(s)//2 để tìm đoạn lặp ngắn nhất.
  • Kiểm tra nhanh bằng cách ghép đoạn lặp nhiều lần.

Code Python

import sys

sys.stdin = open("SUBSTR.INP", "r")
sys.stdout = open("SUBSTR.OUT", "w")

def tim_doan_dau(xau):
    n = len(xau)
    for do_dai in range(1, n + 1):
        if n % do_dai == 0 and xau == xau[:do_dai] * (n // do_dai):
            return xau[:do_dai]
    return xau

n = int(input().strip())
ket_qua = []
for _ in range(n):
    xau = input().strip()
    ket_qua.append(tim_doan_dau(xau))

print("".join(ket_qua))

Độ phức tạp: O(n²) trong trường hợp xấu nhất, nhưng thường nhanh hơn.


Đáp án bài 5: Phần thưởng (GIFT)

Ý tưởng tối ưu

  • Duyệt 1 lần qua danh sách để tìm dãy tăng dần dài nhất (O(n)).

Code Python

 

import sys

sys.stdin = open("GIFT.INP", "r")
sys.stdout = open("GIFT.OUT", "w")

phan_thuong = list(map(int, input().split()))

max_do_dai = 1
do_dai_hien_tai = 1

for i in range(1, len(phan_thuong)):
    if phan_thuong[i] > phan_thuong[i - 1]:
        do_dai_hien_tai += 1
    else:
        max_do_dai = max(max_do_dai, do_dai_hien_tai)
        do_dai_hien_tai = 1  

print(max(max_do_dai, do_dai_hien_tai))

 

Độ phức tạp: O(n).


Tóm tắt độ phức tạp

Bài toán Tối ưu chính Độ phức tạp
ELCOST Duyệt danh sách tính tiền nhanh O(n)
STRONG Hash map để đếm tần suất O(n)
SUM Tiền xử lý tổng hàng/cột O(m × n)
SUBSTR Kiểm tra xâu lặp nhanh O(n²) (trường hợp xấu nhất)
GIFT Duyệt 1 lần để tìm dãy tăng dài nhất O(n)

Tất cả các bài toán đều chạy tối ưu và có thể xử lý nhanh dữ liệu lớn!

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

1 Đề Thi Học Sinh Giỏi Tin học THCS cấp Tỉnh có đáp án mới nhất

1 Đề Thi Học Sinh Giỏi Tin học THCS cấp Tỉnh Tiền Giang có đáp án mới nhất

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
TRUnG học Cơ Sở

Năm học 2022-2023 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 21/3/2023 ^

(Đề thi có 5 trang, gồm 5 bài)

Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!

  1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  3. Giải đề 3 thi học sinh giỏi tin học lập trình Python có đáp án
  4. Giải đề 4 ôn thi học sinh giỏi Tin Học THCS lập trình Python có đáp án
  5. Giải đề 5 và đáp án thi HSG Tin Python có số Pell.
  6. Giải đề 6 và đáp án bồi dưỡng học sinh giỏi tin 10 có số Armstrong
  7. Giải đề 7 và đáp án  thi học sinh giỏi tin học 10 Python có số Collatz
  8. Giải đề 8 trong 20 đề Bồi dưỡng học sinh giỏi Tin học lớp 9 có số Kaprekar.
  9. Giải đề 9 thi HSG Tin học lớp 8 lập trình Python có số Happy
  10. Giải đề 10 thi tin học trẻ THPT có bài  In các xâu con trong xâu s.

TỔNG quan các BÀi thi

Thứ tự  

Tên bài

File chương trình File dữ liệu vào File kết quả
Bài 1 Tương đồng SAME.* SAME.INP SAME.OUT
Bài 2 Tách xâu STRING.* STRING.INP STRING.OUT
Bài 3 May mắn LUCKY.* LUCKY.INP LUCKY.OUT
Bài 4 Tam giác TRIANGLE.* TRIANGLE.INP TRIANGLE.OUT
Bài 5 Chở hàng GOOD.* GOOD.INP GOOD.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

Bài 1: (4 điểm) Tương đồng? Tên chương trình: SAME.*

Vườn bưởi nhà Alice có n cây. Để theo dõi sự phát triển của các cây bưởi của mình, Alice thường xuyên đo và ghi lại chiều cao của chúng. Trong tuần này, Alice có được bảng chiều cao của các cây bưởi là một dãy số nguyên a[1], a[2],…, a[n], trong đó a[i] là chiều cao của cây bưởi thứ i. Nhìn vào dãy số, Alice biết có những cây có chiều cao trùng nhau và Alice gọi mỗi tần số trùng nhau là tần số “tương đồng”.

Do số lượng cây bưởi nhiều nên Alice muốn nhờ các bạn lập trình tìm tần số tương đồng lớn nhất của các cây bưởi là bao nhiêu?

Dữ liệu vào: Đọc từ file SAME. INP gồm 2 dòng:

  • Dòng 1: gồm một số nguyên dương n (0 < n <106).
  • Dòng 2: gồm n số nguyên dương a[i] (0 < ai <106), mỗi số ứng với chiều cao của một cây bưởi, giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file SAME.OUT gồm duy nhất một số nguyên dương là tần số tương đồng lớn nhất.

Ví dụ:

SAME.INP same.out
7

9 8 6 8 5 6 10

2
2

3 10

1

 

 

Giải thích bộ test 1:

Có 1 chiều cao: 5;

Có 2 chiều cao: 6;

Có 2 chiều cao: 8;

Có 1 chiều cao: 9;

Có 1 chiều cao: 10

->Tần số tương đồng lớn nhất là: 2

Bài 2: (4 điểm) Tách xâu?  Tên chương trình: STRING.*

Hôm nay, mẹ và Cám đi dự dạ hội. Tấm cũng rất muốn được đi. Nhưng trước khi đi, mẹ Cám giao cho Tấm một công việc để làm khó Tấm như sau:

Cho một xâu s gồm các ký tự là các chữ cái in hoa hoặc in thường (trong bảng chữ cái Tiếng Anh) và các kí tự số. Mẹ kế yêu cầu Tấm hãy tách các ký tự trong xâu s thành hai phần như sau:

Phần 1: gồm các chữ cái có mặt trong s nhưng viết theo thứ tự ngược lại.

Phần 2: gồm các chữ số có mặt trong xâu s nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Nếu Tấm thực hiện xong công việc thì mới được đi dự tiệc. Nhưng Tấm có thời gian rất ít nên chưa giải được bài toán. Các bạn đội tuyển Tin học hãy giúp đỡ Tấm giải bài toán để Tấm còn được đi dự tiệc nhé!

Dữ liệu vào: Đọc từ file STRING.INP gồm 1 dòng chứa xâu s có độ dài không quá 103 ký tự. Dữ liệu vào đảm trong xâu s luôn có kí tự chữ cái và kí tự chữ số. Kết quả: Ghi ra fíle STRING.OUT gồm 2 dòng:

  • Dòng 1: gồm các chữ cái trong xâu s nhưng được viết theo thứ tự ngược lại.
  • Dòng 2: gồm các chữ số trong xâu s, nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Ví dụ:

STRING.INP STRING.OUT
m2aC0ma2T3 TamCam

0223

Bài 3: (4 điểm) May mắn?  Tên chương trình: LUCKY.*

Trong buổi tiệc liên hoan cuối năm của công ty cung cấp điện thoại Thế Giới Trẻ, ghế ngồi trong hội trường của khách mời được bố trí thành một ma trận hình chữ nhật gồm m hàng và n cột. Để buổi liên hoan thêm vui vẻ, ban tổ chức cho mỗi khách mời rút ngẫu nhiên một phiếu, trên phiếu có ghi một số nguyên dương trong phạm vi từ 1 đến 109.

Ban tổ chức sẽ trao cho những người may mắn mỗi người một phần quà là một chiếc điện thoại. Biết rằng người may mắn là người có số ghi trong phiếu của

mình lớn hơn trung bình cộng của số trong phiếu của những người ngồi xung quanh người đó.

Xung quanh một người được định nghĩa như sau:

Trường hợp 1: Người ngồi ở vị trí góc (trên trái, dưới trái, trên phải, dưới

phải) của hình chữ nhật thì chỉ có 2 người ngồi xung quanh.

Trường hợp 2: Người ngồi ở vị trí bìa (trừ góc) thì có 3 người xung quanh. Trường hợp 3: Người ngồi ở các vị trí còn lại có 4 người xung quanh.

Trường hợp 1                                   Trường hợp 2                                                          Trường hợp 3

Ô gạch sọc chỉ vị trí xung quanh của vị trí được tô đen.

Bạn hãy giúp ban tổ chức xác định số lượng điện thoại cần phải chuẩn bị để trao cho những người may mắn.

Dữ liệu vào: Đọc từ file LUCKY.INP gồm:

  • Dòng 1: gồm hai số nguyên dương theo thứ tự m, n (0 < m, n <103), giữa m và n được cách nhau bởi dấu cách.
  • m dòng tiếp theo, mỗi dòng gồm n số nguyên dương có giá trị không quá 109, giữa hai số cách nhau bởi một dấu cách.

Kết quả: Ghi ra file LUCKY.OUT gồm một số nguyên là số điện thoại ban tổ chức cần chuẩn bị.

Ví dụ:

LUCKY.INP LUCKY.OUT
3 4 3
1 4 3 1
1 1 5 2
2 1 2 1

Giải thích:

Số lượng điện thoại cần chuẩn bị là 3, vì có ba người may mắn:

+ Người thứ nhất ngồi ở hàng 1, cột 2, có số phiếu là 4 (có 3 người xung quanh) + Người thứ hai ngồi ở hàng 2, cột 3, có số phiếu là 5 (có 4 người xung quanh) + Người thứ ba ngồi ở hàng 3, cột 1, có số phiếu là 2 (có 2 người xung quanh)

Bài 4: (4 điểm) Tam giác   Tên chương trình: TRIANGLE.*

Alice có n que tính, mỗi que có độ dài là một số nguyên dương. Alice muốn tạo ra các tam giác bằng cách ghép ba que tính lại với nhau, độ dài mỗi cạnh là một que tính.

Em hãy giúp Alice đếm xem có bao nhiêu tam giác được tạo thành từ các que tính này và cho biết diện tích lớn nhất trong các diện tích của các tam giác ghép được là bao nhiêu?

Biết rằng:

+ Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.

+ Ta có thể tính diện tích tam giác theo công thức sau :

s=Vp * (p — à) * (p — b) * (p — c)

Trong đó a,b,c là độ dài 3 cạnh của tam giác, và p là nửa chu vi của tam giác.

Dữ liệu vào: Đọc từ file TRIANGLE.INP gồm:

  • Dòng 1: gồm một số nguyên dương n (3 < n < 100)
  • Dòng 2: gồm n số nguyên dương a[1], a[2], …, a[n] là độ dài của n que tính (1 < a[i] < 106 1<i<n). Giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file TRIANGLE.OUT gồm:

  • Dòng 1: Ghi số lượng tam giác có thể ghép được.
  • Dòng 2: Ghi một số thực là diện tích lớn nhất của tam giác, kết quả làm tròn đến 2 chữ số ở phần thập phân. Trường hợp không có tam giác nào thì dòng này ghi -1.
TRIANGLE.INP TRIANGLE.OUT Giải thích
5 3 Có 3 tam giác được tạo từ 5 que tính trên:
1 4 5 2 3 6.00 Tam giác 1: Que thứ 2, 3, 4 Tam giác 2: Que thứ 2, 3, 5 Tam giác 3: Que thứ 2, 4, 5 Trong đó tam giác thứ 2 có 3 độ dài là 4 5 3 có có diện tích lớn nhất là 6.00
4 4 Có 4 tam giác được tạo từ 4 que tính trên:
2 2 2 2 1.73 Tam giác 1: Que thứ 1, 2, 3

Tam giác 2: Que thứ 1, 2, 4

Tam giác 3: Que thứ 1, 3, 4

Tam giác 4: Que thứ 2, 3, 4

Trong đó 4 tam giác đều có cùng diện

tích là: 1.73

3 0 Không ghép được tam giác nào
1 2 3 -1

Bài 5: (4 điểm) Hàng hóa Tên chương trình: GOOD.*

Cửa hàng tạp hóa XYZ cần chở n kiện hàng giao cho khách. Kiện hàng thứ i có trọng lượng là a[i] tấn. Cửa hàng có một xe tải có trọng tải là m tấn. Trong

chuyến hàng đầu tiên, cửa hàng muốn chở những kiện hàng đi giao thỏa mãn các yêu cầu sau:

  • Yêu cầu 1: Ưu tiên kiện hàng có trọng lượng lớn hơn sẽ được chở đi.
  • Yêu cầu 2: Xe còn đủ trọng tải chở được thì chọn tiếp kiện hàng khác thỏa mãn yêu cầu 1.

Em hãy lập trình giúp cửa hàng xác định trọng lượng các kiện hàng của chuyến xe đầu tiên.

Dữ liệu vào: Đọc từ file GOOD.INP gồm hai dòng:

  • Dòng 1: gồm số nguyên dương n (1 <n<103) là số kiện hàng và số nguyên dương m (0 < m < 109) là trọng lượng của xe tải. Giữa n và m được cách nhau bởi dấu cách.
  • Dòng 2: gồm n số nguyên dương a[i] (0 < a[i] <109, a[i] < m, 1<i<n) thể hiện trọng lượng của kiện hàng thứ i. Giữa các số được cách nhau bởi dấu cách.

Kết quả: Ghi ra file GOOD.OUT các số nguyên dương là trọng lượng của các kiện hàng trong chuyến xe đầu tiên theo trọng lượng giảm dần.

GOOD.INP GOOD.OUT
5 10

7 5 1 3 8

8 1
5 12

2 8 2 4 1

8 4

 

 

Giải thích bộ test 1:

Có n = 5 kiện hàng và xe có trọng tải m = 10 tấn Các kiện hàng có trọng lượng lần lượt là: 7 5 1 3 8 Vậy các kiện hàng được chở đi trong chuyến đầu tiên có trọng lượng lần lượt là 8 và 1.

Vì kiện hàng có trọng lượng là 8 lớn hơn trọng lượng các kiện hàng còn lại và 8 < m=10 nên được ưu tiên chọn. Trọng tải xe còn có thể chứa được là 10 – 8 = 2, nên chọn tiếp kiện hàng có trọng lượng là 1.

………………………………………………….. HẾT…………………………………………………..

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

Họ và tên thí sinh: ……………………………………………………………………………….. Số báo danh:……………………………………………………………………..

PDF Loading...

Đáp Án 5 bài Đề Thi Học Sinh Giỏi Tin học THCS cấp Tỉnh Tiền Giang

Đáp án bài 1: Tương đồng (SAME)

Ý tưởng tối ưu

  • Sử dụng dictionary (hash map) để đếm số lần xuất hiện của mỗi số (O(n)).
  • Duyệt qua dictionary để tìm giá trị xuất hiện nhiều nhất (O(n)).

Code Python

 

def tim_so_pho_bien_nhat(n, danh_sach):
    tan_suat = {}  # Tạo một dictionary để đếm số lần xuất hiện
    for so in danh_sach:
        tan_suat[so] = tan_suat.get(so, 0) + 1  # Tăng đếm số lần xuất hiện
    
    return max(tan_suat, key=tan_suat.get)  # Trả về số xuất hiện nhiều nhất

# Đọc input
n = int(input())  
danh_sach = list(map(int, input().split()))

# Xuất kết quả
print(tim_so_pho_bien_nhat(n, danh_sach))

 

Tối ưu: Sử dụng dictionary giúp truy xuất nhanh (O(1) mỗi lần cập nhật).
Độ phức tạp: O(n).


Đáp án bài 2: Tách xâu (STRING)

Ý tưởng tối ưu

  • Duyệt chuỗi để tách chữ và số (O(n)).
  • Đảo ngược danh sách chữ (O(n)).
  • Sắp xếp danh sách số (O(n log n)).
  • Ghép lại thành chuỗi (O(n)).

Code Python

 

def tach_xau(s):
    chu = []
    so = []
    
    for c in s:
        if c.isdigit():
            so.append(int(c))  # Thêm vào danh sách số
        else:
            chu.append(c)  # Thêm vào danh sách chữ
    
    chu.reverse()  # Đảo ngược chữ
    so.sort()  # Sắp xếp số
    
    return ''.join(chu) + ''.join(map(str, so))

# Đọc input
s = input()
print(tach_xau(s))

 

Tối ưu: Tách chữ và số trong 1 lần duyệt giúp tiết kiệm thời gian.
Độ phức tạp: O(n log n) do sắp xếp số.


Đáp án bài 3: May mắn (LUCKY)

Ý tưởng tối ưu

  • Duyệt từng phần tử của ma trận (O(m × n)).
  • Kiểm tra 8 ô xung quanh bằng danh sách dx, dy (O(1) mỗi lần kiểm tra).

Code Python

def dem_so_may_man(m, n, ma_tran):
    dx = [-1, -1, -1, 0, 0, 1, 1, 1]
    dy = [-1, 0, 1, -1, 1, -1, 0, 1]
    
    dem = 0
    for i in range(m):
        for j in range(n):
            tong = 0
            dem_lan_can = 0
            
            for k in range(8):  # Kiểm tra 8 ô xung quanh
                x, y = i + dx[k], j + dy[k]
                if 0 <= x < m and 0 <= y < n:
                    tong += ma_tran[x][y]
                    dem_lan_can += 1
            
            if dem_lan_can > 0 and ma_tran[i][j] > tong / dem_lan_can:
                dem += 1
    
    return dem

# Đọc input
m, n = map(int, input().split())
ma_tran = [list(map(int, input().split())) for _ in range(m)]

# Xuất kết quả
print(dem_so_may_man(m, n, ma_tran))

Tối ưu: Sử dụng dx, dy để kiểm tra 8 hướng nhanh chóng.
Độ phức tạp: O(m × n).


Đáp án bài 4: Tam giác lớn nhất (TRIANGLE)

Ý tưởng tối ưu

  • Sắp xếp trước (O(n log n)).
  • Dùng hai con trỏ để tìm bộ ba thỏa mãn (O(n²)).

Code Python

import math

def dien_tich_heron(a, b, c):
    s = (a + b + c) / 2
    return math.sqrt(s * (s - a) * (s - b) * (s - c))

def tam_giac_lon_nhat(n, canh):
    canh.sort(reverse=True)  # Sắp xếp giảm dần
    for i in range(n - 2):
        if canh[i] < canh[i + 1] + canh[i + 2]:  # Điều kiện tam giác
            return dien_tich_heron(canh[i], canh[i + 1], canh[i + 2])
    
    return 0  # Không tìm được tam giác hợp lệ

# Đọc input
n = int(input())
canh = list(map(int, input().split()))

# Xuất kết quả
print(f"{tam_giac_lon_nhat(n, canh):.2f}")

 
Độ phức tạp: O(n²).


Đáp án bài 5: Chở hàng (GOOD)

Ý tưởng tối ưu

  • Sắp xếp kiện hàng (O(n log n)).
  • Duyệt danh sách để chọn kiện hàng (O(n)).

Code Python

 

import sys
sys.stdin = open("GOOD.INP", "r")
sys.stdout = open("GOOD.OUT", "w")

# Doc so kien hang n va tai trong m
n, m = map(int, sys.stdin.readline().split())

# Doc danh sach trong luong cac kien hang
trong_luong = list(map(int, sys.stdin.readline().split()))

# Sap xep danh sach kien hang theo thu tu tang dan
trong_luong.sort()
trong_luong=trong_luong[::-1]

chon = []  # Danh sach cac kien hang duoc chon
tong_trong_luong = 0  # Tong trong luong cac kien hang duoc chon

# Duyet qua tung kien hang theo thu tu tang dan
for w in trong_luong:
    if tong_trong_luong + w <= m:  # Neu them kien hang vao van khong vuot tai trong
        chon.append(w)
        tong_trong_luong += w
    elif tong_trong_luong>m:
        break  # Neu qua tai thi dung

# Ghi ket qua ra file theo thu tu giam dan
print(*chon)

 

Tối ưu: Dùng sắp xếp + duyệt tuyến tính, tránh thử mọi khả năng (O(2ⁿ)).
Độ phức tạp: O(n log n).


Tóm tắt tối ưu

Bài toán Tối ưu chính Độ phức tạp
SAME Hash map (dictionary) O(n)
STRING Duyệt + sắp xếp O(n log n)
LUCKY Duyệt + kiểm tra nhanh O(m × n)
TRIANGLE Sắp xếp + hai con trỏ O(n²)
GOOD Sắp xếp + duyệt tuyến tính O(n log n)

Nhận xét:

  • Các bài O(n log n) chạy tốt cho n ≤ 10⁶.
  • Bài tam giác O(n²) cần tối ưu hơn nếu n > 10⁵.
  • Tránh thuật toán O(n³) nếu có thể.

Tất cả bài đều chạy tốt với dữ liệu lớn, trừ bài tam giác có thể cần cải tiến hơn nữa.

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

20 Bộ Đề thi học sinh giỏi Tin Học Tỉnh Tiền Giang có đáp án 2025

Phần 1: Các bài tập dễ và cơ bản làm được các bài này các bạn sẽ được hiểu hơn về python:

  1. Bài 1: Tính Chu Vi Và Diện Tích Hình Vuông Bằng Python mới nhất
  2. Bài 2: Học Python – Tính Chu Vi Và Diện Tích Hình Tròn Bằng Python
  3. Bài 3: Học Python – Tính Chu Vi Và Diện Tích Hình Chữ Nhật Bằng Python
  4. Bài 4: Học Python – Tính Tổng Và Tích Hai Số Nguyên Bằng Python
  5. Bài 5: Học Python – Tính Trung Bình Cộng Của 3 Số Nguyên Bằng Python
  6. Bài 6: Học Python – Tính Chu Vi Và Diện Tích Tam Giác Bằng Python
  7. Bài 7: Học Python Tính Bán Kính R của Đường Tròn Ngoại Tiếp Tam Giác bằng Python
  8. Bài 8  : Học Python – Tính Diện Tích Tam Giác bằng Python
  9. Bài 9 : Tính Điểm Trung Bình bằng Python
  10. Bài 10: Học Python – Chia Táo bằng Python

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIỀN GIANG                                                              TRUNG HỌC cơ SỞ

Năm học 2012-2013 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 27/3/2013 (Đề thi có 02 trang, gồm 05 bài)

Hãy ỉập trình giải các bài toán sau:

Bài 1: Chuyển đổi thang đo (5 điểm)               Tên chương trình: DOI.PAS

Một nhà khoa học có ba loại nhiệt kế sử dụng các thang đo nhiệt độ khác nhau: một chỉ độ Celsius (C), một chỉ độ Fahrenheit (F) và một chỉ độ Kelvin (K). Trong thí nghiệm của mình, ông đã sử dụng cả ba loại nhiệt kế và ông cần một máy tính để nhanh chóng chuyển đổi giữa các loại này. Biết công thức chuyển đổi là:

F = –C + 32
5

K = c + 273.15

Yêu cầu: Đọc vào số đo và đơn vị đo nhiệt độ, hãy chuyển đổi sang các đơn vị đo còn lại.

Dữ liệu: Vào từ file văn bản DOI.INP gồm 1 dòng chứa số thực (biểu diễn số đo nhiệt độ) và đơn vị đo nhiệt độ cần chuyển (là một trong các chữ cái F, c, K). Các số này cách nhau bởi dấu cách.

Kết quả: Ghi ra file văn bản DOI.OUT gồm 3 dòng chứa các thông tin theo thứ tự: Nhiệt độ F, Nhiệt độ c, Nhiệt độ K.

DOI.INP DOI.OUT
20 c Nhiet do F Nhiet do c Nhiet do K 68

20

293.15

 

Bài 2: Đếm số 0 (3 điểm)                                   Tên chương trình: ZERO.PAS

Tìm độ dài xâu con dài nhất chứa các số 0 liên tiếp trong 1 xâu cho trước.

Dữ liệu: Vào từ file văn bản ZERO.INP gồm 1 dòng chứa xâu chỉ gồm các kí tự 0 và 1 (không cách nhau bởi dấu cách). Độ dài xâu không quá 100.

Kết quả: Ghi ra file văn bản ZERO.OƯT chứa độ dài xâu con dài nhất chứa các số 0 liên tiếp.

ZERO.INP ZERO.OUT
00101110000110 4

 

Bài 3: Xóa kí tự (5 điểm)                                   Tên chương trình: XOAKT.PAS

Viết chương trình xóa kí tự thứ n của xâu s cho trước. Các kí tự trong xâu s được đánh số thứ tự từ 1, từ trái sang phải.

Dữ liệu: Vào từ file văn bản XOAKT.INP chứa 1 dòng theo thứ tự gồm 1 số nguyên N, dấu cách, xâu s chỉ chứa các kí tự ‘a\.’z’, ‘A\.’Z\ số N không vượt quá độ dài của xâu s đã cho. Độ dài của xâu s không vượt quá 80.

Bài 4: Tìm số âm (5 điểm)                                    Tên chương trìnhỉ SOAM.PAS

Tìm vị trí của số nguyên âm lớn nhất trong dãy số nguyên cho trước. Nếu tìm được nhiều hơn 2 vị trí thì chỉ ra vị trí đầu tiên xuất hiện (dãy số nguyên được đánh số bất đầu từ 1).

Dữ liệu: Vào từ file văn bản SOAM.INP gồm:

  • dòng thứ nhất chứa số nguyên n – số lượng phần tử có trong dãy.
  • dòng thứ hai chứa n số nguyên của dãy (các số trên cùng 1 dòng cách nhau bởi dấu cách)

Kết quả: Ghi ra file văn bản SOAM.OUT chứa vị trí của số nguyên âm lớn nhất trong dãy, nếu không tìm dược thì ghi -1.________________________________________ ________________________________________

Bài 5: Dãy số (2 điểm)                                                      Tên chương trình: DAYSO.PAS

Số nguyên f được gọi là ước số (dương) của số nguyên d nếu f lớn hơn 0 và tồn tại số nguyên n sao cho f X n = d. Ví dụ, số 12 là ước số của 60 vì 12 X 5 = 60.

Dãy số nguyên Xi, X2, …, Xn được gọi là dãy DDF nếu:

  • Mỗi Xi đều là số nguyên dương.
  • X1>1.
  • Xi+1 (với i > 1) là tổng các chữ số của tất cả các ước số (dương) của Xi.

Ví dụ

Dãy số 17, 9, 13, 5, 6, … là dãy DDF được hình thành theo cách sau:

  • Ước số (dương) của 17 là 1 và 17; tổng các chữ số là 1 + 1 + 7 = 9.
  • Ước số (dương) của 9 là 1, 3 và 9; tổng các chữ số là 1+3 + 9 = 13.
  • Ước số (dương) của 13 là 1 và 13; tổng các chữ số là 1 + 1 + 3 = 5.
  • Ước số (dương) của 5 là 1 và 5; tổng các chữ số là 1 + 5 = 6.

Biết rằng, với dãy số DDF bắt đầu bằng XI thì đến một lúc nào đó sẽ tồn tại Xn sao cho Xj = Xn, với mọi j>n. số Xn sẽ được gọi là so hạng cuối của dãy.

Yêu cầu: Xác định chiều dài của dãy DDF với số hạng đầu cho trước. Chiều dài của dãy DDF là giá trị của n, với Xn là giá trị cuối của dãy.

Dữ liệu: Vào từ file văn bản DAYSO.INP gồm 1 dòng chứa số hạng đầu XI (xi < 2000).

Kết quả: Ghi ra file văn bản DAYSO.OƯT chứa chiều dãi của dãy DDF.

———— hết——————

  • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).
  • Thí sình không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.

 

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIỀN GIANG           TRƯNG HỌC cơ SỞ

Năm học 2014-2015 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 25/3/2015 (Đề thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Tìm từ (5 điểm)                                        Tên chương trình: ỊVORD.PAS

Cho trước một xâu kí tự. Một từ được định nghĩa là một xâu con liên tiếp chứa các chữ cái (,al,zl hoặc ‘A’..’Z’). Một từ có thế được giới hạn giữa các dấu cách hoặc chấm câu. Dấu chấm câu là một trong các kí tự sau: dấu chấm (.), dấu phẩy (,), dấu chấm phẩy (;), dấu chấm than (!) hoặc dấu chấm hỏi (?).

Yêu cầu: Hãy tìm tất cả các từ có trong xâu mà có kí tự bắt đầu và kí tự kết thúc giống nhau (có phân biệt giữa chữ in hoa và chữ in thường).

Dữ liệu: Vào từ file văn bản WORD.INP chứa xâu kí tự gồm các chữ cái (‘a’…^’ hoặc ‘A’..’Z’), dấu cách, hoặc dấu chấm câu. Độ dài xâu không quá 100 kí tự.

Kết quả: Ghi ra file văn bản WORD.OƯT danh sách các từ mà có kí tự bắt đầu và kí tự kết thúc giống nhau, mỗi từ trên 1 dòng. Nếu không tìm thấy thì ghi -1.

WORD.INP WORD.OUT
dawd
Jun dawd gog, vex symphs. gog
symphs
Bài 2: Số thử tự (5 điểm)                                      Tên chương trình: INDEX.PAS

 

 

Một file văn bản chứa thông tin về học sinh của một lớp học gồm số thứ tự của học sinh và theo sau là tên của học sinh đó. Do lóp vừa nhận thêm một học sinh chuyển đến và giáo viên chủ nhiệm xếp học sinh này vào đầu danh sách nên cần đánh lại số thứ tự của các học sinh trong danh sách lóp.

Yêu cầu: Đánh lại số thứ tự của tất cả học sinh có trong danh sách bằng cách tăng số thứ tự của mỗi học sinh lên 1 đơn vị và giữ nguyên danh sách theo trật tự ban đầuT

Dữ liệu: Vào từ file văn bản INDEX.INP gồm:

  • Dòng đầu tiên chứa số nguyên N (1 < N < 100).
  • Mỗi dòng trong N dòng tiếp theo chứa thông tin của một học sinh theo thứ tự gồm: số thứ tự (số nguyên từ 1 đến 10000), dấu cách, tên của học sinh (không quá 20 kí tự).

Kết quả: Ghi ra file văn bản INDEX.OƯT danh sách học sinh nhu định dạng ban đầu nhung đã tăng số thứ tự của mỗi học sinh lên 1 đơn vị.

INDEX.INP INDEX.OUT
2 2
14 Nam 15 Nam
42 Thanh 43 Thanh

 

Bài 3: Dãy Min-Max (5 điểm)                           Tên chương trình: MINMAX.PAS

Cho trước dãy s chứa các số nguyên, vị trí các phần tử được đánh số từ 1 trở đi và từ trái sang phải.

Yêu cầu: Hãy tìm 2 dãy số nguyên dương, trong đó dãy số thứ nhất biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s và dãy số thứ hai biếu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.

Dữ liệu: Vào từ file văn bản MINMAX.INP gồm :

  • Dòng đầu chứa số nguyên N – biểu diễn số lượng phần tử của dãy (1 < N < 40)
  • Dòng thứ hai chứa N số nguyên A[i] (-231 < A[i] < 231-1 với 1< i < N)

Kết quả: Ghi ra file văn bản MINMAX.OƯT lần lượt chứa 2 dòng:

  • Dòng thứ nhất chứa dãy số biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s.
  • Dòng thứ hai chứa dãy số biểu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.

Các số trên cùng 1 dòng cách nhau bởi dấu cách.

MINMAX. INP MINMAX.OUT
7 3
3 6 -14653 2 5

 

Bài 4: Số gốc (3 điểm)                                         Tên chương trình: ROOT.PAS

Cho trước số tư nhiên a có biểu diễn trong hê cơ số 10 là a = a a _H … an SỐ gốc của số tự nhiên a được xác định như sau:

  • Nếu a chỉ có 1 chữ số thì a cũng là số gốc, ngược lại thực hiện như sau:
  • Chọn ra 2 chữ số đầu tiên từ bên trái an và an-i.
  • Tính tổng s= an + an-i:

o Nếu s <10 thì thay 2 số vừa chọn trong biểu diễn của a bằng s. o Nếu s >10 thì thay 2 số vừa chọn trong biểu diễn của a bằng S-9.

  • Lặp lại quá trình trên cho đến khi a chỉ còn 1 chữ số.
  • Số tìm được bởi quy luật trên được gọi là số gốc.

Ví dụ: Tìm số gốc của số a= 87345691. Đầu tiên, cộng 2 số 8 và 7. Ta được số 15. Vì tổng tìm được lớn hơn 10 nên ta thay 2 số đầu của a bằng 15-9, khi đó a sẽ là 6345691. Tiếp tục, cộng 2 số 6 và 3 được 9, sau khi thay thế a sẽ là 945691. Cộng 2 số 9 và 4 được 13, sau khi thay thế a sẽ là 45691. Cộng 2 số 4 và 5 được 9, sau khi thay thế a sẽ là 9691. Cộng 2 số 9 và 6 được 15, sau khi thay thế a sẽ là 691. Cộng 2 số 6 và 9 được 15, sau khi thay thế a sẽ là 61. Cộng 2 số 6 và 1 được 7, sau khi thay thế a sẽ là 7. Sơ đồ thay thế như sau:

8+7=15^15-9=6->6+3=9->9+4=13^13-9=4->4+5=9->9+6=15^15-9=6^6+9=15^ 15-9=6^6+1=7 SỐ gốc tìm được là 7.

Yêu cầu: Viết chương trình xác định số gốc của số nguyên a cho trước.

Dữ liệu: Vào từ file văn bản ROOT.INP chứa số nguyên a (< maxlongint).

Kết quả: Ghi ra file văn bản ROOT.OƯT chứa số gốc của số nguyên a.

ROOT.INP ROOT.OUT
87345691 7

 

Bài 5: Xâu SubsThree (2 điểm)                       Tên chương trình: SƯBSTH.PAS

Xâu con của xâu s được hiểu là một dãy các ký tự liên tiếp của s.

Xâu SubsThree của s là xâu con thỏa mãn:

  • Đó là xâu khác rỗng và chỉ chứa các chữ số ‘0’..’9’
  • Nếu chuyển xâu này sang số thập phân thì sẽ được số chia hết cho 3

Ví dụ, xâu “130a303” chứa 9 xâu Substhree như sau: ba xâu “3”, hai xâu “30”, hai xâu “0”, một xâu “303” và một xâu “03”. Xâu “30a3” không là xâu Substhree vì có chứa chữ cái, còn xâu “13” không xâu Substhree vì số 13 không chia hết cho 3.

Lưu ý rằng hai xâu Substhree được xem là khác nhau nếu chúng khác nhau về độ dài hoặc vị trí bắt đầu của chúng trong xâu s (mặc dù các kí tự của chúng giống nhau)

Yêu cầu: Cho trước xâu s, hãy đếm số lượng xâu Substhree chứa trong s.

Dữ liệu: Vào từ file văn bản SƯBSTH.INP chứa xâu khác rỗng s có tối đa 106 kí tự. Môi kí tự của s chỉ có thể là chữ số ‘0’..’9′ hoặc chữ in thường ‘aVy.

Kêt quả: Ghi ra fìle văn bản SƯBSTH.OƯT chứa nguyên biểu diễn số lượng xâu Substhree chứa trong s.

SUBSTH.INP SUBSTH.OUT
130a303 9

 

————— hết————————-

  • Các tập tin chương trình phải đặt theo đủng quy định (cả phần tên và phần mở rộng).
  • Thí sinh không được sử dụng tài liệu.
  • Giảm thị không giải thích gì thêm.

20 Bộ Đề thi học sinh giỏi Tin Học Tỉnh Tiền Giang có đáp án 2025

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIÈN GIANG        TRUNG HỌC co SỞ

Năm học 2013-2014 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 26/3/2014 (Đề thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Dãy Subtra (5,0 điểm)                             Tên chương trình: SUBTRA.PAS

Dãy số ti, t2,…tm được gọi là dãy Subtra nếu:

  • Mỗi phần tử ti (i=T..m) của dãy là một số nguyên lớn hơn hoặc bằng 0.
  • Mồi phần tử của dãy, bắt đầu từ phần tử thứ ba là hiệu của hai phần tử liền kề trước nó (tn+2=tn – tn-1 với t >1). Dãy sẽ kết thúc ở tm nếu tm-i<tm.

Ví dụ, nếu bắt đầu bằng hai số 120 và 71 thì dãy Subtra được phát sinh

như sau: 120; 71; 49; 22; 27. Dãy kết thúc ở số 27, độ dài của dãy là 5.

Yêu cầu: Đọc vào hai số ti và Í2, hãy tìm độ dài của dãy Subừa với hai sổ bắt đầu là ti và t2.

Dữ liệu: Vào từ fíle văn bản SƯBTRA.INP chứa hai số nguyên dương ti và t2, 0<Í2<ti< 10000, mỗi số nằm trên 1 dòng.

Kết quả: Ghi ra file văn bản SUBTRA.OƯT độ dài của dãy Subtra với hai số bắt đau là ti và t2-

SUBTRA.INP SUBTRA.OUT
120

71

5

 

Bài 2: Đọc văn bản (3,0 điểm)                                    Tên chương trình: ARAP.PAS

Tiếng Ả Rập, tiếng Ba Tư và tiếng Do Thái là các ngôn ngừ rất đặc biệt không giống như tiếng Anh và nhiều thứ tiếng khác, nó được viết từ phải sang trái. Tuy nhiên, những con số vẫn giừ nguyên (viêt từ trái sang phải). Ví dụ,

câu “manteiv fo tsaoc ffo deraeppasìd sregnessap 221 gniyrrac 777 gnieoB” sẽ được viết theo tiếng Anh là: “Boeing 777 carrying 221 passengers disappeared off coast of Vietnam

Yêu cầu: Chuyển xâu văn bản tiếng Ả Rập sang văn bản Tiếng Anh.

Dữ liệu: Vào từ file văn bản ARAP.INP chứa xâu văn bản theo tiếng Ả rập gồm các từ, mồi từ chứa các kí tự (a-z, A-Z, 0-9) ngăn cách nhau bởi dấu cách.

Kết quả: Ghi ra file văn bản ARAP.OUT chứa xâu văn bản theo tiếng Anh.

ARAP.INP ARAP.OUT
manteiv fo tsaoc ffo deraeppasid sregnessap 227 gniyrrac 777 gnieoB Boeing 777 carrying 227 passengers disappeared off coast of Vietnam

 

Bài 3: Độ cao (5,0 điểm)                                Tên chương trình: HEIGHT.PAS

Bạn được giới thiệu một số địa điểm để tham quan. Mỗi địa điểm được giới thiệu bao gồm tên địa điểm và độ cao của nó.

Yêu cầu: Hãy xác định trong các địa điểm đã cho, một địa điểm có độ cao gần nhất với độ cao của bạn ưa thích.

Dữ liệu: Vào từ file văn bản HEIGHT.INP gồm:

  • dòng thứ nhất chứa số nguyên m – độ cao ưa thích của bạn.
  • Các dòng tiếp theo, mỗi dòng chứa các thông tin theo thứ tự sau: tên của một địa điểm, dấu cách, một số nguyên thể hiện độ cao của địa điểm đó.

Kết quả: Ghi ra file văn bản HEIGHT.OUT chứa tên địa điểm mà bạn chọn. Nếu có 2 địa điểm được chọn thỏa mãn yêu cầu đề ra, hãy in ra tên địa điểm có độ cao lớn hon.

HEIGHT.INP HEIGHT.OUT
5

Everest 8850 Kamet 7756 Bahamas 10 Maldives 0 Mariana -11521

Bahamas

 

Bài 4: Tính thời gian chênh lệch (5,0 điểm) Tên chương trình: TIME.PAS

Để xây dựng các công trình thủy lợi đôi khi cần phải khoan nổ mìn đào đá. Việc tính toán thời gian nổ phải thật chính xác để đảm bảo an toàn cho người lao động.

Yêu cầu: Biết thời điểm hiện tại và thời điểm sẽ xảy ra vụ nổ. Hãy xác định khoảng thời gian chênh lệch giữa 2 thời điểm nói ưên.

Dữ liệu: Vào từ file văn bản TIME.INP gồm:

  • dòng đầu tiên chứa thời điểm hiện tại ở dạng hh:mm:ss (giờ, phút, giây). Giờ (hh) là số nguyên từ 0 đến 23; phút (mm), giây (55) là các số nguyên từ 0 đến 59. Các giá trị hh, mm, ss được định dạng 2 chừ số.
  • dòng thứ hai chứa thời điểm sẽ xảy ra vụ nổ theo định dạng như trên. Kết quả: Ghi ra file văn bản OƯT chứa khoảng thời gian chênh lệch giừa 2 thời điểm theo định dạng như trên. Biết rằng thời gian chênh lệch ít nhất 1 giây và tối đa 24 giờ.
TIME.INP TIME.OUT
20:00:00

04:00:00

08:00:00
12:34:56

14:36:22

02:01:26
Bài 5: Số mát mẻ (2,0 điểm)                             Tên chương trình: COOL.PAS

 

 

Theo định nghĩa của một nhóm nghiên cứu Tin học, 0 là một chừ số mát mẻ. Họ gọi độ mát của một số là số lượng 0 trong biểu biễn thập phân của nó. Ví dụ: độ mát của số 100 là 2, độ mát của số 1 là 0.

Yêu cầu: Tìm tổng độ mát của các số từ 0 đến sổ nguyên N cho trước.

Dữ liệu: Vào từ file văn bản COOL.INP chứa số nguyên N (0< N < 10 000

000).

Kết qỊuả: Ghi ra fíle văn bản COOL.OUT chứa tổng độ mát của các số từ 0 đến sổ nguyên N.

COOL.INP COOL.OUT
55 6

———– hét——————

•                Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•        Thí sinh không được sử dụng tài liệu.

•       Giám thị không giải thích gì thêm.

 

 

Cho trước số nguyên N. Hãy tìm số nguyên lớn nhất nhỏ han N sao cho tổng các chữ số của nó nhỏ hơn tổng các chữ số của số nguyên N một đơn vị.

Dữ liệu: Vào từ fíle văn bản NUMBER.INP chứa số nguyên N(1<N<100

000) ‘

Kết quả: Ghi ra file văn bản NUMBER.OƯT chứa số nguyên cần tìm.

NUMBER.INP NUMBER.OUT
1520 1510

 

Bài 3: Báo cáo tài chính (5 điểm)                            Tên chươiĩg trình: REPORTPAS

Nhân dịp tổng kết cuối năm, bạn được giao nhiệm vụ thống kê tổng số chi phí của từng nhân viên của một công ty sau các chuyến du lịch trong năm. Mỗi nhân viên phải nộp báo cáo chi phí cá nhân cho bạn sau mỗi chuyến đi.

Yêu cầu: Viết một chương trình đọc vào danh sách gồm tên từng người và chi phí của họ, sau đó tạo ra một danh sách được sắp xếp theo tên nhân viên, kèm theo tống số chi phí của mỗi cá nhân.

Dữ liệu: Vào từ file văn bản REPORT.INP có:

  • dòng đầu tiên chứa số nguyên n (1< n <100), số lần nộp bảo cáo của các nhân viên trong công ty.
  • n dòng tiếp theo mỗi dòng chứa 2 giá trị: tên người và chi phí tương ứng (là một số thực). Tên người và chi phí cách nhau bởi dấu cách. Lưu ý: tên người không phân biệt chữ in và chữ thường (ví dụ: Trung và tRung được xem là như nhau).

Kết quả: Ghi ra file văn bản REPORT.OUT chứa danh sách các nhân viên trong công ty kèm theo tổng chi phí của họ trong năm, trong đó tổng chi phí được làm tròn hai số lẻ. Danh sách cần được sắp xếp alphabet theo tên người. Tên người phải được viết hoa chữ cái đầu tiên, các chữ cái còn lại là chữ thường.

REPORT.INP REPORT.OUT
5

trung 450.55 binh 1034.56 trUNg 1000.00 daNn 530.00 danH 470.00

Binh 1034.56 Danh 1000.00 Trung 1450.55

 

Cho trước hai sổ nguyên N và D. Hãy tỉm N số nguyên dương X]…XN sao cho hiệu số giữa tích của chúng và tổng của chúng bằng với D.

Dữ liệu: Vào từ file văn bản SUMPRO.INP chứa hai số nguyên dương N (2<N< 1000) và D (0 <D < 1000).

Kết quả: Ghi ra file văn bản SUMPRO.OUT chứa N số nguyên dương thỏa mãn yêu cầu nói trên theo thứ tự không giảm. Lưu ý rằng các số tìm được có thể bằng nhau. Giá trị các số được in không vượt quá 1 o6.

Các số trên cùng 1 dòng cách nhau bởi dấu cách

SUMPRO.INP SUMPRO.OUT
3 5 12 8

 

Bài 5: Cân bằng bit (2,0 điểm)                                     Tên chương                                                                             trình:                                                                             BỈT.PAS

Đọc vào 2 xâu khác rỗng s và T có độ dài bằng nhau,                                                                                                        s                                                                                                  chứa các kí tự                                                                                                  ‘0’,

‘1’và ‘?\ còn T chỉ chứa các kí tự ‘0’ và ‘1\

Yêu cầu: Hãy chuyển đổi xâu s thành xâu T với số bước nhỏ nhất. Biết rằng môi bước có thế thực hiện một trong các thao tác sau:

  1. Thay đổi kí tự ‘0’ trong s thành ‘r.
  2. Thay đổi kí tự ‘?’ trong s thành ‘0’ hoặc ‘
  3. Hoán đối 2 kí tự bât kỳ trong xâu s.

Ví dụ: Với xâu s = ‘0?1?’ và T = ‘1001’. Ta có thể chuyển s thành T trong vòng 3 bước sau:

  • Bước 1: Hoán đổi S[l] và S[3]. s trở thành ‘1?0?’
  • Bước 2: Chuyển S[2] to ‘0’. s trở thành ‘100?’
  • Bước 3: Chuyển S[4] to ‘ r. s trở thành 41 oor

Dữ liệu: Vào từ file văn bản BIT.INP gồm 2 dòng chứa 2 xâu s và T, mỗi dòng có độ dài không quá 100.

Kết quả: Ghi ra fỉle văn bản BIT.OUT chứa số bước nhỏ nhất để chuyển đổi s thành T. Nếu không chuyển đổi được thì ghi số -1.

BIT.INP BIT.OUT
0?1?

1001

3

————- HẾT——————

•     Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•     Thỉ sình không được sử dụng tài liệu.

•     Giám thị không giải thích gì thêm.

 

 

Họ và tên thí sinh:…………………………………… số báo danh:……………………………………………………………

 

SỎ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIẺN GIANG         TRƯNG HỌC co SỎ

Năm học 2016-2017 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi : 22/3/2017 (Đe thi có 04 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Giai thừa ngược (5 điểm)                                  Tên chưong trình: PINV.PAS

Trong toán học, n! (đọc là n giai thừa) được định nghĩa như sau:

n! =1x2x3x … X (n-1) X n (n là số nguyên không âm) Ví dụ:      3! = 1 X 2 X 3 = 6

Đặc biệt: với n = 0, người ta quy ước 0! = 1. Ký hiệun! được dùng lần đầu bởi Christian Kramp vào năm 1808.

Yêu càu: Biết trước giá trị của n!, hãy tìm sô nguyên n.

Dữ liệu: Vào từ file văn bản FINV.INP chứa giá trị của n!. Biết rằng số chữ số của n! không vượt quá 1 o6.

Kết quả: Ghi ra file văn bản FlNV.OƯT chua số tự nhiên n tìm được. Nêu không tìm được số nauvên n thì ghi -1.

FINV.INP FINV.OUT
3628800 10

 

Bài 2Í Chu kỳ dự đoán (5 điểm)                                  Tên chương trình: PẼRI.PAS

Ngày nay, có nhiều mô hình dự báo nhăm để biết trước những điều có thể xảy ra trong tương lai. Một mô hình thường dự báo, dự đoán giá trị của biến số (hoặc một dãy biến số) tại một số diêm trong tương lai căn cứ vào những dữ liệu trong quá khứ.

Dãy số nguyên ai. a2, …,an được gọi là dãy dự đoản chu kỳ k nếu tồn tại số nguycn dương k (IV k<n) sao cho mọi phần tử a; của dãy đều thỏa mãn a, a;+k với 1< i< n (nếu phần ai+k nằm ngoài dãy thì xem như nó nhận giá trị tùy chọn), số nguyên dương nhỏ nhất k thỏa mãn tính chất trên được gọi chu kỳ dự đoán của dãv số.

Một lập trình viên được đặt hàng viết chương trình phân tích chuỗi giá trị cho trước và cho biêt chuỗi này có khả năng tạo chu kỳ dự đoán k=3 hay không?

Yêu cầu: Đọc vào 1 dãy số nguvên và cho biết có là dãv dự đoán chu kỳ k=3 không?

Dữ liệu: Vào từ file văn bản PERI.INP

  • Dòng đầu chứa số nguyên n (3< n < 500).

 

  • Dòng thứ hai chứa n số nguyên aj (1< ai < 100). Các số này được cách nhau bởi dấu cách.

Ket quả: Ghi ra file văn bản PERI.OUT chứa chữ “YES” nếu dãy đã cho là dãy dự đoán chu kỳ k=3, ngược lại ghi chữ “NO”.

PERI.INP PERI.OUT
12

12 3′ 123123123

YES
11

123123 t 2312

YES
7

7 3 6 7 2 3 9

NO

 

Bài 3: Tên mã (4 điểm)                                                     Tên chương trình: CODE.PAS

Ngoài tên gọi chính, một hệ điều hành còn có tên phiên bản và tên mã (codename), tất cả đều được đặt theo một quy luật hay lý do nào đó. Ví dụ, hệ điều hành Android 4.4 có tên mã là KITKAT, Windows Phone có tên mã PHOTON, Fedora 14 có tên là LAƯGHLIN.

Tại Hội nghị triến lãm sản phẩm phần mềm, Ban Tổ chức quy định rằng tên mã đạt siải cao nhất là tên mã có số lượng chữ cái khác nhau nhiều nhất. Ví dụ: Tên mã K1TKAT có 4 chữ cái khác nhau: A, I, K và T; Tên mã JELLY BEAN có 7 chữ cái khác nhau A, B, E, J, L, N và Y; nên tên mã JELLY BEAN đạt giải cao nhất.

Ngoài ra cũng lưu ý rằng, nếu hai tên mã có cùng số chữ cái khác nhau thì tên mã nhỏ hơn sẽ đạt giải cao nhất. Biêt rằng phép so sánh hai tên mã được thực hiện theo quy tăc như sau:

+ Tên mã A gọi là nhỏ hơn tên mã B (B lớn hơn A) nếu như kí tự dầu tiên khác nhau giữa chúng kể từ trái sang phải trong tên mã A có mã ASCII nhỏ hơn.

+ Nếu A và B là các tên mã có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.

Yêu cầu: Được biết danh sách liệt kê tên mã của các hệ điều hành, hãy xác định tên mã của hệ điều hành đạt giải cao nhất?

Dữ liệu: Vào từ fìle văn bản CODE.INP gồm:

  • Dòng đầu tiên chứa số nguyên n cho biết số lượng tên mã của các hệ điều hành (1 < n< 100).
  • Mỗi dòng trong n dòng tiếp theo chứa một tên mã của hệ điều hành (mỗi dòng chứa không quá 20 kí tự). Mỗi tên mã đều bắt đầu và kết thúc bằng chữ cái in hoa. Giả sử tên mã của một hệ điều hành gồm các chữ cái in hoa ‘A’..’Z’ và có thể chửa dấu cách ở giữa.

Ket quả: Ghi ra ílle văn bản CODE.OUT chứa tên mã đạt giải cao nhất.

CODE.INP CODE.OUT
3

OREO

KITKAT

 

 

SID

KĨTKAT _____________________

Bài 4: Xổ số điện toán (4 điểm)                            Tên chương trình: LOT.PAS

Người chơi tham gia được tự chọn n vé số để dự thưởng, mỗi vé số là một chuồi số gồm 6 bộ số phân biệt, mỗi bộ số là 1 số nguyên có 2 chữ số (có giá trị từ 01, 02,…,45).

trên.

Sau khi so từng vé số với chuỗi số kết quả quay thưởng của Ban Tổ chức công bô, người chơi sẽ biêt được có trúng thưởng hay không. Tổng sô tiền thưởng của người chơi là tống số tiền thưởng nhận được của từng vé số trúng thưởng.

Cơ cấu giải thưởng được xác định như sau:

  • Giải đặc biệt (trúng cả 6 bộ số) : 12 tỷ (đồng)
  • Giải nhất (trúng cả 5 bộ số) : 10 000 000 (dồng)
  • Giải nhì (trúng cả 4 bộ số) : 300 000 (đòng)
  • Giải ba (trúng cả 3 bộ số) : 30 000 (đồng)

Lưu ý:

  • Các bộ số của 1 vé số trùng với kết quả các bộ số của quay thưởng không cần theo thư tự.
  • Trong trường hợp một vé số trúng nhiều giải thưởng thì người trúng thưởng chỉ được lĩnh một giải thưởng cao nhất.
  • Nếu nhiều vé số trúng giải, trong đó có giải đặc biệt thì chỉ nhận giải đặc biệt Ợackpot).

22

thì người này sẽ trúng thưởng 60000 đồng Dữ liệu: Vào từ file văn bản LOT.INP gồm:

  • Dòng đầu tiên chứa chuỗi sổ kết quả quay thưởng.
  • Dòng thứ hai chứa số nguyên n (1 <n<100), số lượng tờ vé số của người chơi.
  • n dòng tiếp theo, mỗi dòng chứa thông tin của 1 vé số.

Các bộ số trong chuỗi số kết quả quay thưởng và trong 1 vé số cách nhau bởi dấu cách.

Ket quả: Ghi ra file văn bản LOT.OUT chứa tổng số tiền thưởng nhận được. Nếu không trúng thưởng thì ghi số 0. Neu trúng giải đặc biệt thì ghi ‘JACKPOT’.

LOT.INP LOT.OUT
03 02 07 41 36 22 5 60000

 

 

Bài 5: Số bội của 3 (2 điểm)

Hệ thông lưới điện có thê bị gây hại bởi nhiêu tác nhân, trong đo một nguy cơ tiềm ẩn làm cản trở hoạt động và làm hao mòn thiết bị nhưng ít người nhận biết được chính là sóng hài – mối nguy cơ tiềm ẩn được phát hiện ngay đầu thập niên 1890.

Sóng hài (harmonic) là dòng điện không mong muốn làm quá tải đường dây và biến áp, làm tăng nhiệt độ hệ thống (hoặc thậm chí gây hỏa hoạn) và gây nhiễu lên lưới điện. Sóng hài là các điện áp hay dòng điện hình sin có tần số là bội số của tần số công nghiệp (tần số cơ bản), do hiện diện của các tải phi tuyến trong lưới điện. Ví dụ dòng điện hài có tần số 150HZ trên lưới điện 50HZ là sóng hài bậc 3. Thường chỉ có sóng hài bậc lẻ 3, 5, 7, 9 là xuất hiện trong lưới điện 3 pha.

Với tần số của 1 dòng điện đã cho, cần tìm sóng hài bậc 3 có ảnh hưởng đối với tân số của dòng điện đã cho.

Yêu cầu: Cho trước tự nhiên n. Hãy thay đổi 1 chữ số của n để được số chia hết cho 3 và là số lớn nhất trong các so tìm được (kể cả trường hợp ban đâu n chia hết cho 3).

Dữ liệu: Vào từ file văn bản MUL3.INP chứa số tự nhiên n có tối đa 100 chữ số.

Kết quả: Ghi ra file văn bản MUL3.0UT chứa số tự nhiên tìm được theo yêu cầu trên.

MUL3.INP MUL3.OUT
123 723
9 6
HÉT

 

 

  • Các tập tin chương trình phải đặt theo đủng quy định (cả phần tên và phần mở rộng).
  • Thỉ sinh không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.

Họ và tên thí sinh:……………………………………………… số báo danh:……………………………………………………………….

 

KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2017-2018 Môn: TIN HỌC

Thời gian: 150 phút (khổng kể thời gian giao đề)

Ngày thi: 30/3/2018

(Đê thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các hài toán sau:

Bài 1: Chỉ số BMR (5 điểm)                                          Tên chương trình: BMR.PAS

‘BM&Ợìasal Metabolic Rate) là chỉ số năng lượng cơ bản của cơ thể cho biết mức năng lượng tối thiểu mà cơ thế cần để duy trì các hoạt động bình thường.

  • Công thức tính chỉ số BMR:

Nừ giới: BMR = 655 + (9.6 X kg) -f (1.8 X cm) – (4.7 X tu ổi) Nam giới: BMR = 66 + (13.7 X kg) -h (5 X cm) –                                                                 (6.8 X tuồi)

  • Cách tính tống lượng calo cần hấp thụ theo từng múc độ hoạt động the chất
  • Nếu bạn quá ít hoạt động (ít hoặc không tập luyện): Caỉo = BMR X 1.2
  • Neu bạn ít hoạt động (ít tậu thể dục/thê thao 1-3 ngày/tuần): Calo = BMR X 375
  • Nếu bạn hoạt động vừa (tập thê dục/thế thao vừa vừa 3-5 ngày/tuần): Calo = 55
  • Nếu bạn hoạt động nhiều (tập thẻ dục/thề thao nhiều 6-7 ngày/tuần): Calo = BMR X 1.725
  • Nêu bạn hoạt động cường độ cao (tập thê dục/thê thao cường độ cao & cỏng việc thể chất hoặc tăng gấp đổi lượng luyện tập): Calo = BMR X 1.9

Yẽu cầu: Đọc vào thông tin của 1 người bao gồm giới tính, tuổi, chiều cao, cân nặng và mức độ hoạt động của người đó. hãy tính lượng calo cần thiết.

Dữ liệu: Vào từ file văn bản BMRHNP gồm 5 dòng:

  • Dòng 1: Chứa chữ “NAM’’ hoặc “NU”, cho biết giới tính của người đó.
  • Dỏng 2:Chứa số nguyên cho biết tuổi.
  • Dòng 3: Chứa số nguyên cho biết chiều cao (tính bằng cm).
  • Dòng 4: Chứa số nguyên cho biết cân nặng (tính bàng kg).
  • Dòng 5: Chứa 1 trong các ki tự “S”, “L”, “M”, “A”, “E”, cho biết mức độ hoạt động tương ứng như sau:

S: quá ít hoạt động (ít hoặc không tập luyện); L: ít hoạt động; M: hoạt động vừa; A: hoạt động nhiều; E: hoạt động cường độ cao.

Kết quả: Ghi ra file văn bản BMR.OUT chứa lượng calo cần thiết cho người đó. Kết quả là một số nguyên không lấy phán thập phân.

BMR.INP BMR. OUT
NAM 1713
52
1 65
65
s

 

Bài 2: Số Emỉrp (5 điểm)                                                 Tên chương trình: EMỈRP.PAS

Số Emirp là một số nguyên tố mà khi đảo ngược vị trí các chữ số của nó, ta cũng được một số nguyên tố. Định nghĩa này không bao gồm các số nguyên tố xuôi ngược (đọc ngược hay xuôi cũng là số nguyên tố chính nó), như 151 hoặc 787) và không bao gồm các số nguyên tố có một 1 chữ số. Biêt rằng, số nguyên tố là số tự nhiên chỉ có hai ước sô dương phân biệt là 1 và chính nó.

Yêu cầu: Đọc vào số nguyên n, hãy cho biết n có là số Emirp không?

Dữ liệu: Vào từ file văn bản EM3RP.INP chứa số nguyên n (1< n < 10000).

Kết quả: Ghi ra file văn bản EMIRP.OUT chứa chứa chữ “YES” nếu n là số Emirp, ngược lại ghi chữ “NO”.

EMIRP . INP EMIRP.OUT
149 YES

 

Bài 3: Số thân thiện (4 điểm)                                        Tên chương trình: FRIEND.PAS

Người ta gọi bộ 3 số nguyên dương là thăn thiện nếu chúng khác nhau đôi một và tích của hai trong số chúng chia hết cho số thứ ba.

Yêu cầu: Đọc vào hai số nguyên dương phân biệt, hãy đếm xcm có bao nhiêu số nguyên tạo với hai số dã cho thành bộ 3 số thăn thiện.

Dữ liệu: Vào từ file văn bản FRIEND.INP chứa 2 số nguyên dương phân biệt cách nhau bởi dấu cách, mỗi số có giá trị không vượt quá 40000.

Kết quả: Ghi ra file văn bản ERIEND.OUT chứa số lượng số nguyên tạo với hai số đã cho thành bộ 3 sô thân thiện.

FRIEND.INP FRIEND.OUT
5 15 õ
Giải thích: Có đúng hơi số cùng với số 5 và số ỉ5 tạo thành bộ 3 thân thiện là số 3 (vì 3×5 chia hết cho 15, 3×15 chia hết cho 5 và 5 X 15 là chia hết cho 3) và số 75 (vì 5 X 15 chia hết cho 75, 5 x 75 chia hết cho 15 và 15 X 75 chia hết cho 5).

 

 

Bài 4: Giải mã Email (3 điểm)                               Tên chương trình: EMAIL.PAS

Một người dùng giấu một mật khẩu trong một email đâ gửi. Email đã gửi bao gồm một số dòng văn bản. Mỗi dòng chứa một số từ. Từ là dãy liên tiếp các chữ cái 6a\.’z\ Mật khẩu được thành lập bằng cách ghép theo thứ tự các từ lấy trong nội dung email đã gửi.

Mật khẩu được tìm thấy dựa theo quy luật sau:

 

  • Dòng thứ nhât củẩ ciriail không chứa mặt khẩu.
  • Dòng thử hai của email chứa từ đầu tiên của mật khẩu.
  • Dòng thứ ha của email chứa từ thứ hai của mật khẩu.
  • Dòng thử tư của email chứa từ thử ba của mật khẩu.

Và tiếp tục như thể…

Luu ý: Nếu trên một dòng nào của email khòng tìm được từ nào của mật khẩu theo quy luật trên thì lừ tìm được là rỗng và không đưa từ rỗng vào mật khẩu.

Dữ liệu: Vào từ file văn bản EMAIL.INP gồm:

  • Dòng đầu tiên chửa số dòng của email (email chứa không quá 50 dòng).
  • Các dòng tiếp theo chứa nội dung của Einail.

Kết quả: Ghi ra file văn bản EMAIL.OUT chứa mật khẩu tìm được theo quy luật trên. Mỗi từ cua mật khâu nằm trcn 1 dòng. Dữ liẹu vào đain bảo mật khẩu tìm được luôn khác rỗng.

EMAIL.INP EMAIL,OƯT
5 toi
viet nam la quoc gia thuoc khu vuc dong nam a dang
toi thay hoa vang tren co xanh o
tet dang vao nha nga
tim nha o
bay chim thien nga
Bái 5: Dãy con (3 điểrii)                                      Tên chương trình: SƯBSEQ.PAS

 

 

Cho dãy A có n phần tử. mỗi phần tử là một số nguyên (có thể âm, bàng 0 hoặc dương). Hãy tim dãy con khác rỗng các phần tử liên tiép của A sao cho:

  • Phần tử đầu dãv con và cuối dãy con bằng nhau.
  • Tổng các phần tử của dãy con là lớn nhất.

Hay nói cách khúc: Tìm 2 số nguvên / và /• (1 <l<r<n) sao cho a/ = ar và tổng a/ + ÍU+I + • • • + ar là lớn nhất.

Dữ liệu: Vào từ file văn bản SUBSEQ.INP gồm:

  • Dòng thử nhất chứa số nguyên n (1 < n < 106) – số lượng phần tử cúa A.
  • Dòng thứ hai chứa n số nguyên aụ ãi,…, a„ (-109 < ai <109. 1 < i <n).

Kết quả: Ghi ra file văn bản SUBSEQ.OUT gồm:

  • Dòng thứ nhất chứa tổng lớn nhất tìm được.
  • Dòng thứ hai chứa hai số nguyên / và

Các số trên cùng một dòng cách nhau bởi dấu cách. Neu tìm được hơn 1 lời giải thì xuất ra bát kỳ một trong số chúng.

SƯBSEQ.INP SƯBSEQ.OƯT
5 5
12 12 3 2 4
…………… HÉT…………………..

•                Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•        Thí sinh không được sử dụng tài liệu.

•       Giám thị không giải thích gì thêm.

 

 

KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2018-2019 Môn: TIN HỌC

Thời gian: 1.50 phút (không kể thời gian giao đề)

Ngày thi: 20/3/2019

(Đề thi có 04 trang, gồm 05 bài)

TONG QUAN CÁC BÀI THI

Tên bài File chương trinh File dữ liệu vào Fi!e kết quả
Bài 1 Lễ hội Cà phô CAPE.* CAFE.INP CAFE.OUT
Bài 2 Số ưa thích HKE.* LIKE.INP LIKE.OUT
Bài 3 Phuc hồi dãy số SEỌ.* SEQ.INP SEQ.OŨT
Bài 4 Số nguyên tố lớn nhất PRIME.* PRIME.INP PRIME.OUT
Bài 5 Dãy số điều hòa HARMONIC.* HARMONIC.INP HARMONIC.OUT

(Dấu * đưọc thay bỏi PAS hoặc CPP của ngôn ngũ’ lập trình đuọc sử dụng tuoìig ứng vỏ’i Pascal hoặc C++). Hãy lập trình giải các bài toán sau:

 

 

Bài 1: Lễ hội Cà phê (5 điểm)

Ban To chức Lễ hội Cà phê năm 2019 vạch ra một kế hoạch cho các sự kiện sẽ diễn ra trong Le hội. Mỗi sụ’ kiện được Ban Tổ chức dự kiến thời gian diễn ra bao gồm thời gian bắt đầu và thời gian kết thúc.

Yêu cầu: Căn cứ thông tin của Ban Tố chức, hãy xác định thời gian bắt đầu (thời gian bắt đầu của SỊT kiện sớm nhất) và kểt thúc (thòi gian kết thúc sự kiện cuối cùng) của Lề hội, tông thời lượng của các sự kiện (không bao gồm thời gian nghỉ) và tông thòi gian nghỉ.

Dữ liệu: Vào từ file văn bán CAFE.INP có:

  • Dòng đầu tiên chứa một số nguyên n – số lượng sự kiện (1 < n <20).
  • Dòng thứ i của n dòng tiếp theo chứa thông tin về các sự kiện bao gồm: Si là tên của sự kiện (bao gồm các chữ cái không quá 100 ký tự), thời gian bắt đầu của sự kiện là ai và thòi gian kết thúc bi. Thời gian được cho là hợp lệ và theo định dạng hh:mm (không có dấu cách ở giữa) và có giá trị từ 00:00 đên 23:59. Giữa Si và aị có thê có một hoặc nhiêu dâu cách, giữa ai và bi là dấu trừ (-). Mỗi sự kiện chi được tố chức tại một thòi điểm. Một sự kiện không the kéo dài dưới 1 phút.

Kết qua: Ghi ra file văn bản CAFE.OƯT chứa bổn dòng:

Dòng ĩ: Thời gian bắt đầu (thòi gian bắt đầu của sự kiện sớm nhất).

Dòng 2: Thời gian kết thúc (thời gian kết thúc sự kiện cuối cùng).

Dùng 3: Tổng thời lượng của các sự kiện (không bao gồm thời gian nghỉ). Dòng 4: Tống thời gian nghỉ.

Tất cả dữ liệu đầu ra theo định dạng hh:mm.

CAFE.INP CAFE.OUT
3 10 : 00
Opening 15:20-17:20 17 : 20
Speech 10:00-11:00 05 : 00
Festival 12:00-14:00 02:20

 

Bài 2: Số ua thích (5 điểm)

Bình rất thích các số trong đó không có hai chữ số liên tiếp giống nhau.

Yêu cầu: Với một số nguyên n được cho, hãy giúp Bình tìm sổ nguyên nhỏ nhất, lớn han hon n, mà Bỉnh thích.

l)ữ liệu: Vào từ file văn bản LIKE.INP chứa số nguyên n (1 < n < 1018).

Kết quả: Ghi ra ílle văn bản L1KE.OUT chứa sô nguyên nhỏ nhất lớn hơn n, trong đó không có hai chừ sô liên tiếp giông nhau.

LIKE.INP LIKE.OUT
98 101

 

Bài 3: Phục hồi dãy số (4 điểm)

Trong 1 tiết dạv toán, các học sinh đang được giới thiệu về các số nguyên dương. Đê chuân bị cho tiết học, giáo viên viết sẵn các số từ 1 đến n theo thứ tự tăng dần (từ trái sang phải) trên bảng.

Tuy nhiên, có một học sinh nghịch ngợm đã chạy vào lóp học và đã xóa đi một số đã đưọ’c giáo viên viết trên bảng. Đứng trước Hiệu trưởng, học sinh này xưng tên là Nam, học sinh này rất hối hận và nói rằng mình chỉ xóa đúng một số trong dãy số.

Yêu cầu: Hãy giúp giáo viên tìm hiểu xem điều này có đúng không, và nếu có thế, hãy cho biết số nào đã bị xóa.

Dfr liệu: Vào từ file vãn bản SEQ.INP gồm:

  • Dòng đầu tiên chứa số nguvên n – sô lượng số nguyên đã được giáo viên ghi trên bảng (2 < n < 1000).
  • Dòng thứ hai chứa số nguyên m – số lượng số nguyên còn lại trên bảng sau khi học sinh đã xóa (1 < m <1000).
  • Dòng thử ba chứa m số nguyên ai, a2, . . . , am — dãy số nguyên còn lại sau khi Nam đã xóa, theo đúng thứ tự mà chúng đã được ghi trên bảng (1 < ãị < 1000).

Kết quả: Ghi ra fde văn ban SEQ.OƯT theo định dạng sau:

  • Nếu lời giải thích của Nam là hợp lý:
  • Ghi chữ “Yes” dòng đầu tiên.
  • Dòng tiếp theo chứa số nguyên đã bị Nam xóa.
  • Nếu lời giải thích của Nam là không hợp lý: Ghi chữ “No”.
SEQ.INP SEQ.OUT
4 Yes
3 2
13 4

 

Bài 4: Số nguyên tố ló’n nhất (4 điểm)

Một giáo viên Toán muốn kiếm tra kiến thức số học của học sinh lóp mình đang dạy bằng cách như sau: Đầu tiên Ồng giới thiệu với học sinh hai số tự nhiên a vàb. Sau đó yêu cầu học sinh hình thành các sô mới theo quy tăc:

  • Lấy chữ số đầu tiên của số a: Đặt thay cho chữ số đầu tiên của số b, tạo thành một số mới; Đặt thay cho chữ số cuối cùng của số b, tạo thành một số mới.
  • Lấy chữ số thứ hai của số a: Đặt thay cho chừ số đầu tiên của số b, tạo thành một số mới; Đặt thay cho chữ số cuối cùng của số b, tạo thành một số mới.

Tiếp tục tạo các số khác theo quy tắc trên cho đến hết chữ số cuối cùng của số a. (nếu số a có 3 chừ sổ thì sẽ có 6 sổ được tạo thành).

Yêu cầu: Biết hai số a và b, hãy tìm sổ nguyên tố lớn nhất trong các số được hình thành theo quy tắc trẻn (kể cả hai số ban đầu a và b). Neu không tìm được số nguyên tố lớn nhất như yêu cầu ở trên thì hiển thị số lớn nhất có thể (kể cả hai số ban đau a và b).

Dữ liệu: Vào từ fiỉe văn bủn PRIME.INP chứa hai số nguyên a vàb (10 < a, b

< ỉ000000).

Kết quả: Ghi ra tìle văn bản PRIME.OIT chứa số nguyên tìm được theo yêu cầu ở trên.

Ví dụ:

_____ *__________________________________________________ ______________________________________ _

Bài 5: Dãy số điểu hòa (2 điểm)

Trung bình điểu hòa là một trong ba trung bình Pythagoras, hai trung bình kia lả trung bình nhân và trung bình cộng (trong Excel có hàm HARMEAN trả về trung bình điều hòa của một tập hợp dữ liệu)

Ta nói rằng ba số a, b, c theo thứ tự tạo thành dãy số điểu hòa nêu b là trung bình điều hòa của a và c, nghĩa là:

2

a c

Yêu cầu: Biết trước số tụ nhiên b, hãy xác định tất cả các cặp số tự nhiên (a, c) sao cho a, b, c tạo thành dãy số điều hòa.

Dữ liệu: Vào từ file văn bản HARMONIC.INP in chứa một số tự nhiên b.

Kết quả: Ghi ra lìlc văn bản HARMONIC.OUT chứa ở dòng đẩu tiên một số tự nhiên n cho biết cho số cặp số tự nhiên (a, c) trong đó b là giá trị trung bình diều hòa. n dòng tiếp theo sẽ hiến thị các cặp số (a, c) tìm được (chúng cách nhau bởi một dấu cách).

Hạn chế và hru ỷ:

  • 1 < b < 10°;
  • Các cặp số trong file kêt quả có thê được hiến thị (heo bất kỳ thứ tự nào;
  • Neu b là trung bình điều hòa giữa hai số khác nhau a và c thì các cặp (a, c) và (c, a) được coi là lời giải riêng biệt.
HARMONIC.INP HARMONIC.OƯT Giải thich
3 3 số 3 là trung bình điều
3 3 hòa của số 3 và 3. Ta có
dãy số điều hòa (3, 3,
2 6 3)
6 2 Số 3 là trung bình điều
hòa của số 2 và 6. Ta có
các các dãy số điều hòa
(2,3,6) và (6,3,2)
————- Hét ——————–

•                Các tập tin chuvng trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•       Thí sinh không được sử dụng tài liệu.

•       Giảm thị không giải thích gì thêm.

 

 

 

KỲ THI CHỌN HỌC SINH GIỎI CẢP TINH TRƯNG HỌC CO SỞ, NÃM HỌC 2020-2021

Môn: TIN HỌC

Thời gian: 150 phút (không kê thời gian giao để)

Ngày thi: 31/3/2021

(Đê thi có 04 trang, gồm 05 bài)

TỎNG QUAN CÁC BÀI THI

Tên bài Fi!e chuông trình File dữ liệu

vào

File kết quả
Bài 1 Số kết đôi NUM.* NUM.INP NUM.OUT
Bài 2 World cup CUP.* CUP.INP CUP.OƯT
Bài 3 Phần tư điên hình PART.* PART.1NP PART.OUT
Bài 4 Đặt mật khẩu PW.* PW.INP PW.OUT
Bài 5 Sự lây lan COVID.* COV1D.INP COVID.OUT

 

Dấu * được thay thế bời PAS, CPP hoặc PY cứa ngôn ngữ lập trình được sử dụng tương ứng là Pascal, C++ hoặc Python.

Bài 1: Số kết đôi (5.0 điểm)

Số nguyên dươna X được gọi là số kết đôi nếu như có thê tim thấy hai số nguyên a, b thoa mãn các điều kiện:

  • ì < a < b < X

, _        , a 1

  • X è = X và – > —

b 2

Yêu cầu: Hãy xác định một số nguyên cho trước có là số kết đôi hay không?

Dữ liệu: Vào từ file văn bản NUM.INP chứa số nguyên X (1 < X < 215).

Kết quả: Ghi ra file văn bản NUM.OƯT chứa số 1 nếu X là số kết đôi, ngược lại ghi số 0.

Bài 2: VVorld cup (5.0 điêm)

Liên đoàn Bóng đá Ọuốc tế (FIFA) đã ấn định ngày khai mạc World Cup 2022. Đội chủ nhà Qatar sẽ đá trận đầu tiên trong ngày khai mạc là ngày 21/11/2022.

Phương đang sống ờ Việt Nam, rất dam mê bóng đá và mong chờ được xem lễ khai mạc.

 

Yêu cầu: Hãy giúp Phương tính xem kể từ một mốc thời gian ngày, còn bao nhiêu ngày nữa là đến lễ khai mạc. Ví dụ, mốc thời gian là ngày hôm nay, nếu lễ khai mạc là ngày mai, thì sẽ còn 1 ngày nữa. Cho biết:

a) Số ngày trong 1 tháng:

Tháng 1 2 3 4 5 6 7 8 9 10 11 12
Số ngày 31 28 (29 nếu là năm nhuận) 31 30 31 30 31 31 30 31 30 31

b) Năm nhuận:

 

 

Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 mà không chia hết cho 100. Ví dụ, năm 1800 không phải là năm nhuận; năm 2016, 2000 là năm nhuận.

Dữ liệu: Vào từ íile văn bản CUP.INP chứa 1 xâu cho biết mốc thời gian ngày cần tính theo định dạng “dd.mm.vyyy”. Trong đó dd là ngày có giá trị từ 01 đến 31, nim là tháng có giá trị từ 01 đến 12, yyyy là năm có 4 chữ số. Dừ liệu ngày cho là hợp lệ. Kết quả: Ghi ra tìle văn bản CƯP.OUT chứa số ngày sẽ đến lễ khai mạc FIFA World Cup 2022.

Bài 3: Phần tử điển hình (4.0 điềm)

Cho trước một mảng có n phần tử A = [ai, a2,…, an]. Phần tử a, được gọi là điển hình nếu tồn tại một cặp chí số L và R (1 < L < R < n) sao cho aj = aL + aL+i +…+ aR. Nói cách khác, một phần tử được gọi là điển hình nếu nó có thể được biếu diễn dưới dạng tông của hai hoặc nhiều hơn các phần tử liên tiếp của một mảng.

Yêu cầu: Đem số phần tử điển hình cua mảng đã cho A.

Ví dụ, nếu n = 9 và A = [3, 1,4, 1, 5, 9, 2, 6, 5] thì số phần tứ điển hình của A là 5, cụ thê:

  • a3 = 4 là phần tử điển hình, vì a3 = 4 = ãị + a2 = 3 + 1;
  • a5 = 5 là phần tử điển hình, vì a5 = 5 = a2 + a3 = 1 + 4;
  • a6 = 9 là phần tử điển hình, vì a6 = 9 = ai + a2 + a3 + a4 = 3 +   1 + 4 + 1;
  • a8 = 6 là phân tử điển hình, vì a8 = 6 = a2 + a3 + a4 = 1 + 4 +     1;
  • ãg – 5là phần tử điên hình,vì ay = 5 = a2 + a3 = 1 +

Lun ý rằng các phần tử của mảng A có thế bằng nhau nên nếu có một số phần tử điển hình mà bằng nhau thì tất cả chúng sẽ được đếm.

Dữ liệu: Vào từ íìle văn bản PART.INP gồm:

  • Dòng đầu tiên chứa số nguyên n là số phần tử của mảng A (1 < n < 8000).
  • Dòng thứ hai chứa n số nguyên cách nhau bởi dấu cách ax, a2,…, an

(1 < al < n).

Kết quả: Ghi ra file văn ban PART.OUT chứa số phần tử điển hình cua mang đã cho.

PART.INP PART.OUT
9

314159265

5

 

Bài 4: Đặt mật khấu (4.0 điểm)

Quên mật khẩu Facebook, Gmail, Zalo… là việc thuờng xảy ra khi chúng ta phải đàng nhập rất nhiều tài khoản hằng ngày. Bên cạnh việc tạo mật khẩu mạnh là việc làm thế nào mà bạn có thế nhớ nhùng mật khâu đã tạo. Một người dùng internet nghĩ ra cách tạo một mật khấu mới như sau: Mật khẩu mới là mật khâu chỉ khác các mật khẩu mà anh ta đã có (tạo ra hoặc được cung cấp) nhiều nhất 1 vị trí.

Yêu cầu: Với n xâu s 1 ,s2,- – •, Sn cho trước, các xâu đêu có cùng độ dài m. Hãy tạo xâu mật khấu mới p sao cho mỗi xâu tronc sô n xâu đã cho khác xâu p không hơn một vị trí. Hay nói cách khác, với mồi xâu Si không có hơn 1 vị trí j sao cho Sj[j] V

PDL

Lưu ý: Xâu p mong muốn có thê bằng một trong các xâu Si đã cho, hoặc nó có thể khác với tất cả các xâu Si đã cho.

Dữ liệu: Vào từ file văn bản PW.INP gồm:

  • Dòng đầu tiên chứa hai số nguyên nvàra (n: số xâu; m: độ dài mỗi xâu; 1 < n, m < 10).
  • Dòng thứ i trong n dòng tiếp theo chứa xâu Si, có độ dài m và chi chứa các chữ cái in thường (‘a’..‘z’).

Kết quả: Ghi ra file văn bản PVV.OƯT

  • Nếu bài toán có lời giải: Ghi xâu p có độ dài m và chỉ chứa các chữ cái in thường (‘a’..‘z’). Nếu bài toán có nhiều lời giải: Ghi bất kỳ xâu p nào thỏa mãn.
  • Nếu bài toán không có lời giai: Ghi số -1.
PW.INP PW. OUT
2 4 abab
abac
zbab

 

Bài 5: Sụ lây lan (2.0 điểm)

Covid-19 lây lan phô biến nhất khi tiếp xúc gần. Những người ớ gần với người mắc Covid-19 hoặc tiếp xúc trực tiếp với người đó sẽ có nguy cơ lây nhiễm cao nhất.

Giả sử có n người (được đánh số từ 1 đến n) đang ở trên 1 con đưòng trong thành phố. Có thê xem vị trí của họ là những điểm trên trục tọa độ Ox. Với mồi chỉ số i, vị trí cua người thứ i là Uj.

o                               a,             a:                            aj                                34 X

  • —— I—– 1—- +—– t—- t—– 1—– +—– t——- í—– >

0         1234 5 6789

Theo thông báo của cơ quan Y tế , trong n người này có đúng một người đã bị nhiễm Covid-19, nhưng chưa biết đó là ai. Biết rằng, vi-rút sẽ lây lan từ người bị nhiễm sang người không nhiễm bệnh khi khoảng cách tối đa giữa họ bằng 2.

Một người bị nhiễm bệnh sẽ lây nhiễm cho người khác theo hiệu úng tiếp xúc gần. Nhóm người bị nhiễm bệnh này được gọi là tập hợp ngưòi nhiễm bệnh cuối cùng.

Yêu cầu: Hây tìm ra số nhỏ nhất và số lớn nhất những người bị nhiễm cuối cùng, tức là tìm ra con số này trong trường hợp tốt nhất và trong trường hợp xấu nhất có thể

xảy ra.

Dữ liệu: Vào từ file văn bản COVID.INP gồm:

  • Dòng đầu tiên chứa số nguyên n là số người trên đường (1 < n < 100).
  • Dòng thử hai chứa n số nguyên ai, a2, …, an cách nhau bởi dấu cách. Biết rằng 0 < a, < 100.

Kết quả: Ghi ra file văn bản COVID.OƯT chứa hai số nguyên cách nhau bởi dấu cách cho biết số nhỏ nhất và số lớn nhất những người có thê bị nhiễm cuối cùng.

COVID.INP COVID.OUT
2 1 1
3 6
3 3 3
13 5

 

———————————————— HẾT———————————————— ——– :

■ Các tập tin, chương trình phai đặt theo đúng quy định (ca phần tên và phần mở rộng).

Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh:…………………………….. số báo danh:………………………………………………………

 

KỶ THI CHỌN HỌC SINH GIỘI CÀP TỈNH [RUNG HỌC Cơ Sớ NSm liợc 2021-2022

Môn: TIN HỌC

Thòi gian lảm bài: 15(1 Ịiluìt íkhông kẽ ỉ hởi gian giao đè) Ngáy ihi: 22/03/2022 ị De thi cỏ 04 trang, gồm 05 bùi)

tông ouàn cắc bãi thi

Tèil bài ỉ ilt thương trình Kilt dữ liựu vào Hiu két quỉ
Bâi 1. SỚ NGUYÊN TỒ DÃY DỨ KULLPRIMA KULLPH.JM.LNP í ULLPR.IM.OUT
lỉúi 2. MẶT MẢ SIiCRCODE* SECRƠODL.INP SLCRCODL.OUT
Bài 3, CHON PHẢN THƯỞNG BONUSSiiL-* BONLSSLL.INP BỜNUS.SEL.OUT
Bài 4, TAM GIAC TR1ANGLE. IRÍANGLL 1NP TR1ANGLL.OUT
tỉai 5. LẢI KLP NGAN HÀNG COM PIN TA COMPlNTdNP COMPLNT.OUT
Dổu * dược thay thề bới PAS, CPPt py cún ngôn ngừ tập trình được Sti dạng tương ứng tù PùỊCữl, £.’++, Pyihún hoặc phần mớ rộng tương ửng v&ĩ M:\LT khác.

 

 

Dải I: SỎ NGUYÊN TỞ BẦY DV (4.Ộđiềm)-TỄn thương trhMỈa: FULLP(tlM/ hỉuìỉ niệm:

  • **sỏ HgĩtyỀn tố ‘,ỳ: sắ itgụyỂn dương p (p > ĩ) là sỗ nguyện tỏ khi p chi cù hai ước sỗ ỉà ỉ và chinh nỏ.
  • 4,1 Sổ nguyên tể dầy dù”. Là sé ngụyẻn lổ mủ khỉ viẻt đàơ ngược sẬ đò thi sổ đáo ngược Vần Ịà sa nguyên tà. Vi dụ: Sâ Í3 lá liSữ ĩtguyỂn tổ dãy dii” vỉ khi đặo ntược sô 13 La dược sả31 cEtìg.íè sổ ũgtiy£n lổ, sẶ 53 khủng pliái lá “íd nguyên tổ dầy dù” vl khi dáo ngược sả 53 La được 9ổ 35» và 35 khômỉ phui Jả s6 nguyên lố.

Yeu tầu: Hăy vhk chương ưinh kicm tra trang dằy 5′ sả nguyên dương ù ị cho ưước cù nhữn£                                                                          sỏ

náo Lá **Í1Ử ngiẹyẽn lủ đảv đu’.

I)ữ litií vầo: Đtíợc cbo traÉỊg lộp văn ban KULLPRIM.ÍNPị gồm 2 dóng.

  • Dõng dâu liỏn ghi so .’V ị ì <jV <iỉ(f), lá Sủ phân tư của dẫy.
  • Dùng thứ hai ghi N sả ngưyÊn dưímg ữị {i=l..\. 2 <ứi ệ iũlw), moi số tách nhau bói dảu

cách.

Dứ iiệu ra: Tệp văn hán KULLPKI.M.OI T gốm một dóng thừa dảy ,li’L> nguỳện té đầy du” trơn lì LÍp dừ liệu vào. NẾu trang diy ùi khớmì cộ “iYJ lĩgưyỂn té đầy du” [hi gbi lá 0,

Ví dụ:

Mòn Tín taọẹ_22WV2tì22_Tr»ns 1/4

 

Bàl 1: MẠ í MÃ (4,0 điểm) – TỀH chương trình: SECRCODE.*

]’rong đợt căm trại Mừng Dáng Mừng Xuân, trưùựg THCS 26/3 lủ chức phát thướng cho nhừna học sinh có ihãnh tích cao trong cuộc thi rin học líé. Bạn An dược mọt cỏniĩ ty ABG thưởng phẩn iỊjềm diẹt viniB 1A một thè cù chùa mà hán quyền. Tiên thê cỏ ghi một ỊÍẾU hi tự, mả bán quyền lủ so lượng ki Lự xuái hiện ưong xâu dó theo thứ tự uiphabet (thử tụ lir đien).

Vi dụ: Neư xâu ghi trên ihc lá abzaabbbbbzbbbb [hi có 3 kỉ lự ít, ]|j kỉ tự b vả 2 ki lự r. Nên mà bán quyẾũ lá 3 102.

YÊU cầu: Bạn lú chuvdn VÍCII về lập trinh Lin học, hây ưiÍLp An tim mâ hun quyỂn trẽn [hè.

L>ữ liệu váo: Dược cho trưng tcp ván bán SECItCODE.INP lá một xâu (chửa ki lự thướng ‘Ả.:i trong bâng chữ cái ‘L iệng Anh, chiều dái của xáu khỏng quá lữ1)

Dứ liệu ra: Tệp vãn bán SECkCODE.OUT, ưhi chuồi sắ Lú mã bún quyên.

Vi dụ í

SECRCODE.1NP SECRCODE.OLT
bcỉi{hiiicfxyzhbbcccccỉỉceeex\:xyzzz 246351334

 

Giúi thích. Chuồi củ 1 kỉ lự ÚT, 4 ki tự b. 6 k[ Lự c> 3 ki lự íỉf 5 ki Lự e, 1 ki tư£ 3 ki lự JC, 3 kE [ự y vá A kí lự z ncn mả bán quyên Lú 246351334.

Bùi 3: CHỌN THAN THƯỞNG (4.0 điếm) – TỄn chương trinh: BQMlSSEL.*

Trong ký thi học sinh gioi L HCS cáp huyện mủn Toán, trong nỏi dung dề có nói VẺ $fỉ chính ph ương ‘ lá sỏ bãỉig bình phương đúng cua một sổ nguyên. i ỉar hỉàíi đơn gúin, sổ chinh phìỉiĩỉỉg lả một sổ tự nhiên cỏ căn bậc hai cùng ià mật sâ tự nhiên. Bạn An dược giái nhất trong kỷ thi đó, thày Thú giáo viẻn dạy toán hoi dưrtng cho An cỏ phằn ihuứng dặc hiệt cho An, dòng ihới cũng muốn kiềm tra kiến thức toản và lư duy vc lập Irinh tin học cũa An như the nèo đẻ dịnh hướng bạn di ngành CNTT Lrong thửi dại cồng mìhc 4.0. ĩhầy yẾu cẳu An chọn nhừng phần thướng má thấy dã xếp ưèn bán thánh l bán tỉ ịĩỉiíỉ trận) gom m dóntĩ vả n CỘI, mi^i phản ihướniì có aiá trị neuvén dương pỊị, (ỉ< Oỹ<Ị0 Phần thưởng An nhặn dưực lá piông tát cá các “Só chỉnh pỉnrơng” cũa báng,

YẾU càu: Hạn bây Lặp trinh eiũp An nhịn phẩn thướng.

DữUệu vàn: Được cho Lrong tọp vin hun BQNUSSEL.INP gèm:

  • Dõng dầu ticn chứíi 2 sả ngu vón dương ỉti, n (2 <tĩt, n < ÍOrị, Là sơ dõng vú CỘI cùa bang phằn thướng, lách nhau bôi một diu cách.
  • tn dóng licp theo, moi dỏng chừa n số nguyẫn dương ữịị (j-lJ,fFỉ,ý=l..jỉ)1 mội sỏ lách nhau bới một dấu cảch.

Dử ILẹu ra: Tệp vân bán BONLiSâEL.QUT ghi mộl sả, Lá phần ihướng mả An được ihảy thương

Vỉ dụ:

BONUSSEL.INP BỘN USSEL.ÓƯT
23 4
2 3 4
357

 

 

35 35
123
í 5 16
7H9
Hài 4: TAM GIÁC (4.Ũ đìẻtìi) – TỄn chương trình: TKIANGLE.*

 

Kỉìủĩ nĩệiìt :

  • ‘ Tam giỉtL \ Trơna mát phiìne, ba tiiéiíì A„ B„ c lạo ihánb tam giác khi ctmúng khòm; củng nầm trỂn mọi đưimg [hãng hay nbi cách khác, lơn£ dợ dãi hai cạnh JcVn bơn cạnh thứ ba.
  • “Định lý Pĩtagù’. I’am giác ABC vudng khi Lorití binh phương hai cạnh Cua lam ai ác bảng bình phương cạnh cỏn lại của Lam giác.
VI dự:

c A, B. c là 3 đinh cửa tam giác * A, li, c khũmỉ cúng năm trcn dường ihărtg d
d…. &AB+ BC > AC và Alỉ + AC > BC vả 8C + ẠC >ẬB.
A **■ TVun giác ABC tà fattì giác vnâỉig tiiĩ (tinh c

& AB: = AƠ + iiơ

YẾU cầu: Lrẻn mầl phàng tọa dụ (OXY) chu 3 dicmẢ, Bị c cũ Lọa dt) lần lượt hì (íi.Xth (xstysị, ‘ệtc;yc)- Bạn hây lập trinh kiểm tra 3 đinh đó tạo thánh tam giác V uũng không?

 

 

Líừ IĨCIL vào: Buợc chu ưung ọp vàn hán TRlANGLL.INP gầm:

  • Dõng dằu II cn chứa Sơ nguyên dương 7\ lủ sầ tượng bộ ba đicm .4, 8, c
  • 7’dàng Licp theo. mồi dửng ehi lụa độ 3 đicm A(xA;yA)ị B{xs;yBL C(xctyc), (các So %A -VjỊf, y-B Jtũ yc lá các su thực và -lO^í yA Xgt ys %c yc ^lO1), các: sỏ Lảcb nhau búi dắu cách.

L>ừ licu ra: Tệp vãn ban TỉtlANGLb.OlJ l, yhi T dùng, mui dỏng gbi ưYES” nẺu lá tam giảc vuông hí lặc “NIO'” nẾu không hi Lam giác vuông.

Ví dụ:

TRIANGLE.INP triangle,out
i NO
0.0 0.0 LO l.u 2.0 2.0 YES
ềJữ 0.0 0.0 iừ.o 0.0 0.0 NO
1.0 2.0 3.5 ktì 1.0 2.0

 

Lim Ỷ’ + Binh phương khơáns cách giừa 2 di êm A(XÀy\i) vả lì(.\-B;vsỉ lá

>íBi = (jraJ>;!+(yJ->’J>1

+ Oc hạn ehc sai sớ Ironiĩ [inh toán ki cu sà thục, học sinh nành việc lẩy cần bậc 2 rơi binh phương cùa cfin bậc 2.

Bài 5: LÃI KÉP NGÂN HÀNG (4.0 điểm) – Tên chương trình: COMPINT.*

Khái niệm: “Lãi kép” trong tiếng Anh là Compound interest. Đó là số tiền lãi được xác định dựa trên cơ sở số tiền lãi của các thời kì trước đó được gộp vào vốn gốc để làm căn cứ tính tiền lãi cho các thời kì tiếp theo.

Ông Ba sau khi tích lũy làm ăn nhiều năm dư được 1 số tiền lớn, để tiêu vặt và đóng tiền học phí hàng tháng cho An, Ông đã gửi ngân hàng với lãi suất nhận hàng tháng (Lãi đơn). Do trong đợt dịch Covid-19 vừa qua, để hạn chế tiếp xúc và ra ngân hàng đông người, Ông đã thay đổi hình thức gửi ngân hàng thành hình thức “Lãi kép’’”.

Yêu cầu: Với số vốn ban đầu là M, lãi suất hàng tháng là r%. Bạn hãy lập trình tính tổng số vốn và tiền lãi sau n tháng mà ông Ba nhận được theo hình thức “Lãi kép”.

Dữ liệu vào: Được cho trong tệp văn bản COMPINT.INP:

  • Dòng đầu tiên là số nguyên T (1<=T<=1000) ^
  • T dòng tiếp theo, mỗi dòng gồm 3 số M, r, n lần lượt là tiền vốn ban đầu, lãi suất %/tháng, số tháng. Trong đó, 106 <M <1012, 0.1< r <1.1, 1< n < 5*102.

Dữ liệu ra: Tệp văn bản COMPINT.OUT ghi một số thực, định dạng 1 chữ số thập phân, là tổng số tiền nhận được sau n tháng.

Ví dụ:

Giải thích. Ông Ba gửi 2 khoản tiết kiệm như sau:

Ở khoản tiết kiệm 1: Ông Ba gửi 1000000, với lãi suất 0.7%:

  • Sau 1 tháng. T = M + M*rl100 = 1000000+1000000*0.007=1007000.0
  • Sau 2 tháng. ĩ2 = T + Ti*rl100 = 1007000+1007000*0.007 = 1014049.0
  • Sau 3 tháng. T = T2 + T2*rl100 = 1014049+1014049*0.007 = 1021147.3 Tương tự, ở khoản tiết kiệm 2: Ông Ba gửi 10000000, với lãi suất 0,5%:
  • Sau 1 tháng. Ti = M + M*rl100 = 10000000+1000000*0.005=10050000.0
  • Sau 2 tháng. T = T + T1*rl100 = 10050000+10050000*0.005=10100250.0
  • Sau 10 tháng. Tio = T + T9*rl100 = 10459105.8+10459105.8*0.005=10511401.3

———————————————– hét———————————————–

Thí sinh không đqợc sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh. …………………………………………… Số báo danh : ……………………………………………………………

 

 

 

Tên và chữ ký Cán bộ coi thi 1

Tên và chữ ký Cán bộ coi thi 2

 

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
TRUnG học Cơ Sở

Năm học 2022-2023 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 21/3/2023 ^

(Đề thi có 5 trang, gồm 5 bài)

TỔNG quan các BÀi thi

Thứ tự rpA I A •

Tên bài

File chương trình File dữ liệu vào File kết quả
Bài 1 Tương đồng SAME.* SAME.INP SAME.OUT
Bài 2 Tách xâu STRING.* STRING.INP STRING.OUT
Bài 3 May mắn LUCKY.* LUCKY.INP LUCKY.OUT
Bài 4 Tam giác TRIANGLE.* TRIANGLE.INP TRIANGLE.OUT
Bài 5 Chở hàng GOOD.* GOOD.INP GOOD.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

Bài 1: (4 điểm) Tương đồng                                                                                                     Tên chương trình: SAME.*

Vườn bưởi nhà Alice có n cây. Để theo dõi sự phát triển của các cây bưởi của mình, Alice thường xuyên đo và ghi lại chiều cao của chúng. Trong tuần này, Alice có được bảng chiều cao của các cây bưởi là một dãy số nguyên a[1], a[2],…, a[n], trong đó a[i] là chiều cao của cây bưởi thứ i. Nhìn vào dãy số, Alice biết có những cây có chiều cao trùng nhau và Alice gọi mỗi tần số trùng nhau là tần số “tương đồng”.

Do số lượng cây bưởi nhiều nên Alice muốn nhờ các bạn lập trình tìm tần số tương đồng lớn nhất của các cây bưởi là bao nhiêu?

Dữ liệu vào: Đọc từ file SAME. INP gồm 2 dòng:

  • Dòng 1: gồm một số nguyên dương n (0 < n <106).
  • Dòng 2: gồm n số nguyên dương a[i] (0 < ai <106), mỗi số ứng với chiều cao của một cây bưởi, giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file SAME.OUT gồm duy nhất một số nguyên dương là tần số tương đồng lớn nhất.

Ví dụ:

SAME.INP same.out
7

9 8 6 8 5 6 10

2
2

3 10

1

 

Giải thích bộ test 1:

Có 1 chiều cao: 5;

Có 2 chiều cao: 6;

Có 2 chiều cao: 8;

Có 1 chiều cao: 9;

Có 1 chiều cao: 10

->Tần số tương đồng lớn nhất là: 2

Bài 2: (4 điểm) Tách xâu                                                          Tên chương trình: STRING.*

Hôm nay, mẹ và Cám đi dự dạ hội. Tấm cũng rất muốn được đi. Nhưng trước khi đi, mẹ Cám giao cho Tấm một công việc để làm khó Tấm như sau:

Cho một xâu s gồm các ký tự là các chữ cái in hoa hoặc in thường (trong bảng chữ cái Tiếng Anh) và các kí tự số. Mẹ kế yêu cầu Tấm hãy tách các ký tự trong xâu s thành hai phần như sau:

Phần 1: gồm các chữ cái có mặt trong s nhưng viết theo thứ tự ngược lại.

Phần 2: gồm các chữ số có mặt trong xâu s nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Nếu Tấm thực hiện xong công việc thì mới được đi dự tiệc. Nhưng Tấm có thời gian rất ít nên chưa giải được bài toán. Các bạn đội tuyển Tin học hãy giúp đỡ Tấm giải bài toán để Tấm còn được đi dự tiệc nhé!

Dữ liệu vào: Đọc từ file STRING.INP gồm 1 dòng chứa xâu s có độ dài không quá 103 ký tự. Dữ liệu vào đảm trong xâu s luôn có kí tự chữ cái và kí tự chữ số. Kết quả: Ghi ra fíle STRING.OUT gồm 2 dòng:

  • Dòng 1: gồm các chữ cái trong xâu s nhưng được viết theo thứ tự ngược lại.
  • Dòng 2: gồm các chữ số trong xâu s, nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Ví dụ:

STRING.INP STRING.OUT
m2aC0ma2T3 TamCam

0223

 

Bài 3: (4 điểm) May mắn                                                          Tên chương trình: LUCKY.*

Trong buổi tiệc liên hoan cuối năm của công ty cung cấp điện thoại Thế Giới Trẻ, ghế ngồi trong hội trường của khách mời được bố trí thành một ma trận hình chữ nhật gồm m hàng và n cột. Để buổi liên hoan thêm vui vẻ, ban tổ chức cho mỗi khách mời rút ngẫu nhiên một phiếu, trên phiếu có ghi một số nguyên dương trong phạm vi từ 1 đến 109.

Ban tổ chức sẽ trao cho những người may mắn mỗi người một phần quà là một chiếc điện thoại. Biết rằng người may mắn là người có số ghi trong phiếu của

mình lớn hơn trung bình cộng của số trong phiếu của những người ngồi xung quanh người đó.

Xung quanh một người được định nghĩa như sau:

Trường hợp 1: Người ngồi ở vị trí góc (trên trái, dưới trái, trên phải, dưới

phải) của hình chữ nhật thì chỉ có 2 người ngồi xung quanh.

Trường hợp 2: Người ngồi ở vị trí bìa (trừ góc) thì có 3 người xung quanh. Trường hợp 3: Người ngồi ở các vị trí còn lại có 4 người xung quanh.

 

Trường hợp 1                                   Trường hợp 2                                                          Trường hợp 3

Ô gạch sọc chỉ vị trí xung quanh của vị trí được tô đen.

Bạn hãy giúp ban tổ chức xác định số lượng điện thoại cần phải chuẩn bị để trao cho những người may mắn.

Dữ liệu vào: Đọc từ file LUCKY.INP gồm:

  • Dòng 1: gồm hai số nguyên dương theo thứ tự m, n (0 < m, n <103), giữa m và n được cách nhau bởi dấu cách.
  • m dòng tiếp theo, mỗi dòng gồm n số nguyên dương có giá trị không quá 109, giữa hai số cách nhau bởi một dấu cách.

Kết quả: Ghi ra file LUCKY.OUT gồm một số nguyên là số điện thoại ban tổ chức cần chuẩn bị.

Ví dụ:

LUCKY.INP LUCKY.OUT
3 4 3
1 4 3 1
1 1 5 2
2 1 2 1

 

Giải thích:

Số lượng điện thoại cần chuẩn bị là 3, vì có ba người may mắn:

+ Người thứ nhất ngồi ở hàng 1, cột 2, có số phiếu là 4 (có 3 người xung quanh) + Người thứ hai ngồi ở hàng 2, cột 3, có số phiếu là 5 (có 4 người xung quanh) + Người thứ ba ngồi ở hàng 3, cột 1, có số phiếu là 2 (có 2 người xung quanh)

Bài 4: (4 điểm) Tam giác                                                  Tên chương trình: TRIANGLE.*

Alice có n que tính, mỗi que có độ dài là một số nguyên dương. Alice muốn tạo ra các tam giác bằng cách ghép ba que tính lại với nhau, độ dài mỗi cạnh là một que tính.

Em hãy giúp Alice đếm xem có bao nhiêu tam giác được tạo thành từ các que tính này và cho biết diện tích lớn nhất trong các diện tích của các tam giác ghép được là bao nhiêu?

Biết rằng:

+ Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.

+ Ta có thể tính diện tích tam giác theo công thức sau :

s=Vp * (p — à) * (p — b) * (p — c)

Trong đó a,b,c là độ dài 3 cạnh của tam giác, và p là nửa chu vi của tam giác.

Dữ liệu vào: Đọc từ file TRIANGLE.INP gồm:

  • Dòng 1: gồm một số nguyên dương n (3 < n < 100)
  • Dòng 2: gồm n số nguyên dương a[1], a[2], …, a[n] là độ dài của n que tính (1 < a[i] < 106 1<i<n). Giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file TRIANGLE.OUT gồm:

  • Dòng 1: Ghi số lượng tam giác có thể ghép được.
  • Dòng 2: Ghi một số thực là diện tích lớn nhất của tam giác, kết quả làm tròn đến 2 chữ số ở phần thập phân. Trường hợp không có tam giác nào thì dòng này ghi -1.
TRIANGLE.INP TRIANGLE.OUT Giải thích
5 3 Có 3 tam giác được tạo từ 5 que tính trên:
1 4 5 2 3 6.00 Tam giác 1: Que thứ 2, 3, 4 Tam giác 2: Que thứ 2, 3, 5 Tam giác 3: Que thứ 2, 4, 5 Trong đó tam giác thứ 2 có 3 độ dài là 4 5 3 có có diện tích lớn nhất là 6.00
4 4 Có 4 tam giác được tạo từ 4 que tính trên:
2 2 2 2 1.73 Tam giác 1: Que thứ 1, 2, 3

Tam giác 2: Que thứ 1, 2, 4

Tam giác 3: Que thứ 1, 3, 4

Tam giác 4: Que thứ 2, 3, 4

Trong đó 4 tam giác đều có cùng diện

tích là: 1.73

3 0 Không ghép được tam giác nào
1 2 3 -1

 

Bài 5: (4 điểm) Hàng hóa                                                            Tên chương trình: GOOD.*

Cửa hàng tạp hóa XYZ cần chở n kiện hàng giao cho khách. Kiện hàng thứ i có trọng lượng là a[i] tấn. Cửa hàng có một xe tải có trọng tải là m tấn. Trong

chuyến hàng đầu tiên, cửa hàng muốn chở những kiện hàng đi giao thỏa mãn các yêu cầu sau:

  • Yêu cầu 1: Ưu tiên kiện hàng có trọng lượng lớn hơn sẽ được chở đi.
  • Yêu cầu 2: Xe còn đủ trọng tải chở được thì chọn tiếp kiện hàng khác thỏa mãn yêu cầu 1.

Em hãy lập trình giúp cửa hàng xác định trọng lượng các kiện hàng của chuyến xe đầu tiên.

Dữ liệu vào: Đọc từ file GOOD.INP gồm hai dòng:

  • Dòng 1: gồm số nguyên dương n (1 <n<103) là số kiện hàng và số nguyên dương m (0 < m < 109) là trọng lượng của xe tải. Giữa n và m được cách nhau bởi dấu cách.
  • Dòng 2: gồm n số nguyên dương a[i] (0 < a[i] <109, a[i] < m, 1<i<n) thể hiện trọng lượng của kiện hàng thứ i. Giữa các số được cách nhau bởi dấu cách.

Kết quả: Ghi ra file GOOD.OUT các số nguyên dương là trọng lượng của các kiện hàng trong chuyến xe đầu tiên theo trọng lượng giảm dần.

GOOD.INP GOOD.OUT
5 10

7 5 1 3 8

8 1
5 12

2 8 2 4 1

8 4

 

Giải thích bộ test 1:

Có n = 5 kiện hàng và xe có trọng tải m = 10 tấn Các kiện hàng có trọng lượng lần lượt là: 7 5 1 3 8 Vậy các kiện hàng được chở đi trong chuyến đầu tiên có trọng lượng lần lượt là 8 và 1.

Vì kiện hàng có trọng lượng là 8 lớn hơn trọng lượng các kiện hàng còn lại và 8 < m=10 nên được ưu tiên chọn. Trọng tải xe còn có thể chứa được là 10 – 8 = 2, nên chọn tiếp kiện hàng có trọng lượng là 1.

………………………………………………….. HẾT…………………………………………………..

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

Họ và tên thí sinh: ……………………………………………………………………………….. Số báo danh:……………………………………………………………………..

 

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIỀN GIANG                                                              TRUNG HỌC cơ SỞ

Năm học 2012-2013 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 27/3/2013 (Đề thi có 02 trang, gồm 05 bài)

Hãy ỉập trình giải các bài toán sau:

Bài 1: Chuyển đổi thang đo (5 điểm)               Tên chương trình: DOI.PAS

Một nhà khoa học có ba loại nhiệt kế sử dụng các thang đo nhiệt độ khác nhau: một chỉ độ Celsius (C), một chỉ độ Fahrenheit (F) và một chỉ độ Kelvin (K). Trong thí nghiệm của mình, ông đã sử dụng cả ba loại nhiệt kế và ông cần một máy tính để nhanh chóng chuyển đổi giữa các loại này. Biết công thức chuyển đổi là:

F = –C + 32
5

K = c + 273.15

Yêu cầu: Đọc vào số đo và đơn vị đo nhiệt độ, hãy chuyển đổi sang các đơn vị đo còn lại.

Dữ liệu: Vào từ file văn bản DOI.INP gồm 1 dòng chứa số thực (biểu diễn số đo nhiệt độ) và đơn vị đo nhiệt độ cần chuyển (là một trong các chữ cái F, c, K). Các số này cách nhau bởi dấu cách.

Kết quả: Ghi ra file văn bản DOI.OUT gồm 3 dòng chứa các thông tin theo thứ tự: Nhiệt độ F, Nhiệt độ c, Nhiệt độ K.

DOI.INP DOI.OUT
20 c Nhiet do F Nhiet do c Nhiet do K 68

20

293.15

 

Bài 2: Đếm số 0 (3 điểm)                                   Tên chương trình: ZERO.PAS

Tìm độ dài xâu con dài nhất chứa các số 0 liên tiếp trong 1 xâu cho trước.

Dữ liệu: Vào từ file văn bản ZERO.INP gồm 1 dòng chứa xâu chỉ gồm các kí tự 0 và 1 (không cách nhau bởi dấu cách). Độ dài xâu không quá 100.

Kết quả: Ghi ra file văn bản ZERO.OƯT chứa độ dài xâu con dài nhất chứa các số 0 liên tiếp.

ZERO.INP ZERO.OUT
00101110000110 4

 

Bài 3: Xóa kí tự (5 điểm)                                   Tên chương trình: XOAKT.PAS

Viết chương trình xóa kí tự thứ n của xâu s cho trước. Các kí tự trong xâu s được đánh số thứ tự từ 1, từ trái sang phải.

Dữ liệu: Vào từ file văn bản XOAKT.INP chứa 1 dòng theo thứ tự gồm 1 số nguyên N, dấu cách, xâu s chỉ chứa các kí tự ‘a\.’z’, ‘A\.’Z\ số N không vượt quá độ dài của xâu s đã cho. Độ dài của xâu s không vượt quá 80.

Bài 4: Tìm số âm (5 điểm)                                    Tên chương trìnhỉ SOAM.PAS

Tìm vị trí của số nguyên âm lớn nhất trong dãy số nguyên cho trước. Nếu tìm được nhiều hơn 2 vị trí thì chỉ ra vị trí đầu tiên xuất hiện (dãy số nguyên được đánh số bất đầu từ 1).

Dữ liệu: Vào từ file văn bản SOAM.INP gồm:

  • dòng thứ nhất chứa số nguyên n – số lượng phần tử có trong dãy.
  • dòng thứ hai chứa n số nguyên của dãy (các số trên cùng 1 dòng cách nhau bởi dấu cách)

Kết quả: Ghi ra file văn bản SOAM.OUT chứa vị trí của số nguyên âm lớn nhất trong dãy, nếu không tìm dược thì ghi -1.________________________________________ ________________________________________

Bài 5: Dãy số (2 điểm)                                                     Tên chương trình: DAYSO.PAS

Số nguyên f được gọi là ước số (dương) của số nguyên d nếu f lớn hơn 0 và tồn tại số nguyên n sao cho f X n = d. Ví dụ, số 12 là ước số của 60 vì 12 X 5 = 60.

Dãy số nguyên Xi, X2, …, Xn được gọi là dãy DDF nếu:

  • Mỗi Xi đều là số nguyên dương.
  • X1>1.
  • Xi+1 (với i > 1) là tổng các chữ số của tất cả các ước số (dương) của Xi.

Ví dụ

Dãy số 17, 9, 13, 5, 6, … là dãy DDF được hình thành theo cách sau:

  • Ước số (dương) của 17 là 1 và 17; tổng các chữ số là 1 + 1 + 7 = 9.
  • Ước số (dương) của 9 là 1, 3 và 9; tổng các chữ số là 1+3 + 9 = 13.
  • Ước số (dương) của 13 là 1 và 13; tổng các chữ số là 1 + 1 + 3 = 5.
  • Ước số (dương) của 5 là 1 và 5; tổng các chữ số là 1 + 5 = 6.

Biết rằng, với dãy số DDF bắt đầu bằng XI thì đến một lúc nào đó sẽ tồn tại Xn sao cho Xj = Xn, với mọi j>n. số Xn sẽ được gọi là so hạng cuối của dãy.

Yêu cầu: Xác định chiều dài của dãy DDF với số hạng đầu cho trước. Chiều dài của dãy DDF là giá trị của n, với Xn là giá trị cuối của dãy.

Dữ liệu: Vào từ file văn bản DAYSO.INP gồm 1 dòng chứa số hạng đầu XI (xi < 2000).

Kết quả: Ghi ra file văn bản DAYSO.OƯT chứa chiều dãi của dãy DDF.

———— hết——————

  • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).
  • Thí sình không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.

 

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIỀN GIANG           TRƯNG HỌC cơ SỞ

Năm học 2014-2015 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 25/3/2015 (Đề thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Tìm từ (5 điểm)                                        Tên chương trình: ỊVORD.PAS

Cho trước một xâu kí tự. Một từ được định nghĩa là một xâu con liên tiếp chứa các chữ cái (,al,zl hoặc ‘A’..’Z’). Một từ có thế được giới hạn giữa các dấu cách hoặc chấm câu. Dấu chấm câu là một trong các kí tự sau: dấu chấm (.), dấu phẩy (,), dấu chấm phẩy (;), dấu chấm than (!) hoặc dấu chấm hỏi (?).

Yêu cầu: Hãy tìm tất cả các từ có trong xâu mà có kí tự bắt đầu và kí tự kết thúc giống nhau (có phân biệt giữa chữ in hoa và chữ in thường).

Dữ liệu: Vào từ file văn bản WORD.INP chứa xâu kí tự gồm các chữ cái (‘a’…^’ hoặc ‘A’..’Z’), dấu cách, hoặc dấu chấm câu. Độ dài xâu không quá 100 kí tự.

Kết quả: Ghi ra file văn bản WORD.OƯT danh sách các từ mà có kí tự bắt đầu và kí tự kết thúc giống nhau, mỗi từ trên 1 dòng. Nếu không tìm thấy thì ghi -1.

WORD.INP WORD.OUT
dawd
Jun dawd gog, vex symphs. gog
symphs
Bài 2: Số thử tự (5 điểm)                                      Tên chương trình: INDEX.PAS

 

 

Một file văn bản chứa thông tin về học sinh của một lớp học gồm số thứ tự của học sinh và theo sau là tên của học sinh đó. Do lóp vừa nhận thêm một học sinh chuyển đến và giáo viên chủ nhiệm xếp học sinh này vào đầu danh sách nên cần đánh lại số thứ tự của các học sinh trong danh sách lóp.

Yêu cầu: Đánh lại số thứ tự của tất cả học sinh có trong danh sách bằng cách tăng số thứ tự của mỗi học sinh lên 1 đơn vị và giữ nguyên danh sách theo trật tự ban đầuT

Dữ liệu: Vào từ file văn bản INDEX.INP gồm:

  • Dòng đầu tiên chứa số nguyên N (1 < N < 100).
  • Mỗi dòng trong N dòng tiếp theo chứa thông tin của một học sinh theo thứ tự gồm: số thứ tự (số nguyên từ 1 đến 10000), dấu cách, tên của học sinh (không quá 20 kí tự).

Kết quả: Ghi ra file văn bản INDEX.OƯT danh sách học sinh nhu định dạng ban đầu nhung đã tăng số thứ tự của mỗi học sinh lên 1 đơn vị.

INDEX.INP INDEX.OUT
2 2
14 Nam 15 Nam
42 Thanh 43 Thanh

 

Bài 3: Dãy Min-Max (5 điểm)                           Tên chương trình: MINMAX.PAS

Cho trước dãy s chứa các số nguyên, vị trí các phần tử được đánh số từ 1 trở đi và từ trái sang phải.

Yêu cầu: Hãy tìm 2 dãy số nguyên dương, trong đó dãy số thứ nhất biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s và dãy số thứ hai biếu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.

Dữ liệu: Vào từ file văn bản MINMAX.INP gồm :

  • Dòng đầu chứa số nguyên N – biểu diễn số lượng phần tử của dãy (1 < N < 40)
  • Dòng thứ hai chứa N số nguyên A[i] (-231 < A[i] < 231-1 với 1< i < N)

Kết quả: Ghi ra file văn bản MINMAX.OƯT lần lượt chứa 2 dòng:

  • Dòng thứ nhất chứa dãy số biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s.
  • Dòng thứ hai chứa dãy số biểu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.

Các số trên cùng 1 dòng cách nhau bởi dấu cách.

MINMAX. INP MINMAX.OUT
7 3
3 6 -14653 2 5

 

Bài 4: Số gốc (3 điểm)                                         Tên chương trình: ROOT.PAS

Cho trước số tư nhiên a có biểu diễn trong hê cơ số 10 là a = a a _H … an SỐ gốc của số tự nhiên a được xác định như sau:

  • Nếu a chỉ có 1 chữ số thì a cũng là số gốc, ngược lại thực hiện như sau:
  • Chọn ra 2 chữ số đầu tiên từ bên trái an và an-i.
  • Tính tổng s= an + an-i:

o Nếu s <10 thì thay 2 số vừa chọn trong biểu diễn của a bằng s. o Nếu s >10 thì thay 2 số vừa chọn trong biểu diễn của a bằng S-9.

  • Lặp lại quá trình trên cho đến khi a chỉ còn 1 chữ số.
  • Số tìm được bởi quy luật trên được gọi là số gốc.

Ví dụ: Tìm số gốc của số a= 87345691. Đầu tiên, cộng 2 số 8 và 7. Ta được số 15. Vì tổng tìm được lớn hơn 10 nên ta thay 2 số đầu của a bằng 15-9, khi đó a sẽ là 6345691. Tiếp tục, cộng 2 số 6 và 3 được 9, sau khi thay thế a sẽ là 945691. Cộng 2 số 9 và 4 được 13, sau khi thay thế a sẽ là 45691. Cộng 2 số 4 và 5 được 9, sau khi thay thế a sẽ là 9691. Cộng 2 số 9 và 6 được 15, sau khi thay thế a sẽ là 691. Cộng 2 số 6 và 9 được 15, sau khi thay thế a sẽ là 61. Cộng 2 số 6 và 1 được 7, sau khi thay thế a sẽ là 7. Sơ đồ thay thế như sau:

8+7=15^15-9=6->6+3=9->9+4=13^13-9=4->4+5=9->9+6=15^15-9=6^6+9=15^ 15-9=6^6+1=7 SỐ gốc tìm được là 7.

Yêu cầu: Viết chương trình xác định số gốc của số nguyên a cho trước.

Dữ liệu: Vào từ file văn bản ROOT.INP chứa số nguyên a (< maxlongint).

Kết quả: Ghi ra file văn bản ROOT.OƯT chứa số gốc của số nguyên a.

ROOT.INP ROOT.OUT
87345691 7

 

Bài 5: Xâu SubsThree (2 điểm)                       Tên chương trình: SƯBSTH.PAS

Xâu con của xâu s được hiểu là một dãy các ký tự liên tiếp của s.

Xâu SubsThree của s là xâu con thỏa mãn:

  • Đó là xâu khác rỗng và chỉ chứa các chữ số ‘0’..’9’
  • Nếu chuyển xâu này sang số thập phân thì sẽ được số chia hết cho 3

Ví dụ, xâu “130a303” chứa 9 xâu Substhree như sau: ba xâu “3”, hai xâu “30”, hai xâu “0”, một xâu “303” và một xâu “03”. Xâu “30a3” không là xâu Substhree vì có chứa chữ cái, còn xâu “13” không xâu Substhree vì số 13 không chia hết cho 3.

Lưu ý rằng hai xâu Substhree được xem là khác nhau nếu chúng khác nhau về độ dài hoặc vị trí bắt đầu của chúng trong xâu s (mặc dù các kí tự của chúng giống nhau)

Yêu cầu: Cho trước xâu s, hãy đếm số lượng xâu Substhree chứa trong s.

Dữ liệu: Vào từ file văn bản SƯBSTH.INP chứa xâu khác rỗng s có tối đa 106 kí tự. Môi kí tự của s chỉ có thể là chữ số ‘0’..’9′ hoặc chữ in thường ‘aVy.

Kêt quả: Ghi ra fìle văn bản SƯBSTH.OƯT chứa nguyên biểu diễn số lượng xâu Substhree chứa trong s.

SUBSTH.INP SUBSTH.OUT
130a303 9

 

————— hết————————-

  • Các tập tin chương trình phải đặt theo đủng quy định (cả phần tên và phần mở rộng).
  • Thí sinh không được sử dụng tài liệu.
  • Giảm thị không giải thích gì thêm.

 

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIÈN GIANG        TRUNG HỌC co SỞ

Năm học 2013-2014 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 26/3/2014 (Đề thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Dãy Subtra (5,0 điểm)                             Tên chương trình: SUBTRA.PAS

Dãy số ti, t2,…tm được gọi là dãy Subtra nếu:

  • Mỗi phần tử ti (i=T..m) của dãy là một số nguyên lớn hơn hoặc bằng 0.
  • Mồi phần tử của dãy, bắt đầu từ phần tử thứ ba là hiệu của hai phần tử liền kề trước nó (tn+2=tn – tn-1 với t >1). Dãy sẽ kết thúc ở tm nếu tm-i<tm.

Ví dụ, nếu bắt đầu bằng hai số 120 và 71 thì dãy Subtra được phát sinh

như sau: 120; 71; 49; 22; 27. Dãy kết thúc ở số 27, độ dài của dãy là 5.

Yêu cầu: Đọc vào hai số ti và Í2, hãy tìm độ dài của dãy Subừa với hai sổ bắt đầu là ti và t2.

Dữ liệu: Vào từ fíle văn bản SƯBTRA.INP chứa hai số nguyên dương ti và t2, 0<Í2<ti< 10000, mỗi số nằm trên 1 dòng.

Kết quả: Ghi ra file văn bản SUBTRA.OƯT độ dài của dãy Subtra với hai số bắt đau là ti và t2-

SUBTRA.INP SUBTRA.OUT
120

71

5

 

Bài 2: Đọc văn bản (3,0 điểm)                                    Tên chương trình: ARAP.PAS

Tiếng Ả Rập, tiếng Ba Tư và tiếng Do Thái là các ngôn ngừ rất đặc biệt không giống như tiếng Anh và nhiều thứ tiếng khác, nó được viết từ phải sang trái. Tuy nhiên, những con số vẫn giừ nguyên (viêt từ trái sang phải). Ví dụ,

câu “manteiv fo tsaoc ffo deraeppasìd sregnessap 221 gniyrrac 777 gnieoB” sẽ được viết theo tiếng Anh là: “Boeing 777 carrying 221 passengers disappeared off coast of Vietnam

Yêu cầu: Chuyển xâu văn bản tiếng Ả Rập sang văn bản Tiếng Anh.

Dữ liệu: Vào từ file văn bản ARAP.INP chứa xâu văn bản theo tiếng Ả rập gồm các từ, mồi từ chứa các kí tự (a-z, A-Z, 0-9) ngăn cách nhau bởi dấu cách.

Kết quả: Ghi ra file văn bản ARAP.OUT chứa xâu văn bản theo tiếng Anh.

ARAP.INP ARAP.OUT
manteiv fo tsaoc ffo deraeppasid sregnessap 227 gniyrrac 777 gnieoB Boeing 777 carrying 227 passengers disappeared off coast of Vietnam

 

Bài 3: Độ cao (5,0 điểm)                                Tên chương trình: HEIGHT.PAS

Bạn được giới thiệu một số địa điểm để tham quan. Mỗi địa điểm được giới thiệu bao gồm tên địa điểm và độ cao của nó.

Yêu cầu: Hãy xác định trong các địa điểm đã cho, một địa điểm có độ cao gần nhất với độ cao của bạn ưa thích.

Dữ liệu: Vào từ file văn bản HEIGHT.INP gồm:

  • dòng thứ nhất chứa số nguyên m – độ cao ưa thích của bạn.
  • Các dòng tiếp theo, mỗi dòng chứa các thông tin theo thứ tự sau: tên của một địa điểm, dấu cách, một số nguyên thể hiện độ cao của địa điểm đó.

Kết quả: Ghi ra file văn bản HEIGHT.OUT chứa tên địa điểm mà bạn chọn. Nếu có 2 địa điểm được chọn thỏa mãn yêu cầu đề ra, hãy in ra tên địa điểm có độ cao lớn hon.

HEIGHT.INP HEIGHT.OUT
5

Everest 8850 Kamet 7756 Bahamas 10 Maldives 0 Mariana -11521

Bahamas

 

Bài 4: Tính thời gian chênh lệch (5,0 điểm) Tên chương trình: TIME.PAS

Để xây dựng các công trình thủy lợi đôi khi cần phải khoan nổ mìn đào đá. Việc tính toán thời gian nổ phải thật chính xác để đảm bảo an toàn cho người lao động.

Yêu cầu: Biết thời điểm hiện tại và thời điểm sẽ xảy ra vụ nổ. Hãy xác định khoảng thời gian chênh lệch giữa 2 thời điểm nói ưên.

Dữ liệu: Vào từ file văn bản TIME.INP gồm:

  • dòng đầu tiên chứa thời điểm hiện tại ở dạng hh:mm:ss (giờ, phút, giây). Giờ (hh) là số nguyên từ 0 đến 23; phút (mm), giây (55) là các số nguyên từ 0 đến 59. Các giá trị hh, mm, ss được định dạng 2 chừ số.
  • dòng thứ hai chứa thời điểm sẽ xảy ra vụ nổ theo định dạng như trên. Kết quả: Ghi ra file văn bản OƯT chứa khoảng thời gian chênh lệch giừa 2 thời điểm theo định dạng như trên. Biết rằng thời gian chênh lệch ít nhất 1 giây và tối đa 24 giờ.
TIME.INP TIME.OUT
20:00:00

04:00:00

08:00:00
12:34:56

14:36:22

02:01:26
Bài 5: Số mát mẻ (2,0 điểm)                             Tên chương trình: COOL.PAS

 

 

Theo định nghĩa của một nhóm nghiên cứu Tin học, 0 là một chừ số mát mẻ. Họ gọi độ mát của một số là số lượng 0 trong biểu biễn thập phân của nó. Ví dụ: độ mát của số 100 là 2, độ mát của số 1 là 0.

Yêu cầu: Tìm tổng độ mát của các số từ 0 đến sổ nguyên N cho trước.

Dữ liệu: Vào từ file văn bản COOL.INP chứa số nguyên N (0< N < 10 000

000).

Kết qỊuả: Ghi ra fíle văn bản COOL.OUT chứa tổng độ mát của các số từ 0 đến sổ nguyên N.

COOL.INP COOL.OUT
55 6

———– hét——————

•                Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•        Thí sinh không được sử dụng tài liệu.

•       Giám thị không giải thích gì thêm.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cho trước số nguyên N. Hãy tìm số nguyên lớn nhất nhỏ han N sao cho tổng các chữ số của nó nhỏ hơn tổng các chữ số của số nguyên N một đơn vị.

Dữ liệu: Vào từ fíle văn bản NUMBER.INP chứa số nguyên N(1<N<100

000) ‘

Kết quả: Ghi ra file văn bản NUMBER.OƯT chứa số nguyên cần tìm.

NUMBER.INP NUMBER.OUT
1520 1510

 

Bài 3: Báo cáo tài chính (5 điểm)                            Tên chươiĩg trình: REPORTPAS

Nhân dịp tổng kết cuối năm, bạn được giao nhiệm vụ thống kê tổng số chi phí của từng nhân viên của một công ty sau các chuyến du lịch trong năm. Mỗi nhân viên phải nộp báo cáo chi phí cá nhân cho bạn sau mỗi chuyến đi.

Yêu cầu: Viết một chương trình đọc vào danh sách gồm tên từng người và chi phí của họ, sau đó tạo ra một danh sách được sắp xếp theo tên nhân viên, kèm theo tống số chi phí của mỗi cá nhân.

Dữ liệu: Vào từ file văn bản REPORT.INP có:

  • dòng đầu tiên chứa số nguyên n (1< n <100), số lần nộp bảo cáo của các nhân viên trong công ty.
  • n dòng tiếp theo mỗi dòng chứa 2 giá trị: tên người và chi phí tương ứng (là một số thực). Tên người và chi phí cách nhau bởi dấu cách. Lưu ý: tên người không phân biệt chữ in và chữ thường (ví dụ: Trung và tRung được xem là như nhau).

Kết quả: Ghi ra file văn bản REPORT.OUT chứa danh sách các nhân viên trong công ty kèm theo tổng chi phí của họ trong năm, trong đó tổng chi phí được làm tròn hai số lẻ. Danh sách cần được sắp xếp alphabet theo tên người. Tên người phải được viết hoa chữ cái đầu tiên, các chữ cái còn lại là chữ thường.

REPORT.INP REPORT.OUT
5

trung 450.55 binh 1034.56 trUNg 1000.00 daNn 530.00 danH 470.00

Binh 1034.56 Danh 1000.00 Trung 1450.55

 

Cho trước hai sổ nguyên N và D. Hãy tỉm N số nguyên dương X]…XN sao cho hiệu số giữa tích của chúng và tổng của chúng bằng với D.

Dữ liệu: Vào từ file văn bản SUMPRO.INP chứa hai số nguyên dương N (2<N< 1000) và D (0 <D < 1000).

Kết quả: Ghi ra file văn bản SUMPRO.OUT chứa N số nguyên dương thỏa mãn yêu cầu nói trên theo thứ tự không giảm. Lưu ý rằng các số tìm được có thể bằng nhau. Giá trị các số được in không vượt quá 1 o6.

Các số trên cùng 1 dòng cách nhau bởi dấu cách

SUMPRO.INP SUMPRO.OUT
3 5 12 8

 

Bài 5: Cân bằng bit (2,0 điểm)                                     Tên chương                                                                             trình:                                                                             BỈT.PAS

Đọc vào 2 xâu khác rỗng s và T có độ dài bằng nhau,                                                                                                        s                                                                                                  chứa các kí tự                                                                                                  ‘0’,

‘1’và ‘?\ còn T chỉ chứa các kí tự ‘0’ và ‘1\

Yêu cầu: Hãy chuyển đổi xâu s thành xâu T với số bước nhỏ nhất. Biết rằng môi bước có thế thực hiện một trong các thao tác sau:

  1. Thay đổi kí tự ‘0’ trong s thành ‘r.
  2. Thay đổi kí tự ‘?’ trong s thành ‘0’ hoặc ‘
  3. Hoán đối 2 kí tự bât kỳ trong xâu s.

Ví dụ: Với xâu s = ‘0?1?’ và T = ‘1001’. Ta có thể chuyển s thành T trong vòng 3 bước sau:

  • Bước 1: Hoán đổi S[l] và S[3]. s trở thành ‘1?0?’
  • Bước 2: Chuyển S[2] to ‘0’. s trở thành ‘100?’
  • Bước 3: Chuyển S[4] to ‘ r. s trở thành 41 oor

Dữ liệu: Vào từ file văn bản BIT.INP gồm 2 dòng chứa 2 xâu s và T, mỗi dòng có độ dài không quá 100.

Kết quả: Ghi ra fỉle văn bản BIT.OUT chứa số bước nhỏ nhất để chuyển đổi s thành T. Nếu không chuyển đổi được thì ghi số -1.

BIT.INP BIT.OUT
0?1?

1001

3

————- HẾT——————

•     Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•     Thỉ sình không được sử dụng tài liệu.

•     Giám thị không giải thích gì thêm.

 

 

Họ và tên thí sinh:…………………………………… số báo danh:……………………………………………………………

 

SỎ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIẺN GIANG         TRƯNG HỌC co SỎ

Năm học 2016-2017 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi : 22/3/2017 (Đe thi có 04 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Giai thừa ngược (5 điểm)                                  Tên chưong trình: PINV.PAS

Trong toán học, n! (đọc là n giai thừa) được định nghĩa như sau:

n! =1x2x3x … X (n-1) X n (n là số nguyên không âm) Ví dụ:      3! = 1 X 2 X 3 = 6

Đặc biệt: với n = 0, người ta quy ước 0! = 1. Ký hiệun! được dùng lần đầu bởi Christian Kramp vào năm 1808.

Yêu càu: Biết trước giá trị của n!, hãy tìm sô nguyên n.

Dữ liệu: Vào từ file văn bản FINV.INP chứa giá trị của n!. Biết rằng số chữ số của n! không vượt quá 1 o6.

Kết quả: Ghi ra file văn bản FlNV.OƯT chua số tự nhiên n tìm được. Nêu không tìm được số nauvên n thì ghi -1.

FINV.INP FINV.OUT
3628800 10

 

Bài 2Í Chu kỳ dự đoán (5 điểm)                                  Tên chương trình: PẼRI.PAS

Ngày nay, có nhiều mô hình dự báo nhăm để biết trước những điều có thể xảy ra trong tương lai. Một mô hình thường dự báo, dự đoán giá trị của biến số (hoặc một dãy biến số) tại một số diêm trong tương lai căn cứ vào những dữ liệu trong quá khứ.

Dãy số nguyên ai. a2, …,an được gọi là dãy dự đoản chu kỳ k nếu tồn tại số nguycn dương k (IV k<n) sao cho mọi phần tử a; của dãy đều thỏa mãn a, a;+k với 1< i< n (nếu phần ai+k nằm ngoài dãy thì xem như nó nhận giá trị tùy chọn), số nguyên dương nhỏ nhất k thỏa mãn tính chất trên được gọi chu kỳ dự đoán của dãv số.

Một lập trình viên được đặt hàng viết chương trình phân tích chuỗi giá trị cho trước và cho biêt chuỗi này có khả năng tạo chu kỳ dự đoán k=3 hay không?

Yêu cầu: Đọc vào 1 dãy số nguvên và cho biết có là dãv dự đoán chu kỳ k=3 không?

Dữ liệu: Vào từ file văn bản PERI.INP

  • Dòng đầu chứa số nguyên n (3< n < 500).

 

  • Dòng thứ hai chứa n số nguyên aj (1< ai < 100). Các số này được cách nhau bởi dấu cách.

Ket quả: Ghi ra file văn bản PERI.OUT chứa chữ “YES” nếu dãy đã cho là dãy dự đoán chu kỳ k=3, ngược lại ghi chữ “NO”.

PERI.INP PERI.OUT
12

12 3′ 123123123

YES
11

123123 t 2312

YES
7

7 3 6 7 2 3 9

NO

 

Bài 3: Tên mã (4 điểm)                                                     Tên chương trình: CODE.PAS

Ngoài tên gọi chính, một hệ điều hành còn có tên phiên bản và tên mã (codename), tất cả đều được đặt theo một quy luật hay lý do nào đó. Ví dụ, hệ điều hành Android 4.4 có tên mã là KITKAT, Windows Phone có tên mã PHOTON, Fedora 14 có tên là LAƯGHLIN.

Tại Hội nghị triến lãm sản phẩm phần mềm, Ban Tổ chức quy định rằng tên mã đạt siải cao nhất là tên mã có số lượng chữ cái khác nhau nhiều nhất. Ví dụ: Tên mã K1TKAT có 4 chữ cái khác nhau: A, I, K và T; Tên mã JELLY BEAN có 7 chữ cái khác nhau A, B, E, J, L, N và Y; nên tên mã JELLY BEAN đạt giải cao nhất.

Ngoài ra cũng lưu ý rằng, nếu hai tên mã có cùng số chữ cái khác nhau thì tên mã nhỏ hơn sẽ đạt giải cao nhất. Biêt rằng phép so sánh hai tên mã được thực hiện theo quy tăc như sau:

+ Tên mã A gọi là nhỏ hơn tên mã B (B lớn hơn A) nếu như kí tự dầu tiên khác nhau giữa chúng kể từ trái sang phải trong tên mã A có mã ASCII nhỏ hơn.

+ Nếu A và B là các tên mã có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.

Yêu cầu: Được biết danh sách liệt kê tên mã của các hệ điều hành, hãy xác định tên mã của hệ điều hành đạt giải cao nhất?

Dữ liệu: Vào từ fìle văn bản CODE.INP gồm:

  • Dòng đầu tiên chứa số nguyên n cho biết số lượng tên mã của các hệ điều hành (1 < n< 100).
  • Mỗi dòng trong n dòng tiếp theo chứa một tên mã của hệ điều hành (mỗi dòng chứa không quá 20 kí tự). Mỗi tên mã đều bắt đầu và kết thúc bằng chữ cái in hoa. Giả sử tên mã của một hệ điều hành gồm các chữ cái in hoa ‘A’..’Z’ và có thể chửa dấu cách ở giữa.

Ket quả: Ghi ra ílle văn bản CODE.OUT chứa tên mã đạt giải cao nhất.

CODE.INP CODE.OUT
3

OREO

KITKAT

 

 

SID

KĨTKAT _____________________

Bài 4: Xổ số điện toán (4 điểm)                            Tên chương trình: LOT.PAS

Người chơi tham gia được tự chọn n vé số để dự thưởng, mỗi vé số là một chuồi số gồm 6 bộ số phân biệt, mỗi bộ số là 1 số nguyên có 2 chữ số (có giá trị từ 01, 02,…,45).

trên.

Sau khi so từng vé số với chuỗi số kết quả quay thưởng của Ban Tổ chức công bô, người chơi sẽ biêt được có trúng thưởng hay không. Tổng sô tiền thưởng của người chơi là tống số tiền thưởng nhận được của từng vé số trúng thưởng.

Cơ cấu giải thưởng được xác định như sau:

  • Giải đặc biệt (trúng cả 6 bộ số) : 12 tỷ (đồng)
  • Giải nhất (trúng cả 5 bộ số) : 10 000 000 (dồng)
  • Giải nhì (trúng cả 4 bộ số) : 300 000 (đòng)
  • Giải ba (trúng cả 3 bộ số) : 30 000 (đồng)

Lưu ý:

  • Các bộ số của 1 vé số trùng với kết quả các bộ số của quay thưởng không cần theo thư tự.
  • Trong trường hợp một vé số trúng nhiều giải thưởng thì người trúng thưởng chỉ được lĩnh một giải thưởng cao nhất.
  • Nếu nhiều vé số trúng giải, trong đó có giải đặc biệt thì chỉ nhận giải đặc biệt Ợackpot).

22

thì người này sẽ trúng thưởng 60000 đồng Dữ liệu: Vào từ file văn bản LOT.INP gồm:

  • Dòng đầu tiên chứa chuỗi sổ kết quả quay thưởng.
  • Dòng thứ hai chứa số nguyên n (1 <n<100), số lượng tờ vé số của người chơi.
  • n dòng tiếp theo, mỗi dòng chứa thông tin của 1 vé số.

Các bộ số trong chuỗi số kết quả quay thưởng và trong 1 vé số cách nhau bởi dấu cách.

Ket quả: Ghi ra file văn bản LOT.OUT chứa tổng số tiền thưởng nhận được. Nếu không trúng thưởng thì ghi số 0. Neu trúng giải đặc biệt thì ghi ‘JACKPOT’.

LOT.INP LOT.OUT
03 02 07 41 36 22 5 60000

 

 

Bài 5: Số bội của 3 (2 điểm)

Hệ thông lưới điện có thê bị gây hại bởi nhiêu tác nhân, trong đo một nguy cơ tiềm ẩn làm cản trở hoạt động và làm hao mòn thiết bị nhưng ít người nhận biết được chính là sóng hài – mối nguy cơ tiềm ẩn được phát hiện ngay đầu thập niên 1890.

Sóng hài (harmonic) là dòng điện không mong muốn làm quá tải đường dây và biến áp, làm tăng nhiệt độ hệ thống (hoặc thậm chí gây hỏa hoạn) và gây nhiễu lên lưới điện. Sóng hài là các điện áp hay dòng điện hình sin có tần số là bội số của tần số công nghiệp (tần số cơ bản), do hiện diện của các tải phi tuyến trong lưới điện. Ví dụ dòng điện hài có tần số 150HZ trên lưới điện 50HZ là sóng hài bậc 3. Thường chỉ có sóng hài bậc lẻ 3, 5, 7, 9 là xuất hiện trong lưới điện 3 pha.

Với tần số của 1 dòng điện đã cho, cần tìm sóng hài bậc 3 có ảnh hưởng đối với tân số của dòng điện đã cho.

Yêu cầu: Cho trước tự nhiên n. Hãy thay đổi 1 chữ số của n để được số chia hết cho 3 và là số lớn nhất trong các so tìm được (kể cả trường hợp ban đâu n chia hết cho 3).

Dữ liệu: Vào từ file văn bản MUL3.INP chứa số tự nhiên n có tối đa 100 chữ số.

Kết quả: Ghi ra file văn bản MUL3.0UT chứa số tự nhiên tìm được theo yêu cầu trên.

MUL3.INP MUL3.OUT
123 723
9 6
HÉT

 

 

  • Các tập tin chương trình phải đặt theo đủng quy định (cả phần tên và phần mở rộng).
  • Thỉ sinh không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.

Họ và tên thí sinh:……………………………………………… số báo danh:……………………………………………………………….

 

KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2017-2018 Môn: TIN HỌC

Thời gian: 150 phút (khổng kể thời gian giao đề)

Ngày thi: 30/3/2018

(Đê thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các hài toán sau:

Bài 1: Chỉ số BMR (5 điểm)                                          Tên chương trình: BMR.PAS

‘BM&Ợìasal Metabolic Rate) là chỉ số năng lượng cơ bản của cơ thể cho biết mức năng lượng tối thiểu mà cơ thế cần để duy trì các hoạt động bình thường.

  • Công thức tính chỉ số BMR:

Nừ giới: BMR = 655 + (9.6 X kg) -f (1.8 X cm) – (4.7 X tu ổi) Nam giới: BMR = 66 + (13.7 X kg) -h (5 X cm) –                                                                                                    (6.8 X tuồi)

  • Cách tính tống lượng calo cần hấp thụ theo từng múc độ hoạt động the chất
  • Nếu bạn quá ít hoạt động (ít hoặc không tập luyện): Caỉo = BMR X 1.2
  • Neu bạn ít hoạt động (ít tậu thể dục/thê thao 1-3 ngày/tuần): Calo = BMR X 375
  • Nếu bạn hoạt động vừa (tập thê dục/thế thao vừa vừa 3-5 ngày/tuần): Calo = 55
  • Nếu bạn hoạt động nhiều (tập thẻ dục/thề thao nhiều 6-7 ngày/tuần): Calo = BMR X 1.725
  • Nêu bạn hoạt động cường độ cao (tập thê dục/thê thao cường độ cao & cỏng việc thể chất hoặc tăng gấp đổi lượng luyện tập): Calo = BMR X 1.9

Yẽu cầu: Đọc vào thông tin của 1 người bao gồm giới tính, tuổi, chiều cao, cân nặng và mức độ hoạt động của người đó. hãy tính lượng calo cần thiết.

Dữ liệu: Vào từ file văn bản BMRHNP gồm 5 dòng:

  • Dòng 1: Chứa chữ “NAM’’ hoặc “NU”, cho biết giới tính của người đó.
  • Dỏng 2:Chứa số nguyên cho biết tuổi.
  • Dòng 3: Chứa số nguyên cho biết chiều cao (tính bằng cm).
  • Dòng 4: Chứa số nguyên cho biết cân nặng (tính bàng kg).
  • Dòng 5: Chứa 1 trong các ki tự “S”, “L”, “M”, “A”, “E”, cho biết mức độ hoạt động tương ứng như sau:

S: quá ít hoạt động (ít hoặc không tập luyện); L: ít hoạt động; M: hoạt động vừa; A: hoạt động nhiều; E: hoạt động cường độ cao.

Kết quả: Ghi ra file văn bản BMR.OUT chứa lượng calo cần thiết cho người đó. Kết quả là một số nguyên không lấy phán thập phân.

BMR.INP BMR. OUT
NAM 1713
52
1 65
65
s

 

Bài 2: Số Emỉrp (5 điểm)                                                  Tên chương trình: EMỈRP.PAS

Số Emirp là một số nguyên tố mà khi đảo ngược vị trí các chữ số của nó, ta cũng được một số nguyên tố. Định nghĩa này không bao gồm các số nguyên tố xuôi ngược (đọc ngược hay xuôi cũng là số nguyên tố chính nó), như 151 hoặc 787) và không bao gồm các số nguyên tố có một 1 chữ số. Biêt rằng, số nguyên tố là số tự nhiên chỉ có hai ước sô dương phân biệt là 1 và chính nó.

Yêu cầu: Đọc vào số nguyên n, hãy cho biết n có là số Emirp không?

Dữ liệu: Vào từ file văn bản EM3RP.INP chứa số nguyên n (1< n < 10000).

Kết quả: Ghi ra file văn bản EMIRP.OUT chứa chứa chữ “YES” nếu n là số Emirp, ngược lại ghi chữ “NO”.

EMIRP . INP EMIRP.OUT
149 YES

 

Bài 3: Số thân thiện (4 điểm)                                        Tên chương trình: FRIEND.PAS

Người ta gọi bộ 3 số nguyên dương là thăn thiện nếu chúng khác nhau đôi một và tích của hai trong số chúng chia hết cho số thứ ba.

Yêu cầu: Đọc vào hai số nguyên dương phân biệt, hãy đếm xcm có bao nhiêu số nguyên tạo với hai số dã cho thành bộ 3 số thăn thiện.

Dữ liệu: Vào từ file văn bản FRIEND.INP chứa 2 số nguyên dương phân biệt cách nhau bởi dấu cách, mỗi số có giá trị không vượt quá 40000.

Kết quả: Ghi ra file văn bản ERIEND.OUT chứa số lượng số nguyên tạo với hai số đã cho thành bộ 3 sô thân thiện.

FRIEND.INP FRIEND.OUT
5 15 õ
Giải thích: Có đúng hơi số cùng với số 5 và số ỉ5 tạo thành bộ 3 thân thiện là số 3 (vì 3×5 chia hết cho 15, 3×15 chia hết cho 5 và 5 X 15 là chia hết cho 3) và số 75 (vì 5 X 15 chia hết cho 75, 5 x 75 chia hết cho 15 và 15 X 75 chia hết cho 5).

 

 

Bài 4: Giải mã Email (3 điểm)                               Tên chương trình: EMAIL.PAS

Một người dùng giấu một mật khẩu trong một email đâ gửi. Email đã gửi bao gồm một số dòng văn bản. Mỗi dòng chứa một số từ. Từ là dãy liên tiếp các chữ cái 6a\.’z\ Mật khẩu được thành lập bằng cách ghép theo thứ tự các từ lấy trong nội dung email đã gửi.

Mật khẩu được tìm thấy dựa theo quy luật sau:

 

  • Dòng thứ nhât củẩ ciriail không chứa mặt khẩu.
  • Dòng thử hai của email chứa từ đầu tiên của mật khẩu.
  • Dòng thứ ha của email chứa từ thứ hai của mật khẩu.
  • Dòng thử tư của email chứa từ thử ba của mật khẩu.

Và tiếp tục như thể…

Luu ý: Nếu trên một dòng nào của email khòng tìm được từ nào của mật khẩu theo quy luật trên thì lừ tìm được là rỗng và không đưa từ rỗng vào mật khẩu.

Dữ liệu: Vào từ file văn bản EMAIL.INP gồm:

  • Dòng đầu tiên chửa số dòng của email (email chứa không quá 50 dòng).
  • Các dòng tiếp theo chứa nội dung của Einail.

Kết quả: Ghi ra file văn bản EMAIL.OUT chứa mật khẩu tìm được theo quy luật trên. Mỗi từ cua mật khâu nằm trcn 1 dòng. Dữ liẹu vào đain bảo mật khẩu tìm được luôn khác rỗng.

EMAIL.INP EMAIL,OƯT
5 toi
viet nam la quoc gia thuoc khu vuc dong nam a dang
toi thay hoa vang tren co xanh o
tet dang vao nha nga
tim nha o
bay chim thien nga
Bái 5: Dãy con (3 điểrii)                                                 Tên chương trình: SƯBSEQ.PAS

 

 

Cho dãy A có n phần tử. mỗi phần tử là một số nguyên (có thể âm, bàng 0 hoặc dương). Hãy tim dãy con khác rỗng các phần tử liên tiép của A sao cho:

  • Phần tử đầu dãv con và cuối dãy con bằng nhau.
  • Tổng các phần tử của dãy con là lớn nhất.

Hay nói cách khúc: Tìm 2 số nguvên / và /• (1 <l<r<n) sao cho a/ = ar và tổng a/ + ÍU+I + • • • + ar là lớn nhất.

Dữ liệu: Vào từ file văn bản SUBSEQ.INP gồm:

  • Dòng thử nhất chứa số nguyên n (1 < n < 106) – số lượng phần tử cúa A.
  • Dòng thứ hai chứa n số nguyên aụ ãi,…, a„ (-109 < ai <109. 1 < i <n).

Kết quả: Ghi ra file văn bản SUBSEQ.OUT gồm:

  • Dòng thứ nhất chứa tổng lớn nhất tìm được.
  • Dòng thứ hai chứa hai số nguyên / và

Các số trên cùng một dòng cách nhau bởi dấu cách. Neu tìm được hơn 1 lời giải thì xuất ra bát kỳ một trong số chúng.

SƯBSEQ.INP SƯBSEQ.OƯT
5 5
12 12 3 2 4
…………… HÉT…………………..

•                Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•        Thí sinh không được sử dụng tài liệu.

•       Giám thị không giải thích gì thêm.

 

 

KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2018-2019 Môn: TIN HỌC

Thời gian: 1.50 phút (không kể thời gian giao đề)

Ngày thi: 20/3/2019

(Đề thi có 04 trang, gồm 05 bài)

TONG QUAN CÁC BÀI THI

Tên bài File chương trinh File dữ liệu vào Fi!e kết quả
Bài 1 Lễ hội Cà phô CAPE.* CAFE.INP CAFE.OUT
Bài 2 Số ưa thích HKE.* LIKE.INP LIKE.OUT
Bài 3 Phuc hồi dãy số SEỌ.* SEQ.INP SEQ.OŨT
Bài 4 Số nguyên tố lớn nhất PRIME.* PRIME.INP PRIME.OUT
Bài 5 Dãy số điều hòa HARMONIC.* HARMONIC.INP HARMONIC.OUT

(Dấu * đưọc thay bỏi PAS hoặc CPP của ngôn ngũ’ lập trình đuọc sử dụng tuoìig ứng vỏ’i Pascal hoặc C++). Hãy lập trình giải các bài toán sau:

 

 

Bài 1: Lễ hội Cà phê (5 điểm)

Ban To chức Lễ hội Cà phê năm 2019 vạch ra một kế hoạch cho các sự kiện sẽ diễn ra trong Le hội. Mỗi sụ’ kiện được Ban Tổ chức dự kiến thời gian diễn ra bao gồm thời gian bắt đầu và thời gian kết thúc.

Yêu cầu: Căn cứ thông tin của Ban Tố chức, hãy xác định thời gian bắt đầu (thời gian bắt đầu của SỊT kiện sớm nhất) và kểt thúc (thòi gian kết thúc sự kiện cuối cùng) của Lề hội, tông thời lượng của các sự kiện (không bao gồm thời gian nghỉ) và tông thòi gian nghỉ.

Dữ liệu: Vào từ file văn bán CAFE.INP có:

  • Dòng đầu tiên chứa một số nguyên n – số lượng sự kiện (1 < n <20).
  • Dòng thứ i của n dòng tiếp theo chứa thông tin về các sự kiện bao gồm: Si là tên của sự kiện (bao gồm các chữ cái không quá 100 ký tự), thời gian bắt đầu của sự kiện là ai và thòi gian kết thúc bi. Thời gian được cho là hợp lệ và theo định dạng hh:mm (không có dấu cách ở giữa) và có giá trị từ 00:00 đên 23:59. Giữa Si và aị có thê có một hoặc nhiêu dâu cách, giữa ai và bi là dấu trừ (-). Mỗi sự kiện chi được tố chức tại một thòi điểm. Một sự kiện không the kéo dài dưới 1 phút.

Kết qua: Ghi ra file văn bản CAFE.OƯT chứa bổn dòng:

Dòng ĩ: Thời gian bắt đầu (thòi gian bắt đầu của sự kiện sớm nhất).

Dòng 2: Thời gian kết thúc (thời gian kết thúc sự kiện cuối cùng).

Dùng 3: Tổng thời lượng của các sự kiện (không bao gồm thời gian nghỉ). Dòng 4: Tống thời gian nghỉ.

Tất cả dữ liệu đầu ra theo định dạng hh:mm.

CAFE.INP CAFE.OUT
3 10 : 00
Opening 15:20-17:20 17 : 20
Speech 10:00-11:00 05 : 00
Festival 12:00-14:00 02:20

 

Bài 2: Số ua thích (5 điểm)

Bình rất thích các số trong đó không có hai chữ số liên tiếp giống nhau.

Yêu cầu: Với một số nguyên n được cho, hãy giúp Bình tìm sổ nguyên nhỏ nhất, lớn han hon n, mà Bỉnh thích.

l)ữ liệu: Vào từ file văn bản LIKE.INP chứa số nguyên n (1 < n < 1018).

Kết quả: Ghi ra ílle văn bản L1KE.OUT chứa sô nguyên nhỏ nhất lớn hơn n, trong đó không có hai chừ sô liên tiếp giông nhau.

LIKE.INP LIKE.OUT
98 101

 

Bài 3: Phục hồi dãy số (4 điểm)

Trong 1 tiết dạv toán, các học sinh đang được giới thiệu về các số nguyên dương. Đê chuân bị cho tiết học, giáo viên viết sẵn các số từ 1 đến n theo thứ tự tăng dần (từ trái sang phải) trên bảng.

Tuy nhiên, có một học sinh nghịch ngợm đã chạy vào lóp học và đã xóa đi một số đã đưọ’c giáo viên viết trên bảng. Đứng trước Hiệu trưởng, học sinh này xưng tên là Nam, học sinh này rất hối hận và nói rằng mình chỉ xóa đúng một số trong dãy số.

Yêu cầu: Hãy giúp giáo viên tìm hiểu xem điều này có đúng không, và nếu có thế, hãy cho biết số nào đã bị xóa.

Dfr liệu: Vào từ file vãn bản SEQ.INP gồm:

  • Dòng đầu tiên chứa số nguvên n – sô lượng số nguyên đã được giáo viên ghi trên bảng (2 < n < 1000).
  • Dòng thứ hai chứa số nguyên m – số lượng số nguyên còn lại trên bảng sau khi học sinh đã xóa (1 < m <1000).
  • Dòng thử ba chứa m số nguyên ai, a2, . . . , am — dãy số nguyên còn lại sau khi Nam đã xóa, theo đúng thứ tự mà chúng đã được ghi trên bảng (1 < ãị < 1000).

Kết quả: Ghi ra fde văn ban SEQ.OƯT theo định dạng sau:

  • Nếu lời giải thích của Nam là hợp lý:
  • Ghi chữ “Yes” dòng đầu tiên.
  • Dòng tiếp theo chứa số nguyên đã bị Nam xóa.
  • Nếu lời giải thích của Nam là không hợp lý: Ghi chữ “No”.
SEQ.INP SEQ.OUT
4 Yes
3 2
13 4

 

Bài 4: Số nguyên tố ló’n nhất (4 điểm)

Một giáo viên Toán muốn kiếm tra kiến thức số học của học sinh lóp mình đang dạy bằng cách như sau: Đầu tiên Ồng giới thiệu với học sinh hai số tự nhiên a vàb. Sau đó yêu cầu học sinh hình thành các sô mới theo quy tăc:

  • Lấy chữ số đầu tiên của số a: Đặt thay cho chữ số đầu tiên của số b, tạo thành một số mới; Đặt thay cho chữ số cuối cùng của số b, tạo thành một số mới.
  • Lấy chữ số thứ hai của số a: Đặt thay cho chừ số đầu tiên của số b, tạo thành một số mới; Đặt thay cho chữ số cuối cùng của số b, tạo thành một số mới.

Tiếp tục tạo các số khác theo quy tắc trên cho đến hết chữ số cuối cùng của số a. (nếu số a có 3 chừ sổ thì sẽ có 6 sổ được tạo thành).

Yêu cầu: Biết hai số a và b, hãy tìm sổ nguyên tố lớn nhất trong các số được hình thành theo quy tắc trẻn (kể cả hai số ban đầu a và b). Neu không tìm được số nguyên tố lớn nhất như yêu cầu ở trên thì hiển thị số lớn nhất có thể (kể cả hai số ban đau a và b).

Dữ liệu: Vào từ fiỉe văn bủn PRIME.INP chứa hai số nguyên a vàb (10 < a, b

< ỉ000000).

Kết quả: Ghi ra tìle văn bản PRIME.OIT chứa số nguyên tìm được theo yêu cầu ở trên.

Ví dụ:

_____ *__________________________________________________ ______________________________________ _

Bài 5: Dãy số điểu hòa (2 điểm)

Trung bình điểu hòa là một trong ba trung bình Pythagoras, hai trung bình kia lả trung bình nhân và trung bình cộng (trong Excel có hàm HARMEAN trả về trung bình điều hòa của một tập hợp dữ liệu)

Ta nói rằng ba số a, b, c theo thứ tự tạo thành dãy số điểu hòa nêu b là trung bình điều hòa của a và c, nghĩa là:

2

a c

Yêu cầu: Biết trước số tụ nhiên b, hãy xác định tất cả các cặp số tự nhiên (a, c) sao cho a, b, c tạo thành dãy số điều hòa.

Dữ liệu: Vào từ file văn bản HARMONIC.INP in chứa một số tự nhiên b.

Kết quả: Ghi ra lìlc văn bản HARMONIC.OUT chứa ở dòng đẩu tiên một số tự nhiên n cho biết cho số cặp số tự nhiên (a, c) trong đó b là giá trị trung bình diều hòa. n dòng tiếp theo sẽ hiến thị các cặp số (a, c) tìm được (chúng cách nhau bởi một dấu cách).

Hạn chế và hru ỷ:

  • 1 < b < 10°;
  • Các cặp số trong file kêt quả có thê được hiến thị (heo bất kỳ thứ tự nào;
  • Neu b là trung bình điều hòa giữa hai số khác nhau a và c thì các cặp (a, c) và (c, a) được coi là lời giải riêng biệt.
HARMONIC.INP HARMONIC.OƯT Giải thich
3 3 số 3 là trung bình điều
3 3 hòa của số 3 và 3. Ta có
dãy số điều hòa (3, 3,
2 6 3)
6 2 Số 3 là trung bình điều
hòa của số 2 và 6. Ta có
các các dãy số điều hòa
(2,3,6) và (6,3,2)
————- Hét ——————–

•                Các tập tin chuvng trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•       Thí sinh không được sử dụng tài liệu.

•       Giảm thị không giải thích gì thêm.

 

 

 

KỲ THI CHỌN HỌC SINH GIỎI CẢP TINH TRƯNG HỌC CO SỞ, NÃM HỌC 2020-2021

Môn: TIN HỌC

Thời gian: 150 phút (không kê thời gian giao để)

Ngày thi: 31/3/2021

(Đê thi có 04 trang, gồm 05 bài)

TỎNG QUAN CÁC BÀI THI

Tên bài Fi!e chuông trình File dữ liệu

vào

File kết quả
Bài 1 Số kết đôi NUM.* NUM.INP NUM.OUT
Bài 2 World cup CUP.* CUP.INP CUP.OƯT
Bài 3 Phần tư điên hình PART.* PART.1NP PART.OUT
Bài 4 Đặt mật khẩu PW.* PW.INP PW.OUT
Bài 5 Sự lây lan COVID.* COV1D.INP COVID.OUT

 

Dấu * được thay thế bời PAS, CPP hoặc PY cứa ngôn ngữ lập trình được sử dụng tương ứng là Pascal, C++ hoặc Python.

Bài 1: Số kết đôi (5.0 điểm)

Số nguyên dươna X được gọi là số kết đôi nếu như có thê tim thấy hai số nguyên a, b thoa mãn các điều kiện:

  • ì < a < b < X

, _        , a 1

  • X è = X và – > —

b 2

Yêu cầu: Hãy xác định một số nguyên cho trước có là số kết đôi hay không?

Dữ liệu: Vào từ file văn bản NUM.INP chứa số nguyên X (1 < X < 215).

Kết quả: Ghi ra file văn bản NUM.OƯT chứa số 1 nếu X là số kết đôi, ngược lại ghi số 0.

Bài 2: VVorld cup (5.0 điêm)

Liên đoàn Bóng đá Ọuốc tế (FIFA) đã ấn định ngày khai mạc World Cup 2022. Đội chủ nhà Qatar sẽ đá trận đầu tiên trong ngày khai mạc là ngày 21/11/2022.

Phương đang sống ờ Việt Nam, rất dam mê bóng đá và mong chờ được xem lễ khai mạc.

 

Yêu cầu: Hãy giúp Phương tính xem kể từ một mốc thời gian ngày, còn bao nhiêu ngày nữa là đến lễ khai mạc. Ví dụ, mốc thời gian là ngày hôm nay, nếu lễ khai mạc là ngày mai, thì sẽ còn 1 ngày nữa. Cho biết:

a) Số ngày trong 1 tháng:

Tháng 1 2 3 4 5 6 7 8 9 10 11 12
Số ngày 31 28 (29 nếu là năm nhuận) 31 30 31 30 31 31 30 31 30 31

b) Năm nhuận:

 

 

Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 mà không chia hết cho 100. Ví dụ, năm 1800 không phải là năm nhuận; năm 2016, 2000 là năm nhuận.

Dữ liệu: Vào từ íile văn bản CUP.INP chứa 1 xâu cho biết mốc thời gian ngày cần tính theo định dạng “dd.mm.vyyy”. Trong đó dd là ngày có giá trị từ 01 đến 31, nim là tháng có giá trị từ 01 đến 12, yyyy là năm có 4 chữ số. Dừ liệu ngày cho là hợp lệ. Kết quả: Ghi ra tìle văn bản CƯP.OUT chứa số ngày sẽ đến lễ khai mạc FIFA World Cup 2022.

Bài 3: Phần tử điển hình (4.0 điềm)

Cho trước một mảng có n phần tử A = [ai, a2,…, an]. Phần tử a, được gọi là điển hình nếu tồn tại một cặp chí số L và R (1 < L < R < n) sao cho aj = aL + aL+i +…+ aR. Nói cách khác, một phần tử được gọi là điển hình nếu nó có thể được biếu diễn dưới dạng tông của hai hoặc nhiều hơn các phần tử liên tiếp của một mảng.

Yêu cầu: Đem số phần tử điển hình cua mảng đã cho A.

Ví dụ, nếu n = 9 và A = [3, 1,4, 1, 5, 9, 2, 6, 5] thì số phần tứ điển hình của A là 5, cụ thê:

  • a3 = 4 là phần tử điển hình, vì a3 = 4 = ãị + a2 = 3 + 1;
  • a5 = 5 là phần tử điển hình, vì a5 = 5 = a2 + a3 = 1 + 4;
  • a6 = 9 là phần tử điển hình, vì a6 = 9 = ai + a2 + a3 + a4 = 3 +   1 + 4 + 1;
  • a8 = 6 là phân tử điển hình, vì a8 = 6 = a2 + a3 + a4 = 1 + 4 +     1;
  • ãg – 5là phần tử điên hình,vì ay = 5 = a2 + a3 = 1 +

Lun ý rằng các phần tử của mảng A có thế bằng nhau nên nếu có một số phần tử điển hình mà bằng nhau thì tất cả chúng sẽ được đếm.

Dữ liệu: Vào từ íìle văn bản PART.INP gồm:

  • Dòng đầu tiên chứa số nguyên n là số phần tử của mảng A (1 < n < 8000).
  • Dòng thứ hai chứa n số nguyên cách nhau bởi dấu cách ax, a2,…, an

(1 < al < n).

Kết quả: Ghi ra file văn ban PART.OUT chứa số phần tử điển hình cua mang đã cho.

PART.INP PART.OUT
9

314159265

5

 

Bài 4: Đặt mật khấu (4.0 điểm)

Quên mật khẩu Facebook, Gmail, Zalo… là việc thuờng xảy ra khi chúng ta phải đàng nhập rất nhiều tài khoản hằng ngày. Bên cạnh việc tạo mật khẩu mạnh là việc làm thế nào mà bạn có thế nhớ nhùng mật khâu đã tạo. Một người dùng internet nghĩ ra cách tạo một mật khấu mới như sau: Mật khẩu mới là mật khâu chỉ khác các mật khẩu mà anh ta đã có (tạo ra hoặc được cung cấp) nhiều nhất 1 vị trí.

Yêu cầu: Với n xâu s 1 ,s2,- – •, Sn cho trước, các xâu đêu có cùng độ dài m. Hãy tạo xâu mật khấu mới p sao cho mỗi xâu tronc sô n xâu đã cho khác xâu p không hơn một vị trí. Hay nói cách khác, với mồi xâu Si không có hơn 1 vị trí j sao cho Sj[j] V

PDL

Lưu ý: Xâu p mong muốn có thê bằng một trong các xâu Si đã cho, hoặc nó có thể khác với tất cả các xâu Si đã cho.

Dữ liệu: Vào từ file văn bản PW.INP gồm:

  • Dòng đầu tiên chứa hai số nguyên nvàra (n: số xâu; m: độ dài mỗi xâu; 1 < n, m < 10).
  • Dòng thứ i trong n dòng tiếp theo chứa xâu Si, có độ dài m và chi chứa các chữ cái in thường (‘a’..‘z’).

Kết quả: Ghi ra file văn bản PVV.OƯT

  • Nếu bài toán có lời giải: Ghi xâu p có độ dài m và chỉ chứa các chữ cái in thường (‘a’..‘z’). Nếu bài toán có nhiều lời giải: Ghi bất kỳ xâu p nào thỏa mãn.
  • Nếu bài toán không có lời giai: Ghi số -1.
PW.INP PW. OUT
2 4 abab
abac
zbab

 

Bài 5: Sụ lây lan (2.0 điểm)

Covid-19 lây lan phô biến nhất khi tiếp xúc gần. Những người ớ gần với người mắc Covid-19 hoặc tiếp xúc trực tiếp với người đó sẽ có nguy cơ lây nhiễm cao nhất.

Giả sử có n người (được đánh số từ 1 đến n) đang ở trên 1 con đưòng trong thành phố. Có thê xem vị trí của họ là những điểm trên trục tọa độ Ox. Với mồi chỉ số i, vị trí cua người thứ i là Uj.

o                               a,             a:                            aj                                34 X

  • ——— I——— 1——– +——— t——- t——— 1——– +——– t———- í——— >

0         1234 5 6789

Theo thông báo của cơ quan Y tế , trong n người này có đúng một người đã bị nhiễm Covid-19, nhưng chưa biết đó là ai. Biết rằng, vi-rút sẽ lây lan từ người bị nhiễm sang người không nhiễm bệnh khi khoảng cách tối đa giữa họ bằng 2.

Một người bị nhiễm bệnh sẽ lây nhiễm cho người khác theo hiệu úng tiếp xúc gần. Nhóm người bị nhiễm bệnh này được gọi là tập hợp ngưòi nhiễm bệnh cuối cùng.

Yêu cầu: Hây tìm ra số nhỏ nhất và số lớn nhất những người bị nhiễm cuối cùng, tức là tìm ra con số này trong trường hợp tốt nhất và trong trường hợp xấu nhất có thể

xảy ra.

Dữ liệu: Vào từ file văn bản COVID.INP gồm:

  • Dòng đầu tiên chứa số nguyên n là số người trên đường (1 < n < 100).
  • Dòng thử hai chứa n số nguyên ai, a2, …, an cách nhau bởi dấu cách. Biết rằng 0 < a, < 100.

Kết quả: Ghi ra file văn bản COVID.OƯT chứa hai số nguyên cách nhau bởi dấu cách cho biết số nhỏ nhất và số lớn nhất những người có thê bị nhiễm cuối cùng.

COVID.INP COVID.OUT
2 1 1
3 6
3 3 3
13 5

 

———————————————— HẾT———————————————— ——– :

■ Các tập tin, chương trình phai đặt theo đúng quy định (ca phần tên và phần mở rộng).

Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh:…………………………….. số báo danh:………………………………………………………

 

KỶ THI CHỌN HỌC SINH GIỘI CÀP TỈNH [RUNG HỌC Cơ Sớ NSm liợc 2021-2022

Môn: TIN HỌC

Thòi gian lảm bài: 15(1 Ịiluìt íkhông kẽ ỉ hởi gian giao đè) Ngáy ihi: 22/03/2022 ị De thi cỏ 04 trang, gồm 05 bùi)

tông ouàn cắc bãi thi

Tèil bài ỉ ilt thương trình Kilt dữ liựu vào Hiu két quỉ
Bâi 1. SỚ NGUYÊN TỒ DÃY DỨ KULLPRIMA KULLPH.JM.LNP í ULLPR.IM.OUT
lỉúi 2. MẶT MẢ SIiCRCODE* SECRƠODL.INP SLCRCODL.OUT
Bài 3, CHON PHẢN THƯỞNG BONUSSiiL-* BONLSSLL.INP BỜNUS.SEL.OUT
Bài 4, TAM GIAC TR1ANGLE. IRÍANGLL 1NP TR1ANGLL.OUT
tỉai 5. LẢI KLP NGAN HÀNG COM PIN TA COMPlNTdNP COMPLNT.OUT
Dổu * dược thay thề bới PAS, CPPt py cún ngôn ngừ tập trình được Sti dạng tương ứng tù PùỊCữl, £.’++, Pyihún hoặc phần mớ rộng tương ửng v&ĩ M:\LT khác.

 

 

Dải I: SỎ NGUYÊN TỞ BẦY DV (4.Ộđiềm)-TỄn thương trhMỈa: FULLP(tlM/ hỉuìỉ niệm:

  • **sỏ HgĩtyỀn tố ‘,ỳ: sắ itgụyỂn dương p (p > ĩ) là sỗ nguyện tỏ khi p chi cù hai ước sỗ ỉà ỉ và chinh nỏ.
  • 4,1 Sổ nguyên tể dầy dù”. Là sé ngụyẻn lổ mủ khỉ viẻt đàơ ngược sẬ đò thi sổ đáo ngược Vần Ịà sa nguyên tà. Vi dụ: Sâ Í3 lá liSữ ĩtguyỂn tổ dãy dii” vỉ khi đặo ntược sô 13 La dược sả31 cEtìg.íè sổ ũgtiy£n lổ, sẶ 53 khủng pliái lá “íd nguyên tổ dầy dù” vl khi dáo ngược sả 53 La được 9ổ 35» và 35 khômỉ phui Jả s6 nguyên lố.

Yeu tầu: Hăy vhk chương ưinh kicm tra trang dằy 5′ sả nguyên dương ù ị cho ưước cù nhữn£                                                                          sỏ

náo Lá **Í1Ử ngiẹyẽn lủ đảv đu’.

I)ữ litií vầo: Đtíợc cbo traÉỊg lộp văn ban KULLPRIM.ÍNPị gồm 2 dóng.

  • Dõng dâu liỏn ghi so .’V ị ì <jV <iỉ(f), lá Sủ phân tư của dẫy.
  • Dùng thứ hai ghi N sả ngưyÊn dưímg ữị {i=l..\. 2 <ứi ệ iũlw), moi số tách nhau bói dảu

cách.

Dứ iiệu ra: Tệp văn hán KULLPKI.M.OI T gốm một dóng thừa dảy ,li’L> nguỳện té đầy du” trơn lì LÍp dừ liệu vào. NẾu trang diy ùi khớmì cộ “iYJ lĩgưyỂn té đầy du” [hi gbi lá 0,

Ví dụ:

Mòn Tín taọẹ_22WV2tì22_Tr»ns 1/4

 

Bàl 1: MẠ í MÃ (4,0 điểm) – TỀH chương trình: SECRCODE.*

]’rong đợt căm trại Mừng Dáng Mừng Xuân, trưùựg THCS 26/3 lủ chức phát thướng cho nhừna học sinh có ihãnh tích cao trong cuộc thi rin học líé. Bạn An dược mọt cỏniĩ ty ABG thưởng phẩn iỊjềm diẹt viniB 1A một thè cù chùa mà hán quyền. Tiên thê cỏ ghi một ỊÍẾU hi tự, mả bán quyền lủ so lượng ki Lự xuái hiện ưong xâu dó theo thứ tự uiphabet (thử tụ lir đien).

Vi dụ: Neư xâu ghi trên ihc lá abzaabbbbbzbbbb [hi có 3 kỉ lự ít, ]|j kỉ tự b vả 2 ki lự r. Nên mà bán quyẾũ lá 3 102.

YÊU cầu: Bạn lú chuvdn VÍCII về lập trinh Lin học, hây ưiÍLp An tim mâ hun quyỂn trẽn [hè.

L>ữ liệu váo: Dược cho trưng tcp ván bán SECItCODE.INP lá một xâu (chửa ki lự thướng ‘Ả.:i trong bâng chữ cái ‘L iệng Anh, chiều dái của xáu khỏng quá lữ1)

Dứ liệu ra: Tệp vãn bán SECkCODE.OUT, ưhi chuồi sắ Lú mã bún quyên.

Vi dụ í

SECRCODE.1NP SECRCODE.OLT
bcỉi{hiiicfxyzhbbcccccỉỉceeex\:xyzzz 246351334

 

Giúi thích. Chuồi củ 1 kỉ lự ÚT, 4 ki tự b. 6 k[ Lự c> 3 ki lự íỉf 5 ki Lự e, 1 ki tư£ 3 ki lự JC, 3 kE [ự y vá A kí lự z ncn mả bán quyên Lú 246351334.

Bùi 3: CHỌN THAN THƯỞNG (4.0 điếm) – TỄn chương trinh: BQMlSSEL.*

Trong ký thi học sinh gioi L HCS cáp huyện mủn Toán, trong nỏi dung dề có nói VẺ $fỉ chính ph ương ‘ lá sỏ bãỉig bình phương đúng cua một sổ nguyên. i ỉar hỉàíi đơn gúin, sổ chinh phìỉiĩỉỉg lả một sổ tự nhiên cỏ căn bậc hai cùng ià mật sâ tự nhiên. Bạn An dược giái nhất trong kỷ thi đó, thày Thú giáo viẻn dạy toán hoi dưrtng cho An cỏ phằn ihuứng dặc hiệt cho An, dòng ihới cũng muốn kiềm tra kiến thức toản và lư duy vc lập Irinh tin học cũa An như the nèo đẻ dịnh hướng bạn di ngành CNTT Lrong thửi dại cồng mìhc 4.0. ĩhầy yẾu cẳu An chọn nhừng phần thướng má thấy dã xếp ưèn bán thánh l bán tỉ ịĩỉiíỉ trận) gom m dóntĩ vả n CỘI, mi^i phản ihướniì có aiá trị neuvén dương pỊị, (ỉ< Oỹ<Ị0 Phần thưởng An nhặn dưực lá piông tát cá các “Só chỉnh pỉnrơng” cũa báng,

YẾU càu: Hạn bây Lặp trinh eiũp An nhịn phẩn thướng.

DữUệu vàn: Được cho Lrong tọp vin hun BQNUSSEL.INP gèm:

  • Dõng dầu ticn chứíi 2 sả ngu vón dương ỉti, n (2 <tĩt, n < ÍOrị, Là sơ dõng vú CỘI cùa bang phằn thướng, lách nhau bôi một diu cách.
  • tn dóng licp theo, moi dỏng chừa n số nguyẫn dương ữịị (j-lJ,fFỉ,ý=l..jỉ)1 mội sỏ lách nhau bới một dấu cảch.

Dử ILẹu ra: Tệp vân bán BONLiSâEL.QUT ghi mộl sả, Lá phần ihướng mả An được ihảy thương

Vỉ dụ:

BONUSSEL.INP BỘN USSEL.ÓƯT
23 4
2 3 4
357

 

 

35 35
123
í 5 16
7H9
Hài 4: TAM GIÁC (4.Ũ đìẻtìi) – TỄn chương trình: TKIANGLE.*

 

Kỉìủĩ nĩệiìt :

  • ‘ Tam giỉtL \ Trơna mát phiìne, ba tiiéiíì A„ B„ c lạo ihánb tam giác khi ctmúng khòm; củng nầm trỂn mọi đưimg [hãng hay nbi cách khác, lơn£ dợ dãi hai cạnh JcVn bơn cạnh thứ ba.
  • “Định lý Pĩtagù’. I’am giác ABC vudng khi Lorití binh phương hai cạnh Cua lam ai ác bảng bình phương cạnh cỏn lại của Lam giác.
VI dự:

c A, B. c là 3 đinh cửa tam giác * A, li, c khũmỉ cúng năm trcn dường ihărtg d
d…. &AB+ BC > AC và Alỉ + AC > BC vả 8C + ẠC >ẬB.
A **■ TVun giác ABC tà fattì giác vnâỉig tiiĩ (tinh c

& AB: = AƠ + iiơ

YẾU cầu: Lrẻn mầl phàng tọa dụ (OXY) chu 3 dicmẢ, Bị c cũ Lọa dt) lần lượt hì (íi.Xth (xstysị, ‘ệtc;yc)- Bạn hây lập trinh kiểm tra 3 đinh đó tạo thánh tam giác V uũng không?

 

 

Líừ IĨCIL vào: Buợc chu ưung ọp vàn hán TRlANGLL.INP gầm:

  • Dõng dằu II cn chứa Sơ nguyên dương 7\ lủ sầ tượng bộ ba đicm .4, 8, c
  • 7’dàng Licp theo. mồi dửng ehi lụa độ 3 đicm A(xA;yA)ị B{xs;yBL C(xctyc), (các So %A -VjỊf, y-B Jtũ yc lá các su thực và -lO^í yA Xgt ys %c yc ^lO1), các: sỏ Lảcb nhau búi dắu cách.

L>ừ licu ra: Tệp vãn ban TỉtlANGLb.OlJ l, yhi T dùng, mui dỏng gbi ưYES” nẺu lá tam giảc vuông hí lặc “NIO'” nẾu không hi Lam giác vuông.

Ví dụ:

TRIANGLE.INP triangle,out
i NO
0.0 0.0 LO l.u 2.0 2.0 YES
ềJữ 0.0 0.0 iừ.o 0.0 0.0 NO
1.0 2.0 3.5 ktì 1.0 2.0

 

Lim Ỷ’ + Binh phương khơáns cách giừa 2 di êm A(XÀy\i) vả lì(.\-B;vsỉ lá

>íBi = (jraJ>;!+(yJ->’J>1

+ Oc hạn ehc sai sớ Ironiĩ [inh toán ki cu sà thục, học sinh nành việc lẩy cần bậc 2 rơi binh phương cùa cfin bậc 2.

Bài 5: LÃI KÉP NGÂN HÀNG (4.0 điểm) – Tên chương trình: COMPINT.*

Khái niệm: “Lãi kép” trong tiếng Anh là Compound interest. Đó là số tiền lãi được xác định dựa trên cơ sở số tiền lãi của các thời kì trước đó được gộp vào vốn gốc để làm căn cứ tính tiền lãi cho các thời kì tiếp theo.

Ông Ba sau khi tích lũy làm ăn nhiều năm dư được 1 số tiền lớn, để tiêu vặt và đóng tiền học phí hàng tháng cho An, Ông đã gửi ngân hàng với lãi suất nhận hàng tháng (Lãi đơn). Do trong đợt dịch Covid-19 vừa qua, để hạn chế tiếp xúc và ra ngân hàng đông người, Ông đã thay đổi hình thức gửi ngân hàng thành hình thức “Lãi kép’’”.

Yêu cầu: Với số vốn ban đầu là M, lãi suất hàng tháng là r%. Bạn hãy lập trình tính tổng số vốn và tiền lãi sau n tháng mà ông Ba nhận được theo hình thức “Lãi kép”.

Dữ liệu vào: Được cho trong tệp văn bản COMPINT.INP:

  • Dòng đầu tiên là số nguyên T (1<=T<=1000) ^
  • T dòng tiếp theo, mỗi dòng gồm 3 số M, r, n lần lượt là tiền vốn ban đầu, lãi suất %/tháng, số tháng. Trong đó, 106 <M <1012, 0.1< r <1.1, 1< n < 5*102.

Dữ liệu ra: Tệp văn bản COMPINT.OUT ghi một số thực, định dạng 1 chữ số thập phân, là tổng số tiền nhận được sau n tháng.

Ví dụ:

Giải thích. Ông Ba gửi 2 khoản tiết kiệm như sau:

Ở khoản tiết kiệm 1: Ông Ba gửi 1000000, với lãi suất 0.7%:

  • Sau 1 tháng. T = M + M*rl100 = 1000000+1000000*0.007=1007000.0
  • Sau 2 tháng. ĩ2 = T + Ti*rl100 = 1007000+1007000*0.007 = 1014049.0
  • Sau 3 tháng. T = T2 + T2*rl100 = 1014049+1014049*0.007 = 1021147.3 Tương tự, ở khoản tiết kiệm 2: Ông Ba gửi 10000000, với lãi suất 0,5%:
  • Sau 1 tháng. Ti = M + M*rl100 = 10000000+1000000*0.005=10050000.0
  • Sau 2 tháng. T = T + T1*rl100 = 10050000+10050000*0.005=10100250.0
  • Sau 10 tháng. Tio = T + T9*rl100 = 10459105.8+10459105.8*0.005=10511401.3

———————————————– hét———————————————–

Thí sinh không đqợc sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh. …………………………………………… Số báo danh : ……………………………………………………………

 

 

 

Tên và chữ ký Cán bộ coi thi 1

Tên và chữ ký Cán bộ coi thi 2

 

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
TRUnG học Cơ Sở

Năm học 2022-2023 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 21/3/2023 ^

(Đề thi có 5 trang, gồm 5 bài)

TỔNG quan các BÀi thi

Thứ tự rpA I A •

Tên bài

File chương trình File dữ liệu vào File kết quả
Bài 1 Tương đồng SAME.* SAME.INP SAME.OUT
Bài 2 Tách xâu STRING.* STRING.INP STRING.OUT
Bài 3 May mắn LUCKY.* LUCKY.INP LUCKY.OUT
Bài 4 Tam giác TRIANGLE.* TRIANGLE.INP TRIANGLE.OUT
Bài 5 Chở hàng GOOD.* GOOD.INP GOOD.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

Bài 1: (4 điểm) Tương đồng                                                                                                     Tên chương trình: SAME.*

Vườn bưởi nhà Alice có n cây. Để theo dõi sự phát triển của các cây bưởi của mình, Alice thường xuyên đo và ghi lại chiều cao của chúng. Trong tuần này, Alice có được bảng chiều cao của các cây bưởi là một dãy số nguyên a[1], a[2],…, a[n], trong đó a[i] là chiều cao của cây bưởi thứ i. Nhìn vào dãy số, Alice biết có những cây có chiều cao trùng nhau và Alice gọi mỗi tần số trùng nhau là tần số “tương đồng”.

Do số lượng cây bưởi nhiều nên Alice muốn nhờ các bạn lập trình tìm tần số tương đồng lớn nhất của các cây bưởi là bao nhiêu?

Dữ liệu vào: Đọc từ file SAME. INP gồm 2 dòng:

  • Dòng 1: gồm một số nguyên dương n (0 < n <106).
  • Dòng 2: gồm n số nguyên dương a[i] (0 < ai <106), mỗi số ứng với chiều cao của một cây bưởi, giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file SAME.OUT gồm duy nhất một số nguyên dương là tần số tương đồng lớn nhất.

Ví dụ:

SAME.INP same.out
7

9 8 6 8 5 6 10

2
2

3 10

1

 

Giải thích bộ test 1:

Có 1 chiều cao: 5;

Có 2 chiều cao: 6;

Có 2 chiều cao: 8;

Có 1 chiều cao: 9;

Có 1 chiều cao: 10

->Tần số tương đồng lớn nhất là: 2

Bài 2: (4 điểm) Tách xâu                                                          Tên chương trình: STRING.*

Hôm nay, mẹ và Cám đi dự dạ hội. Tấm cũng rất muốn được đi. Nhưng trước khi đi, mẹ Cám giao cho Tấm một công việc để làm khó Tấm như sau:

Cho một xâu s gồm các ký tự là các chữ cái in hoa hoặc in thường (trong bảng chữ cái Tiếng Anh) và các kí tự số. Mẹ kế yêu cầu Tấm hãy tách các ký tự trong xâu s thành hai phần như sau:

Phần 1: gồm các chữ cái có mặt trong s nhưng viết theo thứ tự ngược lại.

Phần 2: gồm các chữ số có mặt trong xâu s nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Nếu Tấm thực hiện xong công việc thì mới được đi dự tiệc. Nhưng Tấm có thời gian rất ít nên chưa giải được bài toán. Các bạn đội tuyển Tin học hãy giúp đỡ Tấm giải bài toán để Tấm còn được đi dự tiệc nhé!

Dữ liệu vào: Đọc từ file STRING.INP gồm 1 dòng chứa xâu s có độ dài không quá 103 ký tự. Dữ liệu vào đảm trong xâu s luôn có kí tự chữ cái và kí tự chữ số. Kết quả: Ghi ra fíle STRING.OUT gồm 2 dòng:

  • Dòng 1: gồm các chữ cái trong xâu s nhưng được viết theo thứ tự ngược lại.
  • Dòng 2: gồm các chữ số trong xâu s, nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Ví dụ:

STRING.INP STRING.OUT
m2aC0ma2T3 TamCam

0223

 

Bài 3: (4 điểm) May mắn                                                          Tên chương trình: LUCKY.*

Trong buổi tiệc liên hoan cuối năm của công ty cung cấp điện thoại Thế Giới Trẻ, ghế ngồi trong hội trường của khách mời được bố trí thành một ma trận hình chữ nhật gồm m hàng và n cột. Để buổi liên hoan thêm vui vẻ, ban tổ chức cho mỗi khách mời rút ngẫu nhiên một phiếu, trên phiếu có ghi một số nguyên dương trong phạm vi từ 1 đến 109.

Ban tổ chức sẽ trao cho những người may mắn mỗi người một phần quà là một chiếc điện thoại. Biết rằng người may mắn là người có số ghi trong phiếu của

mình lớn hơn trung bình cộng của số trong phiếu của những người ngồi xung quanh người đó.

Xung quanh một người được định nghĩa như sau:

Trường hợp 1: Người ngồi ở vị trí góc (trên trái, dưới trái, trên phải, dưới

phải) của hình chữ nhật thì chỉ có 2 người ngồi xung quanh.

Trường hợp 2: Người ngồi ở vị trí bìa (trừ góc) thì có 3 người xung quanh. Trường hợp 3: Người ngồi ở các vị trí còn lại có 4 người xung quanh.

 

Trường hợp 1                                   Trường hợp 2                                                          Trường hợp 3

Ô gạch sọc chỉ vị trí xung quanh của vị trí được tô đen.

Bạn hãy giúp ban tổ chức xác định số lượng điện thoại cần phải chuẩn bị để trao cho những người may mắn.

Dữ liệu vào: Đọc từ file LUCKY.INP gồm:

  • Dòng 1: gồm hai số nguyên dương theo thứ tự m, n (0 < m, n <103), giữa m và n được cách nhau bởi dấu cách.
  • m dòng tiếp theo, mỗi dòng gồm n số nguyên dương có giá trị không quá 109, giữa hai số cách nhau bởi một dấu cách.

Kết quả: Ghi ra file LUCKY.OUT gồm một số nguyên là số điện thoại ban tổ chức cần chuẩn bị.

Ví dụ:

LUCKY.INP LUCKY.OUT
3 4 3
1 4 3 1
1 1 5 2
2 1 2 1

 

Giải thích:

Số lượng điện thoại cần chuẩn bị là 3, vì có ba người may mắn:

+ Người thứ nhất ngồi ở hàng 1, cột 2, có số phiếu là 4 (có 3 người xung quanh) + Người thứ hai ngồi ở hàng 2, cột 3, có số phiếu là 5 (có 4 người xung quanh) + Người thứ ba ngồi ở hàng 3, cột 1, có số phiếu là 2 (có 2 người xung quanh)

Bài 4: (4 điểm) Tam giác                                                  Tên chương trình: TRIANGLE.*

Alice có n que tính, mỗi que có độ dài là một số nguyên dương. Alice muốn tạo ra các tam giác bằng cách ghép ba que tính lại với nhau, độ dài mỗi cạnh là một que tính.

Em hãy giúp Alice đếm xem có bao nhiêu tam giác được tạo thành từ các que tính này và cho biết diện tích lớn nhất trong các diện tích của các tam giác ghép được là bao nhiêu?

Biết rằng:

+ Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.

+ Ta có thể tính diện tích tam giác theo công thức sau :

s=Vp * (p — à) * (p — b) * (p — c)

Trong đó a,b,c là độ dài 3 cạnh của tam giác, và p là nửa chu vi của tam giác.

Dữ liệu vào: Đọc từ file TRIANGLE.INP gồm:

  • Dòng 1: gồm một số nguyên dương n (3 < n < 100)
  • Dòng 2: gồm n số nguyên dương a[1], a[2], …, a[n] là độ dài của n que tính (1 < a[i] < 106 1<i<n). Giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file TRIANGLE.OUT gồm:

  • Dòng 1: Ghi số lượng tam giác có thể ghép được.
  • Dòng 2: Ghi một số thực là diện tích lớn nhất của tam giác, kết quả làm tròn đến 2 chữ số ở phần thập phân. Trường hợp không có tam giác nào thì dòng này ghi -1.
TRIANGLE.INP TRIANGLE.OUT Giải thích
5 3 Có 3 tam giác được tạo từ 5 que tính trên:
1 4 5 2 3 6.00 Tam giác 1: Que thứ 2, 3, 4 Tam giác 2: Que thứ 2, 3, 5 Tam giác 3: Que thứ 2, 4, 5 Trong đó tam giác thứ 2 có 3 độ dài là 4 5 3 có có diện tích lớn nhất là 6.00
4 4 Có 4 tam giác được tạo từ 4 que tính trên:
2 2 2 2 1.73 Tam giác 1: Que thứ 1, 2, 3

Tam giác 2: Que thứ 1, 2, 4

Tam giác 3: Que thứ 1, 3, 4

Tam giác 4: Que thứ 2, 3, 4

Trong đó 4 tam giác đều có cùng diện

tích là: 1.73

3 0 Không ghép được tam giác nào
1 2 3 -1

 

Bài 5: (4 điểm) Hàng hóa                                                            Tên chương trình: GOOD.*

Cửa hàng tạp hóa XYZ cần chở n kiện hàng giao cho khách. Kiện hàng thứ i có trọng lượng là a[i] tấn. Cửa hàng có một xe tải có trọng tải là m tấn. Trong

chuyến hàng đầu tiên, cửa hàng muốn chở những kiện hàng đi giao thỏa mãn các yêu cầu sau:

  • Yêu cầu 1: Ưu tiên kiện hàng có trọng lượng lớn hơn sẽ được chở đi.
  • Yêu cầu 2: Xe còn đủ trọng tải chở được thì chọn tiếp kiện hàng khác thỏa mãn yêu cầu 1.

Em hãy lập trình giúp cửa hàng xác định trọng lượng các kiện hàng của chuyến xe đầu tiên.

Dữ liệu vào: Đọc từ file GOOD.INP gồm hai dòng:

  • Dòng 1: gồm số nguyên dương n (1 <n<103) là số kiện hàng và số nguyên dương m (0 < m < 109) là trọng lượng của xe tải. Giữa n và m được cách nhau bởi dấu cách.
  • Dòng 2: gồm n số nguyên dương a[i] (0 < a[i] <109, a[i] < m, 1<i<n) thể hiện trọng lượng của kiện hàng thứ i. Giữa các số được cách nhau bởi dấu cách.

Kết quả: Ghi ra file GOOD.OUT các số nguyên dương là trọng lượng của các kiện hàng trong chuyến xe đầu tiên theo trọng lượng giảm dần.

GOOD.INP GOOD.OUT
5 10

7 5 1 3 8

8 1
5 12

2 8 2 4 1

8 4

 

Giải thích bộ test 1:

Có n = 5 kiện hàng và xe có trọng tải m = 10 tấn Các kiện hàng có trọng lượng lần lượt là: 7 5 1 3 8 Vậy các kiện hàng được chở đi trong chuyến đầu tiên có trọng lượng lần lượt là 8 và 1.

Vì kiện hàng có trọng lượng là 8 lớn hơn trọng lượng các kiện hàng còn lại và 8 < m=10 nên được ưu tiên chọn. Trọng tải xe còn có thể chứa được là 10 – 8 = 2, nên chọn tiếp kiện hàng có trọng lượng là 1.

………………………………………………….. HẾT…………………………………………………..

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

Họ và tên thí sinh: ……………………………………………………………………………….. Số báo danh:……………………………………………………………………..

 

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH

TrUnG học Cơ Sở

Năm học 2023-2024
Môn thi: TIN HỌC

Thời gian làm bài: 150 phút, không kể thời gian phát đề
Ngày thi: 27/3/2024

 

 

 

 

 

 

 

 

 

 

TỔNG quan các bài thi

Thứ tự Tên bài File chương trình File dữ liệu vào File kết quả
1 Tiền điện ELCOST.* ELCOST.INP ELCOST.OUT
2 Độ mạnh của xâu STRONG.* STRONG.INP STRONG.OUT
3 Tổng dòng cột SUM.* SUM.INP SUM.OUT
4 Xâu lặp SUBSTR.* SUBSTR.INP SUBSTR.OUT
5 Phần thưởng GIFT.* GIFT.INP GIFT.OUT

Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

 

Học sinh chỉ được chọn một trong các môi trường quy định ở trên lập trình để làm toàn bộ bài thi.

Bài 1: Tiền điện (4,0 điểm)                                             Tên chương trình: ELCOST.*

Giá bán lẻ điện sinh hoạt được tính theo 3 bậc gồm:

  • Bậc 1: 100 Kwh đầu tiên, có giá là 2500 đồng/Kwh
  • Bậc 2: Từ Kwh 101 đến 200, có giá là 3000 đồng/Kwh
  • Bậc 3: Từ Kwh 201 trở lên, có giá là 3500 đồng/Kwh

Yêu cầu: Tính tổng tiền điện phải trả của một khu phố gồm n hộ gia đình.

Dữ liệu vào: Đọc từ file văn bản ELCOST.INP gồm hai dòng:

  • Dòng 1: Chứa số nguyên dương n (1 < n < 104) là số lượng hộ gia đình.
  • Dòng 2: Chứa n số nguyên dương ai (1 < i < n, 1 < ai < 104), với mỗi ai là số Kwh sử dụng của hộ gia đình thứ i. Giữa hai số liên tiếp được cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản ELCOST.OUT một số nguyên dương là tổng tiền điện của n hộ gia đình.

Ví dụ:

ELCOST.INP ELCOST.OUT
3

15 165 205

1050000

 

 

Giải thích:

Có 3 hộ gia đình sử dụng số Kwh lần lượt là: 15, 165 và 205

Số tiền hộ thứ nhất: 15*2500 = 37500

Số tiền hộ thứ hai: 100*2500 + 65*3000 = 445000

Số tiền hộ thứ ba: 100*2500 + 100*3000 + 5*3500 = 567500

Nên tổng số tiền là: 37500 + 445000 + 567500 = 1050000

Bài 2: Độ mạnh của xâu (4,0 điểm)                                Tên chương trình: STRONG.*

Cho xâu s chỉ gồm các kí tự in thường trong bảng chữ cái Tiếng Anh và kí tự số từ ‘0’ đến ‘9’.

Yêu cầu: Tìm độ mạnh của xâu. Biết rằng độ mạnh của xâu là tích của số kí tự phân biệt xuất hiện trong xâu với số lần xuất hiện nhiều nhất của một kí tự trong xâu.

Dữ liệu vào: Đọc từ file văn bản STRONG.INP gồm một dòng chứa xâu s có chiều dài không quá 103 kí tự. Trong xâu không chứa khoảng trắng và kí tự đặc biệt.

Kết quả: ghi ra file văn bản STRONG.OUT một số nguyên dương là độ mạnh của xâu.

Ví dụ:

STRONG.INP STRONG.OUT
xy11z2yyzxy0y 30
ggggg__________________ 5

 

 

Giải thích:

Ở test 1: Xâu s = ‘xy11z2yyzxy0y’. Số kí tự phân biệt trong xâu s là 6 (gồm ‘x’, ‘y’, ‘1’, ‘z’, ‘2’, ‘0’) và số lần xuất hiện nhiều nhất của một kí tự là 5 (kí tự ‘y’). Nên độ mạnh của xâu là 6 * 5 = 30.

Ở test 2: Xâu s = ‘ggggg’. Số kí tự phân biệt trong xâu s là 1 (kí tự ‘g’) và số lần xuất hiện nhiều nhất là 5. Nên độ mạnh của xâu là 1 * 5 = 5.

Bài 3: Tổng dòng cột (4,0 điểm)                                                                                          Tên chương trình: SUM.*

Cho ma trận a gồm m dòng và n cột. Ma trận b được tạo bằng cách: bij = (tổng dòng i trên ma trận a + tổng cột j trên ma trận a) – aij Yêu cầu: Tìm giá trị nhỏ nhất trong ma trận b.

Dữ liệu vào: Đọc từ file văn bản SUM.INP gồm nhiều dòng:

  • Dòng 1: Chứa hai số nguyên dương theo thứ tự là m, n (1 < m, n < 102). Giữa hai số cách nhau bởi một dấu cách.
  • m dòng tiếp theo, mỗi dòng chứa n số nguyên dương aij (0 < aij < 109). Giữa hai số liên tiếp được cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản SUM.OUT một số nguyên dương là giá trị nhỏ nhất tìm được trong ma trận b.

Ví dụ:

SUM.INP SUM.OUT
2 3 10
3 2 4
2 1 5

 

 

Giải thích: Ma trận b là 11 10 14 11 10 12

Nên giá trị nhỏ nhất trong ma trận b là 10.

 

Cách 1: Dùng mảng 2D để tính tổng cột (Không dùng thư viện ngoài)

  • Ý tưởng: Duyệt từng phần tử của ma trận và tính tổng cột trong quá trình đọc dữ liệu.
  • Độ phức tạp: O(m × n), đủ nhanh cho m, n ≤ 10⁶.

python

Sao chépChỉnh sửa

 

def tìm_tổng_nhỏ_nhất(tệp_vào):
    with open(tệp_vào, 'r') as file:
        m, n = map(int, file.readline().split())  # Đọc m (số hàng) và n (số cột)
        tổng_cột = [0] * n  # Mảng lưu tổng các cột
        for _ in range(m):
            dòng = list(map(int, file.readline().split()))
            for j in range(n):
                tổng_cột[j] += dòng[j]  # Cộng dồn vào cột tương ứng
    return min(tổng_cột)  # Trả về tổng cột nhỏ nhất
# Đọc từ tệp SUM.INP và ghi kết quả vào SUM.OUT
tệp_vào = "SUM.INP"
tệp_ra = "SUM.OUT"
kết_quả = tìm_tổng_nhỏ_nhất(tệp_vào)
with open(tệp_ra, "w") as file:
    file.write(str(kết_quả) + "\n")

 

Cách 2: Dùng NumPy để xử lý nhanh hơn (Dùng thư viện ngoài)

  • Ý tưởng: Dùng thư viện NumPy để tính tổng nhanh hơn.
  • Lợi ích: Tối ưu tốc độ tốt hơn với dữ liệu lớn.

python

Sao chépChỉnh sửa

 

import numpy as np  # Import thư viện NumPy
def tìm_tổng_nhỏ_nhất_numpy(tệp_vào):
    with open(tệp_vào, 'r') as file:
        m, n = map(int, file.readline().split())  # Đọc m, n
        dữ_liệu = np.loadtxt(file, dtype=int)  # Đọc ma trận vào mảng NumPy
    tổng_cột = dữ_liệu.sum(axis=0)  # Tính tổng từng cột
    return tổng_cột.min()  # Trả về tổng nhỏ nhất
# Chạy chương trình
kết_quả = tìm_tổng_nhỏ_nhất_numpy("SUM.INP")
with open("SUM.OUT", "w") as file:
    file.write(str(kết_quả) + "\n")

 

So sánh hai cách

Cách Dễ hiểu Hiệu suất Dùng thư viện ngoài
1. Dùng mảng 2D ✅ Rất dễ hiểu Tốt (O(m×n)) ❌ Không
2. Dùng NumPy ⚠ Cần hiểu NumPy Nhanh hơn ✅ Có

➡ Nếu không muốn dùng thư viện ngoài, hãy dùng cách 1. Nếu muốn tối ưu hiệu suất, hãy dùng cách 2 với NumPy.

 

Bài 4: Xâu lặp (4,0 điểm)                                                Tên chương trình: SUBSTR.*

Xâu lặp là một xâu có đoạn đầu ngắn nhất của nó được lặp lại nhiều lần. Ví dụ ‘xyxyxyxy’ là một xâu lặp vì nó có đoạn đầu ngắn nhất là ‘xy’ được lặp lại nhiều lần. ‘xyxy’ cũng được lặp lại nhưng không được tính là đoạn đầu vì nó không ngắn nhất.

Yêu cầu: Cho n xâu. Hãy ghép đoạn đầu của mỗi xâu lặp theo thứ tự xuất hiện của xâu (nếu xâu đó là xâu lặp).

Dữ liệu vào: Đọc từ file văn bản SUBSTR.INP gồm nhiều dòng:

  • Dòng 1: Chứa số nguyên dương n (1 < n < 103) là số lượng xâu.
  • n dòng tiếp theo, mỗi dòng chứa một xâu có độ dài không quá 103 kí tự.

Lưu ý: Trong xâu chỉ chứa kí tự thường từ ‘a’ đến ‘z’ trong bảng chữ cái Tiếng Anh (không chứa khoảng trắng, kí tự số và các kí tự đặc biệt). Dữ liệu vào đảm bảo luôn có xâu lặp.

Kết quả: Ghi ra file văn bản SUBSTR.OUT là xâu ghép thu được.

Ví dụ:

SUBSTR.INP SUBSTR.OUT
4 xyabach
xyxyxyxy
abcab
abacabac
hhh

 

 

Giải thích:

Trong 4 xâu, có 3 xâu lặp theo thứ tự là: ‘xyxyxyxy’, ‘abacabac’, ‘hhh’. Ba đoạn đầu tương ứng là ‘xy’, ‘abac’, ‘h’. Nên xâu ghép là: ‘xyabach’.

Bài 5: Phần thưởng (4,0 điểm)                                                                                          Tên chương trình: GIFT.*

An được mẹ cho một số phần thưởng. Có nhiều phần thưởng được xếp thành một hàng, mỗi phần thưởng có giá trị trong khoảng từ 1 đến 109. An muốn chọn những phần thưởng có giá trị tăng dần liên tiếp nhiều nhất.

Yêu cầu: Cho biết số lượng phần thưởng mà An chọn được như mong muốn.

Dữ liệu vào: Đọc từ file văn bản GIFT.INP gồm một dòng chứa các số nguyên dương là giá trị của các phần thưởng. Giữa hai số liên tiếp nhau cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản GIFT.OUT một số nguyên dương là số lượng phần thưởng An chọn được.

Ví dụ:

GIFT.INP GIFT.OUT
2 4 3 5 7 8 6 4
1 5 4 3 5 6 6 5 8 6 3

 

 

Giải thích:

Ở test 1: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 4 (2 4 3 5 7 8 6)

Ở test 2: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 3 (1 5 4 3 5 6 6 58 6) ……. -…………… ……………….. HET……… –

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

Họ và tên thí sinh: ………………………………………….  Số báo danh:……………………………………………………………

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao