wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

BÀI TẬP TRẮC NGHIỆM BÀI 23 - 25 TIN HỌC 11

Total questions: 50

Worksheet time: 20mins

Name
Class
Date
1.

Độ phức tạp thời gian của thuật toán là gì?

a)

Độ phức tạp thời gian của thuật toán được đo bằng số lần thực hiện các phép toán cơ bản (so sánh, gán, v.v.) khi giải thuật xử lý một bài toán với kích thước đầu vào tăng dần.

b)

Độ phức tạp thời gian của thuật toán không quan trọng

c)

Độ phức tạp thời gian của thuật toán không ảnh hưởng đến hiệu suất

d)

Độ phức tạp thời gian của thuật toán chỉ được đo bằng thời gian thực hiện

2.

Độ phức tạp không gian của thuật toán là gì?

a)

Không gian bộ nhớ mà thuật toán cần để thực thi và hoàn thành công việc.

b)

Số lần lặp của thuật toán

c)

Thời gian chạy của thuật toán

d)

Kích thước dữ liệu đầu vào của thuật toán

3.

Thuật toán nào có độ phức tạp thời gian tuyến tính?

a)

Thuật toán Binary Search (Tìm kiếm nhị phân)

b)

Thuật toán Quick Sort (Sắp xếp nhanh)

c)

Thuật toán Linear Search (Tìm kiếm tuyến tính)

d)

Thuật toán Bubble Sort (Sắp xếp nổi bọt)

4.

Thuật toán nào có độ phức tạp thời gian bậc hai?

a)

InsertionSort

b)

Quicksort

c)

MergeSort

d)

BubbleSort

5.

Thuật toán nào có độ phức tạp thời gian bậc ba?

a)

BubbleSort

b)

MergeSort

c)

QuickSort

d)

Strassen

6.

Độ phức tạp của thuật toán có ảnh hưởng như thế nào đến hiệu suất của chương trình?

a)

Hiệu suất của chương trình không phụ thuộc vào độ phức tạp của thuật toán

b)

Độ phức tạp của thuật toán không ảnh hưởng đến hiệu suất của chương trình

c)

Độ phức tạp của thuật toán ảnh hưởng đến hiệu suất của chương trình bằng cách xác định thời gian và tài nguyên cần thiết để thực thi thuật toán.

d)

Thuật toán phức tạp sẽ giúp chương trình hoạt động nhanh hơn

7.

Làm thế nào để đánh giá độ phức tạp của một thuật toán?

a)

Đánh giá độ phức tạp dựa trên số lần thuật toán được sử dụng

b)

Chỉ xem xét độ phức tạp thời gian mà không cần quan tâm đến độ phức tạp không gian

c)

Sử dụng các khái niệm như độ phức tạp thời gian và độ phức tạp không gian để đánh giá độ phức tạp của một thuật toán.

d)

Sử dụng kích thước file của thuật toán để đánh giá độ phức tạp

8.

Thuật toán nào thường được sử dụng trong trường hợp có dữ liệu lớn?

a)

Breadth-first search

b)

Linear regression

c)

K-means

d)

MapReduce

9.

Thuật toán nào thường được sử dụng trong trường hợp có dữ liệu nhỏ?

a)

Greedy Algorithm

b)

Dynamic Programming

c)

Brute Force

d)

Divide and Conquer

10.

Tại sao việc hiểu độ phức tạp của thuật toán quan trọng trong lập trình?

a)

Việc hiểu độ phức tạp của thuật toán không ảnh hưởng đến hiệu suất của mã nguồn

b)

Việc hiểu độ phức tạp của thuật toán không liên quan đến việc lập trình

c)

Việc hiểu độ phức tạp của thuật toán giúp lập trình viên phân tích hiệu suất và hiệu quả của mã nguồn, từ đó đưa ra quyết định thông minh về việc sử dụng thuật toán phù hợp với kích thước dữ liệu và ràng buộc cụ thể.

d)

Thuật toán không cần phải được phân tích trước khi sử dụng

11.

Khẳng định "Trong mọi chương trình chỉ có đúng một phép toán tích cực" là đúng hay sai?

a)

Đúng

b)

Sai

12.

Thuật toán tối ưu là gì?

a)
  1. Sử dụng ít thời gian, ít bộ nhớ…

b)
  1. Sử dụng ít thời gian, ít bộ nhớ, ít phép toán…

c)
  1. Sử dụng ít thời gian, nhiều bộ nhớ, ít phép toán…

d)
  1. Sử dụng nhiều thời gian, nhiều bộ nhớ, ít phép toán…

13.

Chương trình nào chạy nhanh hơn?

a)

Chương trình 1

b)

Chương trình 2

14.

Tiêu chí lựa chọn hoặc thiết kế thuật toán là?

a)
  • Hiệu quả về thời gian

b)
  • Hiệu quả về không gian

c)
  • Khả thi khi cài đặt

d)
  • Tất cả đều đúng

15.

Tiêu chuẩn lựa chọn thuật toán là gì?

a)
  • Lượng tài nguyên thuật toán đòi hỏi và lượng tài nguyên cho phép

b)
  • Độ phức tạp của thuật toán

c)
  • Các tài nguyên như thời gian thực hiện, số lượng ô nhớ…

d)
  • Cả 3 ý đều đúng

16.

Khi nào thì thời gian chạy chương trình được tính bằng tổng đơn vị thời gian thực hiện của mỗi bước lặp?

a)

Lệnh đơn

b)

Lệnh if

c)

Vòng lặp for hoặc while

d)

Các phép toán đơn giản và phép toán lôgic

17.

Khi nào thì thời gian chạy chương trình được tính bằng đơn vị thời gian lớn nhất của các lệnh nhánh?

a)

Lệnh đơn

b)

Lệnh if

c)

Vòng lặp for hoặc while

d)

Các phép toán đơn giản

18.

Sắp xếp các độ phức tạp của một số hàm chuẩn sau theo thứ tự độ phức tạp tăng dần:

O(n!), O(nlogn), O(logn)

a)

O(n!), O(nlogn), O(logn)

b)

O(logn), O(nlogn), O(n!)

c)

O(logn), O(n!), O(nlogn)

d)

O(n!), O(logn), O(nlogn)

19.

n càng lớn thì (a)   sẽ tăng lên nhưng với tốc độ khác nhau

20.

Hãy xác định độ phức tạp thời gian tính toán cho đoạn chương trình

a)

O(n)

b)

O(n+1)

c)

O(n^3)

d)

O(n+3)

21.

Phương pháp kiểm thử nào sử dụng một tập hợp các bộ test đã được xác định trước để kiểm tra chương trình?

a)

Kiểm thử in giá trị trung gian

b)

Kiểm thử tham số

c)

Kiểm thử thiết lập điểm dừng

d)

Kiểm thử sử dụng bộ test

22.

Trong việc đánh giá hiệu quả của chương trình, khái niệm "Độ phức tạp không gian" thường đề cập đến:

a)

Bộ nhớ

b)

Thời gian thực thi

c)

Số lượng CPU cần thiết

d)

Tất cả đều đúng

23.

Phát biểu nào chưa chính xác về kiểm thử chương trình?

a)

Hiện nay, có ít phương pháp và công cụ khác nhau để kiểm thử chương trình

b)

Các bộ test phụ thuộc vào các tiêu chí khác nhau

c)

Các bộ test dữ liệu nên có nhiều bộ test ngẫu nhiên

d)

Chương trình cần được thử với một số bộ dữ liệu test gồm đầu vào tiêu biểu và kết quả đầu ra biết trước

24.

Trong việc đánh giá hiệu quả của chương trình, khái niệm "Độ phức tạp thời gian" thường liên quan đến:

a)

Thời gian mà chương trình được phát triển

b)

Thời gian mà chương trình dùng để thực thi

c)

Thời gian mà chương trình được kiểm thử

25.

Phát biểu nào sau đây đúng nhất khi nói về các bộ dữ liệu test khi kiểm thử chương trình?

a)

Các bộ test có thể có đầu vào theo các tiêu chí khác nhau.

b)

Các bộ test có đầu vào theo một số tiêu chí nhất định.

c)

Các bộ test có thể có đầu vào theo các tiêu chí khác nhau như độ lớn, tính đa dạng của dữ liệu.

d)

Các bộ test có đầu vào phải theo các tiêu chí về độ lớn, tính đa dạng của dữ liệu.

26.

Đâu không phải là công cụ để kiểm thử chương trình?

a)

Công cụ in biến trung gian

b)

Công cụ thống kê dữ liệu

c)

Công cụ sinh các bộ dữ liệu test

d)

Công cụ điểm dừng trong phần mềm soạn thảo lập trình

27.

Chương trình chạy phát sinh lỗi ngoại lệ NameError, nên xử lí như thế nào?

a)

Kiểm tra lại chỉ số trong mảng

b)

Kiểm tra giá trị của số bị chia

c)

Kiểm tra lại tên các biến và hàm

d)

Kiểm tra kiểu dữ liệu nhập vào

28.

Trong Python, phương pháp chứng minh quy nạp được sử dụng để làm gì?

a)

Tối ưu hóa hiệu suất của chương trình

b)

Xác định lỗi cú pháp trong chương trình

c)

Kiểm tra tính bảo mật của chương trình

d)

Chứng minh tính đúng của chương trình

29.

Chương trình chạy phát sinh lỗi ngoại lệ TypeError, nên xử lí như thế nào?

a)

Kiểm tra lại chỉ số trong mảng

b)

Kiểm tra lại giá trị số chia

c)

Kiểm tra giá trị của số bị chia

d)

Kiểm tra kiểu dữ liệu nhập vào

30.

Dựa vào đoạn chương trình giải bài toán đếm số các ước số thực sự của số tự nhiên n. Hãy cho biết chương trình trên đúng hay sai?

(a)  

31.

Phương pháp kiểm thử nào sử dụng một tập hợp các bộ test đã được xác định trước để kiểm tra chương trình?

a)

Kiểm thử in giá trị trung gian

b)

Kiểm thử tham số

c)

Kiểm thử thiết lập điểm dừng

d)

Kiểm thử sử dụng bộ test

32.

Trong việc đánh giá hiệu quả của chương trình, khái niệm "Độ phức tạp không gian" thường đề cập đến:

a)

Bộ nhớ

b)

Thời gian thực thi

c)

Số lượng CPU cần thiết

d)

Tất cả đều đúng

33.

Phát biểu nào chưa chính xác về kiểm thử chương trình?

a)

Hiện nay, có ít phương pháp và công cụ khác nhau để kiểm thử chương trình

b)

Các bộ test phụ thuộc vào các tiêu chí khác nhau

c)

Các bộ test dữ liệu nên có nhiều bộ test ngẫu nhiên

d)

Chương trình cần được thử với một số bộ dữ liệu test gồm đầu vào tiêu biểu và kết quả đầu ra biết trước

34.

Trong việc đánh giá hiệu quả của chương trình, khái niệm "Độ phức tạp thời gian" thường liên quan đến:

a)

Thời gian mà chương trình được phát triển

b)

Thời gian mà chương trình dùng để thực thi

c)

Thời gian mà chương trình được kiểm thử

35.

Phát biểu nào sau đây đúng nhất khi nói về các bộ dữ liệu test khi kiểm thử chương trình?

a)

Các bộ test có thể có đầu vào theo các tiêu chí khác nhau.

b)

Các bộ test có đầu vào theo một số tiêu chí nhất định.

c)

Các bộ test có thể có đầu vào theo các tiêu chí khác nhau như độ lớn, tính đa dạng của dữ liệu.

d)

Các bộ test có đầu vào phải theo các tiêu chí về độ lớn, tính đa dạng của dữ liệu.

36.

Đâu không phải là công cụ để kiểm thử chương trình?

a)

Công cụ in biến trung gian

b)

Công cụ thống kê dữ liệu

c)

Công cụ sinh các bộ dữ liệu test

d)

Công cụ điểm dừng trong phần mềm soạn thảo lập trình

37.

Chương trình chạy phát sinh lỗi ngoại lệ NameError, nên xử lí như thế nào?

a)

Kiểm tra lại chỉ số trong mảng

b)

Kiểm tra giá trị của số bị chia

c)

Kiểm tra lại tên các biến và hàm

d)

Kiểm tra kiểu dữ liệu nhập vào

38.

Trong Python, phương pháp chứng minh quy nạp được sử dụng để làm gì?

a)

Tối ưu hóa hiệu suất của chương trình

b)

Xác định lỗi cú pháp trong chương trình

c)

Kiểm tra tính bảo mật của chương trình

d)

Chứng minh tính đúng của chương trình

39.

Chương trình chạy phát sinh lỗi ngoại lệ TypeError, nên xử lí như thế nào?

a)

Kiểm tra lại chỉ số trong mảng

b)

Kiểm tra lại giá trị số chia

c)

Kiểm tra giá trị của số bị chia

d)

Kiểm tra kiểu dữ liệu nhập vào

40.

Dựa vào đoạn chương trình giải bài toán đếm số các ước số thực sự của số tự nhiên n. Hãy cho biết chương trình trên đúng hay sai?

(a)  

41.

Phương pháp kiểm thử nào sử dụng một tập hợp các bộ test đã được xác định trước để kiểm tra chương trình?

a)

Kiểm thử in giá trị trung gian

b)

Kiểm thử tham số

c)

Kiểm thử thiết lập điểm dừng

d)

Kiểm thử sử dụng bộ test

42.

Trong việc đánh giá hiệu quả của chương trình, khái niệm "Độ phức tạp không gian" thường đề cập đến:

a)

Bộ nhớ

b)

Thời gian thực thi

c)

Số lượng CPU cần thiết

d)

Tất cả đều đúng

43.

Phát biểu nào chưa chính xác về kiểm thử chương trình?

a)

Hiện nay, có ít phương pháp và công cụ khác nhau để kiểm thử chương trình

b)

Các bộ test phụ thuộc vào các tiêu chí khác nhau

c)

Các bộ test dữ liệu nên có nhiều bộ test ngẫu nhiên

d)

Chương trình cần được thử với một số bộ dữ liệu test gồm đầu vào tiêu biểu và kết quả đầu ra biết trước

44.

Trong việc đánh giá hiệu quả của chương trình, khái niệm "Độ phức tạp thời gian" thường liên quan đến:

a)

Thời gian mà chương trình được phát triển

b)

Thời gian mà chương trình dùng để thực thi

c)

Thời gian mà chương trình được kiểm thử

45.

Phát biểu nào sau đây đúng nhất khi nói về các bộ dữ liệu test khi kiểm thử chương trình?

a)

Các bộ test có thể có đầu vào theo các tiêu chí khác nhau.

b)

Các bộ test có đầu vào theo một số tiêu chí nhất định.

c)

Các bộ test có thể có đầu vào theo các tiêu chí khác nhau như độ lớn, tính đa dạng của dữ liệu.

d)

Các bộ test có đầu vào phải theo các tiêu chí về độ lớn, tính đa dạng của dữ liệu.

46.

Đâu không phải là công cụ để kiểm thử chương trình?

a)

Công cụ in biến trung gian

b)

Công cụ thống kê dữ liệu

c)

Công cụ sinh các bộ dữ liệu test

d)

Công cụ điểm dừng trong phần mềm soạn thảo lập trình

47.

Chương trình chạy phát sinh lỗi ngoại lệ NameError, nên xử lí như thế nào?

a)

Kiểm tra lại chỉ số trong mảng

b)

Kiểm tra giá trị của số bị chia

c)

Kiểm tra lại tên các biến và hàm

d)

Kiểm tra kiểu dữ liệu nhập vào

48.

Trong Python, phương pháp chứng minh quy nạp được sử dụng để làm gì?

a)

Tối ưu hóa hiệu suất của chương trình

b)

Xác định lỗi cú pháp trong chương trình

c)

Kiểm tra tính bảo mật của chương trình

d)

Chứng minh tính đúng của chương trình

49.

Chương trình chạy phát sinh lỗi ngoại lệ TypeError, nên xử lí như thế nào?

a)

Kiểm tra lại chỉ số trong mảng

b)

Kiểm tra lại giá trị số chia

c)

Kiểm tra giá trị của số bị chia

d)

Kiểm tra kiểu dữ liệu nhập vào

50.

Dựa vào đoạn chương trình giải bài toán đếm số các ước số thực sự của số tự nhiên n. Hãy cho biết chương trình trên đúng hay sai?

(a)