JavaScript is required
Danh sách đề

Câu hỏi trắc nghiệm Lập trình trực quan C# có giải thích chi tiết - Đề 1

15 câu hỏi 30 phút

Thẻ ghi nhớ
Luyện tập
Thi thử
Nhấn để lật thẻ
1 / 15

Header đúng cho một class dự định dùng là:

A.

class MyClass IFace

B.

class MyClass ; IFace

C.

class MyClass : IFace

D.

class MyClass {IFace}

Đáp án

Trong C++, cú pháp để một lớp kế thừa từ một interface (hoặc một lớp khác) là sử dụng dấu hai chấm (:). Theo sau dấu hai chấm là tên của interface hoặc lớp mà lớp hiện tại kế thừa. Các phương án khác đều không đúng cú pháp.

Danh sách câu hỏi:

Câu 1:

Header đúng cho một class dự định dùng là:

Lời giải:
Đáp án đúng: C

Trong C++, cú pháp để một lớp kế thừa từ một interface (hoặc một lớp khác) là sử dụng dấu hai chấm (:). Theo sau dấu hai chấm là tên của interface hoặc lớp mà lớp hiện tại kế thừa. Các phương án khác đều không đúng cú pháp.

Câu 2:

Để class sử dụng interface nó phải:

Lời giải:
Đáp án đúng: D

Trong lập trình hướng đối tượng, một class "sử dụng" (hay còn gọi là "thực thi" - implements) một interface có nghĩa là class đó phải cung cấp một định nghĩa (implementation) cho tất cả các phương thức đã được khai báo trong interface. Điều này đảm bảo rằng class tuân thủ theo "hợp đồng" được định nghĩa bởi interface.

  1. Kế thừa các đặc tính của interface: Interface không phải là một class, do đó không có khái niệm "kế thừa" theo nghĩa thông thường. Interface định nghĩa một tập hợp các phương thức mà một class *phải* triển khai.
  2. Chứa các phương thức giống như interface: Đây là ý chính xác. Class phải cung cấp implementation cho tất cả các phương thức được khai báo trong interface.
  3. Tạo một interface object: Không thể tạo trực tiếp một đối tượng từ interface. Interface chỉ định nghĩa một tập các phương thức, không phải là một kiểu dữ liệu cụ thể.

Vậy, đáp án đúng nhất là class phải chứa các phương thức giống như interface.

Lời giải:
Đáp án đúng: B

Trong Java, mọi class đều trực tiếp hoặc gián tiếp kế thừa từ lớp Object. Đây là lớp gốc (root class) của tất cả các lớp trong Java. Khi một class không khai báo kế thừa từ một lớp cụ thể nào, nó mặc định kế thừa từ lớp Object. Các lớp System, DrawingConsole không phải là lớp gốc của tất cả các lớp.

Câu 4:

Khái niệm composition xác định rằng bạn có thể:

Lời giải:
Đáp án đúng: B
Khái niệm "composition" (tính hợp thành) trong lập trình hướng đối tượng (OOP) đề cập đến việc xây dựng các đối tượng phức tạp từ các đối tượng đơn giản hơn. Nó cho phép bạn tạo ra các hệ thống linh hoạt và dễ bảo trì bằng cách kết hợp các thành phần khác nhau. Trong C#, điều này có nghĩa là bạn có thể "soạn" (compose) các dự án bằng cách sử dụng các đối tượng khác nhau, mỗi đối tượng đảm nhiệm một chức năng cụ thể, và kết hợp chúng lại để tạo ra một ứng dụng hoàn chỉnh. * **Đáp án 1:** Biên soạn code tốt với C# - Đây là một kết quả có thể có của việc sử dụng composition, nhưng nó không phải là định nghĩa trực tiếp của khái niệm này. * **Đáp án 2:** Soạn các dự án C# với những object khác nhau - Đây là đáp án chính xác nhất. Composition chính là việc kết hợp các đối tượng khác nhau để tạo thành một đối tượng phức tạp hơn hoặc một hệ thống hoàn chỉnh. * **Đáp án 3:** Giảm lỗi bằng cách viết lại trong quá trình lập trình - Viết lại code có thể giúp giảm lỗi, nhưng không liên quan trực tiếp đến khái niệm composition. * **Đáp án 4:** Tất cả các đáp án trên - Vì chỉ có đáp án 2 đúng, nên đáp án này sai. Vì vậy, đáp án đúng nhất là đáp án 2.

Câu 5:

Đa hình xảy ra khi các phương thức của lớp con:

Lời giải:
Đáp án đúng: B
Đa hình (Polymorphism) trong lập trình hướng đối tượng xảy ra khi một đối tượng có thể có nhiều dạng khác nhau. Trong ngữ cảnh của kế thừa, đa hình thể hiện rõ nhất khi một lớp con (subclass) định nghĩa lại (ghi đè - override) một phương thức đã được định nghĩa trong lớp cha (superclass). Tuy nhiên, phương thức được ghi đè phải duy trì kiểu trả về và danh sách tham số giống như phương thức ở lớp cha. Điều này đảm bảo rằng các đối tượng của lớp con có thể được sử dụng thay thế cho các đối tượng của lớp cha mà không gây ra lỗi, vì chúng cung cấp cùng một giao diện (interface). * **Đáp án 1:** Sai. Ghi đè các phương thức của lớp cha nhưng vẫn duy trì việc triển khai mâu thuẫn với bản chất của việc ghi đè, là thay đổi cách thực hiện. * **Đáp án 2:** Đúng. Đáp án này mô tả chính xác cách đa hình hoạt động thông qua ghi đè phương thức (method overriding) trong kế thừa. * **Đáp án 3:** Sai. Nếu kiểu trả về và tham số khác với lớp cha, đó không phải là ghi đè mà là nạp chồng (overloading). * **Đáp án 4:** Sai. Phương thức ảo (virtual method) là một cơ chế để kích hoạt đa hình, nhưng bản thân việc một phương thức là ảo không định nghĩa đa hình.

Câu 6:

Để xuất giá trị của mảng đa chiều, Console.WriteLine(___):

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 9:

Code:

public class B : A { }

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 10:

Giả sử rằng:

public class B : A { public B(int i) : base(i) { } }

Biên dịch và chạy đúng, chúng ta có thể kết luận gì về các constructor trong lớp A?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 14:

Một lớp trừu tượng...

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP