[Cánh diều] Trắc nghiệm Tin học 11 KHMT bài 4 Làm mịn dần từng bước từ các thuật toán đến chương trình máy tính
1. Một thuật toán được mô tả bằng ngôn ngữ tự nhiên hoặc sơ đồ khối. Bước tiếp theo trong quá trình làm mịn dần thường là gì?
A. Biên dịch mã nguồn thành mã máy.
B. Viết mã chương trình bằng một ngôn ngữ lập trình cụ thể.
C. Xác định yêu cầu người dùng.
D. Tối ưu hóa thuật toán.
2. Khi chuyển đổi một thuật toán từ dạng mô tả sang dạng mã, khai báo kiểu dữ liệu (data type declaration) cho biến là cần thiết để:
A. Giúp chương trình chạy nhanh hơn.
B. Cho phép trình biên dịch biết cách xử lý và lưu trữ dữ liệu của biến đó.
C. Tạo ra giao diện người dùng.
D. Xác định số lượng biến cần sử dụng.
3. Khi làm việc với các thuật toán phức tạp, việc chia nhỏ thành các module hoặc hàm con giúp ích gì cho quá trình lập trình?
A. Tăng cường sự phụ thuộc lẫn nhau giữa các phần của chương trình.
B. Giảm khả năng tái sử dụng mã và gây khó khăn cho việc gỡ lỗi.
C. Dễ dàng quản lý, hiểu và kiểm thử từng phần độc lập.
D. Yêu cầu ít tài nguyên bộ nhớ hơn.
4. Một thuật toán có thể được mô tả bằng nhiều cách. Việc lựa chọn ngôn ngữ lập trình để hiện thực hóa thuật toán phụ thuộc vào yếu tố nào sau đây?
A. Sở thích cá nhân của người lập trình.
B. Mục đích sử dụng, môi trường thực thi và hiệu năng mong muốn.
C. Độ dài của thuật toán.
D. Số lượng câu lệnh trong thuật toán.
5. Khi làm mịn một thuật toán liên quan đến việc sắp xếp dữ liệu, các cấu trúc như mảng hoặc danh sách liên kết sẽ được sử dụng để:
A. Tạo giao diện người dùng.
B. Biểu diễn và lưu trữ tập hợp dữ liệu.
C. Thực hiện các phép toán số học phức tạp.
D. Kiểm soát luồng thực thi của chương trình.
6. Trong ngữ cảnh làm mịn dần, cấu trúc dữ liệu (data structure) là gì?
A. Một tập hợp các câu lệnh điều kiện.
B. Một cách tổ chức và lưu trữ dữ liệu để có thể truy cập và xử lý hiệu quả.
C. Một bước để kiểm tra lỗi trong chương trình.
D. Một thuật toán để sắp xếp dữ liệu.
7. Việc tài liệu hóa (documentation) một chương trình máy tính trong quá trình làm mịn dần có ý nghĩa gì?
A. Chỉ để làm đẹp mã nguồn.
B. Giúp người khác (hoặc chính mình trong tương lai) hiểu cách thức hoạt động và cách sử dụng chương trình.
C. Giảm kích thước file thực thi của chương trình.
D. Thay thế cho việc kiểm thử.
8. Khi một thuật toán yêu cầu nhập dữ liệu từ người dùng, bước làm mịn tương ứng trong chương trình máy tính sẽ bao gồm:
A. Tối ưu hóa thuật toán xử lý dữ liệu.
B. Sử dụng các lệnh để nhận đầu vào từ người dùng.
C. Kiểm tra tính đúng đắn của thuật toán.
D. Tạo giao diện đồ họa cho việc nhập liệu.
9. Khi chuyển từ một thuật toán trừu tượng sang một chương trình máy tính, khái niệm làm mịn dần đề cập đến việc:
A. Tăng cường hiệu suất của thuật toán bằng cách thêm các tối ưu hóa phức tạp.
B. Chia nhỏ vấn đề lớn thành các bước nhỏ hơn, chi tiết hơn và có thể thực thi được.
C. Tự động chuyển đổi thuật toán thành mã máy bằng trình biên dịch.
D. Sử dụng các ngôn ngữ lập trình bậc cao để viết mã.
10. Đâu là một ví dụ về làm mịn một bước của thuật toán từ mức độ trừu tượng sang cụ thể hơn?
A. Thay đổi tên của một biến.
B. Quyết định sử dụng cấu trúc for loop thay vì mô tả chung chung là lặp lại hành động.
C. Thêm một bình luận (comment) vào thuật toán.
D. Nghĩ ra một tên gọi mới cho thuật toán.
11. Việc sử dụng cấu trúc lặp (ví dụ: for, while) trong chương trình máy tính phản ánh khía cạnh nào của thuật toán gốc?
A. Các câu lệnh điều kiện.
B. Các thao tác xử lý dữ liệu.
C. Sự lặp lại hoặc thực hiện một chuỗi hành động nhiều lần.
D. Khai báo biến.
12. Trong quá trình làm mịn dần từng bước từ thuật toán đến chương trình máy tính, bước nào thường tập trung vào việc xác định các thành phần dữ liệu và cấu trúc điều khiển cần thiết để biểu diễn thuật toán?
A. Thiết kế chi tiết
B. Phân tích yêu cầu
C. Kiểm thử và gỡ lỗi
D. Mã hóa
13. Trong quá trình làm mịn dần, nếu một thuật toán có nhiều trường hợp xử lý khác nhau dựa trên giá trị đầu vào, điều này thường được hiện thực hóa bằng:
A. Vòng lặp vô hạn.
B. Các câu lệnh điều kiện (if-else, switch-case).
C. Khai báo biến toàn cục.
D. Thực hiện các phép toán số học.
14. Trong quá trình chuyển đổi từ thuật toán sang chương trình, kiểm thử (testing) có vai trò gì?
A. Viết tài liệu kỹ thuật cho chương trình.
B. Đảm bảo chương trình hoạt động đúng như mong đợi và không có lỗi.
C. Thiết kế kiến trúc tổng thể của phần mềm.
D. Tối ưu hóa mã nguồn để giảm dung lượng.
15. Mục tiêu của việc tối ưu hóa một chương trình máy tính là gì?
A. Làm cho chương trình dễ đọc hơn.
B. Giảm thiểu tài nguyên sử dụng (CPU, bộ nhớ) hoặc tăng tốc độ thực thi.
C. Thêm nhiều tính năng mới cho chương trình.
D. Đảm bảo chương trình tương thích với mọi hệ điều hành.
16. Khi chuyển đổi một thuật toán xử lý chuỗi ký tự, việc sử dụng các hàm hoặc phương thức có sẵn trong ngôn ngữ lập trình (ví dụ: length(), substring()) là một hình thức của:
A. Thiết kế thuật toán ban đầu.
B. Trừu tượng hóa quá trình.
C. Làm mịn từng bước và sử dụng các thành phần đã có.
D. Kiểm thử đơn vị.
17. Nếu một thuật toán có nhiều bước con độc lập, việc chuyển đổi chúng thành các hàm hoặc thủ tục riêng biệt giúp ích gì cho quá trình lập trình?
A. Làm cho chương trình khó đọc hơn.
B. Tăng cường sự phụ thuộc giữa các phần của chương trình.
C. Cải thiện tính module hóa, dễ bảo trì và tái sử dụng.
D. Giảm khả năng kiểm thử chương trình.
18. Trong quá trình làm mịn thuật toán, việc xác định phạm vi của biến (variable scope) là quan trọng để:
A. Tăng cường sự phụ thuộc giữa các module.
B. Đảm bảo biến chỉ có thể truy cập và thay đổi ở những phần chương trình hợp lệ.
C. Tự động sửa lỗi chương trình.
D. Giảm dung lượng bộ nhớ chương trình.
19. Một bước làm mịn thuật toán có thể bao gồm việc xác định các biến cần thiết. Biến trong chương trình máy tính dùng để:
A. Lưu trữ các lệnh thực thi.
B. Lưu trữ thông tin hoặc dữ liệu có thể thay đổi trong quá trình chạy chương trình.
C. Xác định cấu trúc điều khiển của chương trình.
D. Biên dịch chương trình.
20. Trong quy trình phát triển, gỡ lỗi (debugging) là quá trình:
A. Viết thuật toán ban đầu.
B. Tìm kiếm và sửa các lỗi trong chương trình máy tính.
C. Thiết kế cấu trúc dữ liệu.
D. Tối ưu hóa thuật toán để tăng tốc độ.
21. Trong quá trình chuyển đổi từ thuật toán sang chương trình, giai đoạn mã hóa (coding) liên quan đến việc:
A. Phân tích lại yêu cầu ban đầu của bài toán.
B. Viết mã nguồn bằng một ngôn ngữ lập trình cụ thể dựa trên thiết kế chi tiết.
C. Kiểm tra xem chương trình có chạy đúng theo thuật toán hay không.
D. Thiết kế giao diện người dùng.
22. Trong quá trình chuyển đổi từ thuật toán sang chương trình, việc phân tích yêu cầu (requirement analysis) thường diễn ra ở giai đoạn nào?
A. Sau khi viết mã hoàn chỉnh.
B. Trước khi bắt đầu thiết kế chi tiết thuật toán.
C. Trong quá trình gỡ lỗi.
D. Sau khi kiểm thử chương trình.
23. Đâu là lợi ích chính của việc áp dụng phương pháp làm mịn dần từng bước trong quá trình chuyển đổi thuật toán thành chương trình máy tính?
A. Giảm thiểu nhu cầu về tài liệu hóa.
B. Giúp quản lý sự phức tạp và đảm bảo tính logic của chương trình.
C. Cho phép bỏ qua giai đoạn kiểm thử.
D. Tăng tốc độ thực thi của thuật toán ngay từ đầu.
24. Khi một thuật toán ban đầu quá trừu tượng, bước làm mịn đầu tiên thường liên quan đến việc:
A. Viết mã bằng ngôn ngữ máy.
B. Xác định các bước logic cụ thể và có thể thực hiện được.
C. Kiểm tra hiệu năng của thuật toán.
D. Tạo giao diện người dùng đồ họa.
25. Khi làm mịn một thuật toán, việc sử dụng các câu lệnh điều kiện (ví dụ: if-else) phản ánh khía cạnh nào của thuật toán gốc?
A. Sự lặp lại của một chuỗi hành động.
B. Việc đưa ra quyết định hoặc lựa chọn dựa trên các điều kiện.
C. Thực hiện các phép toán số học.
D. Khai báo biến.