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 - Đề 10
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 - Đề 10 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!
Câu 1: Khi giải quyết một bài toán trên máy tính, bước đầu tiên và quan trọng nhất là gì?
- A. Phân tích bài toán để xác định rõ input, output và mối quan hệ giữa chúng.
- B. Viết chương trình (code) ngay lập tức dựa trên yêu cầu ban đầu.
- C. Chọn ngôn ngữ lập trình phù hợp.
- D. Kiểm thử chương trình với một vài dữ liệu mẫu.
Câu 2: Thuật toán (Algorithm) là gì trong ngữ cảnh giải quyết vấn đề bằng máy tính?
- A. Là ngôn ngữ mà máy tính hiểu trực tiếp.
- B. Là phần cứng của máy tính.
- C. Là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định để giải quyết một vấn đề.
- D. Là kết quả cuối cùng mà chương trình tính toán được.
Câu 3: Bạn cần mô tả các bước chi tiết để pha một ly cà phê sữa đá sao cho người khác có thể làm theo chính xác. Biểu diễn nào sau đây không phải là cách phổ biến để mô tả thuật toán?
- A. Mô tả bằng ngôn ngữ tự nhiên (liệt kê các bước).
- B. Sơ đồ khối (Flowchart).
- C. Mã giả (Pseudocode).
- D. Biểu đồ Gantt.
Câu 4: Tại sao việc xác định rõ dữ liệu đầu vào (Input) và dữ liệu đầu ra (Output) lại quan trọng trong bước phân tích bài toán?
- A. Để chương trình chạy nhanh hơn.
- B. Để biết chương trình cần nhận những gì để xử lý và kết quả mong muốn là gì.
- C. Để giảm thiểu lỗi cú pháp khi viết code.
- D. Để chọn màu sắc giao diện cho chương trình.
Câu 5: Trong lập trình, biến (Variable) được sử dụng để làm gì?
- A. Lưu trữ dữ liệu mà chương trình sẽ xử lý hoặc tạo ra.
- B. Thực hiện các phép toán số học.
- C. Điều khiển luồng thực hiện của chương trình.
- D. Hiển thị kết quả ra màn hình.
Câu 6: Cho hai biến số nguyên `x = 10` và `y = 3`. Sau khi thực hiện phép gán `z = x // y + x % y` (trong đó `//` là chia lấy phần nguyên, `%` là chia lấy phần dư), giá trị của biến `z` là bao nhiêu?
Câu 7: Bạn cần lưu trữ thông tin về điểm trung bình môn Toán (có thể có phần thập phân) và giới tính của một học sinh (Nam hoặc Nữ). Kiểu dữ liệu nào sau đây phù hợp nhất để lưu trữ hai thông tin này?
- A. Cả hai đều là kiểu số nguyên (integer).
- B. Điểm trung bình là kiểu số thực (float), giới tính là kiểu xâu kí tự (string).
- C. Điểm trung bình là kiểu xâu kí tự (string), giới tính là kiểu số nguyên (integer).
- D. Cả hai đều là kiểu boolean (True/False).
Câu 8: Mục đích chính của câu lệnh `input()` hoặc tương đương trong các ngôn ngữ lập trình là gì?
- A. Cho phép chương trình nhận dữ liệu từ người dùng hoặc từ nguồn bên ngoài.
- B. Hiển thị thông báo lỗi ra màn hình.
- C. Thực hiện các phép tính toán phức tạp.
- D. Lưu dữ liệu vào biến một cách tự động.
Câu 9: Bạn đang viết một chương trình cần kiểm tra xem một số nhập vào có phải là số dương hay không. Nếu đúng, chương trình sẽ in ra "Đây là số dương". Cấu trúc lệnh nào sau đây phù hợp nhất để thực hiện việc kiểm tra điều kiện này?
- A. Vòng lặp for.
- B. Câu lệnh rẽ nhánh if.
- C. Vòng lặp while.
- D. Câu lệnh gán.
Câu 10: Một chương trình cần phân loại học sinh "Đạt" nếu điểm thi từ 5 trở lên và "Chưa đạt" nếu điểm thi dưới 5. Cấu trúc lệnh nào sau đây cho phép thực hiện hai nhánh xử lý tương ứng với hai trường hợp của điều kiện?
- A. Chỉ cần một câu lệnh if đơn giản.
- B. Vòng lặp for.
- C. Câu lệnh rẽ nhánh if-else.
- D. Vòng lặp while.
Câu 11: Phân tích đoạn mã giả sau:
```
DIEM = 75
IF DIEM >= 80 THEN
print
- A. Gioi
- B. Kha
- C. Trung binh
- D. Lỗi cú pháp
Câu 12: Bạn muốn viết một chương trình tính tiền phạt đi muộn. Nếu số phút đi muộn lớn hơn 15, phạt 50.000 đồng. Ngược lại (số phút đi muộn nhỏ hơn hoặc bằng 15), không phạt gì cả. Cấu trúc điều khiển nào phù hợp nhất?
- A. Chỉ dùng một câu lệnh `if`.
- B. Dùng hai câu lệnh `if` độc lập.
- C. Dùng câu lệnh `if-else`.
- D. Dùng vòng lặp `while`.
Câu 13: Bạn cần viết một chương trình in ra màn hình tất cả các số chẵn từ 2 đến 20. Cấu trúc lặp nào sau đây thường được sử dụng khi bạn biết trước số lần lặp hoặc lặp trên một dãy giá trị cụ thể?
- A. Vòng lặp for.
- B. Vòng lặp while.
- C. Câu lệnh rẽ nhánh if.
- D. Câu lệnh gán.
Câu 14: Bạn cần viết một chương trình yêu cầu người dùng nhập mật khẩu cho đến khi họ nhập đúng mật khẩu "12345". Số lần nhập là không xác định trước. Cấu trúc lặp nào sau đây phù hợp nhất cho tình huống này?
- A. Vòng lặp for.
- B. Vòng lặp while.
- C. Câu lệnh rẽ nhánh if-else.
- D. Câu lệnh print.
Câu 15: Phân tích đoạn mã giả sau:
```
i = 0
WHILE i < 5 DO
print i
i = i + 1
END WHILE
```
Các giá trị nào sẽ được in ra màn hình?
- A. 1 2 3 4 5
- B. 0 1 2 3 4 5
- C. 0 1 2 3 4
- D. Chỉ in ra 5
Câu 16: Bạn có một danh sách các sản phẩm và muốn áp dụng giảm giá 10% cho mỗi sản phẩm trong danh sách đó. Cấu trúc lặp nào thường được sử dụng để duyệt qua tất cả các phần tử của một tập hợp (như danh sách)?
- A. Vòng lặp for.
- B. Vòng lặp while.
- C. Câu lệnh if.
- D. Câu lệnh gán.
Câu 17: Chương trình con (hàm - function hoặc thủ tục - procedure) được sử dụng trong lập trình nhằm mục đích chính nào?
- A. Làm cho chương trình chạy nhanh hơn.
- B. Giúp chương trình có giao diện đồ họa đẹp hơn.
- C. Chỉ dùng để hiển thị thông báo lỗi.
- D. Chia nhỏ chương trình thành các module nhỏ hơn, dễ quản lý, tái sử dụng và giảm lặp code.
Câu 18: Giả sử bạn có một chương trình con tên là `tinhTong(a, b)` nhận hai số `a` và `b` làm đầu vào và trả về tổng của chúng. Để tính tổng của 5 và 7 và lưu kết quả vào biến `ketQua`, bạn sẽ gọi chương trình con này như thế nào?
- A. `tinhTong(ketQua)`
- B. `ketQua = tinhTong(5, 7)`
- C. `tinhTong = 5 + 7`
- D. `print(tinhTong)`
Câu 19: Hầu hết các ngôn ngữ lập trình đều cung cấp các thư viện (library) chứa các chương trình con có sẵn (ví dụ: các hàm toán học như `sqrt`, `sin`, `cos`). Lợi ích chính của việc sử dụng các thư viện này là gì?
- A. Tiết kiệm thời gian và công sức lập trình vì không phải viết lại các chức năng phổ biến từ đầu.
- B. Bắt buộc phải sử dụng tất cả các hàm trong thư viện.
- C. Chỉ dành cho các lập trình viên chuyên nghiệp.
- D. Giúp chương trình tự động sửa lỗi cú pháp.
Câu 20: Biến `ho_ten` lưu trữ xâu kí tự
- A. `ho_ten.first()`
- B. `ho_ten[1]`
- C. `ho_ten[0]`
- D. `ho_ten.get(0)`
Câu 21: Bạn có hai biến xâu `str1 =
- A. Phép nối xâu (concatenation), thường dùng ký hiệu `+`.
- B. Phép nhân xâu (multiplication).
- C. Phép chia xâu (division).
- D. Phép trừ xâu (subtraction).
Câu 22: Biến `danh_sach_so` lưu trữ một danh sách `[5, 8, 12, 3]`. Để truy cập vào phần tử có giá trị là 12, bạn sẽ sử dụng chỉ số (index) nào?
Câu 23: Bạn có một danh sách `diem_thi = [7.5, 8.0, 6.5, 9.0]`. Bạn muốn tính tổng điểm của tất cả học sinh trong danh sách này. Cấu trúc lặp nào là cách thông thường để duyệt qua từng phần tử của danh sách và thực hiện một hành động (ví dụ: cộng vào tổng)?
- A. Vòng lặp for.
- B. Câu lệnh rẽ nhánh if.
- C. Câu lệnh print.
- D. Câu lệnh gán.
Câu 24: Bạn đang viết code và gõ sai chính tả tên một lệnh (ví dụ: gõ `prnt` thay vì `print`). Khi chạy chương trình, lỗi này sẽ thuộc loại lỗi nào?
- A. Lỗi cú pháp (Syntax Error).
- B. Lỗi ngữ nghĩa (Semantic Error).
- C. Lỗi logic (Logic Error).
- D. Lỗi thời gian chạy (Runtime Error).
Câu 25: Chương trình của bạn yêu cầu người dùng nhập một số nguyên, sau đó thực hiện phép chia 10 cho số đó. Nếu người dùng nhập số 0, chương trình sẽ dừng đột ngột và báo lỗi. Loại lỗi này là gì?
- A. Lỗi cú pháp (Syntax Error).
- B. Lỗi ngữ nghĩa (Semantic Error).
- C. Lỗi logic (Logic Error).
- D. Lỗi thời gian chạy (Runtime Error).
Câu 26: Bạn viết một chương trình tính diện tích hình chữ nhật bằng công thức `chu_vi = (dai + rong) * 2` (thay vì `dien_tich = dai * rong`). Chương trình chạy không báo lỗi nhưng kết quả luôn sai. Loại lỗi này là gì?
- A. Lỗi cú pháp (Syntax Error).
- B. Lỗi thời gian chạy (Runtime Error).
- C. Lỗi logic (Logic Error).
- D. Không phải lỗi, chỉ là kết quả không mong muốn.
Câu 27: Gỡ lỗi (Debugging) là quá trình gì trong phát triển chương trình?
- A. Tìm kiếm và sửa các lỗi (bugs) trong chương trình.
- B. Viết code mới cho chương trình.
- C. Thiết kế giao diện người dùng.
- D. Chỉ là bước cuối cùng trước khi phát hành chương trình.
Câu 28: Xem xét đoạn mã giả sau để tìm số lớn nhất trong ba số a, b, c:
```
READ a, b, c
max_val = a
IF b > max_val THEN
max_val = b
END IF
IF c < max_val THEN // Lỗi có thể ở đây
max_val = c
END IF
PRINT max_val
```
Đoạn mã giả này mắc lỗi logic ở đâu?
- A. Ở dòng `READ a, b, c`.
- B. Ở dòng `max_val = a`.
- C. Ở điều kiện `IF c < max_val THEN` (nên là `c > max_val`).
- D. Ở dòng `PRINT max_val`.
Câu 29: Bạn đã viết một chương trình tính thuế thu nhập cá nhân dựa trên mức lương. Quy tắc thuế thay đổi ở các ngưỡng lương nhất định (ví dụ: dưới 10 triệu, từ 10-20 triệu, trên 20 triệu). Khi kiểm thử chương trình này, trường hợp dữ liệu nào sau đây đặc biệt quan trọng để kiểm tra?
- A. Chỉ cần nhập một mức lương bất kỳ (ví dụ: 15 triệu).
- B. Chỉ cần nhập một mức lương rất cao (ví dụ: 1 tỷ).
- C. Chỉ cần nhập một mức lương rất thấp (ví dụ: 1 triệu).
- D. Các mức lương ngay tại các ngưỡng thay đổi thuế (ví dụ: 10 triệu, 20 triệu) và các giá trị xung quanh các ngưỡng đó (ví dụ: 9.999.999 VNĐ, 10.000.001 VNĐ).
Câu 30: Một bài toán yêu cầu bạn đọc một danh sách các số và tính tổng của chúng. Số lượng các số trong danh sách có thể thay đổi mỗi lần chạy chương trình. Cấu trúc điều khiển nào trong lập trình là cần thiết để xử lý việc lặp lại hành động đọc và cộng số cho đến khi hết danh sách?
- A. Câu lệnh rẽ nhánh if-else.
- B. Một cấu trúc lặp (for hoặc while).
- C. Chỉ cần các câu lệnh gán và phép toán số học.
- D. Chỉ cần một chương trình con.