Luyện tập trắc nghiệm tốt nghiệp THPT
Luyện ngẫu nhiên theo số câu cố định hoặc mở trọn vẹn từng đề đã lưu.
Tìm thấy 3 câu hỏi phù hợp
Mở từng câu để xem đáp án, hoặc click nút Luyện 3 câu để vào chế độ luyện thi và kiểm tra năng lực.
Cho đoạn chương trình Python sau:
def check_value(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
print(check_value(7))
Kết quả in ra màn hình của đoạn chương trình trên là gì?
Đáp án đúng:
Lời giải chi tiết:
Đoạn mã kiểm tra số nguyên tố. Số 7 là số nguyên tố nên hàm check_value(7) trả về True.
Xét thuật toán sắp xếp nổi bọt (Bubble Sort) được triển khai như sau:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
Các phát biểu sau đây là Đúng hay Sai?
Đáp án đúng:
Độ phức tạp thời gian trong trường hợp xấu nhất của thuật toán là $O(n^2)$
Bubble sort là một thuật toán sắp xếp không ổn định.
Độ phức tạp bộ nhớ bổ sung của thuật toán là $O(1)$.
Đoạn mã trên bị lỗi chỉ số vượt quá giới hạn (IndexError) khi chạy.
Lời giải chi tiết:
- Ý a: Đúng. Độ phức tạp thời gian trường hợp xấu nhất là $O(n^2)$ khi dãy bị ngược.
- Ý b: Sai. Bubble Sort là thuật toán sắp xếp ổn định (stable) vì nó chỉ đổi chỗ các phần tử kế cận khi phần tử trước lớn hơn hẳn phần tử sau.
- Ý c: Đúng. Thuật toán thực hiện sắp xếp trực tiếp trên mảng truyền vào (in-place) nên độ phức tạp không gian bổ sung là $O(1)$.
- Ý d: Sai. range(0, n-i-1) là hoàn toàn đúng để tránh truy cập vượt quá chỉ số phần tử cuối cùng
arr[j+1].
Xét bảng chân trị của phép toán logic $\text{AND}$ và $\text{OR}$ sau đây:
| $x$ | $y$ | $x \land y$ | $x \lor y$ |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Biểu thức logic nào dưới đây tương đương với biểu thức logic phủ định $\neg(x \land y)$?
Đáp án đúng:
Lời giải chi tiết:
Theo định luật De Morgan trong logic mệnh đề: $\neg(x \land y) \equiv \neg x \lor \neg y$. Do đó phương án B là đáp án chính xác.