Trắc nghiệm Tin học 10 Cánh diều Chủ đề F: Giải quyết vấn đề với sự trợ giúp của máy tính - Đề 08
Trắc nghiệm Tin học 10 Cánh diều Chủ đề F: Giải quyết vấn đề với sự trợ giúp của máy tính - Đề 08 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: Bạn được yêu cầu xây dựng một chương trình máy tính để tự động hóa quy trình chấm điểm bài thi trắc nghiệm. Bước đầu tiên và quan trọng nhất trong quy trình giải quyết vấn đề này là gì?
- A. Xác định và phân tích bài toán (Input, Output, các ràng buộc)
- B. Lựa chọn ngôn ngữ lập trình phù hợp (Python, Java, C++)
- C. Viết mã chương trình (coding) trực tiếp
- D. Kiểm thử và gỡ lỗi chương trình
Câu 2: Thuật toán là một dãy các bước hữu hạn để giải quyết một vấn đề. Tính chất nào sau đây không phải là một đặc điểm của thuật toán?
- A. Tính xác định (mỗi bước phải rõ ràng, không mơ hồ)
- B. Tính hữu hạn (phải kết thúc sau một số bước nhất định)
- C. Tính không rõ ràng (các bước có thể hiểu theo nhiều cách khác nhau)
- D. Tính hiệu quả (giải quyết vấn đề trong thời gian và tài nguyên chấp nhận được)
Câu 3: Lưu đồ (flowchart) là một công cụ trực quan để mô tả thuật toán. Hình dạng nào sau đây thường được sử dụng để biểu diễn thao tác nhập/xuất dữ liệu trong lưu đồ?
- A. Hình chữ nhật
- B. Hình bình hành
- C. Hình thoi
- D. Hình椭 tròn
Câu 4: Biến trong lập trình được sử dụng để lưu trữ dữ liệu. Phát biểu nào sau đây mô tả đúng nhất về vai trò của biến?
- A. Đặt tên cho chương trình
- B. Điều khiển luồng thực thi của chương trình
- C. Thực hiện các phép tính toán học
- D. Lưu trữ dữ liệu để sử dụng và thay đổi trong chương trình
Câu 5: Kiểu dữ liệu xác định loại giá trị mà một biến có thể lưu trữ. Vì sao việc xác định kiểu dữ liệu cho biến lại quan trọng trong lập trình?
- A. Để chương trình chạy nhanh hơn
- B. Để làm cho mã nguồn dễ đọc hơn
- C. Để quản lý bộ nhớ hiệu quả và kiểm tra tính hợp lệ của phép toán
- D. Để chương trình tương thích với nhiều hệ điều hành khác nhau
Câu 6: Xét đoạn mã giả sau: `NẾU (điểm_trung_bình >= 8.0) THÌ xếp_loại = "Giỏi" NẾU KHÔNG xếp_loại = "Khá"`. Đoạn mã này thể hiện cấu trúc điều khiển nào trong lập trình?
- A. Cấu trúc tuần tự
- B. Cấu trúc rẽ nhánh
- C. Cấu trúc lặp
- D. Cấu trúc hàm
Câu 7: Vòng lặp (loop) cho phép thực hiện lặp lại một khối lệnh nhiều lần. Mục đích chính của việc sử dụng vòng lặp trong lập trình là gì?
- A. Tăng tốc độ thực thi chương trình
- B. Giảm thiểu lỗi cú pháp trong chương trình
- C. Làm cho chương trình dễ đọc và dễ hiểu hơn
- D. Tự động hóa việc lặp lại các thao tác, giảm mã nguồn trùng lặp
Câu 8: Để tính tổng các số tự nhiên từ 1 đến 100, bạn có thể sử dụng thuật toán lặp. Trong trường hợp này, vòng lặp nào sẽ hiệu quả hơn về mặt logic và dễ đọc?
- A. Vòng lặp `for` (với biến đếm chạy từ 1 đến 100)
- B. Vòng lặp `while` (với điều kiện lặp là tổng nhỏ hơn một giá trị lớn)
- C. Cả vòng lặp `for` và `while` đều không phù hợp
- D. Sử dụng câu lệnh rẽ nhánh lặp đi lặp lại
Câu 9: Lỗi cú pháp (syntax error) và lỗi logic (logic error) là hai loại lỗi thường gặp khi lập trình. Sự khác biệt cơ bản giữa chúng là gì?
- A. Lỗi cú pháp làm chương trình chạy chậm, lỗi logic làm chương trình bị treo
- B. Lỗi cú pháp do viết sai quy tắc ngôn ngữ, lỗi logic do sai thuật toán
- C. Lỗi cú pháp dễ phát hiện hơn lỗi logic
- D. Lỗi logic chỉ xảy ra trong ngôn ngữ lập trình bậc cao
Câu 10: Kiểm thử hộp đen (black-box testing) và kiểm thử hộp trắng (white-box testing) là hai phương pháp kiểm thử phần mềm. Phương pháp kiểm thử hộp đen tập trung vào yếu tố nào?
- A. Cấu trúc mã nguồn của chương trình
- B. Các đường dẫn thực thi trong chương trình
- C. Chức năng và hành vi bên ngoài của chương trình
- D. Hiệu suất và mức độ sử dụng tài nguyên của chương trình
Câu 11: Khi giải quyết một bài toán phức tạp bằng máy tính, việc phân rã bài toán (decomposition) thành các bài toán nhỏ hơn có vai trò gì?
- A. Giúp đơn giản hóa bài toán và dễ quản lý hơn
- B. Làm tăng tính phức tạp của bài toán
- C. Giảm tốc độ thực thi của chương trình
- D. Chỉ cần thiết đối với bài toán có dữ liệu đầu vào lớn
Câu 12: Tính trừu tượng (abstraction) là một nguyên tắc quan trọng trong lập trình. Trong bối cảnh lập trình, "trừu tượng hóa" nghĩa là gì?
- A. Làm cho chương trình trở nên khó hiểu hơn
- B. Ẩn đi các chi tiết phức tạp, chỉ tập trung vào những thông tin cần thiết
- C. Tăng cường tính chi tiết và cụ thể của chương trình
- D. Sao chép mã nguồn từ các chương trình khác
Câu 13: Nhận dạng mẫu (pattern recognition) là một kỹ năng hữu ích trong giải quyết vấn đề. Khi nào kỹ năng nhận dạng mẫu trở nên đặc biệt quan trọng?
- A. Khi bài toán có ít dữ liệu đầu vào
- B. Khi bài toán cần giải quyết nhanh chóng
- C. Khi bài toán đã có sẵn lời giải
- D. Khi bài toán có cấu trúc hoặc quy luật lặp lại
Câu 14: Để mô tả thuật toán, người ta có thể sử dụng lưu đồ, mã giả hoặc ngôn ngữ tự nhiên. Ưu điểm chính của việc sử dụng mã giả (pseudocode) so với ngôn ngữ tự nhiên là gì?
- A. Dễ hiểu và dễ viết hơn cho người không chuyên về lập trình
- B. Có cấu trúc rõ ràng, gần với ngôn ngữ lập trình, dễ chuyển đổi thành mã
- C. Mô tả thuật toán một cách chính xác tuyệt đối, không gây hiểu nhầm
- D. Thể hiện được mọi khía cạnh của thuật toán, kể cả các chi tiết phức tạp nhất
Câu 15: Máy tính có vai trò to lớn trong giải quyết vấn đề. Đâu là lợi thế quan trọng nhất của máy tính so với con người khi giải quyết các bài toán phức tạp?
- A. Khả năng sáng tạo và tư duy linh hoạt
- B. Khả năng hiểu và diễn giải ngôn ngữ tự nhiên
- C. Tốc độ xử lý và khả năng tính toán nhanh, chính xác
- D. Bộ nhớ lưu trữ thông tin khổng lồ
Câu 16: Mặc dù máy tính rất mạnh mẽ, nhưng chúng vẫn có những hạn chế trong giải quyết vấn đề. Hạn chế nào sau đây là đúng?
- A. Máy tính không thể xử lý dữ liệu lớn
- B. Máy tính dễ mắc lỗi trong quá trình tính toán
- C. Máy tính không thể kết nối với Internet
- D. Máy tính cần thuật toán rõ ràng để giải quyết vấn đề
Câu 17: Sử dụng máy tính để giải quyết vấn đề cũng đặt ra những vấn đề về đạo đức. Vấn đề đạo đức nào sau đây liên quan đến việc sử dụng thuật toán AI trong việc tuyển dụng nhân sự?
- A. Vi phạm bản quyền phần mềm
- B. Nguy cơ phân biệt đối xử do thiên vị trong thuật toán
- C. Sử dụng máy tính quá nhiều gây hại cho sức khỏe
- D. Chi phí đầu tư cho hệ thống máy tính quá lớn
Câu 18: Máy tính và công nghệ thông tin đã tác động sâu sắc đến xã hội. Tác động tiêu cực nào sau đây là một hệ quả của sự phát triển công nghệ thông tin?
- A. Nâng cao năng suất lao động
- B. Mở rộng khả năng tiếp cận thông tin và tri thức
- C. Giảm tương tác xã hội trực tiếp và kỹ năng giao tiếp
- D. Tạo ra nhiều cơ hội việc làm mới
Câu 19: Trong tình huống nào sau đây, việc giải quyết vấn đề bằng phương pháp thủ công (không dùng máy tính) có thể hiệu quả hơn so với sử dụng máy tính?
- A. Bài toán cần sự sáng tạo và linh hoạt, không có quy trình rõ ràng
- B. Bài toán yêu cầu tính toán số lượng lớn và phức tạp
- C. Bài toán cần xử lý dữ liệu có cấu trúc và lặp đi lặp lại
- D. Bài toán cần chia sẻ kết quả nhanh chóng qua mạng Internet
Câu 20: "Chia để trị" (Divide and Conquer) là một kỹ thuật thiết kế thuật toán. Ý tưởng chính của kỹ thuật này là gì?
- A. Giải quyết bài toán bằng cách thử tất cả các khả năng
- B. Chia bài toán lớn thành các bài toán con nhỏ hơn, dễ giải quyết hơn
- C. Tìm kiếm lời giải tối ưu bằng cách lặp đi lặp lại
- D. Sắp xếp dữ liệu đầu vào trước khi giải quyết bài toán
Câu 21: Dữ liệu trong máy tính được biểu diễn dưới dạng nhị phân (binary). Vì sao máy tính lại sử dụng hệ nhị phân thay vì hệ thập phân quen thuộc?
- A. Hệ nhị phân dễ học và dễ sử dụng hơn hệ thập phân
- B. Hệ nhị phân giúp tiết kiệm bộ nhớ lưu trữ
- C. Hệ nhị phân phù hợp với cấu trúc điện tử của máy tính (hai trạng thái)
- D. Hệ nhị phân có thể biểu diễn số lượng lớn hơn hệ thập phân
Câu 22: Mô hình "Input - Process - Output" (IPO) mô tả quá trình xử lý thông tin cơ bản của máy tính. Trong mô hình này, "Process" (Xử lý) bao gồm các hoạt động nào?
- A. Nhập dữ liệu từ bàn phím hoặc thiết bị ngoại vi
- B. Thực hiện các phép tính toán, logic, và các thao tác xử lý dữ liệu
- C. Hiển thị kết quả ra màn hình hoặc in ra giấy
- D. Lưu trữ dữ liệu vào bộ nhớ ngoài
Câu 23: Để đảm bảo thuật toán hoạt động đúng như mong đợi, cần thực hiện kiểm chứng tính đúng đắn (correctness). Phương pháp nào sau đây thường được sử dụng để kiểm chứng tính đúng đắn của thuật toán?
- A. Phân tích độ phức tạp thời gian của thuật toán
- B. Viết tài liệu mô tả chi tiết thuật toán
- C. So sánh thuật toán với các thuật toán khác
- D. Kiểm thử thuật toán với các bộ dữ liệu kiểm thử khác nhau
Câu 24: Độ phức tạp không gian (space complexity) của thuật toán đo lường yếu tố nào?
- A. Lượng bộ nhớ máy tính mà thuật toán sử dụng
- B. Thời gian thực thi của thuật toán
- C. Số lượng phép toán mà thuật toán thực hiện
- D. Độ dài mã nguồn của thuật toán
Câu 25: Cho đoạn mã giả sau: `ĐẦU VÀO: số nguyên n. KHỞI TẠO: tong = 0. FOR i từ 1 đến n: tong = tong + i. KẾT QUẢ: in ra tong`. Đoạn mã này tính toán giá trị nào?
- A. n!
- B. Tổng các số tự nhiên từ 1 đến n
- C. n^2
- D. Tích các số tự nhiên từ 1 đến n
Câu 26: Trong phép gán `x = y + 5`, điều gì xảy ra đầu tiên?
- A. Giá trị của `x` được gán cho `y`
- B. Giá trị của `x` được cộng thêm 5
- C. Giá trị của `y + 5` được tính toán
- D. Biến `x` và `y` trở nên bằng nhau
Câu 27: Các phép toán số học cơ bản bao gồm +, -, *, /. Phép toán nào sau đây có độ ưu tiên cao nhất trong biểu thức số học?
- A. + (phép cộng)
- B. - (phép trừ)
- C. * (phép nhân)
- D. + (phép cộng) và - (phép trừ) có cùng độ ưu tiên
Câu 28: Xét cấu trúc rẽ nhánh lồng nhau sau: `NẾU (điều_kiện_1) THÌ { NẾU (điều_kiện_2) THÌ { lệnh_1 } NẾU KHÔNG { lệnh_2 } } NẾU KHÔNG { lệnh_3 }`. Lệnh nào sẽ được thực hiện nếu `điều_kiện_1` là đúng và `điều_kiện_2` là sai?
- A. lệnh_1
- B. lệnh_2
- C. lệnh_3
- D. Không lệnh nào được thực hiện
Câu 29: Xét vòng lặp lồng nhau sau: `FOR i từ 1 đến 3: FOR j từ 1 đến 2: in ra (i, j)`. Hỏi vòng lặp bên trong (vòng lặp `j`) được thực hiện bao nhiêu lần?
- A. 2 lần
- B. 3 lần
- C. 5 lần
- D. 6 lần
Câu 30: Chương trình con (hàm/thủ tục) giúp chia chương trình lớn thành các phần nhỏ hơn, có tính mô đun. Lợi ích chính của việc sử dụng chương trình con là gì?
- A. Tăng tính tái sử dụng mã, giảm trùng lặp, dễ bảo trì và phát triển
- B. Làm chương trình chạy nhanh hơn đáng kể
- C. Giảm thiểu nguy cơ lỗi cú pháp
- D. Chỉ cần thiết cho chương trình có giao diện đồ họa phức tạp