Trắc nghiệm Tin học 11 Kết nối tri thức Bài 27: Thực hành thiết kế chương trình theo phương pháp làm mịn dần - Đề 04
Trắc nghiệm Tin học 11 Kết nối tri thức Bài 27: Thực hành thiết kế chương trình theo phương pháp làm mịn dần - Đề 04 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Phương pháp làm mịn dần (stepwise refinement) trong thiết kế chương trình chủ yếu tập trung vào việc:
- A. Viết mã chương trình một cách nhanh chóng và trực tiếp.
- B. Chia bài toán lớn thành các bài toán con nhỏ và dễ quản lý hơn.
- C. Tối ưu hóa hiệu suất của chương trình ngay từ đầu.
- D. Kiểm thử chương trình sau khi đã hoàn thành toàn bộ mã nguồn.
Câu 2: Bước đầu tiên trong phương pháp làm mịn dần thường là:
- A. Xác định bài toán tổng quát cần giải quyết.
- B. Viết mã giả (pseudocode) cho các chức năng con.
- C. Chọn ngôn ngữ lập trình phù hợp.
- D. Kiểm tra các yêu cầu đầu vào và đầu ra của chương trình.
Câu 3: Ưu điểm chính của phương pháp làm mịn dần so với cách tiếp cận "mã hóa và sửa lỗi" (code-and-fix) là:
- A. Giảm thiểu thời gian viết mã.
- B. Tăng tốc độ thực thi của chương trình.
- C. Giúp chương trình dễ hiểu, dễ bảo trì và ít lỗi hơn.
- D. Cho phép lập trình viên bỏ qua giai đoạn kiểm thử.
Câu 4: Trong quá trình làm mịn dần, khi một bài toán con vẫn còn quá phức tạp, bạn nên:
- A. Bỏ qua bài toán con đó và tập trung vào các phần khác.
- B. Tiếp tục chia nhỏ bài toán con đó thành các bài toán nhỏ hơn nữa.
- C. Tìm kiếm một giải pháp lập trình trực tiếp mà không cần chia nhỏ thêm.
- D. Nhờ sự giúp đỡ của lập trình viên khác để giải quyết bài toán con phức tạp.
Câu 5: Xét bài toán "Tính tổng các số chẵn từ 1 đến N". Theo phương pháp làm mịn dần, bước đầu tiên bạn có thể mô tả bài toán này ở mức độ tổng quát là:
- A. Sử dụng vòng lặp for để duyệt từ 1 đến N.
- B. Kiểm tra từng số xem có phải số chẵn không.
- C. Khởi tạo biến tổng bằng 0.
- D. Tính tổng các số chẵn trong một khoảng số cho trước.
Câu 6: Tiếp tục bài toán ở Câu 5, bước làm mịn tiếp theo có thể là:
- A. Duyệt qua các số từ 1 đến N, nếu là số chẵn thì cộng vào tổng.
- B. Sử dụng công thức toán học để tính tổng số chẵn.
- C. In ra kết quả tổng số chẵn.
- D. Định nghĩa hàm kiểm tra số chẵn.
Câu 7: Trong ngôn ngữ lập trình Python, để kiểm tra một số "x" có phải là số chẵn hay không, biểu thức nào sau đây là đúng?
- A. x / 2 == 0
- B. x % 2 != 0
- C. x % 2 == 0
- D. x // 2 == 0
Câu 8: Khi thiết kế chương trình quản lý thư viện, một trong những chức năng con có thể là "Tìm kiếm sách". Theo phương pháp làm mịn dần, bạn sẽ tiếp tục chia chức năng "Tìm kiếm sách" thành các bước nhỏ hơn nào?
- A. Hiển thị danh sách tất cả các sách trong thư viện.
- B. Thêm sách mới vào thư viện.
- C. Xóa sách khỏi thư viện.
- D. Nhận thông tin tìm kiếm từ người dùng, đối chiếu thông tin với dữ liệu sách, hiển thị kết quả tìm kiếm.
Câu 9: Trong giai đoạn làm mịn dần, việc sử dụng mã giả (pseudocode) có vai trò gì?
- A. Thay thế hoàn toàn cho việc viết mã chương trình thực tế.
- B. Mô tả thuật toán một cách rõ ràng, dễ hiểu trước khi viết mã bằng ngôn ngữ cụ thể.
- C. Giúp chương trình chạy nhanh hơn.
- D. Tự động chuyển đổi mã giả thành mã chương trình.
Câu 10: Phương pháp làm mịn dần giúp cải thiện khả năng "tái sử dụng mã" (code reusability) như thế nào?
- A. Không liên quan, làm mịn dần chỉ tập trung vào việc chia nhỏ bài toán.
- B. Làm mịn dần khiến mã trở nên phức tạp hơn, khó tái sử dụng.
- C. Các bài toán con được làm mịn có thể trở thành các hàm hoặc module độc lập, dễ dàng tái sử dụng trong các chương trình khác.
- D. Tái sử dụng mã chỉ đạt được khi sử dụng các thư viện có sẵn, không liên quan đến làm mịn dần.
Câu 11: Khi thiết kế một trò chơi điện tử, chức năng "Di chuyển nhân vật" có thể được làm mịn dần thành các bước nào?
- A. Vẽ hình ảnh nhân vật, tạo âm thanh di chuyển.
- B. Nhận lệnh điều khiển từ người chơi, thay đổi vị trí nhân vật dựa trên lệnh, kiểm tra va chạm.
- C. Thiết kế giao diện người dùng cho trò chơi.
- D. Lưu trữ điểm số của người chơi.
Câu 12: Trong ngữ cảnh lập trình hướng đối tượng, phương pháp làm mịn dần có thể được liên hệ mật thiết với khái niệm nào?
- A. Tính đa hình (Polymorphism).
- B. Tính kế thừa (Inheritance).
- C. Tính trừu tượng (Abstraction).
- D. Tính đóng gói (Encapsulation) và phân lớp (Decomposition).
Câu 13: Giả sử bạn đang làm mịn dần bài toán "Xử lý đơn hàng trực tuyến". Một bài toán con đã được xác định là "Xác nhận thanh toán". Bước làm mịn tiếp theo cho "Xác nhận thanh toán" có thể là gì?
- A. Gửi email xác nhận đơn hàng cho khách hàng.
- B. Cập nhật trạng thái đơn hàng thành "đã giao hàng".
- C. Kiểm tra thông tin thẻ tín dụng, xác thực giao dịch với ngân hàng, ghi nhận kết quả thanh toán.
- D. Tính toán tổng giá trị đơn hàng.
Câu 14: Trong phương pháp làm mịn dần, việc kiểm thử (testing) chương trình thường được thực hiện như thế nào?
- A. Chỉ kiểm thử sau khi đã hoàn thành toàn bộ chương trình.
- B. Kiểm thử từng module hoặc chức năng con sau khi chúng được làm mịn và lập trình xong.
- C. Kiểm thử ngẫu nhiên ở các giai đoạn khác nhau.
- D. Bỏ qua giai đoạn kiểm thử để tiết kiệm thời gian.
Câu 15: Một lập trình viên áp dụng phương pháp làm mịn dần và chia bài toán thành các module rõ ràng. Điều này giúp ích gì cho việc bảo trì chương trình sau này?
- A. Không giúp ích nhiều, bảo trì phụ thuộc vào ngôn ngữ lập trình.
- B. Chỉ giúp ích trong giai đoạn phát triển ban đầu, không ảnh hưởng đến bảo trì.
- C. Làm mịn dần khiến chương trình trở nên phức tạp hơn, khó bảo trì.
- D. Giúp việc tìm kiếm và sửa lỗi trở nên dễ dàng hơn, do chương trình có cấu trúc module rõ ràng.
Câu 16: Để thiết kế một thuật toán sắp xếp danh sách số theo thứ tự tăng dần bằng phương pháp làm mịn dần, bạn có thể bắt đầu bằng cách mô tả thuật toán ở mức độ trừu tượng nào?
- A. Sắp xếp các phần tử của danh sách.
- B. So sánh hai phần tử liên tiếp và đổi chỗ nếu cần.
- C. Chọn phần tử nhỏ nhất và đưa về đầu danh sách.
- D. Chia danh sách thành hai phần và sắp xếp từng phần.
Câu 17: Tiếp tục với bài toán sắp xếp ở Câu 16, một bước làm mịn tiếp theo có thể là sử dụng thuật toán sắp xếp nổi bọt (Bubble Sort). Điều này thể hiện giai đoạn nào của làm mịn dần?
- A. Xác định bài toán cần sắp xếp.
- B. Kiểm thử thuật toán sắp xếp.
- C. Cụ thể hóa phương pháp sắp xếp bằng một thuật toán cụ thể.
- D. Tối ưu hóa thuật toán sắp xếp.
Câu 18: Khi sử dụng phương pháp làm mịn dần, nếu bạn nhận thấy một bài toán con có thể được giải quyết bằng một thư viện hoặc module có sẵn, bạn nên:
- A. Bỏ qua thư viện và tự viết mã để hiểu rõ hơn về bài toán con.
- B. Tận dụng thư viện hoặc module đó để giải quyết bài toán con, thay vì tự viết mã từ đầu.
- C. Chỉ sử dụng thư viện khi không còn cách nào khác.
- D. Luôn tự viết mã cho tất cả các bài toán con để đảm bảo tính độc lập.
Câu 19: Trong quá trình làm mịn dần, việc tạo ra các sơ đồ khối (flowchart) hoặc biểu đồ cấu trúc (structure chart) có thể hỗ trợ như thế nào?
- A. Giúp trực quan hóa cấu trúc chương trình và các bước xử lý, dễ dàng theo dõi quá trình làm mịn.
- B. Thay thế cho việc viết mã giả.
- C. Tự động sinh mã chương trình từ sơ đồ.
- D. Chỉ có ích cho các chương trình nhỏ, không cần thiết cho chương trình lớn.
Câu 20: Điều gì xảy ra nếu bạn bỏ qua một số bước làm mịn và cố gắng viết mã chi tiết quá sớm trong phương pháp làm mịn dần?
- A. Không có vấn đề gì, miễn là chương trình cuối cùng hoạt động đúng.
- B. Chương trình sẽ chạy nhanh hơn do bỏ qua các bước trung gian.
- C. Có thể gặp khó khăn trong việc quản lý độ phức tạp của chương trình, dễ phát sinh lỗi và khó bảo trì.
- D. Giúp tiết kiệm thời gian thiết kế chương trình.
Câu 21: Trong một dự án phần mềm lớn, việc áp dụng phương pháp làm mịn dần có thể giúp cải thiện khả năng làm việc nhóm như thế nào?
- A. Không ảnh hưởng đến làm việc nhóm, làm việc nhóm phụ thuộc vào kỹ năng giao tiếp.
- B. Làm mịn dần khiến việc phân chia công việc trở nên phức tạp hơn.
- C. Chỉ có một người nên thực hiện làm mịn dần để đảm bảo tính nhất quán.
- D. Các thành viên có thể chia nhau thực hiện các module con một cách độc lập và phối hợp dễ dàng hơn.
Câu 22: Xét bài toán "Kiểm tra xem một số có phải là số nguyên tố hay không". Theo phương pháp làm mịn dần, bạn có thể chia bài toán này thành các bước nào?
- A. Liệt kê tất cả các số nguyên tố.
- B. Kiểm tra số nhỏ hơn 2, kiểm tra chia hết cho các số từ 2 đến căn bậc hai của số đó.
- C. Sử dụng định lý Fermat nhỏ.
- D. Tính giai thừa của số đó.
Câu 23: Trong quá trình làm mịn dần, khi nào bạn nên dừng việc chia nhỏ một bài toán con?
- A. Khi đã chia bài toán thành một số lượng bước nhất định.
- B. Khi không còn ý tưởng nào để chia nhỏ hơn nữa.
- C. Khi bài toán con đã đủ đơn giản và có thể dễ dàng lập trình trực tiếp hoặc sử dụng các hàm/module có sẵn.
- D. Khi thời gian thiết kế đã hết.
Câu 24: Phương pháp làm mịn dần có phù hợp với việc phát triển các ứng dụng web phức tạp không?
- A. Có, rất phù hợp. Làm mịn dần giúp quản lý độ phức tạp của ứng dụng web bằng cách chia thành các chức năng và module nhỏ.
- B. Không phù hợp, ứng dụng web cần được phát triển nhanh chóng, không có thời gian cho làm mịn dần.
- C. Chỉ phù hợp với phần backend của ứng dụng web, không phù hợp với frontend.
- D. Chỉ phù hợp với các ứng dụng web đơn giản, không phù hợp với ứng dụng phức tạp.
Câu 25: Trong phương pháp làm mịn dần, mối quan hệ giữa các bước làm mịn thường là mối quan hệ nào?
- A. Mối quan hệ "song song", các bước làm mịn được thực hiện đồng thời.
- B. Mối quan hệ "tổng quát - cụ thể", mỗi bước làm mịn chi tiết hóa bước trước đó.
- C. Mối quan hệ "ngẫu nhiên", không có trật tự cụ thể giữa các bước.
- D. Mối quan hệ "độc lập", các bước làm mịn không liên quan đến nhau.
Câu 26: Khi thiết kế giao diện người dùng (UI) cho một ứng dụng, phương pháp làm mịn dần có thể được áp dụng như thế nào?
- A. Thiết kế từng thành phần giao diện một cách độc lập rồi ghép lại.
- B. Sao chép giao diện từ các ứng dụng khác.
- C. Bắt đầu với bố cục tổng thể của giao diện, sau đó làm mịn dần đến các thành phần chi tiết như nút, biểu tượng, và cách bố trí nội dung.
- D. Sử dụng các công cụ thiết kế UI tự động hoàn toàn.
Câu 27: Trong ngữ cảnh cơ sở dữ liệu, khi thiết kế một hệ thống quản lý cơ sở dữ liệu, phương pháp làm mịn dần có thể giúp ích trong việc nào?
- A. Tối ưu hóa truy vấn cơ sở dữ liệu.
- B. Sao lưu và phục hồi dữ liệu.
- C. Bảo mật cơ sở dữ liệu.
- D. Xác định các thực thể, thuộc tính, mối quan hệ, và sau đó làm mịn dần đến cấu trúc bảng và các ràng buộc dữ liệu.
Câu 28: Một nhóm sinh viên sử dụng phương pháp làm mịn dần để phát triển một ứng dụng di động. Họ đã chia công việc thành các module và giao cho mỗi thành viên một module. Cách tiếp cận này thể hiện ưu điểm nào của làm mịn dần?
- A. Khả năng phân chia công việc và quản lý dự án hiệu quả.
- B. Tăng tốc độ viết mã.
- C. Giảm thiểu chi phí phát triển.
- D. Đảm bảo tính bảo mật của ứng dụng.
Câu 29: Khi đánh giá hiệu quả của phương pháp làm mịn dần, tiêu chí nào sau đây là quan trọng nhất?
- A. Tốc độ phát triển chương trình.
- B. Chất lượng chương trình cuối cùng (ít lỗi, dễ bảo trì, dễ hiểu) và khả năng quản lý độ phức tạp trong quá trình phát triển.
- C. Số dòng mã chương trình.
- D. Số lượng lập trình viên tham gia dự án.
Câu 30: Trong tương lai, với sự phát triển của các công cụ phát triển phần mềm tự động, vai trò của phương pháp làm mịn dần có thể thay đổi như thế nào?
- A. Phương pháp làm mịn dần sẽ trở nên lỗi thời và không cần thiết.
- B. Các công cụ tự động sẽ tự động thực hiện làm mịn dần, lập trình viên không cần quan tâm.
- C. Tư duy làm mịn dần vẫn quan trọng để thiết kế chương trình có cấu trúc tốt, ngay cả khi công cụ tự động hỗ trợ viết mã.
- D. Làm mịn dần chỉ còn phù hợp với các dự án nhỏ, không cần thiết cho dự án lớn sử dụng công cụ tự động.