Trắc nghiệm Chân trời Tin học 9 bài 13: Quy trình giao bài toán cho máy tính giải quyết
1. Vòng lặp for thường được sử dụng khi nào trong lập trình?
A. Khi cần thực hiện một hành động một lần duy nhất
B. Khi cần lặp lại một khối lệnh một số lần xác định trước
C. Khi cần lặp lại một khối lệnh cho đến khi một điều kiện sai
D. Khi cần xử lý một chuỗi ký tự
2. Nếu một lập trình viên muốn giải quyết bài toán tìm kiếm phần tử trong một danh sách lớn, thuật toán nào sau đây thường được xem là hiệu quả?
A. Tìm kiếm tuần tự (Linear Search)
B. Tìm kiếm nhị phân (Binary Search), nếu danh sách đã được sắp xếp
C. Ngẫu nhiên chọn một phần tử và kiểm tra
D. Đọc toàn bộ danh sách và in ra phần tử đầu tiên
3. Nếu bài toán yêu cầu xử lý các yêu cầu theo thứ tự đến trước được phục vụ trước (FIFO - First-In, First-Out), cấu trúc dữ liệu nào là phù hợp nhất?
A. Ngăn xếp (Stack)
B. Danh sách liên kết (Linked List)
C. Hàng đợi (Queue)
D. Cây tìm kiếm nhị phân (Binary Search Tree)
4. Tại sao việc đặt tên biến rõ ràng và có ý nghĩa lại quan trọng trong lập trình?
A. Để chương trình chạy nhanh hơn
B. Để dễ dàng hiểu và bảo trì chương trình
C. Để máy tính có thể dịch mã tốt hơn
D. Để giảm dung lượng chương trình
5. Phát biểu nào sau đây mô tả chính xác nhất vai trò của gỡ lỗi (debugging)?
A. Tăng tốc độ thực thi của chương trình
B. Tìm kiếm và sửa các sai sót trong mã nguồn
C. Thêm các tính năng mới cho chương trình
D. Tối ưu hóa việc sử dụng bộ nhớ
6. Khi lập trình, việc sử dụng các biến để lưu trữ dữ liệu là cần thiết. Biến có đặc điểm gì?
A. Giá trị của biến luôn cố định
B. Tên biến phải trùng với từ khóa của ngôn ngữ lập trình
C. Có thể thay đổi giá trị trong quá trình thực thi chương trình
D. Biến chỉ có thể lưu trữ một loại dữ liệu duy nhất
7. Trong quy trình giao bài toán cho máy tính giải quyết, bước nào đóng vai trò là cầu nối giữa con người và máy tính, giúp chuyển đổi ý tưởng của con người thành ngôn ngữ máy tính có thể hiểu được?
A. Viết chương trình
B. Phân tích bài toán
C. Thu thập dữ liệu
D. Kiểm tra và gỡ lỗi
8. Tại sao việc kiểm thử chương trình với nhiều trường hợp dữ liệu vào khác nhau (ví dụ: cả dữ liệu hợp lệ và không hợp lệ) lại quan trọng?
A. Để chương trình trông chuyên nghiệp hơn
B. Để đảm bảo chương trình hoạt động đúng trong mọi tình huống có thể xảy ra
C. Để làm cho mã nguồn dễ đọc hơn
D. Để giảm số dòng mã nguồn
9. Ngôn ngữ lập trình đóng vai trò gì trong quy trình giao bài toán cho máy tính?
A. Chỉ dùng để kiểm tra lỗi
B. Công cụ để biểu diễn thuật toán và ra lệnh cho máy tính thực hiện
C. Công cụ để phân tích dữ liệu đầu vào
D. Phương tiện để thiết kế giao diện người dùng
10. Quy trình nào sau đây mô tả đúng trình tự các bước cơ bản để giải một bài toán bằng máy tính?
A. Viết chương trình -> Lập thuật toán -> Phân tích bài toán -> Kiểm tra và gỡ lỗi
B. Phân tích bài toán -> Lập thuật toán -> Viết chương trình -> Kiểm tra và gỡ lỗi
C. Lập thuật toán -> Phân tích bài toán -> Kiểm tra và gỡ lỗi -> Viết chương trình
D. Kiểm tra và gỡ lỗi -> Viết chương trình -> Phân tích bài toán -> Lập thuật toán
11. Mục tiêu chính của việc Phân tích bài toán trong quy trình giải quyết vấn đề bằng máy tính là gì?
A. Viết mã nguồn chi tiết
B. Hiểu rõ yêu cầu, mục tiêu và ràng buộc của vấn đề
C. Tối ưu hóa hiệu suất chương trình
D. Thiết kế giao diện người dùng hấp dẫn
12. Ngôn ngữ máy là gì và nó có liên quan như thế nào đến ngôn ngữ lập trình bậc cao?
A. Ngôn ngữ máy là phiên bản đơn giản hóa của ngôn ngữ lập trình bậc cao.
B. Ngôn ngữ máy là ngôn ngữ duy nhất mà máy tính hiểu trực tiếp, còn ngôn ngữ lập trình bậc cao cần được biên dịch hoặc thông dịch sang ngôn ngữ máy.
C. Ngôn ngữ lập trình bậc cao được viết bằng ngôn ngữ máy.
D. Ngôn ngữ máy và ngôn ngữ lập trình bậc cao là hai khái niệm hoàn toàn giống nhau.
13. Đâu là ví dụ về dữ liệu ra của một chương trình tính tổng hai số?
A. Hai số được nhập vào
B. Thao tác cộng hai số
C. Tổng của hai số sau khi tính
D. Thông báo lỗi nếu nhập sai số
14. Sau khi đã phân tích bài toán, bước tiếp theo cần thực hiện để xác định cách thức giải quyết vấn đề là gì?
A. Kiểm tra kết quả
B. Lập thuật toán
C. Thực thi chương trình
D. Thu thập dữ liệu đầu vào
15. Khi một chương trình máy tính hoạt động không như mong đợi, bước nào sau đây là cần thiết để xác định và sửa chữa các sai sót?
A. Phân tích bài toán
B. Viết lại chương trình
C. Kiểm tra và gỡ lỗi
D. Thiết kế giao diện
16. Câu lệnh điều kiện if...then...else được sử dụng để làm gì trong lập trình?
A. Lặp lại một khối lệnh nhiều lần
B. Thực hiện một khối lệnh dựa trên một điều kiện đúng hay sai
C. Khởi tạo giá trị cho biến
D. Kết thúc chương trình
17. Trong một bài toán yêu cầu sắp xếp một danh sách các số theo thứ tự tăng dần, thuật toán sắp xếp nổi bọt (bubble sort) hoạt động dựa trên nguyên tắc cơ bản nào?
A. Chia danh sách thành hai nửa và sắp xếp từng nửa.
B. So sánh và hoán đổi các cặp phần tử liền kề nếu chúng sai thứ tự, lặp lại cho đến khi danh sách được sắp xếp.
C. Tìm phần tử nhỏ nhất và đặt nó vào vị trí đầu tiên, sau đó tiếp tục với phần còn lại.
D. Chèn từng phần tử vào vị trí đúng trong danh sách đã sắp xếp.
18. Khi mô tả một thuật toán bằng sơ đồ khối (flowchart), hình chữ nhật thường biểu thị cho hành động gì?
A. Bắt đầu hoặc kết thúc thuật toán
B. Quyết định hoặc điều kiện
C. Một thao tác xử lý, tính toán hoặc gán giá trị
D. Nhập hoặc xuất dữ liệu
19. Trong quá trình phát triển phần mềm, khái niệm bảo trì phần mềm (software maintenance) thường bao gồm những hoạt động nào?
A. Chỉ viết mới các chức năng
B. Sửa lỗi, cải tiến hiệu suất và cập nhật phần mềm
C. Thiết kế giao diện người dùng mới
D. Xóa bỏ các chương trình cũ
20. Phân biệt giữa biên dịch (compilation) và thông dịch (interpretation) trong quá trình chuyển đổi mã nguồn sang ngôn ngữ máy.
A. Biên dịch dịch toàn bộ mã nguồn thành file thực thi trước khi chạy; thông dịch dịch và thực thi từng dòng lệnh một.
B. Thông dịch dịch toàn bộ mã nguồn thành file thực thi trước khi chạy; biên dịch dịch và thực thi từng dòng lệnh một.
C. Cả hai đều chỉ dịch từng dòng lệnh.
D. Cả hai đều tạo ra file thực thi hoàn chỉnh.
21. Thuật toán được hiểu là gì trong ngữ cảnh giải bài toán bằng máy tính?
A. Một chương trình hoàn chỉnh đã được biên dịch
B. Một tập hợp các thao tác, quy tắc theo một trình tự nhất định để giải quyết một vấn đề
C. Dữ liệu đầu vào của bài toán
D. Kết quả cuối cùng của quá trình xử lý
22. Việc sử dụng cấu trúc dữ liệu nào sau đây thường phù hợp cho bài toán quản lý các mục theo thứ tự LIFO (Last-In, First-Out)?
A. Hàng đợi (Queue)
B. Ngăn xếp (Stack)
C. Danh sách liên kết (Linked List)
D. Mảng (Array)
23. Khi phân tích một bài toán, việc xác định rõ các điều kiện ràng buộc là rất quan trọng. Ví dụ, nếu bài toán yêu cầu tính diện tích hình chữ nhật, điều kiện ràng buộc có thể là gì?
A. Cần có máy tính để chạy chương trình
B. Chiều dài và chiều rộng phải là số dương
C. Chương trình phải chạy nhanh
D. Kết quả phải là một số nguyên
24. Bước đầu tiên và quan trọng nhất trong quy trình giao bài toán cho máy tính là gì, nhằm đảm bảo hiểu rõ vấn đề cần giải quyết?
A. Kiểm tra và gỡ lỗi
B. Viết chương trình
C. Phân tích bài toán
D. Lập kế hoạch thực hiện
25. Trong quy trình giải quyết bài toán bằng máy tính, dữ liệu vào là gì?
A. Kết quả cuối cùng của chương trình
B. Các thông tin, sự kiện cần thiết để máy tính xử lý và đưa ra kết quả
C. Các lệnh mà người lập trình viết ra
D. Các lỗi phát hiện trong quá trình chạy chương trình