Logo

lxi.edu.vn

Năm học: 2025-2026

Chữ kí GT1: ...................

Chữ kí GT2: ...................

LUYỆN TẬP: TRẮC NGHIỆM TIN HỌC 10 KẾT NỐI CHỦ ĐỀ 5: GIẢI QUYẾT VẤN ĐỀ VỚI SỰ TRỢ GIÚP CỦA MÁY TÍNH (P3)

Môn: Tin học 10 | Thời gian làm bài: 45 phút

((Không kể thời gian phát đề) - Đề có 27 câu)

Họ và tên: ..................................................................... Lớp: .........................

Số báo danh: ............................................................ Phòng KT: ....................

Mã phách
Điểm bằng số Điểm bằng chữ Chữ ký của GT1 Chữ ký của GT2 Mã phách

Đáp Án Trắc Nghiệm

1.ABCD
2.ABCD
3.ABCD
4.ABCD
5.ABCD
6.ABCD
7.ABCD
8.ABCD
9.ABCD
10.ABCD
11.ABCD
12.ABCD
13.ABCD
14.ABCD
15.ABCD
16.ABCD
17.ABCD
18.ABCD
19.ABCD
20.ABCD
21.ABCD
22.ABCD
23.ABCD
24.ABCD
25.ABCD
26.ABCD
27.ABCD

Câu 1: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: D. Kiểm tra một điều kiện và thực hiện vòng lặp khi điều kiện đó còn đúng.

Giải thích:

Câu lệnh `while` trong Python được sử dụng để kiểm tra một điều kiện và thực hiện lặp lại một khối mã khi điều kiện đó còn đúng. Cấu trúc của vòng lặp `while` như sau: ```python while điều_kiện: # Khối mã được thực thi khi điều kiện đúng ``` Trong đó: `while`: Từ khóa bắt đầu vòng lặp `while`. `điều_kiện`: Một biểu thức điều kiện (ví dụ: `x > 0`, `i < len(danh_sach)`). * Khối mã sau dấu hai chấm (`:`) sẽ được thực thi lặp đi lặp lại chừng nào `điều_kiện` còn trả về giá trị `True`.

Câu 2: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: D. Chương trình vẫn chạy nhưng không đúng yêu cầu đặt ra.

Giải thích:

Câu lệnh `x = input("Nhập số thực x: ")` trong Python sẽ nhận dữ liệu nhập vào từ người dùng dưới dạng chuỗi (string). Do đó, dù người dùng nhập vào một số thực, giá trị của `x` vẫn là một chuỗi chứ không phải một số thực. Để chuyển đổi chuỗi này thành số thực, cần sử dụng hàm `float()`. Ví dụ: Nếu người dùng nhập `3.14`, thì `x` sẽ có giá trị là chuỗi `"3.14"`. Để `x` có giá trị là số thực `3.14`, cần viết: ```python x = float(input("Nhập số thực x: ")) ``` Vì vậy, câu lệnh ban đầu vẫn chạy được, nhưng không đúng yêu cầu đặt ra là gán giá trị số thực cho biến `x`.

Câu 3: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm phức hợp)

Đáp án đúng: A. 1 2 3 4.

Giải thích:

Chương trình được cho thực hiện một vòng lặp `while` với điều kiện `x < y`. Ban đầu, `x = 1` và `y = 5`. Bước 1: Kiểm tra điều kiện lặp. - `x < y` tương đương `1 < 5`. Điều kiện này đúng. Bước 2: Thực hiện các lệnh trong vòng lặp. - `print(x, end = " ")`: In giá trị của `x` (là 1) ra màn hình, sau đó in một khoảng trắng. Kết quả in ra: `1 ` - `x = x + 1`: Tăng giá trị của `x` lên 1. `x` trở thành 2. Bước 3: Kiểm tra lại điều kiện lặp. - `x < y` tương đương `2 < 5`. Điều kiện này đúng. Bước 4: Thực hiện các lệnh trong vòng lặp. - `print(x, end = " ")`: In giá trị của `x` (là 2) ra màn hình, sau đó in một khoảng trắng. Kết quả in ra: `1 2 ` - `x = x + 1`: Tăng giá trị của `x` lên 1. `x` trở thành 3. Bước 5: Kiểm tra lại điều kiện lặp. - `x < y` tương đương `3 < 5`. Điều kiện này đúng. Bước 6: Thực hiện các lệnh trong vòng lặp. - `print(x, end = " ")`: In giá trị của `x` (là 3) ra màn hình, sau đó in một khoảng trắng. Kết quả in ra: `1 2 3 ` - `x = x + 1`: Tăng giá trị của `x` lên 1. `x` trở thành 4. Bước 7: Kiểm tra lại điều kiện lặp. - `x < y` tương đương `4 < 5`. Điều kiện này đúng. Bước 8: Thực hiện các lệnh trong vòng lặp. - `print(x, end = " ")`: In giá trị của `x` (là 4) ra màn hình, sau đó in một khoảng trắng. Kết quả in ra: `1 2 3 4 ` - `x = x + 1`: Tăng giá trị của `x` lên 1. `x` trở thành 5. Bước 9: Kiểm tra lại điều kiện lặp. - `x < y` tương đương `5 < 5`. Điều kiện này sai. Vòng lặp kết thúc. Kết quả in ra màn hình là `1 2 3 4 `. Vậy đáp án đúng là A.

Câu 4: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: D. Chương trình bị lặp vô tận.

Giải thích:

Lời giải chi tiết: Đoạn chương trình như sau: ```python a = 10 while a < 11: print(a) ``` Phân tích: 1. Khởi tạo: Biến `a` được gán giá trị 10. 2. Vòng lặp `while`: Vòng lặp `while` sẽ tiếp tục thực hiện các lệnh bên trong nó khi điều kiện `a < 11` còn đúng. 3. In giá trị `a`: Bên trong vòng lặp, lệnh `print(a)` in giá trị hiện tại của `a` ra màn hình. 4. Điều kiện lặp: Vì `a` được khởi tạo là 10, nên điều kiện `a < 11` (tức là `10 < 11`) luôn đúng. Quan trọng: Không có lệnh nào trong vòng lặp thay đổi giá trị của `a`. Kết luận: Do điều kiện `a < 11` luôn đúng và không có gì thay đổi giá trị của `a` bên trong vòng lặp, chương trình sẽ lặp vô tận, in ra số 10 liên tục trên màn hình. Do đó, đáp án đúng là "D. Chương trình bị lặp vô tận.".

Câu 5: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: B. x.

Giải thích:

Biến trong lập trình là một vùng nhớ được đặt tên, dùng để lưu trữ dữ liệu. Trong đoạn chương trình `x = 1`, `x` là tên của biến được gán giá trị là `1`. Lệnh `print(x)` in ra giá trị của biến `x`. Vì vậy, biến trong đoạn chương trình này là `x`. Vậy, đáp án đúng là B. x.

Câu 6: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. 0, 1, ...., n -  1.

Giải thích:

Lệnh `range(n)` trong Python tạo ra một dãy số bắt đầu từ 0 và kết thúc ở `n-1`. Vậy đáp án đúng là: A. 0, 1, ...., n - 1.

Câu 7: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm phức hợp)

Đáp án đúng: A. Lệnh input() có chức năng nhập dữ liệu từ thiết bị chuẩn vào bàn phím.

Giải thích:

Phân tích các đáp án: A. Lệnh input() có chức năng nhập dữ liệu từ thiết bị chuẩn vào bàn phím. Đây là phát biểu SAI. Lệnh `input()` có chức năng nhập dữ liệu từ thiết bị chuẩn vào chương trình, thiết bị chuẩn mặc định thường là bàn phím. Câu này diễn đạt sai khi nói "vào bàn phím". B. Bàn phím là thiết bị chuẩn duy nhất. Đây là phát biểu ĐÚNG. Trong ngữ cảnh nhập liệu cơ bản, bàn phím thường là thiết bị chuẩn mặc định để nhập liệu. C. Nội dung nhập có thể là số. Đây là phát biểu ĐÚNG. Người dùng hoàn toàn có thể nhập số khi được yêu cầu nhập liệu. D. Kết quả của lệnh input() là một xâu kí tự. Đây là phát biểu ĐÚNG. Lệnh `input()` luôn trả về một xâu kí tự, ngay cả khi người dùng nhập số. Để sử dụng giá trị số, cần ép kiểu (ví dụ, sử dụng `int()` hoặc `float()`). Vậy, đáp án sai là A.

Câu 8: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. k là số chữ số có nghĩa của n.

Giải thích:

Đoạn chương trình trên thực hiện các bước sau: 1. Nhập giá trị n: Yêu cầu người dùng nhập một số nguyên `n` (với điều kiện `n <= 1000`). 2. Khởi tạo k = 0: Gán giá trị ban đầu cho biến `k` bằng 0. Biến này sẽ được sử dụng để đếm. 3. Lấy giá trị tuyệt đối của n: `n = abs(n)` để đảm bảo `n` là một số không âm. Điều này quan trọng vì vòng lặp `while` sẽ không bao giờ kết thúc nếu `n` âm. 4. Vòng lặp `while n != 0`: Vòng lặp này tiếp tục cho đến khi `n` bằng 0. `n = n // 10`: Thực hiện phép chia lấy phần nguyên của `n` cho 10. Ví dụ, nếu `n = 123`, thì sau bước này, `n` sẽ trở thành 12. Phép toán này loại bỏ chữ số hàng đơn vị của `n`. `k = k + 1`: Tăng giá trị của `k` lên 1. Mỗi lần lặp, `k` tăng lên, đếm số lần vòng lặp thực hiện. 5. `print(k)`: In giá trị của `k` ra màn hình. Phân tích tác dụng của đoạn chương trình: Vòng lặp `while` được thiết kế để loại bỏ từng chữ số của `n` từ phải sang trái (hàng đơn vị, hàng chục, hàng trăm, ...). Mỗi lần một chữ số bị loại bỏ, biến `k` sẽ tăng lên 1. Do đó, khi vòng lặp kết thúc (tức là `n` đã trở thành 0), `k` sẽ chứa số lượng chữ số ban đầu của `n`. Ví dụ: Giả sử `n = 1234`
Lần lặpnk
Ban đầu12340
11231
2122
313
404
Khi `n` trở thành 0, vòng lặp dừng lại và `k = 4` được in ra. Số 4 chính là số lượng chữ số của số 1234. Kết luận: Đoạn chương trình tính số lượng chữ số của số nguyên `n` mà người dùng nhập vào. Vì vậy, khẳng định A. k là số chữ số có nghĩa của n là đúng.

Câu 9: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm Đúng/Sai)

Đáp án đúng: A. i<=10

Giải thích:

Để đoạn chương trình tính tổng $s = 1 + 2 + 3 + ... + 10$, ta cần xác định điều kiện để vòng lặp `while` tiếp tục thực hiện. Ban đầu: `i = 1`, `s = 0`. Mỗi lần lặp: `s` tăng thêm `i`, và `i` tăng thêm 1. Kết thúc: Vòng lặp dừng khi `i` vượt quá 10. Điều này có nghĩa là vòng lặp tiếp tục khi `i` vẫn còn nhỏ hơn hoặc bằng 10. Vậy, điều kiện cần tìm là `i <= 10`. Đáp án A: `i <= 10`: Khi `i` vẫn nhỏ hơn hoặc bằng 10, vòng lặp tiếp tục, tính tổng các số từ 1 đến 10. Đây là đáp án đúng. Đáp án B: `i == 10`: Vòng lặp chỉ thực hiện khi `i` bằng 10, do đó chỉ cộng thêm 10 vào `s`, không tính tổng từ 1 đến 10. Đáp án C: `i >= 10`: Vòng lặp bắt đầu chỉ khi `i` lớn hơn hoặc bằng 10. Vì ban đầu `i = 1`, vòng lặp sẽ không thực hiện lần nào nếu ta thay điều kiện `i>=10`. * Đáp án D: `i > 10`: Vòng lặp bắt đầu chỉ khi `i` lớn hơn 10. Vì ban đầu `i = 1`, vòng lặp sẽ không thực hiện lần nào nếu ta thay điều kiện `i>10`. Vậy đáp án đúng là A.

Câu 10: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. a, b, x.

Giải thích:

Để giải phương trình $ax + b = 0$, ta cần xác định các yếu tố tham gia vào phương trình này. $a$ và $b$ là các hệ số, chúng là các giá trị đã biết hoặc cần được nhập vào. $x$ là ẩn số, là giá trị cần tìm để phương trình được thỏa mãn. Vậy, các biến trong bài toán này là $a$, $b$ và $x$. Đáp án đúng là A. a, b, x.

Câu 11: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: C. While S <109:

Giải thích:

Để bài toán dừng lại khi tổng $S > 10^9$, vòng lặp `while` cần tiếp tục thực hiện khi $S$ vẫn còn nhỏ hơn hoặc bằng $10^9$. Do đó, điều kiện để vòng lặp tiếp tục là $S < 10^9$. Khi $S$ vượt quá $10^9$, vòng lặp sẽ dừng lại. A. While S>=109: Vòng lặp sẽ dừng khi S nhỏ hơn 109, không đúng với yêu cầu bài toán là dừng khi S > 109. B. While S =109: Vòng lặp chỉ thực hiện khi S đúng bằng 109, không đúng. C. While S <109: Vòng lặp sẽ tiếp tục cho đến khi S lớn hơn hoặc bằng 109, đúng với yêu cầu bài toán. D. While S !=109: Vòng lặp sẽ tiếp tục cho đến khi S bằng 109, không đúng. Vậy, đáp án đúng là C. While S <109:

Câu 12: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. while condition:

Giải thích:

Câu hỏi này thuộc mức độ nhận biết vì nó yêu cầu học sinh nhớ lại cú pháp của câu lệnh `while` trong Python. Đáp án đúng là A. while condition: Giải thích: Trong Python, cú pháp của vòng lặp `while` như sau: ```python while condition: # Các lệnh cần thực hiện khi condition là True ``` Trong đó: `while` là từ khóa bắt đầu vòng lặp. `condition` là một biểu thức điều kiện. Vòng lặp sẽ tiếp tục thực hiện các lệnh bên trong cho đến khi `condition` là `False`. Dấu hai chấm `:` là bắt buộc sau `condition`. Các lệnh bên trong vòng lặp phải được thụt vào (thường là 4 khoảng trắng) để Python hiểu chúng thuộc về vòng lặp `while`. Các đáp án khác đều sai cú pháp: B. `while (condition):` Sai vì trong Python, không cần dùng dấu ngoặc đơn `()` bao quanh điều kiện. C. `while {condition}:` Sai vì dùng dấu ngoặc nhọn `{}` là sai cú pháp. Dấu này thường dùng cho dictionaries. * D. `while [condition]:` Sai vì dùng dấu ngoặc vuông `[]` là sai cú pháp. Dấu này thường dùng cho lists.

Câu 13: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. Khi một số điều kiện cho trước thoả mãn.

Giải thích:

Vòng lặp `while - do` trong lập trình hoạt động dựa trên một điều kiện. Vòng lặp sẽ tiếp tục thực hiện các lệnh bên trong nó cho đến khi điều kiện đó không còn đúng nữa (tức là điều kiện trở thành sai). Như vậy, vòng lặp kết thúc khi điều kiện cho trước không còn thỏa mãn. Vậy đáp án đúng là: A. Khi một số điều kiện cho trước thoả mãn. (nghĩa là điều kiện ban đầu không còn thỏa mãn nữa)

Câu 14: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. 10 lần.

Giải thích:

Câu lệnh `for j in range(10):` sẽ lặp lại 10 lần. Trong mỗi lần lặp, lệnh `print("A")` sẽ in ra chữ "A". Vì vậy, khi kết thúc vòng lặp, chữ "A" sẽ được in ra 10 lần. Giá trị khởi tạo `j = 0` ở trước vòng lặp không ảnh hưởng đến số lần lặp của vòng `for`.

Câu 15: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. print().

Giải thích:

Câu hỏi này thuộc mức độ nhận biết vì yêu cầu học sinh nhớ lại cú pháp cơ bản để in dữ liệu ra màn hình trong ngôn ngữ lập trình Python. Để đưa dữ liệu ra màn hình trong Python, chúng ta sử dụng hàm `print()`. `print()`: Hàm này dùng để hiển thị dữ liệu ra màn hình. `input()`: Hàm này dùng để nhận dữ liệu từ người dùng nhập vào từ bàn phím. `type()`: Hàm này dùng để kiểm tra kiểu dữ liệu của một biến hoặc giá trị. `abs()`: Hàm này dùng để lấy giá trị tuyệt đối của một số. Vậy đáp án đúng là A. `print()`.

Câu 16: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm Đúng/Sai)

Đáp án đúng: B. Nháy kép.

Giải thích:

Trong Python, xâu kí tự (string) được đặt trong dấu nháy đơn (`'...'`) hoặc nháy kép (`"..."`). Đáp án đúng là B. Nháy kép. Vậy đáp án đúng là: B. Nháy kép.

Câu 17: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: D. Khối gồm các lệnh được thực hiện theo trình tự từ trên xuống dưới.

Giải thích:

Cấu trúc tuần tự là cấu trúc đơn giản nhất trong lập trình, các lệnh được thực hiện theo thứ tự từ trên xuống dưới, không có sự lựa chọn hay lặp lại. Do đó, đáp án đúng là: D. Khối gồm các lệnh được thực hiện theo trình tự từ trên xuống dưới.

Câu 18: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm phức hợp)

Đáp án đúng: A. x y

Giải thích:

Tên biến trong lập trình phải tuân theo một số quy tắc, bao gồm: Bắt đầu bằng chữ cái hoặc dấu gạch dưới (\_). Chỉ chứa chữ cái, chữ số và dấu gạch dưới. Không được chứa khoảng trắng. Không trùng với các từ khóa của ngôn ngữ lập trình. Xét các đáp án: A. x y: Chứa khoảng trắng, vi phạm quy tắc. B. x12: Hợp lệ. C. \_xx: Hợp lệ. D. X56: Hợp lệ. Vậy, đáp án A đặt sai quy tắc.

Câu 19: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: b) Bạn có thể sử dụng một biến để lưu trữ tổng trong khi lặp qua danh sách. d) Câu lệnh for rất hữu ích để xử lý dữ liệu trong danh sách.

Giải thích:

Dựa vào đoạn thông tin đã cho, ta phân tích tính đúng sai của các nhận định như sau: a) Câu lệnh for không thể thực hiện các phép toán trên từng phần tử trong danh sách. Đây là một nhận định sai. Đoạn thông tin đã khẳng định: "Sử dụng câu lệnh lặp for, bạn có thể thực hiện các phép toán trên từng phần tử trong một danh sách". b) Bạn có thể sử dụng một biến để lưu trữ tổng trong khi lặp qua danh sách. Đây là một nhận định đúng. Đoạn thông tin có đề cập: "Ví dụ, bạn có thể tính tổng của tất cả các số trong một danh sách bằng cách sử dụng một biến để lưu trữ kết quả." c) Lặp qua danh sách bằng for không thể thay đổi giá trị của các phần tử trong danh sách. Đây là một nhận định sai. Trong quá trình lặp, ta hoàn toàn có thể gán lại giá trị mới cho các phần tử trong danh sách. d) Câu lệnh for rất hữu ích để xử lý dữ liệu trong danh sách. Đây là một nhận định đúng. Việc lặp qua danh sách bằng vòng `for` cho phép ta tiếp cận và thao tác với từng phần tử, từ đó thực hiện các tác vụ xử lý dữ liệu hiệu quả. Vậy, các nhận định đúng là b và d.

Câu 20: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: b) Bạn có thể sử dụng vòng lặp while để kiểm tra điều kiện nhập liệu cho đến khi người dùng nhập đúng. d) Vòng lặp while có thể dừng lại khi người dùng nhập một giá trị cụ thể.

Giải thích:

Để giải quyết câu hỏi này, ta cần phân tích đoạn thông tin đã cho và đánh giá tính đúng sai của từng nhận định dựa trên kiến thức về vòng lặp `while`. Đoạn thông tin: Câu lệnh lặp `while` rất hữu ích trong việc xử lý các tình huống mà bạn cần nhập dữ liệu từ người dùng cho đến khi một điều kiện nhất định được thoả mãn, như nhập đúng mật khẩu hoặc số lượng sản phẩm. a) Câu lệnh `while` không thể được sử dụng để nhận dữ liệu từ người dùng. Nhận định này sai. Đoạn thông tin đã chỉ rõ `while` rất hữu ích trong việc xử lý các tình huống nhập dữ liệu từ người dùng. b) Bạn có thể sử dụng vòng lặp `while` để kiểm tra điều kiện nhập liệu cho đến khi người dùng nhập đúng. Nhận định này đúng. Đây chính là một trong những ứng dụng điển hình của `while`, được đề cập trong đoạn thông tin. Ví dụ: ```python mat_khau_dung = "password123" mat_khau = input("Nhập mật khẩu: ") while mat_khau != mat_khau_dung: print("Mật khẩu sai. Vui lòng nhập lại.") mat_khau = input("Nhập mật khẩu: ") print("Đăng nhập thành công!") ``` c) Sử dụng `while` để nhận dữ liệu từ người dùng có thể giúp cải thiện tính bảo mật của ứng dụng. Nhận định này đúng. Việc kiểm tra điều kiện nhập liệu, như kiểm tra định dạng hoặc độ dài của mật khẩu, bằng vòng lặp `while` có thể giúp ngăn chặn các dữ liệu không hợp lệ hoặc nguy hiểm xâm nhập vào hệ thống, từ đó cải thiện tính bảo mật. * d) Vòng lặp `while` có thể dừng lại khi người dùng nhập một giá trị cụ thể. Nhận định này đúng. Điều kiện dừng của vòng lặp `while` có thể dựa trên giá trị mà người dùng nhập vào. Ví dụ, vòng lặp có thể dừng khi người dùng nhập "thoat" hoặc một giá trị số cụ thể. Vậy, các đáp án đúng là b) và d).

Câu 21: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. break 

Giải thích:

Để thoát khỏi một vòng lặp `while` sớm hơn dự kiến, ta sử dụng cấu trúc `break`. break: Lệnh `break` được sử dụng để thoát khỏi vòng lặp ngay lập tức, bỏ qua bất kỳ phần code nào còn lại trong vòng lặp và chuyển điều khiển đến lệnh tiếp theo sau vòng lặp. continue: Lệnh `continue` bỏ qua phần còn lại của lần lặp hiện tại và chuyển sang lần lặp tiếp theo. return: Lệnh `return` được sử dụng để thoát khỏi một hàm và trả về một giá trị (nếu có). exit: Lệnh `exit` thường được sử dụng để thoát khỏi chương trình hoàn toàn. Vì vậy, đáp án chính xác là A. `break`.

Câu 22: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. Chuyển đến vòng lặp kế tiếp.

Giải thích:

Câu lệnh `continue` trong vòng lặp `while` (hoặc `for`) có chức năng bỏ qua phần còn lại của khối lệnh trong vòng lặp hiện tại và chuyển đến lần lặp tiếp theo. Giải thích chi tiết: Khi gặp lệnh `continue`, chương trình sẽ: 1. Bỏ qua tất cả các câu lệnh còn lại trong khối lệnh của vòng lặp đang thực hiện. 2. Kiểm tra lại điều kiện lặp của vòng lặp `while` (hoặc cập nhật biến đếm trong vòng lặp `for`). 3. Nếu điều kiện lặp vẫn đúng (hoặc vòng lặp `for` còn phần tử), vòng lặp sẽ tiếp tục với lần lặp tiếp theo. Nếu không, vòng lặp sẽ kết thúc. Phân tích các lựa chọn: A. Chuyển đến vòng lặp kế tiếp. - Đúng. Đây là chức năng chính xác của `continue`. B. Kết thúc vòng lặp. - Sai. Lệnh để kết thúc vòng lặp là `break`. C. Thoát khỏi vòng lặp. - Sai. Tương tự như trên, `break` dùng để thoát khỏi vòng lặp. D. Tạo một vòng lặp vô hạn. - Sai. `continue` không liên quan đến việc tạo vòng lặp vô hạn. Vòng lặp vô hạn thường do điều kiện lặp luôn đúng.

Câu 23: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: B. Đảm bảo điều kiện trong câu lệnh "while" trả về True. 

Giải thích:

Để tránh vòng lặp vô hạn khi sử dụng câu lệnh `while`, ta cần đảm bảo điều kiện lặp cuối cùng phải trở thành `False`. Điều này có nghĩa là, trong quá trình lặp, phải có một hoặc nhiều tác động khiến cho điều kiện kiểm tra của vòng `while` dần dần thay đổi và cuối cùng đạt đến trạng thái `False`. Nếu điều kiện luôn luôn `True`, vòng lặp sẽ không bao giờ kết thúc, dẫn đến vòng lặp vô hạn. Đáp án A sai vì không kiểm tra điều kiện sẽ dẫn đến vòng lặp vô hạn nếu không có cách khác để thoát khỏi vòng lặp. Đáp án C sai vì nếu điều kiện luôn `False`, vòng lặp sẽ không bao giờ được thực hiện. Đáp án D sai vì `continue` chỉ bỏ qua phần còn lại của lần lặp hiện tại và tiếp tục với lần lặp tiếp theo, nó không thoát khỏi vòng lặp. Để thoát khỏi vòng lặp, ta có thể sử dụng `break` hoặc đảm bảo điều kiện của `while` trở thành `False`. Vậy, đáp án đúng là B. Đảm bảo điều kiện trong câu lệnh "while" trả về True cho đến khi một điều kiện nào đó làm cho nó trở thành False. Lời diễn giải của đáp án B trong câu hỏi có thể gây hiểu nhầm, cần phải hiểu là điều kiện ban đầu phải là `True` và sau đó phải có khả năng trở thành `False` để vòng lặp kết thúc.

Câu 24: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. k là số chữ số có nghĩa của n.

Giải thích:

Đầu tiên, ta phân tích đoạn chương trình: 1. `n = int(input("Nhập n<=1000: "))`: Nhập một số nguyên `n` từ bàn phím (với điều kiện `n <= 1000`). 2. `k = 0`: Khởi tạo biến `k` bằng 0. 3. `n = abs(n)`: Lấy giá trị tuyệt đối của `n`. Điều này đảm bảo chương trình hoạt động đúng với cả số âm. 4. `while n != 0:`: Vòng lặp `while` tiếp tục cho đến khi `n` bằng 0. 5. `n = n // 10`: Chia nguyên `n` cho 10 và gán lại cho `n`. Phép chia này loại bỏ chữ số cuối cùng của `n`. 6. `k = k + 1`: Tăng `k` lên 1. 7. `print(k)`: In giá trị của `k`. Vòng lặp `while` sẽ lặp lại cho đến khi `n` bằng 0. Mỗi lần lặp, một chữ số của `n` bị loại bỏ và `k` tăng lên 1. Do đó, `k` sẽ đếm số lượng chữ số của `n`. Việc lấy giá trị tuyệt đối của `n` đảm bảo rằng số âm cũng được xử lý đúng cách, vì số lượng chữ số của một số âm bằng với số lượng chữ số của giá trị tuyệt đối của nó. Ví dụ: - Nếu `n = 123`, thì vòng lặp sẽ chạy 3 lần: - Lần 1: `n = 123 // 10 = 12`, `k = 1` - Lần 2: `n = 12 // 10 = 1`, `k = 2` - Lần 3: `n = 1 // 10 = 0`, `k = 3` - In ra `k = 3` (số chữ số của 123) - Nếu `n = -45`, thì `n = abs(n) = 45`. Vòng lặp sẽ chạy 2 lần: - Lần 1: `n = 45 // 10 = 4`, `k = 1` - Lần 2: `n = 4 // 10 = 0`, `k = 2` - In ra `k = 2` (số chữ số của -45) Vậy, `k` là số chữ số có nghĩa của `n`.

Câu 25: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: D. Vế phải của một phép gán. 

Giải thích:

Biểu thức số học thường được sử dụng ở vế phải của một phép gán trong lập trình. Ví dụ: `x = a + b c;` Trong đó, `a + b c` là một biểu thức số học và nó nằm ở vế phải của phép gán, gán giá trị của biểu thức này cho biến `x`. Vậy đáp án đúng là: D. Vế phải của một phép gán.

Câu 26: (0.37 điểm) (THÔNG HIỂU - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.

Giải thích:

Đoạn chương trình Python sử dụng vòng lặp `for` để in ra các số từ 10 về 1. Ta sẽ phân tích chi tiết: `for i in range(10, 0, -1):`: Câu lệnh này khởi tạo một vòng lặp `for`. `range(10, 0, -1)` tạo ra một dãy số bắt đầu từ 10, kết thúc trước 0, và giảm dần mỗi bước là 1. Nói cách khác, dãy số này là: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1. Biến `i` sẽ lần lượt nhận các giá trị trong dãy số này trong mỗi lần lặp. `print(i, '')`: Câu lệnh này in giá trị của `i` và một chuỗi rỗng (``) trên cùng một dòng. Dấu `,` trong hàm `print` có tác dụng in các giá trị cách nhau bởi một khoảng trắng (dấu cách). Vậy, đoạn chương trình sẽ in ra các số từ 10 đến 1, mỗi số cách nhau một khoảng trắng. Kết quả là: 10 9 8 7 6 5 4 3 2 1. Do đó, đáp án đúng là: A. 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.

Câu 27: (0.37 điểm) (NHẬN BIẾT - Trắc nghiệm một lựa chọn)

Đáp án đúng: A. a=int(input()) b=int(input()).

Giải thích:

Để nhập hai số nguyên `a` và `b`, mỗi số trên một dòng trong Python, ta cần sử dụng hàm `input()` để đọc dữ liệu từ bàn phím, sau đó sử dụng hàm `int()` để chuyển đổi dữ liệu vừa đọc được sang kiểu số nguyên. - Đáp án A: `a=int(input()) b=int(input())`. Lệnh này thực hiện đúng yêu cầu đề bài: - `input()`: Đọc một dòng từ bàn phím. - `int()`: Chuyển đổi chuỗi vừa đọc thành số nguyên. - `a=int(input())`: Gán giá trị số nguyên vừa nhập cho biến `a`. - `b=int(input())`: Gán giá trị số nguyên vừa nhập cho biến `b`. - Đáp án B: `a=float(input()) b=float(input())`. Lệnh này nhập hai số thực, không phải số nguyên. - Đáp án C: `a,b=map(int,input().split())`. Lệnh này nhập hai số nguyên trên cùng một dòng, cách nhau bởi khoảng trắng. Hàm `split()` tách chuỗi nhập thành một danh sách các chuỗi con dựa trên dấu cách, sau đó hàm `map(int, ...)` áp dụng hàm `int()` cho mỗi chuỗi con trong danh sách và cuối cùng, các giá trị số nguyên này được gán cho `a` và `b`. - Đáp án D: `a,b=map(float,input().split())`. Tương tự như đáp án C, nhưng nhập hai số thực trên cùng một dòng. Vậy, đáp án đúng là A.