Trắc nghiệm Tin học 9 Chân trời bài 13: Quy trình giao bài toán cho máy tính giải quyết
1. Khi phân tích một bài toán, việc xác định ràng buộc (constraints) của bài toán có ý nghĩa gì?
A. Là việc xác định các yếu tố không liên quan đến bài toán.
B. Là việc giới hạn phạm vi và điều kiện mà giải pháp phải tuân thủ.
C. Là việc tạo ra các chức năng phụ cho chương trình.
D. Là việc chọn ngôn ngữ lập trình.
2. Khi đánh giá một thuật toán, tiêu chí nào sau đây thường được xem xét để đo lường hiệu quả?
A. Độ dài của mã nguồn.
B. Thời gian thực thi và lượng bộ nhớ sử dụng.
C. Số lượng câu lệnh trong chương trình.
D. Tên của biến được sử dụng.
3. Việc mô tả bài toán trong quy trình giao bài toán cho máy tính có ý nghĩa gì?
A. Là bước cuối cùng để hoàn thành dự án.
B. Là quá trình diễn đạt lại bài toán bằng ngôn ngữ tự nhiên hoặc ngôn ngữ bán chính thức để hiểu rõ.
C. Là bước để chọn ngôn ngữ lập trình phù hợp.
D. Là bước để kiểm tra cấu hình máy tính.
4. Nếu yêu cầu của bài toán thay đổi trong quá trình thực hiện, người lập trình cần làm gì?
A. Giữ nguyên chương trình cũ và bỏ qua yêu cầu mới.
B. Phân tích lại yêu cầu mới, điều chỉnh thuật toán và mã nguồn cho phù hợp.
C. Chỉ thay đổi tên biến.
D. Bắt đầu lại từ đầu với một bài toán hoàn toàn mới.
5. Trong các giai đoạn của quy trình giải quyết bài toán bằng máy tính, giai đoạn nào thường tốn nhiều thời gian và công sức nhất đối với các bài toán phức tạp?
A. Xác định yêu cầu bài toán.
B. Thiết kế thuật toán.
C. Viết chương trình (mã hóa).
D. Kiểm thử và gỡ lỗi.
6. Phát biểu nào sau đây mô tả đúng vai trò của câu lệnh điều kiện (conditional statement) trong lập trình?
A. Cho phép chương trình thực hiện một chuỗi lệnh cố định.
B. Cho phép chương trình thực hiện các hành động khác nhau dựa trên việc kiểm tra một điều kiện.
C. Cho phép chương trình lặp lại một khối lệnh.
D. Dùng để lưu trữ giá trị.
7. Tại sao việc kiểm thử và gỡ lỗi (debugging) lại cần thiết sau khi viết chương trình?
A. Để làm cho chương trình chạy nhanh hơn.
B. Để đảm bảo chương trình hoạt động đúng theo yêu cầu và không có lỗi.
C. Để tối ưu hóa việc sử dụng bộ nhớ.
D. Để tạo giao diện người dùng hấp dẫn hơn.
8. Trong quy trình giao bài toán cho máy tính giải quyết, bước nào là quan trọng nhất để đảm bảo máy tính hiểu đúng yêu cầu?
A. Viết chương trình bằng ngôn ngữ lập trình.
B. Phân tích bài toán và xác định yêu cầu.
C. Kiểm tra và sửa lỗi chương trình.
D. Chạy thử chương trình và xem kết quả.
9. Khi xác định yêu cầu bài toán, yếu tố nào cần được làm rõ để đảm bảo tính chính xác của thuật toán?
A. Tốc độ xử lý của máy tính.
B. Cấu trúc dữ liệu cần sử dụng.
C. Dữ liệu vào (input) và dữ liệu ra (output) mong muốn.
D. Ngôn ngữ lập trình sẽ sử dụng.
10. Phát biểu nào sau đây mô tả đúng vai trò của vòng lặp for trong lập trình?
A. Dùng để đưa ra quyết định.
B. Dùng để thực hiện một khối lệnh một số lần xác định trước.
C. Dùng để khai báo biến.
D. Dùng để kết thúc chương trình.
11. Trong quá trình thiết kế thuật toán, nếu gặp phải một bài toán quá lớn, người ta thường áp dụng chiến lược nào?
A. Bỏ qua các bước trung gian và chỉ tập trung vào kết quả.
B. Chia bài toán lớn thành các bài toán con nhỏ hơn, dễ quản lý hơn.
C. Sử dụng một thuật toán phức tạp duy nhất để giải quyết.
D. Giao toàn bộ bài toán cho một người duy nhất thực hiện.
12. Trong quá trình kiểm thử, khi gặp một lỗi, người lập trình nên làm gì đầu tiên?
A. Báo cáo lỗi cho người quản lý và dừng công việc.
B. Xác định chính xác lỗi xảy ra ở đâu và nguyên nhân gây ra lỗi.
C. Thêm các chức năng mới vào chương trình.
D. Yêu cầu người dùng cung cấp thêm dữ liệu.
13. Khi một chương trình hoạt động không như mong đợi, việc đầu tiên cần làm là gì để tìm ra nguyên nhân?
A. Viết lại toàn bộ chương trình.
B. Kiểm tra lại các bước của thuật toán và mã nguồn, tìm kiếm lỗi logic hoặc cú pháp.
C. Yêu cầu người khác viết lại chương trình.
D. Chạy lại chương trình nhiều lần.
14. Phát biểu nào sau đây mô tả đúng vai trò của cấu trúc điều khiển lặp (loop) trong chương trình máy tính?
A. Cho phép chương trình thực hiện một hành động duy nhất.
B. Cho phép chương trình thực hiện lặp đi lặp lại một hoặc nhiều câu lệnh theo một điều kiện nhất định.
C. Dùng để đưa ra quyết định dựa trên một điều kiện.
D. Dùng để kết thúc chương trình.
15. Một trong những phương pháp phổ biến để biểu diễn thuật toán trước khi viết mã là gì?
A. Sơ đồ hoạt động.
B. Biểu đồ Venn.
C. Sơ đồ khối (flowchart) hoặc liệt kê các bước (pseudocode).
D. Bảng tần suất.
16. Khi một thuật toán được thiết kế, bước tiếp theo để máy tính có thể hiểu và chạy được là gì?
A. Phân tích lại bài toán.
B. Viết chương trình bằng một ngôn ngữ lập trình.
C. Kiểm tra lại dữ liệu đầu vào.
D. Đánh giá hiệu quả thuật toán.
17. Trong quy trình giao bài toán, tài liệu hóa (documentation) chương trình có ý nghĩa gì?
A. Là việc thiết kế giao diện người dùng.
B. Là việc ghi chép, giải thích về cách chương trình hoạt động, cách sử dụng.
C. Là việc kiểm tra hiệu năng của chương trình.
D. Là việc biên dịch chương trình.
18. Tại sao việc đặt tên biến và hàm một cách rõ ràng, có ý nghĩa lại quan trọng trong lập trình?
A. Để làm cho chương trình chạy chậm hơn.
B. Để tăng tính dễ đọc, dễ hiểu và dễ bảo trì cho chương trình.
C. Để làm phức tạp hóa mã nguồn.
D. Để làm giảm dung lượng chương trình.
19. Nếu một bài toán yêu cầu tính tổng của N số tự nhiên đầu tiên, thì dữ liệu vào (input) cần thiết là gì?
A. Chỉ số N.
B. Chính các số tự nhiên từ 1 đến N.
C. Số lượng các số cần tính tổng.
D. Kết quả của phép tính.
20. Khi một bài toán được giao cho máy tính, việc đầu tiên cần thực hiện là gì để có thể bắt đầu quá trình giải quyết?
A. Thiết kế thuật toán.
B. Biên dịch mã nguồn.
C. Hiểu rõ bản chất và yêu cầu của bài toán.
D. Thực thi chương trình.
21. Tác dụng của việc sử dụng biến trong lập trình là gì?
A. Chỉ để lưu trữ các chuỗi ký tự.
B. Là nơi để lưu trữ và thay đổi dữ liệu trong quá trình thực hiện chương trình.
C. Là công cụ để hiển thị kết quả ra màn hình.
D. Là cách để tạo ra các vòng lặp.
22. Yếu tố nào sau đây KHÔNG phải là một phần của quy trình giao bài toán cho máy tính giải quyết?
A. Phân tích bài toán.
B. Thiết kế thuật toán.
C. Viết chương trình.
D. Thiết kế giao diện người dùng cho một ứng dụng đồ họa phức tạp.
23. Thuật toán là gì trong ngữ cảnh giải quyết bài toán bằng máy tính?
A. Một chương trình máy tính đã được viết hoàn chỉnh.
B. Một tập hợp các quy tắc, bước để giải quyết một bài toán cụ thể.
C. Dữ liệu đầu vào cho bài toán.
D. Kết quả cuối cùng của bài toán.
24. Ngôn ngữ lập trình đóng vai trò gì trong việc giao bài toán cho máy tính?
A. Là công cụ để phân tích bài toán.
B. Là phương tiện để biểu diễn thuật toán dưới dạng mà máy tính có thể hiểu và thực thi.
C. Là cách để kiểm tra lỗi của chương trình.
D. Là phương pháp để thu thập dữ liệu.
25. Trong quy trình giao bài toán, mô đun hóa (modularity) chương trình có nghĩa là gì?
A. Chỉ viết một chương trình lớn duy nhất.
B. Chia chương trình thành các phần nhỏ, độc lập, có chức năng rõ ràng.
C. Sử dụng nhiều ngôn ngữ lập trình khác nhau.
D. Tập trung vào việc tối ưu hóa tốc độ xử lý.