1. Nếu một chương trình máy tính cần xử lý một lượng lớn dữ liệu một cách nhanh chóng, yếu tố nào sau đây cần được cân nhắc kỹ lưỡng nhất trong thiết kế thuật toán?
A. Sử dụng câu lệnh print nhiều nhất có thể.
B. Độ phức tạp về thời gian (time complexity) của thuật toán.
C. Độ dài của tên biến.
D. Màu sắc của giao diện người dùng.
2. Tại sao việc hiểu rõ điều kiện dừng của một thuật toán lại quan trọng?
A. Để chương trình chạy mãi mãi.
B. Để đảm bảo thuật toán kết thúc sau một số hữu hạn các bước, tránh lặp vô hạn và đảm bảo có kết quả.
C. Để làm cho chương trình dễ bị lỗi hơn.
D. Chỉ để làm cho thuật toán trông phức tạp.
3. Trong quá trình sử dụng máy tính giải quyết bài toán, việc phân tích bài toán bao gồm những khía cạnh nào là chủ yếu?
A. Chỉ tập trung vào việc tìm ra kết quả cuối cùng.
B. Hiểu rõ yêu cầu, dữ liệu đầu vào, điều kiện ràng buộc và kết quả mong muốn.
C. Ưu tiên sử dụng các phần mềm có sẵn mà không cần hiểu rõ vấn đề.
D. Tập trung vào việc tối ưu hóa tốc độ thực thi của máy tính.
4. Việc lựa chọn ngôn ngữ lập trình phù hợp cho một bài toán cụ thể phụ thuộc vào những yếu tố nào?
A. Chỉ dựa vào sở thích cá nhân của người lập trình.
B. Phụ thuộc vào yêu cầu của bài toán, hiệu năng mong muốn, môi trường triển khai và cộng đồng hỗ trợ.
C. Ngôn ngữ nào có cú pháp đơn giản nhất.
D. Chỉ chọn những ngôn ngữ phổ biến nhất trên thị trường.
5. Tại sao việc chia nhỏ bài toán lớn thành các bài toán con lại quan trọng trong lập trình?
A. Để làm cho chương trình có vẻ phức tạp hơn.
B. Giúp quản lý, hiểu và giải quyết từng phần dễ dàng hơn, từ đó giảm thiểu sai sót và tăng tính tái sử dụng mã.
C. Tăng số lượng tệp tin trong dự án.
D. Chỉ để dễ dàng bàn giao công việc cho người khác.
6. Việc tối ưu hóa một chương trình máy tính thường nhằm mục đích gì?
A. Làm cho chương trình chạy chậm hơn để người dùng có thời gian đọc hiểu.
B. Giảm thời gian thực thi, giảm lượng bộ nhớ sử dụng hoặc cải thiện các khía cạnh hiệu năng khác.
C. Tăng số lượng mã nguồn một cách không cần thiết.
D. Làm cho mã nguồn khó hiểu hơn.
7. Theo quan điểm phổ biến trong tin học, khi sử dụng máy tính để giải quyết bài toán, bước nào thường được xem là quan trọng nhất để đảm bảo tính hiệu quả và chính xác của giải pháp?
A. Thiết kế thuật toán chi tiết và logic.
B. Viết mã nguồn chương trình phức tạp.
C. Thực hiện kiểm thử chương trình với nhiều trường hợp.
D. Xác định rõ ràng bài toán cần giải quyết.
8. Tại sao việc sử dụng cấu trúc dữ liệu phù hợp lại ảnh hưởng đến hiệu quả của thuật toán?
A. Cấu trúc dữ liệu chỉ ảnh hưởng đến giao diện người dùng.
B. Cấu trúc dữ liệu quyết định cách dữ liệu được lưu trữ và truy cập, ảnh hưởng trực tiếp đến tốc độ và hiệu quả của các thao tác trong thuật toán.
C. Cấu trúc dữ liệu chỉ quan trọng đối với các bài toán lớn.
D. Cấu trúc dữ liệu không ảnh hưởng đến hiệu quả thuật toán.
9. Trong các giai đoạn của việc giải quyết bài toán bằng máy tính, giai đoạn nào thường đòi hỏi sự sáng tạo và tư duy logic cao nhất?
A. Nhập dữ liệu.
B. Thiết kế thuật toán.
C. Trình bày kết quả.
D. Lưu trữ tệp tin.
10. Trong bối cảnh sử dụng máy tính để giải quyết bài toán, xác định ràng buộc (constraint identification) có ý nghĩa gì?
A. Tìm cách làm cho bài toán khó hơn.
B. Nhận biết và hiểu các giới hạn, điều kiện hoặc quy tắc mà giải pháp phải tuân theo.
C. Chỉ là việc đặt tên cho các biến.
D. Bỏ qua các yêu cầu không cần thiết.
11. Tại sao tài liệu hóa (documentation) lại quan trọng trong quá trình giải quyết bài toán bằng máy tính?
A. Để làm cho mã nguồn trông chuyên nghiệp hơn.
B. Giúp người khác (hoặc chính mình trong tương lai) hiểu cách chương trình hoạt động, cách sử dụng và bảo trì nó dễ dàng hơn.
C. Tăng kích thước của tệp chương trình.
D. Chỉ để đáp ứng yêu cầu của giáo viên.
12. Khi một chương trình máy tính đưa ra kết quả không như mong đợi, bước đầu tiên và quan trọng nhất cần thực hiện là gì?
A. Viết lại toàn bộ chương trình từ đầu.
B. Kiểm tra lại các bước phân tích bài toán và thuật toán đã thiết kế.
C. Nâng cấp cấu hình máy tính.
D. Tìm kiếm sự giúp đỡ từ người khác ngay lập tức.
13. Trong quy trình giải quyết bài toán bằng máy tính, bước kiểm thử và gỡ lỗi (testing and debugging) có vai trò gì?
A. Chỉ để đảm bảo chương trình chạy không bị dừng đột ngột.
B. Phát hiện và sửa chữa các lỗi (bug) trong chương trình để đảm bảo kết quả đúng đắn và chương trình hoạt động ổn định.
C. Tối ưu hóa giao diện người dùng.
D. Tạo tài liệu hướng dẫn sử dụng chi tiết.
14. Khi sử dụng máy tính để giải quyết bài toán, việc tái sử dụng mã nguồn (code reusability) mang lại lợi ích gì?
A. Làm cho chương trình có nhiều mã nguồn hơn.
B. Giúp tiết kiệm thời gian phát triển, giảm thiểu lỗi do phải viết lại mã và tăng tính nhất quán của chương trình.
C. Chỉ có lợi cho những người mới bắt đầu lập trình.
D. Làm cho chương trình chạy chậm hơn.
15. Đâu là một ví dụ về việc áp dụng máy tính để giải quyết bài toán trong thực tế?
A. Đọc một cuốn sách giấy.
B. Sử dụng phần mềm tính toán khoa học để mô phỏng dự báo thời tiết.
C. Ghi chép bằng tay vào sổ tay.
D. Nói chuyện trực tiếp với bạn bè.
16. Trong quá trình phát triển một ứng dụng phần mềm, việc mô hình hóa dữ liệu (data modeling) có vai trò gì?
A. Tạo ra các hình ảnh minh họa cho dữ liệu.
B. Xác định cấu trúc, mối quan hệ và cách tổ chức dữ liệu để ứng dụng hoạt động hiệu quả.
C. Chỉ tập trung vào việc nhập dữ liệu.
D. Làm cho giao diện người dùng đẹp hơn.
17. Trong việc xây dựng một chương trình máy tính để giải bài toán, việc mô hình hóa bài toán có ý nghĩa gì?
A. Tạo ra một phiên bản thu nhỏ của bài toán.
B. Biểu diễn bài toán dưới dạng trừu tượng, sử dụng các khái niệm và cấu trúc dữ liệu phù hợp để máy tính có thể hiểu và xử lý.
C. Vẽ một bức tranh minh họa cho bài toán.
D. Chỉ đơn giản là đặt tên cho bài toán.
18. Trong các lựa chọn sau, đâu là một kết quả đầu ra điển hình của bài toán sắp xếp một danh sách các số theo thứ tự tăng dần?
A. Danh sách các số ban đầu chưa được sắp xếp.
B. Danh sách các số đã được sắp xếp theo thứ tự tăng dần.
C. Thuật toán sắp xếp được sử dụng.
D. Thời gian thực thi của thuật toán sắp xếp.
19. Việc sử dụng các hàm (functions) hoặc phương thức (methods) trong lập trình giúp ích gì cho việc giải quyết bài toán?
A. Làm cho chương trình trông có vẻ phức tạp hơn.
B. Cho phép đóng gói các khối mã thực hiện một nhiệm vụ cụ thể, giúp tái sử dụng mã, tổ chức chương trình tốt hơn và dễ dàng kiểm thử.
C. Chỉ làm tăng số dòng mã nguồn.
D. Làm giảm khả năng hiểu của chương trình.
20. Việc đánh giá và lựa chọn thuật toán nào là tốt nhất cho một bài toán cụ thể thường dựa trên tiêu chí nào?
A. Độ dài của tên thuật toán.
B. Độ phức tạp về thời gian, độ phức tạp về không gian và tính dễ hiểu của thuật toán.
C. Sự phổ biến của thuật toán trên mạng internet.
D. Số lượng người đã từng sử dụng thuật toán đó.
21. Một thuật toán được xem là hiệu quả khi nào?
A. Khi nó sử dụng ít dòng mã lệnh nhất.
B. Khi nó có thể giải quyết bài toán một cách nhanh chóng và sử dụng tài nguyên máy tính (bộ nhớ, thời gian xử lý) một cách hợp lý.
C. Khi nó được viết bằng ngôn ngữ lập trình dễ đọc nhất.
D. Khi nó có thể chạy trên mọi loại thiết bị.
22. Khi đối mặt với một bài toán phức tạp, việc tham khảo các giải pháp đã có hoặc các thuật toán mẫu có lợi ích gì?
A. Để sao chép hoàn toàn mà không cần suy nghĩ.
B. Giúp hiểu cách tiếp cận vấn đề, học hỏi kinh nghiệm và có thể áp dụng hoặc điều chỉnh các giải pháp hiệu quả.
C. Chỉ để làm cho mã nguồn dài hơn.
D. Làm giảm sự độc đáo của giải pháp.
23. Đâu là một ví dụ về dữ liệu đầu vào khi sử dụng máy tính để giải bài toán tính diện tích hình chữ nhật?
A. Công thức tính diện tích: Chiều dài x Chiều rộng.
B. Giá trị của chiều dài và chiều rộng của hình chữ nhật.
C. Kết quả diện tích hình chữ nhật.
D. Chương trình máy tính thực hiện phép tính.
24. Khi phân tích bài toán, nếu có nhiều cách tiếp cận khác nhau, người giải quyết vấn đề nên ưu tiên lựa chọn cách nào?
A. Cách nào có vẻ nhanh nhất để hoàn thành.
B. Cách nào hiệu quả nhất về thời gian xử lý, tài nguyên sử dụng và dễ bảo trì, đáp ứng yêu cầu bài toán.
C. Cách nào sử dụng nhiều công nghệ mới nhất.
D. Cách nào có nhiều người biết đến nhất.
25. Khi phân tích dữ liệu đầu vào cho một bài toán, điều gì cần được xem xét kỹ lưỡng?
A. Chỉ cần biết dữ liệu đó có định dạng gì.
B. Kiểu dữ liệu, phạm vi giá trị, định dạng, tính đầy đủ và các ràng buộc của dữ liệu.
C. Tốc độ nhập dữ liệu của người dùng.
D. Nguồn gốc xuất xứ của dữ liệu.