wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Ôn Tập Kiểm Tra Tin Học

Total questions: 65

Worksheet time: 34mins

Name
Class
Date
1.

Phát biểu nào dưới đây về mảng một chiều là đúng?

a)

Cấu trúc dữ liệu bao gồm các phần tử có thể thuộc các kiểu dữ liệu khác nhau.

b)

Cấu trúc dữ liệu tuyến tính bao gồm các phần tử thuộc cùng một kiểu dữ liệu.

c)

Tập hợp bao gổm các phần tử có thể thuộc các kiểu dữ liệu khác nhau.

d)

Chuỗi kí tự bao gồm các phần tử có cùng kiểu dữ liệu.

2.

Phần tử nào dưới đây là phần tử đầu tiên trong mảng a có n phần tử?

a)

a[1]

b)

a[-1]

c)

a[0]

d)

a[n]

3.

Phần tử nào dưới đây là phần tử cuối cùng trong mảng a có n phần tử?

a)

a[1]

b)

a[-1]

c)

a[0]

d)

a[n]

4.

Phần tử a [-4] trong mảng a có 4 phần tử là:

a)

a[0]

b)

a[-1]

c)

a[i]

d)

Không có phần tử a[-4].

5.

Phần tử a[-5] trong mảng a có 4 phần tử là:

a)

a[l]

b)

a[-l]

c)

a[0]

d)

Không có phần tử a[-5].

6.

Lệnh nào sau đây sẽ tạo mảng a là một dãy các số nguyên 3, 1, 6, 2?

a)

a = array([3,1,6,2])

b)

a = array('i', [3,1,6,2])

c)

a = {3,1,6,2}

d)

a = array(3,1,6,2)

7.

Phần tử nào là phần tử ở hàng thứ 1, cột thứ 2 của mảng hai chiều a?

a)

a[1, 2]

b)

a[1][2]

c)

a[0][1]

d)

a[0, 1]

8.

Lệnh nào sau đây là lệnh tạo mảng hai chiều a?

a)

a = {[1,2,3], [4,5,6]}

b)

a = {{1,2,3},{4,5,6}}

c)

a = [{1,2,3},{4,5,6}]

d)

a = [array('i', [1,2,3]), array('i', [4,5,6])]

9.

Chương trình dưới đây sẽ in ra kết quả của mảng a và mảng b là: 01. a = [1,2,3] 02. b = a 03. a[0] = 5 04. print(a) 05. print(b)

a)

a = [5, 2, 3] và b = [1, 2, 3]

b)

a = [1, 2, 3] và b = [5, 2, 3]

c)

a = [5, 2, 3] và b = [5, 2, 3]

d)

a = [l, 2, 3] và b = [1, 2, 3]

10.

Sau khi thực hiện đoạn mã dưới đây, mảng a và mảng b nhận kết quả nào

trong các phương án được cho?

01. a = [1, 2, 3]

02. b = a

03. a = [4, 5, 6]

a)

a = [4, 5, 6] và b = [4, 5, 6]

b)

a = [4, 5, 6] và b = [1, 2, 3]

c)

a = [1, 2, 3] và b = [4, 5, 6]

d)

a = [1, 2, 3] và b = [1, 2, 3]

11.

Sau khi thực hiện đoạn mã dưới đây, mảng b là kết quả nào sau đây?

01. a = [3,4,6,2,7]

02. b = a[2:4]

a)

b = [6]

b)

b = [6,2]

c)

b = [2]

d)

b = []

12.

Sau khi thực hiện đoạn mã dưới đây, mảng b là kết quả nào sau đây?

01. a = [3, 4, 6, 2, 7]

02. b = a[ : ]

a)

b = [3, 4, 6, 2, 7]

b)

b = [3]

c)

b = [7]

d)

b = []

13.

Trong thuật toán "Sắp xếp Chèn", xét dãy con a[0].. ,a[i-i] có thứ tự tăng dần (không giảm). Cần chèn phần tử a[i] vào dãy con này sao cho cuối cùng dãy con a[0].. .a[i] có thứ tự tăng dần, phải thực hiện công việc nào sau đây?

a)

a[i] được chèn vào trước a[0].

b)

a[i] được chèn vào chính giữa dãy con a[0].. .a[i-i].

c)

a[i] được chèn vào ngay sau a[j] với a[j] vừa nhỏ hơn hoặc bằng a[i].

d)

a[i] được chèn vào vị trí bất kì trong dãy con a[0].. .a[i].

14.

Cho mảng a = [4,1,6,3,2,9,7,5]. Theo thuật toán "Sắp xếp Chèn", sau ba bước lặp thì mảng a là:

a)

a = [1,4,6,3,2,9,7,5]

b)

a = [1,2,6,3,4,9,7,5]

c)

a = [1,3,4,6,2,9,7,5]

d)

a = [1,2,2,3,6,9,7,5]

15.

Cho mảng a = [4,1,6,3,2,9,7,5]. Theo thuật toán "Sắp xếp Chọn", sau ba bước lặp thì mảng a là:

a)

a = [1,4,6,3,2,9,7,5]

b)

a = [1,2,3,6,4,9,7,5]

c)

a = [1,2,3,4,6,9,7,5]

d)

a = [1,2,3,4,5,6,7,9]

16.

Cho mảng a = [4,1,6,3,2,9,7,5]. Theo thuật toán "Sắp xếp Nổi bọt", sau ba bước lặp thì mảng a là:

a)

a = [1,2,3,4,5,6,7,9]

b)

a = [1,4,3,2,6,7,5,9]

c)

a = [1,2,3,4,6,9,7,5]

d)

a = [1,2,3,4,5,7,6,9]

17.

Trường hợp tốt nhất của thuật toán "Sắp xếp Chèn" (thời gian thực hiện nhanh nhất) là:

a)

Mảng a có ít phần tử.

b)

Mảng a có thứ tự tăng dần (không giảm).

c)

Mảng a có thứ tự giảm dần (không tăng).

d)

Mảng a có thứ tự bất kì.

18.

Khi sắp xếp mảng a có n phần tử, trường hợp xấu nhất của thuật toán "Sắp xếp Chèn" (thời gian thực hiện chậm nhất) là:

a)

Mảng a có nhiều phần tử.

b)

Mảng a có thứ tự tăng dần (không giảm).

c)

Mảng a có thứ tự giảm dần (không tăng).

d)

Mảng a có thứ tự bất kì.

19.

Cho mảng a = [1,3,4,5,6,7,9] có thứ tự tăng dần. Thuật toán "Tìm kiếm nhị phân" thực hiện bao nhiêu bước lặp để không tìm thấy giá trị k = 2 trong mảng này?

a)

1 bước lặp.

b)

2 bước lặp.

c)

3 bước lặp.

d)

4 bước lặp.

20.

Cho mảng a = [1,3,4,5,6,7,9] có thứ tự tăng dần. Thuật toán "Tìm kiếm nhị phân" sẽ so sánh giá trị k = 3 với các số nào trong mảng này để cho kết quả tìm thấy giá trị k?

a)

5,3.

b)

1,3.

c)

5,4,3.

d)

5,1,3.

21.

Cho mảng a = [1,3,4,5,6,7,9] có thứ tự tăng dần. Thuật toán "Tìm kiếm nhị phân" sẽ so sánh giá trị k = 20 với các số nào trong mảng này để cho kết quả không tìm thấy giá trị k?

a)

6,7,9.

b)

5,6,7.

c)

5,6,7,9.

d)

5,7,9.

22.

Cho mảng a = [1,3,6,6,6,6,7,9] có thứ tự tăng dần. Thuật toán "Tìm kiếm nhị phân" tìm giá trị k trong dãy a[start].. .a[end] bằng cách so sánh giá trị k với a[i] mà i = (start+end) // 2. Thuật toán này sẽ tìm thấy giá trị k = 6 tại phần tử nào?

a)

a = [2]

b)

a = [3]

c)

a = [4]

d)

a = [5]

23.

Cách khai báo một mảng một chiều chứa 5 số nguyên trong Python là gì?

a)

a = [1, 2, 3, 4, 5]

b)

a = {1, 2, 3, 4, 5}

c)

a = (1, 2, 3, 4, 5)

d)

a = array(1, 2, 3, 4, 5)

24.

Trong Python, cú pháp để truy cập phần tử thứ 3 của mảng a = [10, 20, 30, 40, 50]?

a)

a[3]

b)

a[2]

c)

a(3)

d)

a{2}

25.

Để thêm một phần tử có giá trị 100 vào cuối mảng a, ta sử dụng lệnh nào?

a)

a.add(100)

b)

a.insert(100)

c)

a.append(100)

d)

a.push(100)

26.

Lệnh nào sau đây được dùng để xóa phần tử có giá trị 50 trong mảng a = [10, 20, 30, 40, 50]?

a)

del a[50]

b)

a.remove(50)

c)

a.pop(50)

d)

a.delete(50)

27.

Khi thực hiện lệnh a[::-1] với a = [1, 2, 3, 4, 5], kết quả thu được là gì?

a)

[5, 4, 3, 2, 1]

b)

[1, 2, 3, 4, 5]

c)

[2, 3, 4, 5, 1]

d)

[5, 3, 1]

28.

Cách khai báo một mảng hai chiều (ma trận) 3x3 trong Python là gì?

a)

a = [[1,2,3], [4,5,6], [7,8,9]]

b)

a = {(1,2,3), (4,5,6), (7,8,9)}

c)

a = [(1,2,3), (4,5,6), (7,8,9)]

d)

a = [[1,2,3], (4,5,6), [7,8,9]]

29.

Để truy cập phần tử ở hàng 2, cột 3 của ma trận a dưới đây, cú pháp nào đúng? a = [[1,2,3], [4,5,6], [7,8,9]]

a)

a[2][3]

b)

a[1][2]

c)

a[3][2]

d)

a[1,2]

30.

Lệnh nào được sử dụng để thêm một hàng [10, 11, 12] vào cuối ma trận a?

a)

a.append([10, 11, 12])

b)

a.insert([10, 11, 12])

c)

a.add([10, 11, 12])

d)

a.extend([10, 11, 12])

31.

Thuật toán tìm kiếm tuần tự hoạt động như thế nào?

a)

Chia mảng thành hai phần và tìm kiếm trong phần thích hợp.

b)

Duyệt từng phần tử của mảng cho đến khi tìm thấy giá trị cần tìm hoặc kết thúc mảng.

c)

Sắp xếp mảng trước rồi tìm kiếm nhị phân.

d)

Tìm kiếm bằng cách sử dụng chỉ mục trung gian.

32.

Cho mảng a = [3, 8, 1, 6, 5]. Nếu dùng tìm kiếm tuần tự để tìm số 6, cần bao nhiêu lần so sánh?

a)

2

b)

3

c)

4

d)

5

33.

Trong tìm kiếm tuần tự, số lần so sánh tối đa cần thực hiện khi tìm một phần tử trong mảng có n phần tử là bao nhiêu?

a)

1

b)

n

c)

n - 1

d)

n/2

34.

Trong trường hợp tốt nhất (best case), số lần so sánh cần thực hiện trong tìm kiếm tuần tự là bao nhiêu?

a)

1

b)

n

c)

n - 1

d)

n/2

35.

Thuật toán tìm kiếm nhị phân yêu cầu gì đối với mảng đầu vào?

a)

Mảng có thể ở bất kỳ trạng thái nào.

b)

Mảng phải được sắp xếp theo thứ tự tăng dần hoặc giảm dần.

c)

Mảng phải chứa số nguyên.

d)

Mảng phải có ít nhất 10 phần tử.

36.

Cho mảng a = [2, 4, 6, 8, 10, 12, 14], sử dụng tìm kiếm nhị phân để tìm số 10. Phần tử giữa được chọn đầu tiên là?

a)

4

b)

6

c)

8

d)

10

37.

Giả sử bạn có một danh sách gồm 128 phần tử được sắp xếp. Dùng thuật toán tìm kiếm nhị phân, số lần so sánh tối đa cần thực hiện để tìm một phần tử là bao nhiêu?

a)

7

b)

8

c)

10

d)

64

38.

Khi sắp xếp mảng a có n phần tử, trường hợp tốt nhất của thuật toán "Sắp xếp Chọn" (thời gian thực hiện nhanh nhất) là:

a)

Mảng a có ít phần tử.

b)

Mảng a đã sắp xếp theo thứ tự tăng dần.

c)

Mảng a có thứ tự giảm dần.

d)

Mảng a có thứ tự bất kỳ.

39.

Cho mảng a = [2, 4, 6, 8, 10, 12, 14, 16] có thứ tự tăng dần. Thuật toán "Tìm kiếm nhị phân" thực hiện bao nhiêu bước lặp để tìm thấy giá trị k = 8?

a)

1 bước lặp.

b)

2 bước lặp.

c)

3 bước lặp.

d)

4 bước lặp.

40.

Cho mảng a = [2, 4, 6, 8, 10, 12, 14, 16] có thứ tự tăng dần. Thuật toán "Tìm kiếm nhị phân" sẽ so sánh giá trị k = 11 với các số nào để đưa ra kết quả không tìm thấy?

a)

8, 10, 12.

b)

8, 12, 14.

c)

8, 10, 12, 14.

d)

6, 8, 10.

41.

Cho mảng a = [2, 3, 5, 7, 11, 13, 17, 19] có thứ tự tăng dần. Thuật toán "Tìm kiếm nhị phân" tìm giá trị k = 5 sẽ so sánh với các số nào để đưa ra kết quả tìm thấy?

a)

11, 5.

b)

7, 3, 5.

c)

11, 7, 5.

d)

13, 7, 5.

42.

Khi thực hiện thuật toán "Sắp xếp Nổi Bọt", nếu sau một lần duyệt qua mảng mà không có sự hoán đổi nào, điều đó có nghĩa là:

a)

Mảng vẫn chưa được sắp xếp.

b)

Cần tiếp tục duyệt lại mảng để đảm bảo kết quả.

c)

Mảng đã được sắp xếp xong.

d)

Thuật toán bị lỗi và cần kiểm tra lại.

43.

Thuật toán "Tìm kiếm nhị phân" hoạt động hiệu quả nhất khi nào?

a)

A. Khi mảng có số lượng phần tử nhỏ.

b)

B. Khi mảng đã được sắp xếp theo thứ tự tăng dần.

c)

C. Khi mảng có số lượng phần tử lẻ.

d)

D. Khi mảng chứa toàn số chẵn.

44.

Cho mảng a = [5, 10, 15, 20, 25, 30, 35, 40]. Khi sử dụng thuật toán "Tìm kiếm nhị phân" để tìm giá trị k = 30, số lần so sánh tối đa có thể là bao nhiêu?

a)

A. 1 lần

b)

B. 2 lần

c)

C. 3 lần

d)

D. 4 lần

45.

Nhược điểm chính của thuật toán tìm kiếm tuần tự là gì?

a)

A. Chỉ hoạt động với mảng đã sắp xếp.

b)

B. Tốc độ chậm khi mảng có nhiều phần tử.

c)

C. Không thể tìm kiếm trong danh sách chuỗi.

d)

D. Cần sử dụng nhiều bộ nhớ.

46.

Kiểm thử phần mềm có mục đích chính là gì?

a)

A. Xác định lỗi trong chương trình.

b)

B. Tăng tốc độ chạy chương trình.

c)

C. Giúp chương trình sử dụng ít bộ nhớ hơn.

d)

D. Giúp chương trình đẹp hơn.

47.

Phương pháp kiểm thử nào không cần biết mã nguồn bên trong?

a)

A. Kiểm thử hộp đen.

b)

B. Kiểm thử hộp trắng.

c)

C. Kiểm thử đơn vị.

d)

D. Kiểm thử tích hợp.

48.

Trong Python, lệnh nào dùng để kiểm tra điều kiện trong kiểm thử?

a)

A. check

b)

B. verify

c)

C. assert

d)

D. test

49.

Kiểm thử đơn vị tập trung vào kiểm tra?

a)

A. Từng hàm, từng module nhỏ trong chương trình.

b)

B. Toàn bộ hệ thống phần mềm.

c)

C. Giao diện đồ họa người dùng (GUI).

d)

D. Kết nối mạng của chương trình.

50.

Khi đánh giá một chương trình Python, tiêu chí nào không quan trọng?

a)

A. Độ đúng đắn.

b)

B. Tính hiệu quả.

c)

C. Màu sắc của giao diện.

d)

D. Khả năng bảo trì.

51.

Câu lệnh nào dưới đây kiểm tra xem add(2,3) có bằng 5 không trong unittest?

a)

A. self.assertEqual(add(2,3), 5)

b)

B. self.checkEqual(add(2,3), 5)

c)

C. self.testEqual(add(2,3), 5)

d)

D. self.verifyEqual(add(2,3), 5)

52.

Độ phức tạp của thuật toán đo bằng gì?

a)

Dung lượng bộ nhớ sử dụng.

b)

Số bước lệnh thực hiện theo kích thước đầu vào.

c)

Thời gian thực thi trên máy tính.

d)

Cấu trúc dữ liệu sử dụng.

53.

Độ phức tạp của thuật toán tìm kiếm tuần tự (Linear Search) trong danh sách có n phần tử là:

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n²)

54.

Thuật toán nào có độ phức tạp tốt nhất là O(log n)?

a)

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

b)

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

c)

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

d)

Tìm kiếm tuyến tính (Linear Search).

55.

Khi số lượng đầu vào tăng lên, thuật toán nào có tốc độ tăng trưởng chậm nhất?

a)

O(n)

b)

O(log n)

c)

O(n²)

d)

O(2ⁿ)

56.

Độ phức tạp trung bình của thuật toán sắp xếp nhanh (Quick Sort) là gì?

a)

O(n)

b)

O(n log n)

c)

O(n²)

d)

O(log n)

57.

Với thuật toán có vòng lặp lồng nhau hai lần, mỗi vòng chạy từ 1 đến n, độ phức tạp thường là:

a)

O(n)

b)

O(log n)

c)

O(n²)

d)

O(2ⁿ)

58.

Thuật toán nào có độ phức tạp cao nhất?

a)

O(n log n)

b)

O(n²)

c)

O(2ⁿ)

d)

O(n)

59.

Nếu một thuật toán có độ phức tạp O(1), điều đó có nghĩa là gì?

a)

Thuật toán luôn chạy trong một thời gian cố định, không phụ thuộc vào kích thước đầu vào.

b)

Thuật toán chạy nhanh hơn O(log n).

c)

Thuật toán có số vòng lặp bằng 1.

d)

Thuật toán không sử dụng bộ nhớ.

60.

Hãy xét tính đúng sai cho kết quả từng đáp án sau khi chạy chương trình dưới đây.

a)

A. Sau khi thực hiện đoạn code, mảng a có 5 phần tử.

b)

B. Phần tử cuối cùng của mảng là 30.

c)

C. Lệnh a.remove(10) xóa phần tử có giá trị 10 khỏi mảng.

d)

Lệnh a.index(15) trả về giá trị 15.

61.

Hãy xét tính đúng sai cho kết quả từng đáp án sau khi chạy chương trình dưới đây.

a)

Sau khi thực hiện đoạn code, ma trận a có 4 hàng.

b)

Phần tử tại a[1][2] có giá trị là 6.

c)

Lệnh a.append([11, 12, 13]) thêm một hàng mới vào cuối ma trận.

d)

Lệnh value = a[2][1] gán value bằng 8.

62.

Hãy xét tính đúng sai cho kết quả từng đáp án sau khi chạy chương trình dưới đây.

a)

Nếu target = 6, thuật toán sẽ thực hiện đúng 4 lần so sánh để tìm thấy giá trị.

b)

Nếu target = 10, thuật toán sẽ trả về -1.

c)

Hàm linear_search sử dụng vòng lặp while để duyệt qua các phần tử trong mảng.

d)

Nếu target = 3, thuật toán chỉ cần thực hiện 1 lần so sánh để tìm thấy giá trị.

63.

Hãy xét tính đúng sai cho kết quả từng đáp án sau khi chạy chương trình dưới đây.

a)

Thuật toán tìm kiếm nhị phân chỉ hoạt động chính xác nếu mảng đầu vào được sắp xếp trước.

b)

Nếu target = 7, thuật toán sẽ thực hiện đúng 3 lần so sánh để tìm thấy giá trị.

c)

Nếu target = 10, thuật toán sẽ trả về -1 vì giá trị này không có trong mảng.

d)

Thuật toán tìm kiếm nhị phân luôn duyệt qua toàn bộ mảng giống như tìm kiếm tuần tự.

64.

Hãy xét tính đúng sai cho kết quả từng đáp án sau khi chạy chương trình dưới đây.

a)

Sau khi chạy xong, mảng a sẽ là [10, 20, 40, 50, 60].

b)

Lệnh a.append(60) sẽ thêm phần tử 60 vào đầu mảng.

c)

Lệnh a.remove(30) xóa tất cả các phần tử có giá trị 30 trong mảng.

d)

Giá trị được in ra từ print(a[2]) là 40.

65.

Hãy xét tính đúng sai cho kết quả từng đáp án sau khi chạy chương trình dưới đây.

a)

A. Thuật toán tìm kiếm tuần tự luôn duyệt qua toàn bộ mảng trước khi kết thúc.

b)

B. Nếu target = 8, thuật toán sẽ thực hiện đúng 4 lần so sánh để tìm thấy giá trị.

c)

Nếu target = 3, thuật toán sẽ trả về -1 vì giá trị này không có trong mảng.

d)

Tìm kiếm tuần tự hoạt động hiệu quả hơn tìm kiếm nhị phân trên các mảng lớn đã sắp xếp.