Cấu trúc dữ liệu University

Bài kiểm tra đánh giá: Cấu trúc dữ liệu (Array, List, Set, Map, Tree, Java 8)

22 câu
40 phút
Có đáp án

Thông tin đề

Môn
Cấu trúc dữ liệu
Kỳ thi
University
Số câu
22 câu
Thời gian
40 phút
Đáp án
✓ Có giải thích

Nội dung đề (22 câu)

  1. Câu 1.

    Mảng (Array) trong Java có đặc điểm gì nổi bật nhất?

    • A.

      Kích thước có thể thay đổi linh hoạt trong quá trình sử dụng

    • B.

      Các phần tử được truy cập thông qua chỉ số (index) và có kích thước cố định

    • C.

      Không thể chứa các kiểu dữ liệu nguyên thủy

    • D.

      Chỉ lưu trữ được các đối tượng kiểu String

  2. Câu 2.

    Khai báo nào sau đây là đúng để tạo một mảng số nguyên gồm 5 phần tử trong Java?

    • A.

      int arr = new int[5];

    • B.

      int[] arr = new int[5];

    • C.

      int arr[5] = new int;

    • D.

      int[] arr = new int(5);

  3. Câu 3.

    Độ phức tạp trung bình để truy cập một phần tử trong mảng theo chỉ số là bao nhiêu?

    • A.

      O(n)

    • B.

      O(log n)

    • C.

      O(1)

    • D.

      O(n²)

  4. Câu 4.

    ArrayList trong Java implement (triển khai) interface nào?

    • A.

      Map

    • B.

      Set

    • C.

      List

    • D.

      Collection đơn lẻ (không kế thừa List)

  5. Câu 5.

    Phương thức nào dùng để thêm một phần tử vào cuối danh sách trong ArrayList?

    • A.

      add()

    • B.

      append()

    • C.

      push()

    • D.

      insertLast()

  6. Câu 6.

    Khi cần thực hiện nhiều thao tác chèn/xóa ở đầu danh sách, nên chọn cấu trúc nào?

    • A.

      ArrayList vì truy cập nhanh

    • B.

      LinkedList vì thao tác chèn/xóa ở đầu hiệu quả hơn

    • C.

      Cả hai có hiệu năng như nhau

    • D.

      Không thể chèn/xóa ở đầu danh sách

  7. Câu 7.

    Cấu trúc dữ liệu nào KHÔNG cho phép các phần tử trùng lặp?

    • A.

      List

    • B.

      ArrayList

    • C.

      Set

    • D.

      LinkedList

  8. Câu 8.

    Lớp nào trong Java triển khai Set và duy trì các phần tử theo thứ tự sắp xếp tự nhiên?

    • A.

      HashSet

    • B.

      LinkedHashSet

    • C.

      TreeSet

    • D.

      EnumSet

  9. Câu 9.

    Cấu trúc dữ liệu bên dưới (underlying) mà HashSet sử dụng trong Java là gì?

    • A.

      Mảng (Array)

    • B.

      LinkedList

    • C.

      HashMap

    • D.

      Cây nhị phân (Binary Tree)

  10. Câu 10.

    Map trong Java lưu trữ dữ liệu theo cặp:

    • A.

      Giá trị đơn lẻ (single value)

    • B.

      Cặp Khóa - Giá trị (Key-Value pairs)

    • C.

      Chỉ số và giá trị (index-based)

    • D.

      Chỉ chứa đối tượng kiểu Object

  11. Câu 11.

    Lớp nào cho phép key và value là null, đồng thời KHÔNG đồng bộ (not synchronized)?

    • A.

      TreeMap

    • B.

      Hashtable

    • C.

      HashMap

    • D.

      ConcurrentHashMap

  12. Câu 12.

    Độ phức tạp trung bình của thao tác get() và put() trong HashMap là bao nhiêu?

    • A.

      O(n)

    • B.

      O(log n)

    • C.

      O(1)

    • D.

      O(n²)

  13. Câu 13.

    Cây nhị phân (Binary Tree) là cây mà mỗi nút có tối đa bao nhiêu nút con?

    • A.

      1 nút con

    • B.

      2 nút con

    • C.

      3 nút con

    • D.

      Không giới hạn

  14. Câu 14.

    Trong cây tìm kiếm nhị phân (BST), cây con bên trái của một nút chứa các nút có giá trị:

    • A.

      Lớn hơn giá trị của nút đó

    • B.

      Nhỏ hơn giá trị của nút đó

    • C.

      Bằng giá trị của nút đó

    • D.

      Không có quy tắc cụ thể

  15. Câu 15.

    Duyệt cây theo thứ tự nào thăm nút gốc trước, sau đó đến cây con trái rồi cây con phải?

    • A.

      In-order (Trung thứ tự)

    • B.

      Pre-order (Tiền thứ tự)

    • C.

      Post-order (Hậu thứ tự)

    • D.

      Level-order (Theo tầng)

  16. Câu 16.

    Tính năng nào được giới thiệu trong Java 8 cho phép lập trình hàm (functional programming)?

    • A.

      Generics

    • B.

      Lambda Expressions

    • C.

      Annotations

    • D.

      Reflection

  17. Câu 17.

    Cú pháp nào sau đây là biểu thức Lambda đúng trong Java 8?

    • A.

      (x, y) -> x + y

    • B.

      function(x, y) { return x + y; }

    • C.

      lambda(x, y) = x + y

    • D.

      def(x, y) => x + y

  18. Câu 18.

    Phương thức nào dùng để chuyển một Collection thành Stream trong Java 8?

    • A.

      toStream()

    • B.

      stream()

    • C.

      asStream()

    • D.

      convertToStream()

  19. Câu 19.

    Annotation @FunctionalInterface trong Java 8 chỉ ra rằng interface có đúng ____ phương thức trừu tượng (abstract method).

  20. Câu 20.

    Độ phức tạp thời gian trung bình của phép tìm kiếm tuyến tính trên một mảng KHÔNG được sắp xếp là: ____ (dùng ký hiệu Big O).

  21. Câu 21.

    Hãy so sánh ArrayList và LinkedList trong Java. Phân tích về: cấu trúc bên trong, độ phức tạp của các thao tác thêm/xóa/truy cập, và đưa ra ví dụ cụ thể về tình huống nên dùng mỗi loại.

  22. Câu 22.

    Trình bày về Stream API trong Java 8. Nêu ít nhất 3 phép toán phổ biến (filter, sorted, map, collect...) và viết một đoạn code Java 8 minh họa cách lọc các số chẵn từ một List và thu thập kết quả vào một List mới.

Đáp án và giải thích từng câu có trong chế độ .