wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

HSG THCS theo ma trận 1

Total questions: 50

Worksheet time: 25mins

Name
Class
Date
1.

Thuật toán là gì?

a)

Một ngôn ngữ lập trình.

b)

Một dãy hữu hạn các thao tác rõ ràng, có thứ tự nhằm giải quyết một bài toán cụ thể.

c)

Một sơ đồ khối.

d)

Một phần mềm máy tính.

2.

Có mấy cách chính để biểu diễn một thuật toán?

a)

1 cách (Chỉ dùng sơ đồ khối).

b)

2 cách (Liệt kê các bước và sử dụng sơ đồ khối).

c)

3 cách (Liệt kê, sơ đồ khối, và ngôn ngữ tự nhiên).

d)

4 cách (Liệt kê, sơ đồ khối, ngôn ngữ tự nhiên và mã giả).

3.

Trong sơ đồ khối, hình thoi (hình kim cương) được dùng để biểu diễn thao tác nào?

a)

Thao tác nhập/xuất dữ liệu.

b)

Thao tác tính toán, xử lý.

c)

Thao tác kiểm tra điều kiện (rẽ nhánh).

d)

Điểm bắt đầu hoặc kết thúc thuật toán.

4.

Cấu trúc thuật toán nào thực hiện các công việc một cách tuần tự, hết việc này đến việc khác?

a)

Cấu trúc tuần tự.

b)

Cấu trúc rẽ nhánh.

c)

Cấu trúc lặp.

d)

Cấu trúc song song.

5.

Để giải phương trình bậc nhất ax + b = 0, sau khi nhập a và b, bước kiểm tra "Nếu a = 0" thuộc loại cấu trúc nào?

a)

Cấu trúc tuần tự.

b)

Cấu trúc rẽ nhánh.

c)

Cấu trúc lặp.

d)

Cấu trúc lồng nhau.

6.

Trong sơ đồ khối, hình chữ nhật được dùng để biểu diễn thao tác gì?

a)

Bắt đầu/Kết thúc.

b)

Nhập/Xuất dữ liệu.

c)

Xử lý, tính toán.

d)

Kiểm tra điều kiện.

7.

Thuật toán tính tổng các số từ 1 đến N cần sử dụng cấu trúc cơ bản nào là chủ yếu?

a)

Cấu trúc điều kiện

b)

Cấu trúc lặp

c)

Cấu trúc phân nhánh

d)

Cấu trúc tuần hoàn

8.

Các bước sau đây mô tả thuật toán nào?

  • Bước 1: Nhập hai số a và b.

  • Bước 2: Nếu a > b, gán max = a.

  • Bước 3: Ngược lại, gán max = b.

  • Bước 4: Xuất giá trị max.

a)

Chỉ có cấu trúc tuần tự.Thuật toán tìm số nhỏ nhất trong hai số.

b)

Thuật toán hoán đổi giá trị hai số.

c)

Thuật toán tìm số lớn nhất trong hai số.

d)

Thuật toán tính tổng hai số.

9.

Hình Oval (hình Elip) trong sơ đồ khối có ý nghĩa gì?

a)

Nhập dữ liệu.

b)

Xuất dữ liệu.

c)

Bắt đầu hoặc Kết thúc thuật toán.

d)

Một phép toán so sánh.

10.

Khi mô tả thuật toán bằng phương pháp liệt kê, các bước cần phải như thế nào?

a)

Có thể thực hiện theo thứ tự bất kỳ.

b)

Rõ ràng, đơn giản và được đánh số theo một thứ tự thực hiện xác định.

c)

Phải được viết bằng ngôn ngữ lập trình.

d)

Không cần bước kết thúc.

11.

Ý tưởng chính của thuật toán sắp xếp nổi bọt (Bubble Sort) là gì?

a)

Tìm phần tử nhỏ nhất và đưa về đầu danh sách.

b)

Chia danh sách thành hai nửa và sắp xếp riêng từng nửa.

c)

So sánh hai phần tử liền kề và đổi chỗ nếu chúng sai thứ tự, lặp lại cho đến khi không còn sự đổi chỗ nào.

d)

Chọn một phần tử làm mốc và phân chia các phần tử khác dựa trên mốc đó.

12.

Với danh sách [5, 1, 4, 2, 8], sau lượt sắp xếp đầu tiên của thuật toán nổi bọt (Bubble Sort), danh sách sẽ có dạng như thế nào? (Giả sử sắp xếp tăng dần)

a)

[5, 1, 4, 2, 8]

b)

[1, 5, 4, 2, 8]

c)

[1, 4, 5, 2, 8]

d)

[1, 4, 2, 5, 8]

13.

Ý tưởng chính của thuật toán sắp xếp chọn (Selection Sort) là gì?

a)

Đổi chỗ các phần tử liền kề nhau nhiều lần.

b)

Tại mỗi bước, tìm phần tử nhỏ nhất (hoặc lớn nhất) trong đoạn chưa được sắp xếp và đưa nó về đúng vị trí ở đầu đoạn.

c)

Lấy một phần tử và chèn vào vị trí phù hợp trong danh sách con đã được sắp xếp.

d)

So sánh tất cả các cặp phần tử với nhau.

14.

Với danh sách [64, 25, 12, 22, 11], sau lượt sắp xếp đầu tiên của thuật toán chọn (Selection Sort), danh sách sẽ có dạng như thế nào? (Giả sử sắp xếp tăng dần)

a)

[25, 64, 12, 22, 11]

b)

[12, 25, 64, 22, 11]

c)

[11, 25, 12, 22, 64]

d)

[11, 12, 22, 25, 64]

15.

Mô phỏng thuật toán sắp xếp nổi bọt trên danh sách [3, 2, 1]. Cần bao nhiêu lần đổi chỗ (swap) để hoàn thành việc sắp xếp?

a)

1 lần

b)

2 lần

c)

3 lần

d)

4 lần

16.

Mô phỏng thuật toán sắp xếp chọn trên danh sách [4, 1, 3]. Sau lượt thứ hai, danh sách có dạng như thế nào?

a)

[1, 4, 3]

b)

[1, 3, 4]

c)

[3, 1, 4]

d)

Sau lượt thứ hai, danh sách đã được sắp xếp xong là [1, 3, 4]

17.

Thuật toán sắp xếp nào phù hợp với việc sắp xếp một bộ bài bằng tay, bằng cách rút từng lá bài và chèn vào đúng vị trí trên tay?

a)

Sắp xếp nổi bọt (Bubble Sort)

b)

Sắp xếp chọn (Selection Sort)

c)

Sắp xếp chèn (Insertion Sort)

d)

Sắp xếp nhanh (Quick Sort)

18.

Trong trường hợp tốt nhất, thuật toán sắp xếp nổi bọt trên danh sách đã được sắp xếp sẵn cần bao nhiêu lượt so sánh? (Với N là số phần tử)

a)

N-1

b)

N

c)

N(N-1)/2

d)

N/2

19.

So với sắp xếp chọn (Selection Sort), sắp xếp nổi bọt (Bubble Sort) có thể kết thúc sớm hơn nếu...

a)

Danh sách gần như đã được sắp xếp ngược.

b)

Danh sách đã được sắp xếp hoặc gần như đã được sắp xếp.

c)

Danh sách có nhiều phần tử trùng lặp.

d)

Không có trường hợp nào.

20.

Cho dãy số [7, 3, 5, 1]. Hãy mô phỏng thuật toán sắp xếp chọn để sắp xếp dãy theo thứ tự tăng dần. Dãy số sau lần duyệt thứ 2 sẽ là:

a)

[1, 3, 5, 7]

b)

[1, 7, 5, 3]

c)

[1, 3, 7, 5]

d)

[3, 1, 5, 7]

21.

Ý tưởng của thuật toán tìm kiếm tuần tự (Linear Search) là gì?

a)

Duyệt qua từng phần tử của danh sách từ đầu đến cuối cho đến khi tìm thấy giá trị cần tìm hoặc hết danh sách.

b)

So sánh giá trị cần tìm với phần tử ở giữa danh sách.

c)

Chỉ hoạt động trên danh sách đã được sắp xếp.

d)

Bắt đầu tìm kiếm từ cuối danh sách.

22.

Điều kiện bắt buộc để có thể áp dụng thuật toán tìm kiếm nhị phân (Binary Search) là gì?

a)

Danh sách không có phần tử trùng lặp.

b)

Danh sách phải được sắp xếp trước (tăng dần hoặc giảm dần).

c)

Danh sách phải có số phần tử là số chẵn.

d)

Danh sách phải chứa các số nguyên.

23.

Cho danh sách đã sắp xếp [2, 5, 8, 12, 16, 23, 38, 56]. Khi tìm kiếm số 23 bằng thuật toán nhị phân, phần tử đầu tiên được so sánh là số nào?

a)

A. 2

b)

B. 8

c)

C. 16 (Phần tử ở giữa)

d)

D. 23

24.

Mô phỏng tìm kiếm tuần tự giá trị X = 5 trong danh sách [1, 8, 5, 9, 4]. Cần thực hiện bao nhiêu phép so sánh?

a)

1

b)

2

c)

3

d)

5

25.

Mô phỏng tìm kiếm nhị phân giá trị X = 87 trong danh sách [11, 24, 33, 45, 61, 79, 87, 99]. Sau phép so sánh đầu tiên, phạm vi tìm kiếm mới sẽ là?

a)

[11, 24, 33]

b)

[61, 79, 87, 99]

c)

[11, 24, 33, 45]

d)

[79, 87, 99]

26.

Tại sao tìm kiếm nhị phân thường nhanh hơn tìm kiếm tuần tự trên một tập dữ liệu lớn?

a)

Vì nó luôn bắt đầu từ phần tử đầu tiên.

b)

Vì nó sử dụng ít bộ nhớ hơn.

c)

Vì sau mỗi lần so sánh, nó loại bỏ một nửa không gian tìm kiếm còn lại.

d)

Vì nó không yêu cầu dữ liệu phải được sắp xếp.

27.

Mối liên quan chính giữa sắp xếp và tìm kiếm là gì?

a)

Không có mối liên quan nào.

b)

Sắp xếp luôn là bước cuối cùng của tìm kiếm.

c)

Việc sắp xếp dữ liệu trước có thể làm cho một số thuật toán tìm kiếm (như tìm kiếm nhị phân) trở nên hiệu quả hơn rất nhiều.

d)

Thuật toán tìm kiếm dùng để kiểm tra một danh sách đã được sắp xếp đúng hay chưa.

28.

Trong trường hợp nào tìm kiếm tuần tự hiệu quả hơn hoặc tương đương tìm kiếm nhị phân?

a)

A. Với danh sách nhỏ hoặc không được sắp xếp.

b)

B. Với danh sách rất lớn đã được sắp xếp.

c)

C. Khi phần tử cần tìm nằm ở cuối danh sách.

d)

D. Không bao giờ.

29.

Để tìm một số điện thoại trong danh bạ (đã được sắp xếp theo tên), bạn nên sử dụng thuật toán nào để có hiệu quả tốt nhất?

a)

Tìm kiếm tuần tự từ đầu đến cuối.

b)

Tìm kiếm nhị phân.

c)

Sắp xếp nổi bọt rồi tìm kiếm.

d)

Sắp xếp chọn rồi tìm kiếm.

30.

Nếu một danh sách chưa được sắp xếp, bạn bắt buộc phải dùng thuật toán nào để tìm kiếm một phần tử?

a)

Tìm kiếm tuần tự (Linear Search).

b)

Tìm kiếm nhị phân (Binary Search).

c)

Cả hai thuật toán trên đều dùng được.

d)

Phải sắp xếp danh sách trước rồi mới tìm kiếm được.

31.

Trong lập trình, một "chương trình" được hiểu là gì?

a)

Một thuật toán được mô tả bằng sơ đồ khối.

b)

Một dãy các lệnh được viết bằng ngôn ngữ lập trình để máy tính thực hiện theo một thuật toán cho trước.

c)

Một phần mềm soạn thảo văn bản.

d)

Một thiết bị phần cứng của máy tính.

32.

Trong môi trường lập trình trực quan (ví dụ: Scratch, Tynker), người lập trình thường tạo ra chương trình bằng cách nào?

a)

Gõ các dòng lệnh phức tạp bằng bàn phím.

b)

Kéo và thả các khối lệnh đầy màu sắc để ghép chúng lại với nhau.

c)

Vẽ các sơ đồ khối và máy tính tự chạy.

d)

Nói chuyện trực tiếp với máy tính.

33.

Khái niệm "biến" (variable) trong lập trình dùng để làm gì?

a)

Lưu trữ một giá trị không bao giờ thay đổi trong suốt chương trình.

b)

Lưu trữ dữ liệu và giá trị của nó có thể được thay đổi trong khi chương trình đang chạy.

c)

Đại diện cho một lệnh điều khiển nhân vật.

d)

Là tên của một chương trình.

34.

Khi bạn tạo một biến tên là DiemSo và gán cho nó giá trị ban đầu là 0, thì 0 thuộc kiểu dữ liệu nào?

a)

Kiểu văn bản (Text/String).

b)

Kiểu số (Number).

c)

Kiểu logic (Boolean).

d)

Kiểu hàng số.

35.

Một "hằng" (constant) khác với một "biến" (variable) ở điểm nào?

a)

Hằng có thể lưu được nhiều kiểu dữ liệu hơn biến.

b)

Hằng chỉ có thể lưu trữ số, còn biến có thể lưu trữ cả chữ.

c)

Giá trị của hằng không thể thay đổi sau khi đã được gán, trong khi giá trị của biến có thể thay đổi.

d)

Không có sự khác biệt nào.

36.

Giả sử có một biến x với giá trị là 5. Biểu thức x * 3 + 2 sẽ trả về kết quả là bao nhiêu?

a)

24

b)

10

c)

17

d)

25

37.

Trong khối lệnh của Scratch, khối lệnh "set [score] to (0)" có ý nghĩa gì?

a)

A. Tạo ra hoặc đặt lại giá trị của biến score thành 0.

b)

B. Thay đổi giá trị của biến score thêm 0 đơn vị.

c)

C. So sánh biến score với giá trị 0.

d)

D. Xóa biến score.

38.

Trong một chương trình game, bạn muốn lưu trữ tên của người chơi (ví dụ: "ANNA"). Bạn nên dùng kiểu dữ liệu nào cho biến TenNguoiChoi?

a)

Số (Number).

b)

Văn bản/Chuỗi (Text/String).

c)

Logic (Boolean - Đúng/Sai).

d)

Biểu thức.

39.

Biểu thức (10 > 5) sẽ trả về giá trị thuộc kiểu dữ liệu nào?

a)

Số (Number).

b)

Văn bản (String).

c)

Logic (Boolean), cụ thể là giá trị "Đúng" (True).

d)

Không có kiểu dữ liệu nào.

40.

Để tăng điểm số của người chơi lên 10 điểm mỗi khi họ trả lời đúng, bạn sẽ dùng khối lệnh nào sau đây trong môi trường lập trình trực quan? (Giả sử biến lưu điểm là Diem)

a)

set [Diem] to (10)

b)

change [Diem] by (10)

c)

set [Diem] to (Diem + 1)

d)

wait (10) seconds

41.

Quy trình chung để giải một bài toán bằng máy tính gồm mấy bước chính?

a)

2 bước: Viết chương trình và Chạy chương trình.

b)

3 bước: Xác định bài toán -> Viết chương trình -> Kiểm thử.

c)

4 bước: Xác định bài toán -> Mô tả thuật toán -> Viết chương trình -> Kiểm thử.

d)

1 bước: Ra lệnh cho máy tính.

42.

Sau khi đã xác định rõ bài toán (xác định Input và Output), bước tiếp theo cần làm là gì?

a)

Viết chương trình

b)

Xác định thuật toán giải bài toán

c)

Chạy chương trình

d)

Kiểm thử chương trình

43.

Trong Tin học, "bài toán" được định nghĩa là gì?

a)

Một câu hỏi khó trong môn Toán.

b)

Bất kỳ vấn đề nào xảy ra với máy tính.

c)

Một nhiệm vụ hoặc một công việc cần được giải quyết mà máy tính có thể thực hiện được.

d)

Một lỗi phần mềm cần được sửa.

44.

Mối quan hệ giữa "thuật toán" và "chương trình" là gì?

a)

Thuật toán và chương trình là hai tên gọi khác nhau của cùng một khái niệm.

b)

Thuật toán là kết quả sau khi chạy một chương trình.

c)

Chương trình là bản mô tả của thuật toán bằng một ngôn ngữ lập trình cụ thể để máy tính hiểu và thực hiện.

d)

Thuật toán được dùng để tìm lỗi trong một chương trình.

45.

Con người chuyển giao phần việc nào cho máy tính trong quá trình giải quyết vấn đề?

a)

Suy nghĩ và tìm ra cách giải quyết vấn đề.

b)

Thực thi các bước của thuật toán một cách chính xác và lặp đi lặp lại với tốc độ cao.

c)

Xác định xem bài toán có ý nghĩa hay không.

d)

Giao tiếp với người dùng để hiểu yêu cầu.

46.

Khi muốn máy tính giải bài toán "Tìm ước chung lớn nhất của hai số nguyên dương a và b", con người KHÔNG cần làm việc nào sau đây?

a)

A. Tìm ra thuật toán để tìm ước chung lớn nhất (ví dụ: thuật toán Euclid).

b)

B. Viết chương trình dựa trên thuật toán đó.

c)

C. Tự thực hiện các phép chia và so sánh trong đầu để tìm ra kết quả.

d)

D. Nhập hai số a và b vào chương trình để máy tính xử lý.

47.

Tại sao chúng ta cần các ngôn ngữ lập trình (như Python, Scratch, C++)?

a)

Vì máy tính không đủ thông minh để tự giải quyết bài toán.

b)

Để làm cho việc giải bài toán trở nên phức tạp hơn.

c)

Vì máy tính chỉ hiểu ngôn ngữ máy (dãy bit 0 và 1), ngôn ngữ lập trình là công cụ giúp con người diễn đạt thuật toán một cách dễ hiểu để chuyển thành ngôn ngữ máy.

d)

Vì mỗi bài toán yêu cầu một ngôn ngữ lập trình khác nhau.

48.

Trong sơ đồ khối, hình chữ nhật biểu diễn cho "Tính tổng A + B". Khi chuyển thể thành chương trình, bước này tương ứng với điều gì?

a)

Biểu diễn phép tính cộng trong chương trình (ví dụ: A + B).

b)

Nhập dữ liệu từ bàn phím.

c)

Hiển thị kết quả ra màn hình.

d)

So sánh hai số A và B.

49.

Việc nào sau đây được xem là một "bài toán" trong Tin học?

a)

Cảm nhận về một bộ phim.

b)

Sắp xếp một danh sách các số nguyên theo thứ tự giảm dần.

c)

Đưa ra lời khuyên cho một người bạn.

d)

Sáng tác một bài thơ.

50.

Để máy tính có thể giúp bạn quản lý chi tiêu hàng tháng, trước hết bạn cần phải làm gì?

a)

Mua một chiếc máy tính mạnh hơn.

b)

Chờ đợi máy tính tự học thói quen chi tiêu của bạn.

c)

Xác định rõ các khoản thu, chi (Input) và báo cáo mong muốn (Output), sau đó xây dựng thuật toán (quy tắc) để tính toán.

d)

Cài đặt thật nhiều phần mềm quản lý khác nhau.