NEW
Font size
WorksheetsHSG THCS theo ma trận 2
Total questions: 76
Worksheet time: 38mins
Thuật toán là gì?
Một danh sách các linh kiện máy tính.
Một dãy các chỉ dẫn tuần tự, rõ ràng nhằm giải quyết một bài toán hoặc nhiệm vụ cụ thể.
Một ngôn ngữ lập trình cụ thể như Scratch hay Python.
Kết quả cuối cùng của một bài toán.
Trong sơ đồ khối, hình thoi được dùng để thể hiện cấu trúc nào?
Bắt đầu hoặc kết thúc.
Nhập hoặc xuất dữ liệu.
Các bước xử lý tính toán.
Kiểm tra điều kiện (Rẽ nhánh).
Cấu trúc lặp trong thuật toán được sử dụng khi nào?
Khi cần thực hiện một công việc duy nhất một lần.
Khi cần thực hiện lặp đi lặp lại một số thao tác cho đến khi thỏa mãn một điều kiện.
Khi cần chọn một trong hai phương án để thực hiện.
Khi kết thúc thuật toán.
Đầu vào (Input) của bài toán "Tính diện tích hình chữ nhật" là gì?
Chiều dài và chiều rộng.
Diện tích hình chữ nhật.
Chu vi hình chữ nhật.
Công thức tính diện tích.
Thuật toán tìm kiếm tuần tự (Linear Search) thực hiện công việc gì?
Chia danh sách làm đôi để tìm kiếm.
Duyệt lần lượt từng phần tử từ đầu đến cuối danh sách để tìm giá trị cần tìm.
Sắp xếp danh sách trước khi tìm.
Chỉ tìm kiếm ở vị trí giữa danh sách.
Điều kiện tiên quyết để áp dụng thuật toán tìm kiếm nhị phân (Binary Search) là gì?
Danh sách phải có ít phần tử.
Danh sách phải chứa các số nguyên.
Danh sách đã được sắp xếp theo thứ tự.
Danh sách không được chứa số âm.
Ý tưởng chính của thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần là gì?
So sánh hai phần tử liền kề và đổi chỗ nếu chúng sai thứ tự.
Chia danh sách thành hai nửa rồi sắp xếp từng nửa.
Tìm phần tử nhỏ nhất trong danh sách chưa sắp xếp và đưa nó về vị trí đầu tiên của phần đó.
Chèn phần tử vào vị trí thích hợp trong danh sách con đã sắp xếp.
Cho dãy số: [12, 5, 7, 9, 3].
Nếu dùng thuật toán sắp xếp chọn để sắp xếp tăng dần, sau bước thứ nhất, dãy số sẽ trở thành:
[3, 5, 7, 9, 12]
[3, 5, 12, 9, 7]
[5, 12, 7, 9, 3]
[3, 12, 5, 9, 7]
Mối liên quan giữa sắp xếp và tìm kiếm là gì?
Sắp xếp giúp việc tìm kiếm tuần tự nhanh hơn.
Sắp xếp là điều kiện cần để thực hiện tìm kiếm nhị phân hiệu quả.
Tìm kiếm là bước bắt buộc trước khi sắp xếp.
Hai thuật toán này không có liên quan gì với nhau.
Cho dãy số đã sắp xếp: [2, 4, 6, 8, 10, 12, 14].
Cần tìm số 10 bằng thuật toán tìm kiếm nhị phân. Tại bước 1, giá trị ở giữa được so sánh là số nào?
6
8
10
12
Trong trường hợp xấu nhất, thuật toán tìm kiếm tuần tự phải thực hiện bao nhiêu phép so sánh để tìm một số trong danh sách có N phần tử?
1 lần.
N/2 lần.
N lần.
N*N lần.
Khi mô phỏng thuật toán tìm kiếm, kết quả trả về thường là gì?
Danh sách đã được sắp xếp.
Vị trí của phần tử tìm thấy hoặc thông báo không tìm thấy.
Tổng của các phần tử trong danh sách.
Phần tử lớn nhất trong danh sách.
Chương trình máy tính là gì?
Một thiết bị phần cứng gắn trong máy tính.
Một dãy các lệnh điều khiển máy tính thực hiện một thuật toán.
Một sơ đồ khối vẽ trên giấy.
Một bộ dữ liệu đầu vào.
rong lập trình trực quan (như Scratch), "Biến" (Variable) dùng để làm gì?
Lưu trữ dữ liệu có thể thay đổi trong quá trình thực hiện chương trình.
Lưu trữ một giá trị cố định không bao giờ thay đổi.
Điều khiển nhân vật di chuyển.
Thay đổi màu sắc của sân khấu.
Đặc điểm nào sau đây là của "Hằng"?
Giá trị của hằng thay đổi liên tục khi chạy chương trình.
Hằng được dùng để lưu trữ kết quả tính toán tạm thời.
Hằng là đại lượng có giá trị không đổi trong suốt quá trình thực hiện chương trình.
Hằng luôn luôn là một chuỗi ký tự.
Kiểu dữ liệu nào thường dùng để lưu trữ tên của một người?
Kiểu số (Number).
Kiểu xâu kí tự (String).
Kiểu logic (Boolean).
Kiểu danh sách (List).
Biểu thức toán học a + b * 2 trong lập trình có nghĩa là:
Cộng a và b trước, sau đó nhân với 2.
Lấy b nhân 2 trước, sau đó cộng với a.
Chỉ thực hiện phép nhân, bỏ qua phép cộng.
Máy tính không hiểu biểu thức này.
Trong môi trường lập trình trực quan, để nhân vật thực hiện hành động "Đi tới điểm (0,0)", ta sử dụng:
Một biến số.
Một câu lệnh (khối lệnh) tương ứng.
Một phép toán so sánh.
Một vòng lặp.
"Bài toán" trong tin học được hiểu là gì?
Chỉ là các bài toán tính toán số học phức tạp.
Một nhiệm vụ hoặc công việc có thể giao cho máy tính thực hiện xử lý thông tin.
Một câu đố mẹo.
Việc lắp ráp các linh kiện máy tính.
Bước đầu tiên trong quy trình giải quyết vấn đề bằng máy tính là gì?
Viết chương trình ngay lập tức.
Xác định bài toán (Xác định đầu vào và đầu ra).
Chạy thử chương trình.
Tìm thuật toán giải quyết.
Tại sao chúng ta cần chia nhỏ một bài toán lớn thành các bài toán nhỏ hơn (module)?
Để làm bài toán trở nên phức tạp hơn.
Vì máy tính chỉ giải quyết được các bài toán nhỏ, đơn giản.
Để dễ dàng quản lý, giải quyết và kiểm tra lỗi cho từng phần.
Để tăng dung lượng bộ nhớ máy tính.
Việc chuyển đổi từ "Thuật toán" sang "Chương trình" được thực hiện bởi ai?
Máy tính tự động làm hoàn toàn.
Người lập trình sử dụng ngôn ngữ lập trình để viết lại thuật toán.
Người dùng nhập dữ liệu vào.
Hệ điều hành Windows.
Kết quả của bước "Mô tả thuật toán" thường là:
Một đoạn mã nhị phân 0 và 1.
Bản liệt kê các bước hoặc sơ đồ khối.
Một phần mềm hoàn chỉnh.
Dữ liệu đầu ra của bài toán.
Cho bài toán: "Tính tổng hai số nguyên a và b". Đầu ra (Output) của bài toán là:
Hai số nguyên a và b.
Phép tính cộng.
Giá trị tổng của a và b.
Màn hình máy tính.
Vì sao máy tính có thể giúp con người giải quyết bài toán hiệu quả?
Vì máy tính có cảm xúc và sự sáng tạo.
Vì máy tính có tốc độ xử lý nhanh, độ chính xác cao và khả năng lưu trữ lớn.
Vì máy tính có thể tự động hiểu ý nghĩ của con người mà không cần lệnh.
Vì máy tính tiêu thụ ít điện năng.
Ngôn ngữ lập trình đóng vai trò gì trong giải quyết bài toán?
Là ngôn ngữ để giao tiếp giữa người với người về bài toán.
Là phương tiện để diễn tả thuật toán sao cho máy tính có thể hiểu và thực hiện được.
Là công cụ để vẽ sơ đồ khối.
Là thiết bị nhập dữ liệu.
Một bài toán giải phương trình bậc nhất
ax+b=0
Nếu a=0 và b≠0
thuật toán sẽ kết luận gì?
Phương trình có vô số nghiệm.
Phương trình có nghiệm duy nhất
x=−b/a.
Phương trình vô nghiệm.
Máy tính sẽ bị lỗi.
Quy trình đúng để giải bài toán bằng máy tính là:
Viết chương trình -> Xác định bài toán -> Mô tả thuật toán.
Xác định bài toán -> Mô tả thuật toán -> Viết chương trình.
Mô tả thuật toán -> Viết chương trình -> Xác định bài toán.
Viết chương trình -> Chạy thử -> Xác định bài toán.
Một thuật toán bắt buộc phải có tính chất nào sau đây?
Tính vô hạn (thực hiện mãi mãi không dừng).
Tính dừng (phải kết thúc sau một số bước hữu hạn).
Tính bí mật (chỉ người viết mới hiểu).
Tính phức tạp (càng khó hiểu càng tốt).
Có hai phương pháp chính để mô tả thuật toán là:
Liệt kê các bước và Vẽ sơ đồ khối.
Vẽ tranh minh họa và Kể chuyện.
Viết văn bản và Lập bảng tính.
Ghi âm và Quay video.
Trong sơ đồ khối, hình chữ nhật được sử dụng để biểu diễn thao tác gì?
Nhập/Xuất dữ liệu.
So sánh điều kiện.
Tính toán hoặc xử lý.
Kết thúc thuật toán.
Cấu trúc rẽ nhánh dạng "Thiếu" trong thuật toán có đặc điểm gì?
Nếu điều kiện đúng thì làm việc A, nếu sai thì làm việc B.
Chỉ thực hiện công việc nếu điều kiện đúng, nếu sai thì bỏ qua không làm gì.
Thực hiện công việc lặp đi lặp lại.
Luôn luôn thực hiện công việc bất kể điều kiện.
Thuật toán sắp xếp chọn (Selection Sort) sắp xếp một dãy số theo thứ tự tăng dần bằng cách:
Chọn phần tử lớn nhất đưa về đầu dãy.
Chọn phần tử nhỏ nhất trong phần chưa sắp xếp đưa về vị trí thích hợp.
So sánh các cặp phần tử kề nhau và đổi chỗ.
Chia dãy làm hai phần bằng nhau rồi sắp xếp.
Cho dãy số: [3, 8, 1, 5]. Mô phỏng thuật toán sắp xếp chọn (tăng dần). Sau khi kết thúc bước 1 (chọn số nhỏ nhất đưa về đầu), dãy số là:
[1, 8, 3, 5]
[1, 3, 8, 5]
[3, 1, 8, 5]
[1, 5, 3, 8]
Khi nào thuật toán tìm kiếm tuần tự (Linear Search) hiệu quả hơn hoặc bắt buộc phải dùng thay vì tìm kiếm nhị phân?
Khi danh sách đã được sắp xếp.
Khi danh sách có kích thước rất lớn.
Khi danh sách chưa được sắp xếp (lộn xộn).
Khi cần tìm phần tử ở giữa danh sách.
Trong thuật toán tìm kiếm nhị phân, nếu giá trị cần tìm nhỏ hơn giá trị ở giữa (Mid) của danh sách đang xét, bước tiếp theo ta sẽ làm gì?
Tìm kiếm ở nửa danh sách bên phải (lớn hơn).
Tìm kiếm ở nửa danh sách bên trái (nhỏ hơn).
Dừng lại và kết luận không tìm thấy.
So sánh lại với giá trị đầu tiên.
Để tìm số 25 trong dãy đã sắp xếp: [10, 20, 25, 30, 40, 50, 60] bằng thuật toán tìm kiếm nhị phân. Giá trị ở giữa trong lần so sánh đầu tiên là số mấy?
25
30
40
20
Điểm khác biệt lớn nhất giữa tìm kiếm tuần tự và tìm kiếm nhị phân là:
Tìm kiếm tuần tự chỉ tìm được số dương.
Tìm kiếm nhị phân yêu cầu dãy số phải được sắp xếp trước.
Tìm kiếm tuần tự luôn nhanh hơn nhị phân.
Tìm kiếm nhị phân không cần so sánh dữ liệu.
Trong bài toán quản lý học sinh, việc sắp xếp danh sách tên theo thứ tự bảng chữ cái có tác dụng gì?
Để danh sách trông đẹp hơn.
Giúp việc tìm kiếm tên học sinh nhanh chóng và dễ dàng hơn.
Để đếm số lượng học sinh.
. Để tính điểm trung bình của học sinh.
Nếu một danh sách có 100 phần tử, thuật toán tìm kiếm tuần tự cần thực hiện tối đa bao nhiêu phép so sánh?
10
50
100
1000
Trong lập trình, cấu trúc Nếu ... thì ... ngược lại ... (If ... then ... else) tương ứng với cấu trúc nào của thuật toán?
Cấu trúc tuần tự.
Cấu trúc rẽ nhánh.
Cấu trúc lặp.
Cấu trúc khai báo biến.
Dữ liệu kiểu Logic (Boolean) chỉ có thể nhận những giá trị nào?
Các số nguyên (1, 2, 3...).
Một chuỗi văn bản bất kỳ.
Đúng (True) hoặc Sai (False).
Một danh sách các màu sắc.
Biểu thức (5 > 3) AND (2 < 4) sẽ trả về kết quả gì?
True (Đúng).
False (Sai).
5.
Error (Lỗi).
Lệnh nào sau đây dùng để nhập dữ liệu từ bàn phím trong Scratch (hoặc ngôn ngữ tương tự)?
Say "Hello" (Nói).
Ask "Tên bạn là gì?" and wait (Hỏi và đợi).
Move 10 steps (Di chuyển).
Set variable to 0 (Đặt biến).
Biến "Điểm số" trong trò chơi được tăng lên 1 mỗi khi nhân vật chạm vào vật phẩm. Đây là ví dụ về:
Sử dụng hằng số.
Thay đổi giá trị của biến.
Khai báo kiểu dữ liệu xâu.
Cấu trúc rẽ nhánh.
Chương trình máy tính thực hiện các lệnh theo thứ tự nào (nếu không có cấu trúc điều khiển đặc biệt)?
Từ dưới lên trên.
Từ phải sang trái.
Ngẫu nhiên.
Tuần tự từ trên xuống dưới.
Đầu ra (Output) của bài toán "Giải phương trình bậc nhất ax + b = 0" là:
Các hệ số a và b.
Thông báo nghiệm x hoặc thông báo vô nghiệm/vô số nghiệm.
Máy tính bỏ túi.
Sơ đồ khối của thuật toán.
Việc chia một bài toán lớn thành các bài toán nhỏ hơn được gọi là:
Module hóa (hoặc làm mịn dần).
Tổng hợp hóa.
Mã hóa dữ liệu.
Phức tạp hóa vấn đề.
Khi giải bài toán "Pha trà sữa" cho máy thực hiện (robot), bước nào sau đây KHÔNG thuộc về xác định đầu vào?
Xác định lượng trà cần dùng.
Xác định lượng sữa cần dùng.
Xác định hương vị ly trà sau khi pha xong.
Xác định lượng đường, đá.
Ngôn ngữ lập trình là gì?
Ngôn ngữ tự nhiên (Tiếng Việt, Tiếng Anh) dùng để giao tiếp hằng ngày.
Ngôn ngữ dùng để viết chương trình máy tính mà máy tính có thể hiểu được (trực tiếp hoặc qua dịch).
Phần mềm soạn thảo văn bản Word.
Các biểu tượng trên màn hình Desktop.
Vì sao cần kiểm thử (Test) chương trình với các bộ dữ liệu mẫu?
Để làm đầy bộ nhớ máy tính.
Để phát hiện và sửa các lỗi (bug) trước khi sử dụng thực tế.
Để trang trí cho chương trình đẹp hơn.
Để chương trình chạy chậm lại.
Một bài toán tin học có thể có bao nhiêu thuật toán để giải quyết?
Chỉ duy nhất một thuật toán.
Có thể có nhiều thuật toán khác nhau, nhưng hiệu quả có thể khác nhau.
Không có thuật toán nào.
Phải có ít nhất 2 thuật toán.
Bước "Xác định bài toán" tương đương với câu hỏi nào sau đây?
Làm thế nào để giải?
Cần những công cụ gì?
Giả thiết là gì (Input) và Cần tìm cái gì (Output)?
Viết code như thế nào?
Trong quy trình giải bài toán, sau khi đã có thuật toán (sơ đồ khối), công việc tiếp theo là:
Xác định Input/Output.
Viết chương trình (Lập trình).
Nộp bài ngay lập tức.
Tắt máy tính.
Máy tính thực hiện công việc dựa trên:
Sự phán đoán mơ hồ.
Các chỉ dẫn (lệnh) cụ thể, rõ ràng do con người lập trình.
Cảm hứng ngẫu nhiên.
Trí thông minh tự có như con người.
Cho bài toán: "Tìm số lớn nhất trong 3 số a, b, c". Input của bài toán là:
Số lớn nhất Max.
Ba số a, b, c.
Phép so sánh lớn hơn.
Số 3.
Theo chương trình GDPT 2018, thuật toán được định nghĩa là:
Một thiết bị điện tử giúp con người tính toán.
Dãy các lệnh điều khiển máy tính bằng tiếng Anh.
Dãy các quy tắc, chỉ dẫn chặt chẽ nhằm xác định một trình tự các thao tác để giải quyết một bài toán cụ thể.
Bản vẽ mô tả cấu tạo của máy tính.
Trong sơ đồ khối, hình bình hành được sử dụng để biểu diễn bước nào?
Bắt đầu hoặc Kết thúc.
Nhập dữ liệu (Input) hoặc Xuất dữ liệu (Output).
Kiểm tra điều kiện.
Xử lý tính toán.
Cấu trúc điều khiển nào dùng để mô tả thao tác lặp đi lặp lại một công việc khi điều kiện còn đúng?
Cấu trúc tuần tự.
Cấu trúc rẽ nhánh.
Cấu trúc lặp.
Cấu trúc song song.
Khi mô tả thuật toán "Đun nước sôi", thao tác nào sau đây thuộc cấu trúc rẽ nhánh (kiểm tra điều kiện)?
Đổ nước vào ấm.
Đặt ấm lên bếp và bật lửa.
Nếu nước sôi thì tắt bếp, ngược lại tiếp tục đun.
Rót nước ra cốc.
Cho dãy số A = [15, 6, 8, 2] Thực hiện bước 1 của thuật toán sắp xếp chọn (tăng dần). Kết quả thu được là:
[2, 6, 8, 15]
[2, 6, 15, 8]
[6, 15, 2, 8]
[15, 2, 6, 8]
Với danh sách chưa được sắp xếp, thuật toán tìm kiếm nào là khả thi nhất?
Tìm kiếm nhị phân.
Tìm kiếm tuần tự.
Tìm kiếm ngẫu nhiên.
Không có thuật toán khả thi.
Trong thuật toán tìm kiếm tuần tự, trường hợp tốt nhất là:
Phần tử cần tìm nằm ở vị trí đầu tiên của danh sách.
Phần tử cần tìm nằm ở vị trí cuối cùng.
Phần tử cần tìm nằm ở chính giữa.
Không tìm thấy phần tử đó.
Tại sao thuật toán tìm kiếm nhị phân lại nhanh hơn tìm kiếm tuần tự trên các dãy số lớn đã sắp xếp?
Vì nó kiểm tra từng số một rất nhanh.
Vì sau mỗi lần so sánh, phạm vi tìm kiếm giảm đi một nửa.
Vì nó sử dụng siêu máy tính để chạy.
Vì nó không cần so sánh giá trị.
Kết quả của bài toán tìm kiếm là gì?
Một danh sách mới đẹp hơn.
Vị trí của phần tử tìm thấy hoặc thông báo "Không tìm thấy".
Tổng giá trị các phần tử.
Số lượng phần tử trong danh sách.
Trong ngôn ngữ lập trình trực quan (như Scratch), để lưu trữ điểm số của người chơi thay đổi liên tục, ta cần tạo một:
Nhân vật mới.
Biến (Variable).
Thủ tục.
Phông nền.
Khối lệnh nào sau đây trong Scratch thể hiện cấu trúc lặp?
If ... then
Repeat 10
Go to x:.... y:....
Say Hello
Để nhân vật di chuyển vẽ thành hình vuông, ta cần sử dụng kết hợp các lệnh nào?
Di chuyển và Thay đổi màu sắc 4 lần.
Di chuyển và Xoay 90 độ 4 lần.
Di chuyển và Phát âm 4 thanh.
Xoay và Nói.
Vì sao bài toán trong tin học lại cần "Mô tả thuật toán" trước khi "Viết chương trình"?
Để lập trình viên hình dung rõ trình tự các bước cần làm, tránh sai sót logic.
Vì máy tính bắt buộc phải đọc bản mô tả mới chạy được.
Để làm tài liệu nộp cho giáo viên.
Bước này không cần thiết, có thể bỏ qua.
Quá trình "Làm mịn" (Stepwise Refinement) trong giải quyết vấn đề có nghĩa là:
Làm cho máy tính chạy mượt mà hơn.
Chia bài toán lớn thành các bài toán nhỏ hơn, rồi tiếp tục chia nhỏ các bài toán con cho đến khi đơn giản nhất.
Viết chương trình thật ngắn gọn.
Xóa bớt các dữ liệu không cần thiết.
Công việc "Kiểm thử (Test) và gỡ lỗi (Debug)" được thực hiện khi nào?
Chỉ thực hiện khi người dùng báo lỗi.
Thực hiện sau khi viết xong chương trình để đảm bảo chương trình chạy đúng với các bộ dữ liệu mẫu.
Thực hiện trước khi xác định bài toán.
Do máy tính tự động làm, con người không cần can thiệp.
Trong bài toán "Xếp loại học lực học sinh dựa vào điểm trung bình (ĐTB)", nếu ĐTB < 5.0 thì xếp loại "Chưa đạt". Đây là ví dụ về:
Dữ liệu đầu vào.
Điều kiện rẽ nhánh để xử lý thông tin.
Vòng lặp vô hạn.
Khai báo biến.
Máy tính có thể giải quyết tốt nhất loại bài toán nào?
Bài toán đòi hỏi cảm xúc và sự thấu hiểu tâm lý.
Bài toán đòi hỏi tính toán nhanh, xử lý dữ liệu lớn, lặp đi lặp lại.
Bài toán về sáng tác văn học nghệ thuật ngẫu hứng.
Bài toán đưa ra lời khuyên về đạo đức.
Ngôn ngữ lập trình bậc cao (như Python, C++, Java, Scratch) có đặc điểm gì?
Chỉ gồm các số 0 và 1, rất khó hiểu.
Gần gũi với ngôn ngữ tự nhiên và ký hiệu toán học, giúp con người dễ viết và dễ hiểu.
Máy tính có thể hiểu trực tiếp mà không cần chương trình dịch.
Chỉ dùng để vẽ hình.
Các bước giải bài toán bằng máy tính theo trình tự hợp lý nhất là:
Viết chương trình -> Tìm thuật toán -> Xác định bài toán.
Xác định bài toán -> Tìm thuật toán -> Viết chương trình -> Kiểm thử -> Viết tài liệu.
Tìm thuật toán -> Viết chương trình -> Chạy thử -> Xác định bài toán.
Viết chương trình ngay lập tức -> Sửa lỗi.
Trong bài toán "Tính chu vi hình tròn", nếu Input là bán kính, thì thuật toán cần thực hiện phép tính nào?
2 * 3.14 * r
3.14 * r * r
r + 3.14
r*3.14
