wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Kiểm Tra Định Kỳ Môn Tin Học 11

Total questions: 122

Worksheet time: 2hrs 32mins

Name
Class
Date
1.

Đâu là phát biểu đúng khi nói đến thuật toán tìm kiếm tuần tự?

a)

Thực hiện tìm lần lượt từ đầu đến cuối dãy để tìm phần tử có giá trị bằng giá trị cần tìm.

b)

Chọn đoạn đầu dãy để tìm phần tử có giá trị bằng giá trị cần tìm.

c)

Chọn đoạn cuối dãy để tìm phần tử có giá trị bằng giá trị cần tìm.

d)

Thực hiện tìm lần lượt từ cuối dãy về đầu dãy để tìm phần tử có giá trị bằng giá trị cần tìm.

2.

Thuật toán tìm kiếm tuần tự thực hiện công việc gì?

a)

Lưu trữ dữ liệu.

b)

Sắp xếp dữ liệu theo chiều tăng dần.

c)

Xử lí dữ liệu.

d)

Tìm kiếm dữ liệu cho trước trong một dãy đã cho.

3.

Thuật toán tìm kiếm tuần tự thực hiện công việc như thế nào?

a)

Sắp xếp lại dữ liệu theo thứ tự bảng chữ cái.

b)

Xem xét mục dữ liệu đầu tiên, sau đó xem xét từng mục dữ liệu tiếp theo cho đến khi tìm thấy mục dữ liệu được yêu cầu hoặc đến khi hết danh sách.

c)

Cho nhỏ dữ liệu thành từng phần để tìm kiếm.

d)

Bất đầu tìm từ vị trí bất kì trong danh sách.

4.

Để tìm kiếm một số trong dãy số bằng thuật toán tìm kiếm tuần tự, ta thực hiện:

a)

Lấy ngẫu nhiên một số trong dãy số để so sánh với số cần tìm.

b)

So sánh lần lượt từ số đầu tiên trong dãy số với số cần tìm.

c)

Sếp xếp dãy số theo thứ tự tăng dần.

d)

So sánh số cần tìm với số ở giữa dãy số.

5.

Thuật toán tìm kiếm nhị phân thực hiện như thế nào?

a)

Chia bài toán tìm kiếm ban đầu thành những bài toán tìm kiếm nhỏ hơn.

b)

Chia bài toán tìm kiếm ban đầu thành những bài toán tìm kiếm lớn hơn.

c)

So sánh lần lượt phần tử cuối cùng của dãy với giá trị cần tìm, việc tìm kiếm kết thúc khi tìm thấy hoặc đã duyệt hết các phần tử trong dãy.

d)

So sánh lần lượt phần tử đầu của dãy với giá trị cần.

6.

Chọn phát biểu sai?

a)

Thuật toán tìm kiếm tuần tự chỉ áp dụng với dãy giá trị đã được sắp xếp.

b)

Thuật toán tìm kiếm nhị phân chỉ áp dụng với dãy giá trị đã được sắp xếp.

c)

Thuật toán tìm kiếm nhị phân thực hiện chia bài toán tìm kiếm ban đầu thành những bài toán tìm kiếm nhỏ hơn.

d)

Việc chia bài toán thành những bài toán nhỏ hơn giúp tăng hiệu quả tìm kiếm.

7.

Chọn câu diễn đạt đúng hoạt động của thuật toán tìm kiếm tuần tự.

a)

Tìm trên danh sách đã sắp xếp, bắt đầu từ đầu danh sách, chừng nào chưa tìm thấy hoặc chưa tìm hết thì còn tìm tiếp.

b)

Tìm trên danh sách đã sắp xếp, bắt đầu từ giữa danh sách, chừng nào chưa tìm thấy hoặc chưa tìm hết thì còn tìm tiếp.

c)

Tìm trên danh sách bắt kì, bắt đầu từ giữa danh sách, chừng nào chưa tìm thấy hoặc chưa tìm hết thì còn tìm tiếp.

d)

Tìm trên danh sách bất kì, bắt đầu từ đầu danh sách, chừng nào chưa tìm thấy hoặc chưa tìm hết thì còn tìm tiếp.

8.

Thuật toán tìm kiếm tuần tự thực hiện như thế nào?

a)

So sánh lần lượt phần tử đầu tiên của dãy với giá trị cần tìm, việc tìm kiếm kết thúc khi tìm thấy hoặc đã duyệt hết các phần tử trong dãy.

b)

So sánh lần lượt phần tử cuối cùng của dãy với giá trị cần tìm, việc tìm kiếm kết thúc khi tìm thấy hoặc đã duyệt hết các phần tử trong dãy.

c)

So sánh lần lượt phần tử đầu tiên của dãy với phần tử kế tiếp, việc tìm kiếm kết thúc khi tìm thấy hoặc đã duyệt hết các phần tử trong dãy.

d)

So sánh lần lượt phần tử cuối cùng của dãy với giá trị kế tiếp, việc tìm kiếm kết thúc khi tìm thấy hoặc đã duyệt hết các phần tử trong dãy.

9.

Để tìm kiếm một số trong dãy số bằng thuật toán tìm kiếm tuần tự, ta thực hiện:

a)

Lấy ngẫu nhiên một số trong dãy số để so sánh với số cần tìm.

b)

So sánh lần lượt từ số đầu tiên trong dãy số với số cần tìm.

c)

Sắp xếp dãy số theo thức tự tăng dần.

d)

So sánh số cần tìm với số ở giữa dãy số.

10.

Thuật toán tìm kiếm nhị phân áp dụng với bài toán tìm kiếm kiểu nào?

a)

Áp dụng được với mọi bài toán tìm kiếm.

b)

Áp dụng với dãy giá trị đã được sắp xếp.

c)

Áp dụng được với dãy giá trị chưa được sắp xếp.

d)

Chỉ áp dụng được với dãy số sắp xếp tăng dần.

11.

Thuật toán tìm kiếm nhị phân thực hiện trên danh sách nào?

a)

Đã được hoán đổi.

b)

Đã được sắp xếp.

c)

Đã được chỉnh sửa

d)

Một danh sách bất kì.

12.

Tư tưởng của thuật toán tìm kiếm nhị phân là gì?

a)

Tìm kiếm dựa vào cây tìm kiếm.

b)

Tìm kiếm từ đầu đến cuối dãy.

c)

Tại mỗi bước tiến hành so sánh X với phần tử giữa của dãy. Dựa vào bước so sánh này quyết định tìm kiếm ở nửa đầu hay ở nửa sau của dãy.

d)

So sánh X lần lượt với các phần tử a1, a2, …, an

13.

Tại mỗi bước lặp, thuật toán tìm kiếm nhị phân sẽ:

a)

Thu hẹp danh sách tìm kiếm chỉ còn một nửa.

b)

Danh sách sẽ được sắp xếp lại.

c)

Các phần tử trong danh sách sẽ giảm một nửa.

d)

Thu hẹp danh sách tìm kiếm chỉ còn 1/3.

14.

Đối với dãy số đã được sắp xếp tăng dần, khi so sánh giá trị cần tìm với giá trị của vị trí giữa, nếu giá trị cần tìm nhỏ hơn giá trị giữa thì:

a)

Tìm trong nửa đầu của danh sách.

b)

Tìm trong nửa sau của danh sách.

c)

Dừng lại.

d)

Tìm trong nửa đầu hoặc nửa sau của danh sách.

15.

Thuật toán tìm kiếm nhị phân bắt đầu thực hiện ở vị trí nào trong danh sách?

a)

Vị trí đầu tiên.

b)

Vị trí cuối cùng.

c)

Vị

16.

Thuật toán tìm kiếm nhị phân bắt đầu thực hiện ở vị trí nào trong danh sách?

a)

Vị trí đầu tiên.

b)

Vị trí cuối cùng.

c)

Vị trí giữa.

d)

Bất kì vị trí nào.

17.

Thuật toán tìm kiếm tuần tự một số trong dãy số A dừng khi nào?

a)

Nếu tìm thấy giá trị cần tìm trong dãy A.

b)

Nếu tìm đến giá trị cuối trong dãy số mà không tìm thấy giá trị cần tìm.

c)

Nếu tìm thấy giá trị cần tìm trong dãy A hoặc nếu tìm đến giá trị cuối trong dãy số mà không tìm thấy giá trị cần tìm.

d)

Đáp án khác.

18.

Thực hiện thuật toán tìm kiếm tuần tự để tìm số 10 trong danh sách [2, 6, 8, 4, 10, 12]. Đầu ra của thuật toán là?

a)

Thông báo "Không tìm thấy".

b)

Thông báo "Tìm thấy" , giá trị cần tìm tại vị trí thứ 4 của danh sách.

c)

Thông báo "Tìm thấy", giá trị cần tìm tại vị trí thứ 5 của danh sách.

d)

Thông báo "Tìm thấy", giá trị cần tìm tại vị trí thứ 6 của danh sách.

19.

Trong tìm kiếm tuần tự thì có mấy điều kiện cần kiểm tra để dừng vòng lặp?

a)

1

b)

2

c)

3

d)

Không

20.

Thuật toán tìm kiếm tuần tự cần bao nhiêu bước để tìm thấy số 25 trong danh sách [3, 5, 12, 7, 11, 25]?

a)

9.

b)

6.

c)

7.

d)

8.

21.

Thuật toán tìm kiếm tuần tự cần bao nhiêu bước để tìm thấy số 7 trong danh sách [1, 4, 8, 7, 10, 28]?

a)

2.

b)

3.

c)

4.

d)

5.

22.

Khi thực hiện tìm kiếm nhị phân số 25 trong dãy số 18, 21, 25, 27, 67, 69, 72, 77, 79, 81 cần thực hiện mấy vòng lặp?

a)

2.

b)

3.

c)

4.

d)

5.

23.

Phát biểu nào sau đây là đúng hoặc sai khi nói về thuật toán tìm kiếm nhị phân

a)

Thuật toán tìm kiếm nhị phân được thực hiện bằng cách liên tục thu hẹp phạm vi tìm kiếm. Đ

b)

Thuật toán tìm kiếm nhị phân được thực hiện bằng cách duyệt lần lượt các phần tử từ đầu đến cuối. S

c)

Thuật toán tìm kiếm n

24.

Câu 1. Lệnh mở tệp văn bản để đọc dữ liệu trong Python có cấu trúc là?

a)

f=open(,"r",encoding= "UTF -8")

b)

f=open(,"w",encoding= "UTF -8")

c)

f=open(,"a",encoding= "UTF -8")

d)

f=open(,encoding= "UTF -8")

25.

Câu 2. Lệnh f.readlines() có ý nghĩa gì?

a)

Đọc một dòng tiếp theo từ f.

b)

Đọc toàn bộ dữ liệu tệp, đưa kết quả vào một danh sách (list), mỗi phần tử là 1 dòng.

c)

Đưa toàn bộ nội dung f vào list L, mỗi dòng là một phần tử.

d)

Duyệt từng dòng của f.

26.

Câu 3. Lệnh mở tệp văn bản để ghi dữ liệu từ đầu trong Python có cấu trúc là?

a)

f=open(,"r",encoding= "UTF -8")

b)

f=open(,"w",encoding= "UTF -8")

c)

f=open(,"a",encoding= "UTF -8")

d)

f=open(,encoding= "UTF -8")

27.

Câu 4. Lệnh L=list(f) có ý nghĩa gì?

a)

Đọc một dòng tiếp theo từ f.

b)

Đọc toàn bộ dữ liệu tệp, đưa kết quả vào một danh sách (list), mỗi phần tử là 1 dòng.

c)

Đưa toàn bộ nội dung f vào list L, mỗi dòng là một phần tử.

d)

Duyệt từng dòng của f.

28.

Câu 5. Trong Python, lệnh nào sau đây dùng để mở tệp văn bản data.txt để ghi thêm dữ liệu mà không xóa nội dung cũ?

a)

f = open("data.txt", "r", encoding="UTF-8")

b)

f = open("data.txt", "w", encoding="UTF-8")

c)

f = open("data.txt", "a", encoding="UTF-8")

d)

f = open("data.txt", "x", encoding="UTF-8")

29.

Câu 6. Khi mở tệp bằng lệnh f = open("data.txt", "r", encoding="UTF-8"), Python sẽ thực hiện điều gì?

a)

Mở tệp để ghi dữ liệu từ đầu.

b)

Mở tệp để g

30.

Khi mở tệp bằng lệnh f = open("data.txt", "r", encoding="UTF-8"), Python sẽ thực hiện điều gì?

a)

Mở tệp để ghi dữ liệu từ đầu.

b)

Mở tệp để ghi thêm dữ liệu.

c)

Mở tệp để đọc dữ liệu.

d)

Mở tệp nếu tệp không tồn tại.

31.

Câu lệnh f.close() có tác dụng gì trong Python?

a)

Đóng tệp sau khi hoàn tất việc đọc hoặc ghi.

b)

Xóa nội dung của tệp.

c)

Ghi dữ liệu ra tệp.

d)

Mở tệp để đọc.

32.

Lệnh for line in f: có ý nghĩa gì?

a)

Đọc một dòng tiếp theo từ f.

b)

Đọc toàn bộ dữ liệu tệp, đưa kết quả vào một danh sách (list), mỗi phần tử là 1 dòng.

c)

Đưa toàn bộ nội dung f vào list L, mỗi dòng là một phần tử.

d)

Duyệt từng dòng của f.

33.

Đâu là cú pháp của lệnh ghi dữ liệu ra tệp trong Python?

a)

print(, , file = <đối tượng file>).

b)

print(,

c)

print(file = <đối tượng file>).

d)

print(, , file).

34.

Câu lệnh line.split() trong Python có chức năng gì?

a)

Tách một dòng thành danh sách các phần tử dựa trên dấu cách

b)

Xóa dòng trong tệp

c)

Ghi một dòng vào tệp

d)

Tạo một dòng mới trong tệp

35.

Trong Python lệnh duyệt tệp văn bản từng dòng: for line in f tương đương với nhóm lệnh nào sau đây?

a)

L = list(f) for line in L:

b)

L = list() for line in L:

c)

list(f) for line in L:

d)

L = list(f)

36.

Trong Python lệnh fname = "Data.inp" có ý nghĩa gì?

a)

Gán giá trị chuỗi "Data.inp" cho biến fname.

b)

Gán giá trị Data cho biến fname.

c)

Khai báo biến fname.

d)

Khai báo biến "Data.inp".

37.

Lệnh print(TenHS[i], DiemHS[i], file=f) dùng để?

a)

Hiển thị dữ liệu trên màn hình.

b)

Ghi dữ liệu vào tệp.

c)

Xóa dữ liệu trong tệp.

d)

Tạo một tệp mới.

38.

Thuật toán nào được sử dụng để tăng tốc độ tìm kiếm trong tệp đã được sắp xếp theo thứ tự tăng dần?

a)

Tìm kiếm tuần tự.

b)

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

c)

Tìm kiếm mờ.

d)

Tìm kiếm tuyến tính.

39.

Thuật toán nào được sử dụng để tăng tốc độ tìm kiếm trong tệp đã được sắp xếp theo thứ tự tăng dần?

a)

Tìm kiếm tuần tự.

b)

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

c)

Tìm kiếm mờ.

d)

Tìm kiếm tuyến tính.

40.

Trong bài toán tra cứu điểm thi, nếu người dùng nhập từ khóa "end", chương trình sẽ?

a)

Kết thúc quá trình tra cứu.

b)

Xóa dữ liệu của học sinh.

c)

In ra danh sách học sinh.

d)

Ghi lại tên học sinh cuối cùng.

41.

Khi tìm kiếm tên học sinh trong danh sách, nếu tên học sinh không tồn tại, chương trình sẽ?

a)

Ghi lại tên vào danh sách.

b)

Thông báo "Không tìm thấy dữ liệu của học sinh".

c)

Ghi lại điểm số của học sinh đó.

d)

Xóa tên học sinh khỏi danh sách.

42.

Thuật toán nào tối ưu dưới đây được sử dụng để tìm kiếm một phần tử trong danh sách đã được sắp xếp theo thứ tự tăng dần?

a)

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

b)

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

c)

Tìm kiếm nội suy (Interpolation Search).

d)

Tìm kiếm lặp (Iterative Search).

43.

Thuật toán tìm kiếm nhị phân được áp dụng cho các dãy đã được sắp xếp theo thứ tự xác định. Những phát biểu sau đây là đúng hay sai?

a)

Chia bài toán tìm kiếm ban đầu thành những bài toán tìm kiếm nhỏ hơn.

b)

Với dãy tăng dần, nếu giá trị cần tìm nhỏ hơn giá trị của phần tử ở giữa của dãy thì phạm vi tìm kiếm thu hẹp vào nữa đầu của dãy, ngược lại phạm vi tìm kiếm là nữa cuối của dãy.

c)

So sánh lần lượt phần tử cuối cùng của dãy với giá trị cần tìm, việc tìm kiếm kết thúc khi tìm thấy hoặc đã duyệt hết các phần tử trong dãy.

d)

So sánh lần lượt phần tử đầu của dãy với giá trị cần tìm, việc tìm kiếm kết thúc khi tìm thấy hoặc đã duyệt hết các phần tử trong dãy.

44.

Thuật toán sắp xếp nổi bọt sắp xếp danh sách bằng cách nào?

a)

Thay thế.

b)

Thay đổi.

c)

Đổi chỗ.

d)

So sánh.

45.

Thuật toán sắp xếp nổi bọt sắp xếp danh sách bằng cách hoán đổi các phần tử liền kề bao nhiêu lần?

a)

Một lần.

b)

Hai lần.

c)

Mười lần.

d)

Nhiều lần.

46.

Ý tưởng thuật toán sắp xếp chèn (dãy tăng dần) là?

a)

Thực hiện vòng lặp duyệt từ phần tử thứ 2 đến cuối dãy. Sau mỗi bước lặp phần tử tương ứng sẽ được chèn vào vị trí đúng của dãy con đã sắp xếp là các phần tử phía trước vị trí đang duyệt.

b)

Thực hiện vòng lặp duyệt từ phần tử thứ 2 đến cuối dãy. Sau mỗi bước lặp phần tử tương ứng sẽ được chèn vào vị trí đúng của dãy con đã sắp xếp là các phần tử phía sau vị trí đang duyệt.

c)

Thực hiện vòng lặp duyệt từ phần tử thứ 2 đến phần tử gần cuối. Sau mỗi bước lặp phần tử tương ứng sẽ được chèn vào vị trí đúng của dãy con đã sắp xếp là các phần tử phía sau vị trí đang duyệt.

d)

Thực hiện vòng lặp duyệt từ phần tử thứ 2 đến phần tử gần cuối. Sau mỗi bước lặp phần tử tương ứng sẽ được chèn vào vị trí đúng của dãy con đã sắp xếp là các phần tử phía trước vị trí đang duyệt.

47.

Trong thuật toán sắp xếp nổi bọt, ta thực hiện hoán đổi giá trị các phần tử liền kề khi nào?

a)

Giá trị của chúng tăng.

b)

Giá trị của chúng giảm.

c)

Giá trị của chúng không đúng thứ tự.

d)

Giá trị của chúng không bằng nhau.

48.

Thuật toán sắp xếp chọn xét từng vị trí phần tử từ?

a)

Đầu đến cuối

b)

Cuối đến đầu

c)

Giữa đến đầu

d)

Giữa đến cuối

49.

Trong thuật toán sắp xếp nổi bọt thì dấu hiệu để biết dãy chưa sắp xếp xong là gì?

a)

Vẫn còn cặp phần tử liền kề không đúng thứ tự mong muốn.

b)

Dãy chưa được sắp xếp tăng dần.

c)

Dãy chưa được sắp xếp giảm dần.

d)

Phần tử lớn nhất trong dãy đứng ở đầu dãy.

50.

xếp xong là gì?

a)

Vẫn còn cặp phần tử liền kề không đúng thứ tự mong muốn.

b)

Dãy chưa được sắp xếp tăng dần.

c)

Dãy chưa được sắp xếp giảm dần.

d)

Phần tử lớn nhất trong dãy đứng ở đầu dãy.

51.

Sau vòng lặp thứ nhất của thuật toán sắp xếp chọn, phương án nào đúng?

a)

Phần tử có giá trị nhỏ nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.

b)

Phần tử có giá trị lớn nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.

c)

Các phần tử liền kề được hoán đổi.

d)

Phần tử có giá trị nhỏ nhất sẽ đổi vị trí cho phần tử cuối dãy.

52.

Thuật toán sắp xếp chèn có thể mô tả bằng hàm nào?

a)

BubbleSort(A).

b)

InsertionSort(A).

c)

SelectionSort(A).

d)

BinarySearch(A,K)

53.

Mô tả thuật toán sắp xếp chọn bằng ngôn ngữ tự nhiên gồm có mấy bước?

a)

2

b)

3

c)

4

d)

5

54.

Thuật toán sắp xếp nổi bọt sắp xếp danh sách bằng cách?

a)

Chọn phần tử có giá trị bé nhất đặt vào đầu danh sách

b)

Chọn phần tử có giá trị lớn nhất đặt vào đầu danh sách

c)

Hoán đổi nhiều lần các giá trị liền kề nếu giá trị của chúng không đúng thứ tự.

d)

Chèn phần tử vào vị trí thích hợp để đảm bảo danh sách theo đúng thứ tự.

55.

Thuật toán sắp xếp chọn sẽ so sánh các phần tử ở vị trí nào?

a)

So sánh phần tử ở vị trí được xét với các phần tử phía trước.

b)

So sánh phần tử ở vị trí được xét với các phần tử phía sau.

c)

So sánh phần tử ở vị trí được xét với các phần tử liền kề.

d)

So sánh phần tử ở vị trí được xét với các phần tử đầu tiên.

56.

Các nhiệm vụ để thực hiện việc sắp xếp gồm?

a)

So sánh.

b)

Đổi chỗ.

c)

So sánh và đổi chỗ.

d)

Đổi chỗ và xoá.

57.

Đối với thuật toán sắp xếp chọn. Thực hiện vòng lặp với biến chỉ số i chạy như thế nào?

a)

Chạy từ thứ hai đến phần tử sát cuối.

b)

Chạy từ phần tử thứ 2 đến phần tử cuối cùng

c)

Chạy từ phần tử đầu tiên đến phần tử cuối cùng

d)

Chạy từ phần tử đầu tiên đến phần tử gần cuố

58.

y như thế nào?

a)

Chạy từ thứ hai đến phần tử sát cuối.

b)

Chạy từ phần tử thứ 2 đến phần tử cuối cùng

c)

Chạy từ phần tử đầu tiên đến phần tử cuối cùng

d)

Chạy từ phần tử đầu tiên đến phần tử gần cuối

59.

Thuật toán sắp xếp nổi bọt chọn xét từng vị trí phần tử từ?

a)

Đầu đến cuối

b)

Cuối đến đầu

c)

Giữa đến đầu

d)

Giữa đến cuối

60.

Tại sao chúng ta chia bài toán thành những bài toán nhỏ hơn?

a)

Để thay đổi đầu vào của bài toán.

b)

Để thay đổi yêu cầu đầu ra của bài toán.

c)

Để bài toán dễ giải quyết hơn.

d)

Để bài toán khó giải quyết hơn.

61.

Thuật toán sắp xếp nổi bọt có thể sắp xếp danh sách theo thứ tự?

a)

Tăng dần

b)

Giảm dần

c)

Tăng dần hoặc giảm dần

d)

Không thể sắp xếp tăng dần hay giảm dần.

62.

Nếu sử dụng thuật toán sắp xếp chọn để sắp xếp dãy số 8, 22, 7, 19, 5 theo thứ tự tăng dần thì số lần thực hiện thao tác hoán đổi giá trị trong vòng lặp thứ nhất là:

a)

2.

b)

3.

c)

4.

d)

5.

63.

Cho dãy số: 15, 1, 31, 9, 78, 42. Nếu sử dụng thuật toán sắp xếp nổi bọt để sắp xếp dãy trên tăng dần thì sau bao nhiêu lượt đổi chỗ thì thuật toán kết thúc?

a)

2

b)

3

c)

4

d)

5

64.

Cho dãy số 11, 70, 18, 39, 63, 52, 41, 5, sử dụng thuật toán sắp xếp chọn để sắp xếp dãy số theo thứ tự giảm dần thì sau bao nhiêu lượt đổi chỗ thì thuật toán kết thúc?

a)

2

b)

3

c)

4

d)

5

65.

Sau vòng lặp thứ nhất của thuật toán sắp xếp chọn cho dãy số tăng dần, những phát biểu sau đây là đúng hay sai?

a)

Phần tử có giá trị nhỏ nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.

b)

Phần tử có giá trị lớn nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.

c)

Các phần tử liền kề được hoán đổi.

d)

Phần tử có giá trị nhỏ nhất sẽ đổi vị trí cho phần tử cuối dãy.

66.

Đoạn chương trình sau đây là của thuật toán nào?

a)

Thuật toán sắp xếp chèn.

b)

Thuật toán sắp xếp chọn.

c)

Thuật toán nổi bọt.

d)

Thuật toán sắp xếp nhan.

67.

Khi nào chúng ta sử dụng thuật toán sắp xếp nổi bọt?

a)

Khi số lượng phần tử trong danh sách rất lớn.

b)

Khi cần sắp xếp một danh sách ngẫu nhiên có số lượng nhỏ hoặc trung bình.

c)

Khi không yêu cầu hiệu suất cao.

d)

Khi danh sách đã được sắp xếp hoàn toàn.

68.

Dòng lệnh nào sẽ hiển thị danh sách điểm trung bình đã sắp xếp từ cao đến thấp?

a)

print('Danh sách điểm theo thứ tự tăng dần là:').

b)

print('Danh sách điểm theo thứ tự giảm dần là:').

c)

print('Danh sách điểm trung bình là:').

d)

print('Danh sách điểm đã sắp xếp:').

69.

Phát biểu nào sau đây đúng về thuật toán chèn trong sắp xếp danh sách?

a)

Luôn tìm phần tử lớn nhất và đưa về đầu danh sách.

b)

Thực hiện dịch chuyển phần tử lớn hơn sang phải để tạo khoảng trống cho phần tử chèn vào.

c)

Thực hiện hoán đổi phần tử ở vị trí đầu và cuối.

d)

Thực hiện sắp xếp dãy theo thứ tự ngẫu nhiên.

70.

Trong thuật toán sắp xếp chèn, tại sao chúng ta phải dịch chuyển các phần tử lớn hơn giá trị đang xét lên một vị trí?

a)

Để tìm vị trí chính xác của phần tử mới.

b)

Để giảm số lần so sánh.

c)

Để giảm số lần trao đổi.

d)

Để tăng tốc độ sắp x.

71.

Thuật toán nào phù hợp nhất để sắp xếp số lượng các mặt hàng trong kho theo thứ tự tăng dần?

a)

Thuật toán nổi bọt

b)

Thuật toán sắp xếp chọn

c)

Thuật toán sắp xếp chèn

d)

Thuật toán sắp xếp nhan

72.

Phát biểu sau đây là đúng hay sai về thuật toán chèn trong sắp x?

4 lines
73.

Phát biểu sau đây là đúng hay sai về thuật toán chèn trong sắp xếp danh sách?

a)

Tìm vị trí đúng của từng phần tử trong dãy đã sắp xếp.

b)

Thực hiện dịch chuyển phần tử lớn hơn sang phải để tạo khoảng trống cho phần tử chèn vào.

c)

Thực hiện hoán đổi phần tử ở vị trí đầu và cuối.

d)

Thực hiện sắp xếp dãy theo thứ tự ngẫu nhiên.

74.

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

a)

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

b)

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

c)

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

d)

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

75.

Đánh giá hiệu quả chương trình dựa trên cơ sở nào?

a)

được xác định tốn ít thời gian và tốn ít ô nhớ nhất

b)

được xác định là thời gian thực hiện chương trình có thời gian ngắn nhất.

c)

được xác định tốn nhiều thời gian và tốn nhiều ô nhớ nhất

d)

được xác định tốn ít thời gian và tốn nhiều ô nhớ nhất

76.

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

a)

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

b)

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

c)

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

d)

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

77.

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

a)

Công cụ in biến trung gian.

b)

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

c)

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

d)

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

78.

Trong các phát biểu sau, 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)

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.

c)

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

d)

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

79.

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.

80.

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.

81.

Hiệu quả hay tính tối ưu của chương trình được xem xét trên cơ sở đánh giá nào?

a)

Đánh giá độ phức tạp tính toán.

b)

Đánh giá độ phức tạp thời gian.

c)

Đánh giá độ phức tạp không gian.

d)

Đánh giá độ phức tạp vị trí chương trình.

82.

Vai trò của kiểm thử chương trình là gì?

a)

Tăng độ tin cậy của chương trình và chứng minh được tính đúng của thuật toán và chương trình.

b)

Tăng độ tin cậy của chương trình nhưng chưa chứng minh được tính đúng của thuật toán và chương trình.

c)

Chứng minh được tính đúng của thuật toán và chương trình nhưng không tăng độ tin cậy của chương trình.

d)

Tăng độ tin cậy của chương trình và đưa ra những lỗi sai trong chương trình.

83.

Tính đúng của thuật toán cần được chứng minh bằng gì?

a)

Lập luận khoa học.

b)

Lập luận toán học.

c)

Lập luận tin học.

d)

Lập luận vật lí.

84.

Để đánh giá hiệu quả chương trình, độ phức tạp tính toán nào quan trọng nhất?

a)

Chương trình dễ cài đặt.

b)

Chương trình dễ bảo trì.

c)

Độ phức tạp không gian.

d)

Độ phức tạp thời gian.

85.

nh giá hiệu quả chương trình, độ phức tạp tính toán nào quan trọng nhất?

a)

Chương trình dễ cài đặt.

b)

Chương trình dễ bảo trì.

c)

Độ phức tạp không gian.

d)

Độ phức tạp thời gian.

86.

Độ phức tạp tính toán phổ biến gồm mấy loại?

a)

2.

b)

3.

c)

4.

d)

5.

87.

Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu?

a)

2.

b)

3.

c)

4.

d)

Không phát sinh lỗi

88.

Chương trình sau phát sinh lỗi gì?

a)

NameError.

b)

TypeError.

c)

ZeroDivisionError.

d)

Syntax Error.

89.

Chương trình sau nên sửa như thế nào. Chọn phương án đúng nhất?

a)

Thay đổi kiểu dữ liệu của từng phần tử trong mảng.

b)

Kiểm tra chỉ số của mảng khi thực hiện lệnh.

c)

Thay đổi tên mảng.

d)

Chương trình không có lỗi.

90.

Chương trình sau báo lỗi gì. Chọn phương án đúng nhất?

a)

TypeError.

b)

ZeroDivisionError.

c)

IndexError.

d)

Chương trình không có lỗi.

91.

Chương trình sau có lỗi ở dòng lệnh nào?

a)

1.

b)

2.

c)

3.

d)

4.

92.

Chương trình sau mắc lỗi gì?

a)

TypeError.

b)

ZeroDivisionError.

c)

Syntax Error.

d)

NameError.

93.

Chọn đáp án đúng nhất khi xây dựng các bộ dữ liệu kiểm thử để tìm lỗi cho chương trình tính n! với n là một số nguyên dương nhập từ bàn phím?

a)

n bất kì lớn hơn 1 (n là số tự nhiên), n=1, n=0

b)

n =-1, n=1, n=0

c)

n =2, n=1, n=0

d)

n=1, n=0

94.

Câu 1. Kiểm thử và đánh giá chương trình là hai bước quan trọng trong quá trình phát triển phần mềm để đảm bảo chất lượng, tính đúng đắn và hiệu quả của chương trình. Những phát biểu sau đúng hay sai?

a)

Mục đích chính của việc sử dụng các bộ dữ liệu kiểm thử là kiểm tra độ tin cậy của chương trình bằng cách phát hiện lỗi có thể có. Đ

b)

Tiêu chí quan trọng nhất khi đánh giá hiệu quả của một thuật toán là sử dụng bộ nhớ ít nhất có thể. S

c)

Mục đích chính của việc sử dụng các bộ dữ liệu kiểm thử là đánh giá tốc độ thực thi của chương trình. S

d)

Tiêu chí quan trọng nhất khi đánh giá hiệu quả của một thuật toán là thời gian chạy nhanh hơn các thuật toán khác cùng giải bài toán. Đ

95.

Câu 1. Các phép toán đơn giản như phép tính số học + - */ phép lấy thương nguyên và số dư, các phép so sánh sẽ tính là bao nhiêu đơn vị thời gian?

a)

0

b)

1

c)

2

d)

3

96.

Câu 2. Các phép toán lôgic cơ bản như AND, OR, NOT sẽ tính là bao nhiêu đơn vị thời gian?

a)

0

b)

1

c)

2

d)

3

97.

Câu 3. Vòng lặp for hoặc while sẽ được tính thời gian như thế nào?

a)

Bằng tổng đơn vị thời gian thực hiện của mỗi bước lặp.

b)

Bằng đơn vị thời gian thực hiện của mỗi bước lặp.

c)

Bằng 2 lần đơn vị thời gian thực hiện của mỗi bước lặp.

d)

Bằng một phần 2 tổng đơn vị thời gian thực hiện của mỗi bước lặp.

98.

Câu 4. Đánh giá hiệu quả chương trình dựa trên cơ sở nào?

a)

Được xác định tốn ít thời gian và tốn ít ô nhớ nhất

b)

Được xác định là thời gian thực hiện chương trình có thời gian ngắn nhất.

c)

Được xác định tốn nhiều thời gian và tốn nhiều ô nhớ nhất

d)

Được xác định tốn ít thời gian và tốn nhiều ô nhớ nhất

99.

Giả sử một chương trình P mô tả một thuật toán nào đó. Người ta đo được các thông tin thời gian sau? T1 = thời gian chương trình nhập dữ liệu input và đưa vào bộ nhớ. T2 = thời gian chạy chương trình từ khi nhập xong dữ liệu input và tính xong dữ liệu output. T3 = thời gian đưa dữ liệu output ra thiết bị ngoài chuẩn. Khi đó thời gian chạy chương trình T(n) dùng để tính độ phức tạp thời gian của thuật toán là phương án nào trong các phương án sau?

a)

T1 + T2.

b)

T2.

c)

T2 + T3.

d)

T1 + T2 + T3.

100.

Áp dụng quy tắc cộng với O(f(n) + g(n)) cho kết quả là?

a)

O(max(f(n), g(n))).

b)

O(max(f(2n), g(2n))).

c)

O(g(n)).

d)

O(f(n)).

101.

Quy tắc cộng được áp dụng khi nào?

a)

Được áp dụng khi tính độ phức tạp thời gian cho hai chương trình được thực hiện nối tiếp nhau.

b)

Được áp dụng tính độ phức tạp cho chương trình có hai vòng lặp lồng nhau.

c)

Được áp dụng tính độ phức tạp cho chương trình có nhiều vòng lặp lồng nhau.

d)

Được áp dụng khi tính độ phức tạp thời gian cho hai chương trình được thực hiện song song cùng nhau.

102.

Áp dụng quy tắc phép nhân với hằng số O(C.f(n)) với C là hằng số bất kì cho kết quả là?

a)

O(C.f(n)).

b)

O(f(n)).

c)

O(f(nc)).

d)

O(2C.f(n)).

103.

Quy tắc nhân được áp dụng khi nào?

a)

Được áp dụng khi tính độ phức tạp thời gian cho hai chương trình được thực hiện nối tiếp nhau.

b)

Được áp dụng tính độ phức tạp cho chương trình có hai vòng lặp lồng nhau.

c)

Được áp dụng tính độ phức tạp cho chương trình có nhiều vòng lặp lồng nhau.

d)

Được áp dụng khi tính độ phức tạp thời gian cho hai chương trình được thực hiện song song cùng nhau.

104.

Áp dụng quy tắc phép nhân hàm số với O(f(n).g(n)) cho kết quả là?

a)

O(f(n).O(g(n)))

b)

O(f(n).g(n))

c)

O(f(n))

d)

O(g(n))

105.

Áp dụng quy tắc phép nhân hàm số với O(f(n).g(n)) cho kết quả là?

a)

O(f(n).O(g(n)))

b)

O(f(n).g(n))

c)

O(f(n))

d)

O(g(n))

106.

Độ phức tạp của hàm n + 2n.log2(n) + 10 theo kí hiệu O-lớn là?

a)

n.

b)

2n.

c)

nlog2n.

d)

nlogn.

107.

Độ phức tạp của hàm 2n2 + 3n3log5(n) + n3/2 theo kí hiệu O-lớn là?

a)

2n2.

b)

2n2 + n3.logn.

c)

n3.logn.

d)

n3/2.

108.

Độ phức tạp của hàm 2n + 3n + 5n theo kí hiệu O-lớn là?

a)

2n.

b)

3n.

c)

4n.

d)

5n.

109.

Tính độ phức tạp của các hàm thời gian sau? Tính = 2n(n - 2) + 4.

a)

O(n)

b)

O(n2)

c)

O(n3)

d)

O(n4)

110.

Tính độ phức tạp của các hàm thời gian sau? Tính = n3 + 5n - 3.

a)

O(n)

b)

O(n2)

c)

O(n3)

d)

O(n4)

111.

Áp dụng các quy tắc hãy tính độ phức tạp của các hàm thời gian sau? Tính = n3 + nlogn + 2n + 1.

a)

O(n3 ) + 1.

b)

3O(n4 ) + 1

c)

O(n3 )

d)

O(n4 ) + 1.

112.

Áp dụng các quy tắc hãy tính độ phức tạp của các hàm thời gian sau? Tính = 3n4 + 2n2logn + 10.

a)

O(n3 ) + 1

b)

3O(n4 ) + 1.

c)

O(n2 ) + 1.

d)

O(n4 )

113.

Các lệnh và đoạn chương trình sau cần chạy trong bao nhiêu đơn vị thời gian? n=1000 for k in range(n): if k%3 ==0: print(k)

a)

4n/3 + 1

b)

2+1/3n

c)

n/3

d)

1+n/3

114.

Các lệnh và đoạn chương trình sau cần chạy trong bao nhiêu đơn vị thời gian?

a)

1+4/3n

b)

2+1/3n

c)

n//3

d)

2+n/3

115.

Cho chương trình sau: Kết quả đánh giá thời gian chạy chương trình T(n) là?

a)

n + 3.

b)

2n.

c)

n2.

d)

log2n.

116.

Cách đánh giá thời gian chạy chương trình được dựa trên một bộ khung các nguyên tắc dùng làm căn cứ để tính toán. Các phát biểu sau đây là đúng hay sai. a) Các phép toán đơn giản như phép tính số học + - */ phép lấy thương nguyên và số dư, các phép so sánh sẽ tinh là 1 đơn vị thời gian. Đ b) Vòng lặp for hoặc while sẽ được tính thời gian bằng thời gian thực hiện của một vòng lặp. S c) Lệnh if với nhiều trường hợp rẽ nhánh sẽ được tính thời gian bằng đơn vì thời gian nhỏ nhất của các lệnh nhánh. S d) Các phép toán lôgic cơ bản như AND, OR, NOT sẽ tính là 1 đơn vị thời gian. Đ

a)

Đúng

b)

Sai

c)

Sai

d)

Đúng

117.

Độ phức tạp thời gian của thuật toán tìm kiếm tuần tự LinearSearch(A, K) là?

a)

O(1)

b)

O(n)

c)

O(log n)

d)

O(n^2)

118.

Độ phức tạp thời gian của thuật toán sắp xếp chọn SelectionSort(A) là?

a)

O(n)

b)

O(logn)

c)

O(n2)

d)

O(nlogn)

119.

Độ phức tạp thời gian của thuật toán sắp xếp nổi bọt BubbleSort(A) là?

a)

O(n)

b)

O(n2)

c)

O(nlogn)

d)

O(logn)

120.

Hàm func(A) với hai vòng lặp lồng nhau chạy từ 0 đến n-1, thực hiện một phép so sánh mỗi lần duyệt, có độ phức tạp là:

a)

O(n)

b)

O(nlogn)

c)

O(n2)

d)

O(logn)

121.

Trong các thuật toán tìm kiếm tuần tự, thời gian thực hiện tối đa sẽ là bao nhiêu đối với mảng kích thước n?

a)

O(n)

b)

O(log n)

c)

O(n2)

d)

O(1)

122.

Đối với thuật toán LinearSearch(A, K), thời gian tính toán trong trường hợp tốt nhất là?

a)

O(n)

b)

O(log n)

c)

O(1)

d)

O(n^2)