[Cánh diều] Trắc nghiệm Tin học 9 bài 2: Thực hành xác định bài toán và tìm thuật toán
1. Phát biểu nào sau đây mô tả đúng bản chất của xác định bài toán?
A. Viết mã nguồn chi tiết cho một giải pháp.
B. Tìm ra một thuật toán hiệu quả nhất.
C. Hiểu rõ vấn đề cần giải quyết và các yêu cầu liên quan.
D. Thực hiện kiểm thử và sửa lỗi chương trình.
2. Một thuật toán phải đảm bảo rằng sau một số hữu hạn bước thực hiện thì nó phải dừng lại và cho ra kết quả. Đây là đặc trưng nào của thuật toán?
A. Tính đúng đắn.
B. Tính dừng.
C. Tính rõ ràng, xác định.
D. Tính tổng quát.
3. Đâu là một ví dụ về tính rõ ràng, xác định trong thuật toán tìm số lớn nhất trong hai số a và b?
A. Nếu a > b, thì kết quả là a, ngược lại kết quả là b.
B. Tìm số lớn hơn.
C. So sánh a và b.
D. Nếu a lớn hơn b thì a là số lớn nhất.
4. Mỗi bước trong thuật toán phải được mô tả rõ ràng, không được phép mơ hồ. Đây là đặc trưng nào của thuật toán?
A. Tính đúng đắn.
B. Tính dừng.
C. Tính rõ ràng, xác định.
D. Tính hiệu quả.
5. Đâu là một ví dụ về tính hữu hạn của thuật toán tìm ước chung nhỏ nhất (ƯCNN) của hai số a và b bằng thuật toán Euclid?
A. Thuật toán sẽ thực hiện một số lần lặp nhất định và dừng lại.
B. Thuật toán sẽ luôn tìm ra kết quả đúng.
C. Thuật toán có thể áp dụng cho mọi cặp số nguyên dương.
D. Mỗi bước lặp đều rõ ràng và không mơ hồ.
6. Đâu là một bước quan trọng trong quá trình tìm thuật toán?
A. Viết báo cáo kết quả.
B. Lựa chọn phương pháp giải quyết bài toán.
C. Đánh giá chi phí phần cứng.
D. Thiết kế giao diện người dùng.
7. Việc xác định bài toán có mục đích chính là gì?
A. Tạo ra một chương trình máy tính hoàn chỉnh.
B. Đảm bảo mọi người hiểu đúng về vấn đề cần giải quyết.
C. Giảm thiểu thời gian lập trình.
D. Tăng cường tính sáng tạo của người lập trình.
8. Trong bài toán sắp xếp một dãy số theo thứ tự tăng dần, yêu cầu nào sau đây là ràng buộc?
A. Dãy số ban đầu có thể chứa các số trùng nhau.
B. Dãy số sau khi sắp xếp phải theo thứ tự tăng dần.
C. Dãy số có thể rất dài.
D. Cần tìm ra tất cả các cách sắp xếp.
9. Việc xác định bài toán bao gồm các bước nào sau đây?
A. Tìm thuật toán, viết chương trình, kiểm thử.
B. Mô tả dữ liệu vào, dữ liệu ra, yêu cầu bài toán.
C. Thiết kế giao diện, lập trình, gỡ lỗi.
D. Phân tích yêu cầu, thiết kế thuật toán, kiểm tra kết quả.
10. Theo SGK Tin học 9 Cánh Diều, khi xác định bài toán, yếu tố nào sau đây cần được làm rõ để định hướng việc tìm thuật toán?
A. Các bước thực hiện chi tiết của thuật toán.
B. Mục tiêu và yêu cầu của bài toán.
C. Ngôn ngữ lập trình sẽ sử dụng để cài đặt thuật toán.
D. Các thiết bị ngoại vi cần thiết để chạy chương trình.
11. Đâu là ví dụ về Dữ liệu ra cho bài toán tìm ước chung lớn nhất (ƯCLN) của hai số nguyên dương a và b?
A. Hai số nguyên dương a và b.
B. Giá trị của a + b.
C. Ước chung lớn nhất của a và b.
D. Các ước số của a và b.
12. Trong quá trình xác định bài toán, mô tả bài toán bao gồm những yếu tố cốt lõi nào?
A. Lựa chọn ngôn ngữ lập trình và môi trường phát triển.
B. Dữ liệu vào, dữ liệu ra và yêu cầu của bài toán.
C. Các thuật toán thay thế có thể sử dụng.
D. Chiến lược kiểm thử và gỡ lỗi.
13. Đâu là một ví dụ về ràng buộc trong bài toán tìm số chẵn lớn nhất trong một dãy số?
A. Dãy số có thể chứa cả số âm.
B. Số chẵn lớn nhất phải là một số nguyên dương.
C. Dãy số có thể rỗng.
D. Dãy số chỉ chứa các số tự nhiên.
14. Trong quá trình xác định bài toán, Dữ liệu vào (input) đề cập đến điều gì?
A. Kết quả cuối cùng mà thuật toán cần tạo ra.
B. Các thông tin, dữ liệu cần thiết để bắt đầu xử lý.
C. Các lệnh điều khiển quá trình thực hiện thuật toán.
D. Các quy tắc, điều kiện để thuật toán dừng lại.
15. Nếu một thuật toán không cho kết quả sau một số hữu hạn bước, nó vi phạm đặc trưng nào?
A. Tính đúng đắn.
B. Tính dừng.
C. Tính rõ ràng, xác định.
D. Tính hữu hạn.
16. Khi xác định bài toán, việc phân tích Yêu cầu bài toán giúp làm rõ điều gì?
A. Số lượng biến cần dùng trong thuật toán.
B. Mục đích và các điều kiện cần đạt được sau khi giải bài toán.
C. Ngôn ngữ lập trình sẽ được sử dụng.
D. Cấu trúc dữ liệu phù hợp để lưu trữ thông tin.
17. Khi tìm thuật toán, việc xem xét các ví dụ cụ thể về dữ liệu vào và ra giúp ích gì?
A. Giúp làm phức tạp hóa bài toán.
B. Giúp làm rõ các yêu cầu và kiểm tra tính đúng đắn của thuật toán.
C. Giúp tăng tốc độ xử lý của thuật toán.
D. Giúp giảm thiểu số lượng dữ liệu vào.
18. Trong các bước để tìm một thuật toán, bước nào thường được thực hiện sau khi đã xác định rõ bài toán?
A. Xác định dữ liệu vào.
B. Tìm thuật toán.
C. Xác định dữ liệu ra.
D. Mô tả yêu cầu bài toán.
19. Bước Tìm thuật toán là quá trình?
A. Mô tả chi tiết các bước để giải bài toán đã xác định.
B. Kiểm tra lại tính đúng đắn của dữ liệu đầu vào.
C. Đánh giá hiệu quả của thuật toán đã tìm được.
D. Viết mã chương trình dựa trên thuật toán.
20. Đâu là ví dụ về Dữ liệu vào cho bài toán tính chu vi hình chữ nhật?
A. Chu vi hình chữ nhật.
B. Chiều dài và chiều rộng của hình chữ nhật.
C. Công thức tính chu vi.
D. Kết quả tính toán.
21. Thuật toán giải bài toán tìm số lớn nhất trong ba số a, b, c được cho là đúng nếu nó luôn cho kết quả là số lớn nhất trong ba số đó, bất kể giá trị cụ thể của a, b, c là gì. Điều này thể hiện đặc trưng nào của thuật toán?
A. Tính dừng.
B. Tính rõ ràng, xác định.
C. Tính hữu hạn.
D. Tính đúng đắn.
22. Thuật toán mô tả cách giải quyết bài toán bằng một dãy hữu hạn các thao tác thực hiện liên tiếp. Đây là đặc trưng nào của thuật toán?
A. Tính đúng đắn.
B. Tính dừng.
C. Tính rõ ràng, xác định.
D. Tính hữu hạn.
23. Đâu không phải là một yêu cầu quan trọng khi xác định Dữ liệu ra (output) của một bài toán?
A. Đảm bảo dữ liệu ra phản ánh đúng kết quả mong muốn.
B. Chỉ rõ định dạng, kiểu của dữ liệu ra.
C. Đảm bảo dữ liệu ra có số lượng lớn nhất có thể.
D. Xác định rõ ràng dữ liệu ra cần thể hiện điều gì.
24. Khi phân tích một bài toán, việc xác định Các ràng buộc (constraints) giúp ích cho việc gì?
A. Tăng số lượng dữ liệu đầu vào.
B. Đảm bảo thuật toán hoạt động hiệu quả và đúng đắn trong phạm vi cho phép.
C. Đưa ra càng nhiều phương án giải càng tốt.
D. Giảm bớt yêu cầu về dữ liệu đầu ra.
25. Khi tìm thuật toán, việc xem xét các trường hợp đặc biệt (edge cases) là để làm gì?
A. Để thuật toán chạy chậm hơn.
B. Để đảm bảo thuật toán hoạt động đúng ngay cả với các dữ liệu giới hạn hoặc bất thường.
C. Để tăng độ phức tạp của thuật toán.
D. Để bỏ qua các dữ liệu không quan trọng.