Trắc nghiệm Tin học 11 KHMT Kết nối tri thức Chủ đề 6 Bài 26

Môn Học: Tin học 11
Trường: THPT Trần Phú (Hà Nội)
Năm thi: 2024
Hình thức thi: Trắc nghiệm
Người ra đề thi: Cô Nguyễn Thị Phương
Đối tượng thi: Học sinh lớp 11
Loại đề thi: Đề ôn luyện
Trong bộ sách: Kết nối tri thức
Số lượng câu hỏi: 25
Thời gian thi: 45
Độ khó: Trung bình

Trắc Nghiệm Tin Học 11 KHMT Kết Nối Tri Thức Chủ Đề 6 Bài 26: Phương Pháp Làm Mịn Dần Trong Thiết Kế Chương Trình là bộ câu hỏi thuộc môn Tin học, được xây dựng nhằm giúp học sinh lớp 11 hiểu sâu về kỹ thuật làm mịn dần trong quy trình thiết kế chương trình. Đây là đề ôn tập được biên soạn bởi Trường THPT Trần Phú (Hà Nội), do cô Nguyễn Thị Phương – giáo viên Tin học của trường thực hiện vào năm 2024. Hệ thống trắc nghiệm Tin học 11 KHMT trên detracnghiem.edu.vn cung cấp giao diện thân thiện, giúp học sinh luyện tập dễ dàng, nắm chắc bản chất phương pháp làm mịn và vận dụng trong các bài toán lập trình thực tiễn.

Trắc nghiệm Tin học 11 ở chủ đề này tập trung đánh giá khả năng phân tích bài toán, chia nhỏ yêu cầu và phát triển chương trình theo hướng từng bước hoàn thiện. Mỗi câu hỏi đều đi kèm đáp án và giải thích rõ ràng, phù hợp cho học sinh tự học hoặc ôn tập trước bài kiểm tra cuối chương. Nội dung bộ đề góp phần rèn luyện tư duy thuật toán, hỗ trợ học sinh xây dựng nền tảng vững chắc trong thiết kế chương trình theo mô hình KHMT. Đây là nguồn tài liệu quan trọng dành cho học sinh lớp 11. Trắc nghiệm ôn tập lớp 11

Trắc nghiệm Tin học 11 KHMT Kết nối tri thức

Chủ đề: Kỹ thuật lập trình

Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình

Câu 1: Phương pháp “làm mịn dần” (stepwise refinement) trong thiết kế chương trình được hiểu là gì?
A. Là quá trình chạy thử chương trình nhiều lần để tìm và sửa lỗi nhỏ.
B. Là quá trình chia nhỏ bài toán lớn thành các bài toán con, rồi tiếp tục chi tiết hóa các bài toán con đó.
C. Là việc làm đẹp giao diện chương trình để người dùng dễ sử dụng hơn.
D. Là việc tối ưu hóa mã nguồn để chương trình chạy mượt mà và tốn ít bộ nhớ nhất.

Câu 2: Điểm khởi đầu của phương pháp làm mịn dần là gì?
A. Viết ngay các dòng lệnh chi tiết bằng ngôn ngữ lập trình.
B. Khai báo tất cả các biến sẽ sử dụng.
C. Xác định ý tưởng giải quyết bài toán ở mức độ tổng quát nhất.
D. Thiết kế cơ sở dữ liệu cho bài toán.

Câu 3: Trong bài toán “Sắp xếp dãy số A theo thứ tự tăng dần” sử dụng thuật toán Sắp xếp chèn, bước “làm mịn” đầu tiên chia bài toán thành công việc lặp đi lặp lại nào?
A. Tìm phần tử nhỏ nhất và đổi chỗ về đầu dãy.
B. So sánh hai phần tử kề nhau và đổi chỗ nếu sai thứ tự.
C. Chèn phần tử A[i] vào đúng vị trí trong dãy con đã sắp xếp A[0]…A[i-1].
D. Chia dãy số thành hai nửa và sắp xếp đệ quy.

Câu 4: Khi thực hiện bước “Chèn A[i] vào đúng vị trí”, thao tác cụ thể nào cần được chi tiết hóa tiếp theo?
A. Xóa phần tử A[i] khỏi dãy.
B. Tính tổng các phần tử trong dãy.
C. Dời các phần tử lớn hơn A[i] sang phải để tạo chỗ trống.
D. In dãy số ra màn hình để kiểm tra.

Câu 5: Tại sao phương pháp làm mịn dần lại quan trọng đối với các bài toán phức tạp?
A. Vì nó giúp lập trình viên gõ phím nhanh hơn.
B. Vì nó bắt buộc người lập trình phải biết nhiều ngôn ngữ khác nhau.
C. Vì máy tính không thể hiểu được các câu lệnh dài.
D. Vì nó giúp con người kiểm soát được tư duy, tránh bị sa lầy vào chi tiết vụn vặt ngay từ đầu.

Câu 6: Trong quá trình làm mịn thuật toán Sắp xếp chèn, để thực hiện việc “dời các phần tử đứng trước A[i] nhưng lớn hơn A[i] sang phải”, ta sử dụng cấu trúc điều khiển nào là phù hợp nhất?
A. Cấu trúc rẽ nhánh if…else.
B. Vòng lặp while (lặp với điều kiện).
C. Vòng lặp for với số lần biết trước.
D. Gọi đệ quy hàm chính nó.

Câu 7: Giả sử ta đang ở bước thiết kế “Chèn giá trị value vào vị trí j+1”. Câu lệnh Python tương ứng cho bước đã làm mịn này là gì?
A. A[j] = value
B. value = A[j+1]
C. A[j+1] = value
D. A[j+1] == value

Câu 8: Một cặp phần tử (A[i], A[j]) được gọi là một “nghịch thế” (trong bài toán đếm nghịch thế) khi nào?
A. i < j và A[i] < A[j]. B. i > j và A[i] > A[j].
C. i = j và A[i] != A[j].
D. i < j nhưng A[i] > A[j].

Câu 9: Để giải quyết bài toán “Đếm số cặp nghịch thế”, bước thiết kế đại thể đầu tiên là gì?
A. Sắp xếp dãy số tăng dần rồi đếm.
B. Duyệt qua tất cả các cặp chỉ số (i, j) và kiểm tra điều kiện nghịch thế.
C. Tìm phần tử lớn nhất trong dãy.
D. Xóa các phần tử trùng nhau.

Câu 10: Khi làm mịn bước “Duyệt qua tất cả các cặp chỉ số (i, j)”, ta cần sử dụng cấu trúc nào?
A. Một vòng lặp while duy nhất chạy từ đầu đến cuối.
B. Hai vòng lặp lồng nhau: vòng ngoài duyệt i, vòng trong duyệt j.
C. Hàm sort() có sẵn của Python.
D. Cấu trúc try…except để bắt lỗi.

Câu 11: Trong vòng lặp lồng nhau để đếm nghịch thế, nếu vòng lặp ngoài là for i in range(n-1), thì vòng lặp trong (duyệt j) nên bắt đầu từ đâu để tránh lặp lại và đúng định nghĩa i < j?
A. range(0, n)
B. range(0, i)
C. range(i + 1, n)
D. range(n – 1, -1, -1)

Câu 12: Kết quả cuối cùng của quá trình làm mịn dần là gì?
A. Một sơ đồ khối phức tạp không thể chuyển thành mã.
B. Một văn bản mô tả bài toán bằng tiếng Việt.
C. Một chương trình hoàn chỉnh (hoặc mã giả chi tiết) có thể thực thi trên máy tính.
D. Một danh sách các lỗi (bug) cần sửa.

Câu 13: Khi thiết kế thuật toán Sắp xếp chèn, biến value được dùng để làm gì trong bước “làm mịn”?
A. Đếm số lần hoán đổi vị trí.
B. Lưu trữ chỉ số của phần tử nhỏ nhất.
C. Lưu tạm giá trị của A[i] trước khi bị các phần tử khác ghi đè lên.
D. Lưu tổng giá trị của dãy số.

Câu 14: Trong bước “dời chỗ”, điều kiện dừng của vòng lặp while là gì (xét theo chiều giảm dần của j)?
A. Khi j chạm đến cuối dãy số.
B. Khi tìm thấy một phần tử lớn hơn value.
C. Khi j < 0 hoặc phần tử A[j] nhỏ hơn hoặc bằng value.
D. Cả B và C đều sai (điều kiện dừng là khi hết dãy bên trái hoặc gặp phần tử nhỏ hơn).

Câu 15: Nếu không sử dụng phương pháp làm mịn dần mà lao vào viết code ngay cho một bài toán phức tạp, lập trình viên thường gặp rủi ro gì?
A. Bị rối trong các chi tiết kỹ thuật và khó nhìn ra lỗi logic tổng thể.
B. Viết code quá nhanh dẫn đến thừa thời gian.
C. Máy tính sẽ từ chối biên dịch chương trình.
D. Chương trình sẽ tự động xóa dữ liệu ổ cứng.

Câu 16: Phát biểu nào sau đây đúng về mối quan hệ giữa “Làm mịn dần” và “Mô đun hóa”?
A. Hai phương pháp này mâu thuẫn và không thể dùng chung.
B. Làm mịn dần là quá trình chia nhỏ, kết quả của nó thường dẫn đến việc hình thành các mô đun (hàm/thủ tục).
C. Làm mịn dần là bước tiếp theo sau khi đã viết xong các mô đun.
D. Mô đun hóa là việc gộp các bước làm mịn lại thành một khối.

Câu 17: Trong bài toán đếm nghịch thế, biến count (đếm) cần được khởi tạo ở đâu?
A. Bên trong vòng lặp j.
B. Bên trong vòng lặp i.
C. Trước khi bắt đầu cả hai vòng lặp.
D. Sau khi kết thúc các vòng lặp.

Câu 18: Cho đoạn mã làm mịn của Sắp xếp chèn:
code
Python
while j >= 0 and A[j] > value:
A[j+1] = A[j]
j = j – 1
Đoạn mã này thực hiện công việc gì?
A. Tìm vị trí của phần tử nhỏ nhất.
B. Chèn value vào vị trí j.
C. Dời các phần tử lớn hơn value sang bên phải một vị trí.
D. Đổi chỗ hai phần tử A[j] và A[j+1].

Câu 19: Khi thiết kế chương trình, tại sao ta nên dùng mã giả (pseudocode) hoặc ngôn ngữ tự nhiên ở các bước đầu tiên của quá trình làm mịn?
A. Vì mã giả chạy nhanh hơn mã thật.
B. Vì trình biên dịch chỉ hiểu mã giả.
C. Để tập trung vào logic giải thuật mà không bị phân tâm bởi cú pháp sai sót của ngôn ngữ lập trình.
D. Vì mã giả giúp bảo mật thuật toán tốt hơn.

Câu 20: Trong bài toán đếm nghịch thế, nếu ta thay đổi yêu cầu thành “Đếm các cặp số (i<j) sao cho A[i] + A[j] = K”, ta cần sửa đổi bước làm mịn nào?
A. Sửa bước khởi tạo biến đếm.
B. Sửa cấu trúc vòng lặp lồng nhau.
C. Sửa điều kiện kiểm tra trong thân vòng lặp j.
D. Sửa kiểu dữ liệu của mảng A.

Câu 21: Một trong những tiêu chí để đánh giá việc “làm mịn” đã đạt yêu cầu chưa là:
A. Số dòng lệnh phải ít hơn 10 dòng.
B. Mỗi lệnh trong bước đó có thể chuyển đổi trực tiếp thành một câu lệnh (hoặc một nhóm lệnh đơn giản) của ngôn ngữ lập trình.
C. Không còn sử dụng bất kỳ biến nào nữa.
D. Chương trình phải chạy xong trong dưới 1 giây.

Câu 22: Với dãy số A = [3, 1, 4, 2], có bao nhiêu cặp nghịch thế?
A. 1 cặp (3,1).
B. 2 cặp (3,1) và (3,2).
C. 3 cặp (3,1), (3,2), và (4,2).
D. 4 cặp.

Câu 23: Vận dụng cao: Khi áp dụng làm mịn dần cho bài toán lớn, nếu phát hiện một bài toán con vẫn quá phức tạp, ta nên làm gì?
A. Bỏ qua bài toán con đó và làm phần khác.
B. Cố gắng viết code thật dài để giải quyết nó trong một hàm.
C. Tiếp tục áp dụng quy trình làm mịn dần cho chính bài toán con đó (đệ quy quá trình thiết kế).
D. Tìm trên mạng xem có ai giải chưa để copy vào.

Câu 24: Vận dụng cao: Giả sử bạn đã thiết kế xong thuật toán đếm nghịch thế bằng 2 vòng lặp lồng nhau (độ phức tạp O(n^2)). Nếu bài toán yêu cầu xử lý với n = 1.000.000, quá trình “làm mịn” tiếp theo nên hướng đến điều gì?
A. Chuyển sang dùng siêu máy tính để chạy code cũ.
B. Thay đổi hoàn toàn giải thuật ở bước thiết kế tổng quát sang một thuật toán hiệu quả hơn (ví dụ: Merge Sort – O(n log n)).
C. Tối ưu tên biến cho ngắn gọn để chạy nhanh hơn.
D. Chia code ra làm nhiều file nhỏ.

Câu 25: Vận dụng cao: Trong thực tế phát triển phần mềm, phương pháp làm mịn dần hỗ trợ việc bảo trì (maintenance) như thế nào?
A. Giúp người đọc code hiểu được cấu trúc phân cấp logic, từ đó dễ dàng khoanh vùng lỗi hoặc vị trí cần nâng cấp.
B. Làm cho code trở nên khó đọc nên không ai dám sửa, do đó không bị lỗi.
C. Giúp tự động cập nhật phần mềm khi có mạng.
D. Đảm bảo chương trình không bao giờ có lỗi logic.

×
Lấy mã và nhập vào ô dưới đây

Bạn ơi!! Ủng hộ tụi mình bằng cách làm nhiệm vụ nha <3

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi vượt link

Bước 1: Mở tab mới, truy cập Google.com

Bước 2: Tìm kiếm từ khóa: Từ khóa

Bước 3: Trong kết quả tìm kiếm Google, hãy tìm website giống dưới hình:

(Nếu trang 1 không có hãy tìm ở trang 2, 3, 4... nhé )

Bước 4: Cuộn xuống cuối bài viết rồi bấm vào nút GIỐNG HÌNH DƯỚI và chờ 1 lát để lấy mã:

×

Bạn ơi!!! Để xem được kết quả
bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi làm nhiệm vụ

Bước 1: Mở tab mới, truy cập Google.com

Bước 2: Tìm kiếm từ khóa: Từ khóa

Bước 3: Trong kết quả tìm kiếm Google, hãy tìm website giống dưới hình:

(Nếu trang 1 không có hãy tìm ở trang 2, 3, 4... nhé )

Bước 4: Cuộn xuống cuối bài viết rồi bấm vào nút GIỐNG HÌNH DƯỚI và chờ 1 lát để lấy mã:

Bạn ơi!!! Để xem được kết quả
bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi làm nhiệm vụ

Bước 1: Click vào liên kết kế bên để đến trang review maps.google.com

Bước 2: Copy tên mà bạn sẽ đánh giá giống như hình dưới:

Bước 3: Đánh giá 5 sao và viết review: Từ khóa

Bước 4: Điền tên vừa đánh giá vào ô nhập tên rồi nhấn nút Xác nhận