Trắc nghiệm Tin 10 Cánh diều Bài 18: Lập trình giải quyết bài toán trên máy tính - Đề 02
Trắc nghiệm Tin 10 Cánh diều Bài 18: Lập trình giải quyết bài toán trên máy tính - Đề 02 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: Khi giải bài toán
- A. Tìm thuật toán và tổ chức dữ liệu
- B. Xác định bài toán
- C. Viết chương trình
- D. Kiểm thử và hiệu chỉnh
Câu 2: Sau khi đã thiết kế xong thuật toán cho bài toán tìm đường đi ngắn nhất trên bản đồ, công việc tiếp theo liên quan đến việc sử dụng một công cụ cụ thể nào để máy tính có thể thực thi?
- A. Vẽ sơ đồ khối cho thuật toán
- B. Lựa chọn ngôn ngữ lập trình và viết mã
- C. Kiểm tra lại các bước của thuật toán trên giấy
- D. Thu thập thêm dữ liệu bản đồ
Câu 3: Bạn chạy một đoạn mã Python trực tiếp từ file .py mà không cần bước tạo ra file .exe riêng biệt trước đó. Điều này gợi ý rằng Python thường sử dụng cơ chế dịch nào?
- A. Biên dịch (Compilation)
- B. Thông dịch (Interpretation)
- C. Tích hợp (Integration)
- D. Chuyển đổi (Transformation)
Câu 4: Một lập trình viên viết chương trình bằng ngôn ngữ C++. Trước khi chạy chương trình, họ thường thực hiện một lệnh để tạo ra một file thực thi (.exe trên Windows). Cơ chế dịch nào đang được sử dụng ở đây?
- A. Thông dịch (Interpretation)
- B. Mô phỏng (Simulation)
- C. Biên dịch (Compilation)
- D. Gỡ lỗi (Debugging)
Câu 5: Đối với một chương trình điều khiển robot trong dây chuyền sản xuất, yêu cầu quan trọng nhất là phản ứng nhanh chóng theo thời gian thực. Tiêu chí nào sau đây của thuật toán cần được ưu tiên hàng đầu khi thiết kế hoặc lựa chọn?
- A. Hiệu quả về không gian bộ nhớ
- B. Tính dễ hiểu của mã nguồn
- C. Hiệu quả về thời gian thực hiện
- D. Khả năng sử dụng nhiều loại dữ liệu
Câu 6: Khi xác định bài toán
- A. Giá trị số lớn nhất sau khi xử lý
- B. Dãy các số nguyên cần tìm số lớn nhất
- C. Các bước để so sánh và tìm số lớn nhất
- D. Ngôn ngữ lập trình sẽ sử dụng
Câu 7: Đối với bài toán
- A. Công thức tính diện tích hình tròn
- B. Giá trị bán kính của hình tròn
- C. Giá trị diện tích của hình tròn
- D. Hằng số Pi (π)
Câu 8: Bạn viết một chương trình tính trung bình cộng, nhưng khi chạy với dữ liệu hợp lệ, kết quả lại sai. Lỗi này có khả năng cao thuộc loại nào và bạn cần tập trung vào bước nào trong quy trình giải toán để khắc phục?
- A. Lỗi cú pháp; Bước Viết chương trình
- B. Lỗi logic; Bước Kiểm thử, chạy và hiệu chỉnh
- C. Lỗi thời gian chạy; Bước Tìm thuật toán
- D. Lỗi dữ liệu; Bước Xác định bài toán
Câu 9: Mối quan hệ cơ bản giữa thuật toán và chương trình là gì?
- A. Thuật toán là mã nguồn, chương trình là sơ đồ khối.
- B. Thuật toán là kế hoạch giải quyết, chương trình là việc thể hiện kế hoạch đó bằng ngôn ngữ lập trình.
- C. Thuật toán chỉ dùng cho máy tính, chương trình dùng cho con người.
- D. Thuật toán và chương trình là hai tên gọi khác nhau của cùng một khái niệm.
Câu 10: Khi giải bài toán quản lý danh sách sinh viên (bao gồm tên, mã số, điểm các môn), việc quyết định cách lưu trữ và truy cập hiệu quả các thông tin này (ví dụ: dùng mảng, danh sách liên kết, hay cấu trúc dữ liệu khác) thuộc về khía cạnh nào trong bước tìm thuật toán?
- A. Xác định mục tiêu bài toán
- B. Tổ chức dữ liệu
- C. Viết mã lệnh
- D. Kiểm tra lỗi cú pháp
Câu 11: Lợi ích chính của việc sử dụng trình biên dịch (compiler) để dịch chương trình từ ngôn ngữ bậc cao sang ngôn ngữ máy là gì?
- A. Cho phép chạy từng câu lệnh một để dễ gỡ lỗi.
- B. Tạo ra file thực thi có thể chạy độc lập và thường có tốc độ nhanh hơn.
- C. Mã nguồn gốc được bảo vệ tốt hơn.
- D. Không cần biết trước toàn bộ chương trình để bắt đầu dịch.
Câu 12: Lợi ích chính của việc sử dụng trình thông dịch (interpreter) là gì?
- A. Tốc độ thực thi chương trình sau khi dịch rất nhanh.
- B. Dễ dàng gỡ lỗi và kiểm tra từng phần của chương trình ngay lập tức.
- C. Tạo ra file thực thi tối ưu cho từng loại máy.
- D. Toàn bộ chương trình được dịch một lần duy nhất.
Câu 13: Giả sử bạn đang trong quá trình giải bài toán trên máy tính. Nếu trình dịch báo lỗi cú pháp và dừng lại, bạn cần quay lại bước nào để khắc phục?
- A. Xác định bài toán (Bước 1)
- B. Tìm thuật toán và tổ chức dữ liệu (Bước 2)
- C. Viết chương trình (Bước 3)
- D. Kiểm thử và hiệu chỉnh (Bước 4)
Câu 14: Bạn được giao bài toán
- A. Xác định bài toán
- B. Tìm thuật toán và tổ chức dữ liệu
- C. Viết chương trình
- D. Kiểm thử và hiệu chỉnh
Câu 15: Trong quy trình giải bài toán bằng lập trình trên máy tính, vai trò chính của máy tính sau khi chương trình đã được viết và dịch thành công là gì?
- A. Thiết kế thuật toán tối ưu.
- B. Thực hiện các lệnh của chương trình theo thuật toán.
- C. Tự động sửa lỗi logic trong chương trình.
- D. Xác định đầu vào và đầu ra của bài toán.
Câu 16: Bạn cần tìm một phần tử trong một danh sách gồm 1 triệu số đã được sắp xếp. Có hai thuật toán: tìm kiếm tuần tự (duyệt từng phần tử) và tìm kiếm nhị phân (chia đôi danh sách). Dựa trên tiêu chí hiệu quả về thời gian, bạn nên chọn thuật toán nào?
- A. Tìm kiếm tuần tự vì nó đơn giản hơn để viết code.
- B. Tìm kiếm nhị phân vì nó nhanh hơn đáng kể trên danh sách lớn đã sắp xếp.
- C. Cả hai thuật toán đều có hiệu quả như nhau.
- D. Cần thêm thông tin về bộ nhớ để quyết định.
Câu 17: Khi gõ mã lệnh, bạn vô tình viết sai tên một hàm chuẩn (ví dụ: pront thay vì print). Lỗi này sẽ được phát hiện ở giai đoạn nào và thuộc loại lỗi gì?
- A. Giai đoạn thực thi, lỗi logic.
- B. Giai đoạn dịch (biên dịch/thông dịch), lỗi cú pháp.
- C. Giai đoạn thiết kế thuật toán, lỗi thuật toán.
- D. Giai đoạn kiểm thử, lỗi dữ liệu.
Câu 18: Bạn đã viết chương trình giải phương trình bậc hai ax^2 + bx + c = 0. Để kiểm thử kỹ lưỡng, bạn cần chuẩn bị các bộ dữ liệu thử nghiệm. Ngoài các trường hợp có nghiệm phân biệt, bạn cần đưa vào những trường hợp đặc biệt nào?
- A. Trường hợp a=0 (phương trình bậc nhất).
- B. Trường hợp phương trình vô nghiệm (delta < 0).
- C. Trường hợp phương trình có nghiệm kép (delta = 0).
- D. Tất cả các trường hợp trên.
Câu 19: Thuật toán được mô tả bằng các bước độc lập với ngôn ngữ lập trình cụ thể nào đó (ví dụ: dùng sơ đồ khối hoặc mã giả). Điều này thể hiện khía cạnh nào của thuật toán?
- A. Tính hiệu quả về không gian
- B. Tính khả thi
- C. Tính trừu tượng
- D. Tính tối ưu
Câu 20: Bước
- A. Bước tìm thuật toán được thực hiện trước khi xác định bài toán.
- B. Thuật toán được thiết kế dựa trên các yêu cầu và ràng buộc đã xác định ở bước xác định bài toán.
- C. Hai bước này hoàn toàn độc lập với nhau.
- D. Bước xác định bài toán chỉ là việc đặt tên cho thuật toán.
Câu 21: Việc sử dụng trình thông dịch (interpreter) có thể giúp lập trình viên nhanh chóng chạy thử và gỡ lỗi các đoạn mã nhỏ, nhưng chương trình lớn có thể chạy chậm hơn so với khi dùng trình biên dịch. Điều này cho thấy sự đánh đổi giữa yếu tố nào?
- A. Chi phí phần cứng và chi phí phần mềm.
- B. Tốc độ phát triển (gỡ lỗi) và tốc độ thực thi chương trình.
- C. Độ phức tạp của thuật toán và độ phức tạp của cấu trúc dữ liệu.
- D. Yêu cầu về bộ nhớ và yêu cầu về thời gian lưu trữ.
Câu 22: Sau khi bạn đã hoàn thành việc viết chương trình, kiểm thử với nhiều bộ dữ liệu khác nhau và xác nhận chương trình chạy đúng theo yêu cầu của bài toán, bước tiếp theo thường là gì trong quy trình đưa sản phẩm đến người dùng?
- A. Quay lại bước tìm thuật toán để cải thiện.
- B. Triển khai chương trình để sử dụng thực tế.
- C. Thay đổi ngôn ngữ lập trình khác để viết lại.
- D. Bỏ qua chương trình và chuyển sang bài toán khác.
Câu 23: Trong các mục sau, mục nào không phải là một bước cốt lõi trong quy trình giải bài toán bằng lập trình trên máy tính theo mô hình 4 bước cơ bản?
- A. Viết chương trình.
- B. Tiếp thị sản phẩm phần mềm.
- C. Xác định bài toán.
- D. Kiểm thử và hiệu chỉnh chương trình.
Câu 24: Bạn cần xử lý một lượng lớn dữ liệu về nhiệt độ đo được mỗi giờ trong một năm. Dữ liệu này cần được lưu trữ sao cho việc truy cập nhiệt độ tại một giờ cụ thể (ví dụ: giờ thứ 500 của năm) là nhanh nhất. Trong bước tìm thuật toán và tổ chức dữ liệu, bạn có thể nghĩ đến cấu trúc dữ liệu nào phù hợp nhất?
- A. Danh sách liên kết (Linked List)
- B. Cây nhị phân (Binary Tree)
- C. Mảng (Array)
- D. Đồ thị (Graph)
Câu 25: Khi chương trình của bạn chạy nhưng cho kết quả không như mong đợi, một kỹ thuật gỡ lỗi phổ biến là chèn các lệnh in (print) vào mã nguồn để hiển thị giá trị của các biến tại các điểm khác nhau trong quá trình thực thi. Kỹ thuật này hỗ trợ trực tiếp cho bước nào?
- A. Xác định bài toán
- B. Tìm thuật toán
- C. Viết chương trình
- D. Kiểm thử, chạy và hiệu chỉnh
Câu 26: Một thuật toán được đề xuất để tìm kiếm trên Internet. Thuật toán này yêu cầu máy tính phải có bộ nhớ (RAM) vô hạn để hoạt động. Tiêu chí hiệu quả nào của thuật toán bị vi phạm rõ ràng nhất trong trường hợp này?
- A. Hiệu quả về thời gian
- B. Hiệu quả về không gian bộ nhớ
- C. Tính khả thi khi cài đặt
- D. Tính đúng đắn
Câu 27: Quá trình biến đổi một vấn đề thực tế phức tạp (ví dụ: xếp lịch thi cho hàng nghìn sinh viên và hàng trăm môn học) thành một mô hình toán học hoặc logic có thể xử lý được bằng máy tính (xác định các ràng buộc, biến số, mục tiêu) là một phần quan trọng của bước nào?
- A. Tìm thuật toán
- B. Tổ chức dữ liệu
- C. Xác định bài toán
- D. Viết chương trình
Câu 28: Quyết định sử dụng ngôn ngữ lập trình nào (ví dụ: chọn giữa Python, Java, C++) để hiện thực hóa thuật toán đã thiết kế thường được đưa ra trong hoặc liên quan chặt chẽ đến bước nào?
- A. Xác định bài toán
- B. Tìm thuật toán
- C. Viết chương trình
- D. Kiểm thử
Câu 29: Bạn đang thiết kế thuật toán để xử lý dữ liệu từ một cảm biến thời tiết gửi về liên tục. Lượng dữ liệu rất lớn và tốc độ xử lý cần cực nhanh để tránh mất mát thông tin. Tiêu chí hiệu quả nào của thuật toán cần được tập trung tối đa?
- A. Hiệu quả về không gian bộ nhớ
- B. Hiệu quả về thời gian thực hiện
- C. Tính dễ đọc của mã nguồn
- D. Tính đa nền tảng
Câu 30: Vai trò trung tâm của thuật toán trong quy trình giải bài toán trên máy tính là gì?
- A. Cung cấp giao diện người dùng cho chương trình.
- B. Lưu trữ dữ liệu đầu vào và đầu ra.
- C. Đưa ra một trình tự các thao tác để máy tính thực hiện nhằm giải quyết bài toán.
- D. Dịch mã nguồn sang ngôn ngữ máy.