A. PHẦN TRẮC NGHIỆM (6,0 điểm)
Khoanh tròn vào chữ cái đứng trước câu trả lời đúng:
Câu 1. Mảng hai chiều là:
A. A = [6, 12, 3, “Nam”].
B. B = [“Tin học”, 10].
C. C = [[“Toán”, 9.0], [“Ngữ Văn”, 8.0], [“Tiếng Anh”, 9.0]].
D. D = [5, 10, 15, 20, 25].
Câu 2. Ma trận vuông M bậc 3 dưới đây có thể khai báo trong Python như thế nào?
M= 241568309471122
A. M=[24, 8, 47, 15, 30, 11, [6, 9, 22]].
B. M=[6, 15, 24, 9, 30, 8, [22, 11, 47]].
C. M=[24, 15, 6, 47, 11, 22, 8, 30, 9].
D. M=[24, 15, 6, 8, 30, 9, 47, 11, 22].
Câu 3. Để truy cập phần tử tại hàng 3 cột 1 của ma trận M ở câu 2, ta gõ lệnh:
A. M3[1].
B. M1[3].
C. M2[0].
D. M0[2].
Câu 4. Cấu trúc dữ liệu mảng một chiều trong Python có thể biểu diễn bằng kiểu dữ liệu:
A. str.
B. list.
C. int.
D. bool.
Câu 5. Để xoá một phần tử của danh sách trong Python, ta sử dụng lệnh:
A. remove().
B. clear().
C. delete().
D. pop().
Câu 6. Chọn câu đúng.
A. Phần tử thứ 3 của mảng C = [7, 0, 2, 15, 6] là 15.
B. Phần tử nằm tại cột i và hàng j của ma trận kích thước m n được kí hiệu là aij.
C. Hàm append() dùng để bổ sung phần tử vào vị trí bất kì của danh sách.
D. Sử dụng toán tử in và lệnh for … in để duyệt từng phần tử của mảng một chiều trong Python.
Câu 7. Cho dãy A = [27, 19, 5, 0, 36, 8, 20, 41, 83, 2]. Thuật toán tìm kiếm tuần tự cần thực hiện bao nhiêu lần duyệt để tìm ra phần tử có giá trị bằng 20 trong dãy?
A. 6.
B. 7.
C. 8.
D. 9.
Câu 8. Cho dãy A = [1, 3, 6, 20, 45, 78, 93]. Thuật toán tìm kiếm nhị phân cần thực hiện bao nhiêu lần duyệt để tìm ra phần tử có giá trị bằng 78 trong dãy?
A. 1.
B. 2.
C. 3.
D. 4.
Câu 9. Chọn câu sai.
A. Tìm kiếm là một trong những bài toán quan trọng nhất của Tin học.
B. Việc thiết kế thuật toán tìm kiếm sẽ phụ thuộc vào cấu trúc của miền dữ liệu cần tìm kiếm và tiêu chí cụ thể của bài toán tìm kiếm.
C. Thuật toán tìm kiếm tuần tự được thực hiện bằng cách duyệt lần lượt các phần tử của dãy từ đầu đến cuối để tìm phần tử có giá trị bằng giá trị cần tìm.
D. Thuật toán tìm kiếm tuần tự không được áp dụng cho các dãy được sắp xếp theo thứ tự xác định.
Câu 10. Lệnh mở tệp để ghi tiếp dữ liệu là:
A. f=open(<file name>, “a”, encoding = “UTF-8”).
B. f=open(<file name>, “r”, encoding = “UTF-8”).
C. f=open(<file name>, “s”, encoding = “UTF-8”).
D. f=open(<file name>, “w”, encoding = “UTF-8”).
Câu 11. Để đọ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à một dòng, ta sử dụng lệnh:
A. f.readlist().
B. f.readall().
C. f.readline().
D. f.readlines().
Câu 12. Cách đơn giản nhất để ghi dữ liệu ra tệp văn bản là sử dụng lệnh:
A. add().
B. write().
C. print().
D. copy().
Câu 13. Em đã được học mấy thuật toán sắp xếp đơn giản?
A. 1.
B. 2.
C. 3.
D. 4.
Câu 14. Ý tưởng của thuật toán sắp xếp chèn là thực hiện vòng lặp duyệt từ:
A. Phần tử thứ hai đến cuối dãy.
B. Phần tử đầu tiên đến cuối dãy.
C. Phần tử đầu tiên đến gần cuối dãy.
D. Phần tử thứ hai đến gần cuối dãy.
Câu 15. Chọn câu đúng.
A. Tại mỗi bước lặp của thuật toán sắp xếp chọn, cần tìm phần tử lớn nhất nằm trong dãy A[i], A[i+1], … , A[n-1] và đổi chỗ phần tử nhỏ nhất này với A[0].
B. Tại mỗi bước lặp của thuật toán sắp xếp chọn, cần tìm phần tử nhỏ nhất nằm trong dãy A[i], A[i+1], … , A[n-1] và đổi chỗ phần tử nhỏ nhất này với A[i].
C. Tại mỗi bước lặp của thuật toán sắp xếp chọn, cần tìm phần tử nhỏ nhất nằm trong dãy A[i], A[i+1], … , A[n-1] và đổi chỗ phần tử nhỏ nhất này với A[i+1].
D. Tại mỗi bước lặp của thuật toán sắp xếp chọn, cần tìm phần tử lớn nhất nằm trong dãy A[i], A[i+1], … , A[n-1] và đổi chỗ phần tử nhỏ nhất này với A[n-1].
Câu 16. Trong thuật toán sắp xếp chèn, vòng lặp for … in … được viết như thế nào?
A. for i in range(1, n).
B. for i in range(n, 1).
C. for i in range(0, n).
D. for i in range(n).
Câu 17. Ý tưởng của thuật toán sắp xếp nổi bọt là cho cho chỉ số j chạy từ:
A. 0 đến n – 1.
B. 0 đến n – 2.
C. 0 đến n.
D. 1 đến n.
Câu 18. Chọn câu sai.
A. Thuật toán sắp xếp nổi bọt lấy ý tưởng từ hiện tượng “nổi bọt” của không khí dưới nước.
B. Có nhiều cách thể hiện thuật toán sắp xếp nổi bọt, nhưng cách thường dùng là sử dụng hai vòng lặp lồng nhau.
C. Ý tưởng của thuật toán sắp xếp nổi bọt là liên tục đổi chỗ hai phần tử bất kì nếu chúng chưa được sắp thứ tự đúng.
D. Thuật toán sắp xếp nổi bọt kiểm tra hai phần tử cạnh nhau, nếu chúng chưa sắp xếp đúng thì đổi chỗ.
Câu 19. Chọn câu sai.
A. Khi sử dụng các bộ dữ liệu kiểm thử để kiểm tra tính đúng của chương trình, nếu phát hiện lỗi không chính xác của dữ liệu đầu ra thì kết luận ngay thuật toán và chương trình không đúng.
B. Nếu với các bộ dữ liệu kiểm thử, dữ liệu đầu ra đều đúng thì kết luận ngay thuật toán và chương trình đúng.
C. Kiểm thử làm tăng độ tin cậy của chương trình.
D. Các phương pháp kiểm thử không có tính năng chứng minh được tính đúng của một thuật toán.
Câu 20. Chương trình kiểm tra số chính phương sau sai ở dòng thứ mấy?
A. 3.
B. 4.
C. 5.
D. 7.
Câu 21. Hiệu quả hay tính tối ưu của chương trình thường được xem xét trên cơ sở đánh giá:
A. Tính đúng của thuật toán.
B. Độ tin cậy của chương trình.
C. Ý tưởng thực hiện thuật toán.
D. Độ phức tạp tính toán.
Câu 22. Tính đúng của thuật toán cần được chứng minh bằng:
A. Các bộ dữ liệu kiểm thử.
B. Độ phức tạp của thuật toán.
C. Lập luận toán học.
D. Thời gian thực hiện chương trình.
Câu 23. Chọn câu sai.
A. Độ phức tạp tính toán quan trọng nhất là độ phức tạp không gian.
B. Một chương trình/thuật toán là hiệu quả nếu độ phức tạp của thuật toán này là thấp.
C. Để đánh giá hiệu quả chương trình đôi khi người ta còn quan tâm tới các tiêu chí như tính dễ hiểu, rõ ràng, ngắn gọn, dễ cài đặt, dễ bảo trì, … của chương trình.
D. Độ phức tạp thời gian thường bị ảnh hưởng bởi số lần thực hiện các phép toán/câu lệnh có trong chương trình/thuật toán.
Câu 24. Độ phức tạp tính toán phổ biến nhất có mấy loại?
A. 1.
B. 2.
C. 3.
D. 4.
PHẦN TỰ LUẬN (4,0 điểm)
Câu 1 (2,0 điểm)
a) Thuật toán tìm kiếm tuần tự được thực hiện như thế nào?
b) Cho dãy số A = [6, 10, 2, 8, 1]. Hãy mô tả các bước của thuật toán tìm kiếm tuần tự để tìm kiếm phần tử có giá trị bằng 8.
Câu 2 (2,0 điểm) Cho dãy A = [42, 28, 56, 17, 9, 30, 84]. Viết chương trình sắp xếp dãy A theo thứ tự tăng dần theo thuật toán sắp xếp chọn.
A. PHẦN TRẮC NGHIỆM: (6,0 điểm)
Mỗi câu trả lời đúng được 0,25 điểm.
B. PHẦN TỰ LUẬN: (4,0 điểm)