Đề 7 – Bài tập, đề thi trắc nghiệm online Lập trình .NET

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Lập trình .NET

Đề 7 - Bài tập, đề thi trắc nghiệm online Lập trình .NET

1. Kiểu dữ liệu value type và reference type khác nhau cơ bản ở điểm nào trong .NET?

A. Value type lưu trữ giá trị trực tiếp, reference type lưu trữ tham chiếu đến giá trị.
B. Value type nằm trên heap, reference type nằm trên stack.
C. Value type có thể null, reference type không thể null.
D. Value type được quản lý bởi Garbage Collector, reference type không được quản lý.

2. Attribute trong C# được sử dụng để làm gì?

A. Định nghĩa kiểu dữ liệu mới.
B. Cung cấp metadata (dữ liệu về dữ liệu) cho các thành phần của mã (lớp, phương thức, thuộc tính…).
C. Kiểm soát quyền truy cập vào các thành phần của lớp.
D. Tạo ra các luồng (threads) trong ứng dụng.

3. Delegate trong C# là gì?

A. Một kiểu dữ liệu nguyên thủy.
B. Một đối tượng đại diện cho một phương thức.
C. Một giao diện để định nghĩa hợp đồng.
D. Một thuộc tính để kiểm soát truy cập.

4. Entity Framework Core (EF Core) là gì và vai trò của nó trong phát triển .NET?

A. Một framework để phát triển giao diện người dùng desktop.
B. Một ORM (Object-Relational Mapper) giúp tương tác với cơ sở dữ liệu dễ dàng hơn bằng cách làm việc với các đối tượng C# thay vì SQL trực tiếp.
C. Một công cụ để kiểm thử hiệu suất ứng dụng.
D. Một thư viện để xử lý XML.

5. Trong ASP.NET Core, Middleware là gì?

A. Một thành phần để tạo giao diện người dùng web.
B. Một pipeline (chuỗi xử lý) để xử lý HTTP request và response.
C. Một cơ sở dữ liệu tích hợp.
D. Một công cụ để triển khai ứng dụng web.

6. Trong C#, từ khóa nào được sử dụng để định nghĩa một lớp kế thừa từ lớp khác?

A. implements
B. extends
C. inherits
D. : (dấu hai chấm)

7. Garbage Collection (GC) trong .NET hoạt động như thế nào?

A. Giải phóng bộ nhớ ngay lập tức khi đối tượng không còn được tham chiếu đến.
B. Định kỳ quét bộ nhớ heap và giải phóng bộ nhớ của các đối tượng không còn được tham chiếu.
C. Yêu cầu lập trình viên chủ động giải phóng bộ nhớ.
D. Chỉ giải phóng bộ nhớ khi ứng dụng kết thúc.

8. Expression-bodied members trong C# là gì?

A. Một loại biến đặc biệt.
B. Cú pháp ngắn gọn để định nghĩa các members (phương thức, thuộc tính,…) mà thân chỉ có một biểu thức duy nhất.
C. Một cách để viết biểu thức lambda.
D. Một kỹ thuật để tối ưu hóa biểu thức.

9. Async và Await trong C# được sử dụng để làm gì?

A. Tăng tốc độ biên dịch mã.
B. Thực hiện các thao tác bất đồng bộ mà không block luồng chính.
C. Quản lý lỗi và ngoại lệ.
D. Tối ưu hóa bộ nhớ sử dụng.

10. Event trong C# là gì và cơ chế hoạt động như thế nào?

A. Một loại delegate đặc biệt chỉ dùng cho xử lý lỗi.
B. Một cơ chế cho phép một đối tượng (publisher) thông báo cho các đối tượng khác (subscribers) khi có sự kiện xảy ra.
C. Một cách để định nghĩa giao diện người dùng.
D. Một kỹ thuật để tối ưu hóa hiệu suất đa luồng.

11. IActionResult trong ASP.NET Core dùng để làm gì?

A. Định nghĩa interface cho controller.
B. Đại diện cho kết quả trả về của một action method trong controller, cho phép trả về các loại HTTP response khác nhau (JSON, View, Redirect…).
C. Xử lý lỗi và ngoại lệ trong ứng dụng web.
D. Xác thực và ủy quyền người dùng.

12. Dependency Inversion Principle (DIP) là gì và tại sao nó quan trọng trong lập trình hướng đối tượng?

A. Một nguyên tắc về hiệu suất, tập trung vào tối ưu hóa tốc độ thực thi.
B. Một nguyên tắc SOLID, nói rằng các module cấp cao không nên phụ thuộc vào module cấp thấp, cả hai nên phụ thuộc vào abstraction (trừu tượng).
C. Một nguyên tắc về bảo mật, tập trung vào việc bảo vệ dữ liệu.
D. Một nguyên tắc về quản lý bộ nhớ, tập trung vào việc sử dụng bộ nhớ hiệu quả.

13. Lambda expression trong C# là gì?

A. Một loại vòng lặp mới trong C#.
B. Một anonymous function (hàm vô danh) có thể được sử dụng ở bất cứ đâu mà delegate type được mong đợi.
C. Một cách để định nghĩa interface.
D. Một kỹ thuật để xử lý lỗi.

14. Sự khác biệt chính giữa 'is′ và 'as′ operator trong C# là gì?

A. 'is′ dùng để kiểm tra kiểu và ném ngoại lệ nếu không đúng, 'as′ trả về null nếu không đúng kiểu.
B. 'is′ chỉ kiểm tra kiểu, 'as′ vừa kiểm tra kiểu vừa thực hiện chuyển đổi kiểu nếu thành công, trả về null nếu không.
C. 'is′ dùng cho value type, 'as′ dùng cho reference type.
D. 'is′ nhanh hơn 'as′ trong mọi trường hợp.

15. Phương thức mở rộng (Extension method) trong C# cho phép làm gì?

A. Thêm phương thức mới vào một lớp đã tồn tại mà không cần sửa đổi mã nguồn của lớp đó.
B. Thay thế phương thức hiện có của một lớp bằng một phương thức mới.
C. Tạo ra một lớp con từ một lớp đã tồn tại.
D. Giới hạn quyền truy cập vào các phương thức của một lớp.

16. Generics trong C# giúp giải quyết vấn đề gì?

A. Vấn đề về bảo mật dữ liệu.
B. Vấn đề về hiệu suất khi làm việc với kiểu dữ liệu object.
C. Vấn đề về type safety (an toàn kiểu dữ liệu) và tái sử dụng mã.
D. Vấn đề về quản lý bộ nhớ.

17. NuGet Package Manager dùng để làm gì trong phát triển .NET?

A. Biên dịch mã nguồn thành mã máy.
B. Quản lý và cài đặt các thư viện và công cụ bên ngoài vào dự án .NET.
C. Gỡ lỗi ứng dụng .NET.
D. Triển khai ứng dụng .NET lên server.

18. Null-coalescing operator (??) trong C# dùng để làm gì?

A. Kiểm tra xem một biến có phải là null hay không và ném ra ngoại lệ nếu đúng.
B. Cung cấp giá trị mặc định cho một biểu thức nếu biểu thức đó là null.
C. Gán giá trị null cho một biến.
D. So sánh hai biến xem có bằng null hay không.

19. Reflection trong .NET cho phép làm gì?

A. Tối ưu hóa hiệu suất mã.
B. Kiểm tra metadata và thông tin kiểu của assembly, module, và type tại runtime.
C. Biên dịch mã nguồn sang mã máy.
D. Quản lý bộ nhớ tự động.

20. Razor Pages trong ASP.NET Core là gì?

A. Một engine view thay thế cho Razor View Engine.
B. Một mô hình phát triển web page-centric, nơi mỗi trang Razor (.cshtml) có logic xử lý riêng (page model).
C. Một framework để phát triển API web.
D. Một hệ thống quản lý nội dung (CMS).

21. LINQ (Language Integrated Query) trong .NET dùng để làm gì?

A. Thiết kế giao diện người dùng.
B. Truy vấn và thao tác dữ liệu từ nhiều nguồn khác nhau (như collection, database, XML…).
C. Quản lý bộ nhớ tự động.
D. Xử lý bất đồng bộ.

22. Boxing và Unboxing trong C# là gì?

A. Kỹ thuật nén và giải nén dữ liệu để tiết kiệm bộ nhớ.
B. Quá trình chuyển đổi giữa value type và reference type.
C. Cơ chế bảo mật để mã hóa và giải mã dữ liệu.
D. Cách tạo và hủy đối tượng trong .NET.

23. Unit testing là gì và tại sao nó quan trọng trong phát triển phần mềm .NET?

A. Một loại kiểm thử hệ thống để kiểm tra toàn bộ ứng dụng.
B. Kiểm thử từng đơn vị (unit) nhỏ nhất của mã (ví dụ: phương thức, lớp) để đảm bảo chúng hoạt động đúng như mong đợi.
C. Kiểm thử giao diện người dùng.
D. Kiểm thử hiệu suất ứng dụng.

24. C# records (từ C# 9 trở lên) có gì khác biệt so với class?

A. Records là value type, classes là reference type.
B. Records được thiết kế chủ yếu để chứa dữ liệu bất biến (immutable data), có sẵn các tính năng như equality và printing dựa trên giá trị.
C. Records không hỗ trợ kế thừa.
D. Records có hiệu suất kém hơn classes.

25. Trong .NET, Common Language Runtime (CLR) chịu trách nhiệm chính cho điều gì?

A. Biên dịch mã nguồn C# thành mã máy.
B. Quản lý bộ nhớ và thực thi mã .NET.
C. Cung cấp các thư viện lớp cơ sở cho .NET.
D. Xử lý giao diện người dùng trong ứng dụng WPF.

26. Finalizer (destructor trong C#) được sử dụng để làm gì?

A. Giải phóng bộ nhớ ngay lập tức.
B. Thực hiện các công việc dọn dẹp tài nguyên không được quản lý (unmanaged resources) trước khi đối tượng bị thu hồi bởi Garbage Collector.
C. Khởi tạo giá trị cho các trường của đối tượng.
D. Ngăn chặn đối tượng bị thu hồi bởi Garbage Collector.

27. Interface trong C# có thể chứa thành phần nào sau đây?

A. Trường (fields) và thuộc tính (properties) có giá trị khởi tạo.
B. Phương thức có thân (method implementations).
C. Sự kiện (events), phương thức (methods), thuộc tính (properties), và indexers.
D. Lớp lồng nhau (nested classes).

28. Dependency Injection (DI) là gì và lợi ích chính của nó trong .NET là gì?

A. Một kỹ thuật để tối ưu hóa hiệu suất ứng dụng.
B. Một mẫu thiết kế giúp giảm sự phụ thuộc giữa các thành phần của ứng dụng, tăng tính module hóa và dễ bảo trì.
C. Một phương pháp để quản lý bộ nhớ hiệu quả hơn.
D. Một cách để tăng cường bảo mật cho ứng dụng.

29. Kestrel trong ASP.NET Core là gì?

A. Một ngôn ngữ lập trình web.
B. Một web server đa nền tảng, mã nguồn mở, mặc định cho ASP.NET Core.
C. Một framework JavaScript cho frontend.
D. Một hệ thống quản lý cơ sở dữ liệu.

30. Sự khác biệt chính giữa .NET Framework và .NET (.NET Core trở đi) là gì?

A. .NET Framework là mã nguồn mở, .NET thì không.
B. .NET Framework chỉ chạy trên Windows, .NET là đa nền tảng (cross-platform).
C. .NET Framework hỗ trợ phát triển web, .NET thì không.
D. .NET Framework có hiệu suất cao hơn .NET.

1 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

1. Kiểu dữ liệu value type và reference type khác nhau cơ bản ở điểm nào trong .NET?

2 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

2. Attribute trong C# được sử dụng để làm gì?

3 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

3. Delegate trong C# là gì?

4 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

4. Entity Framework Core (EF Core) là gì và vai trò của nó trong phát triển .NET?

5 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

5. Trong ASP.NET Core, Middleware là gì?

6 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

6. Trong C#, từ khóa nào được sử dụng để định nghĩa một lớp kế thừa từ lớp khác?

7 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

7. Garbage Collection (GC) trong .NET hoạt động như thế nào?

8 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

8. Expression-bodied members trong C# là gì?

9 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

9. Async và Await trong C# được sử dụng để làm gì?

10 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

10. Event trong C# là gì và cơ chế hoạt động như thế nào?

11 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

11. IActionResult trong ASP.NET Core dùng để làm gì?

12 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

12. Dependency Inversion Principle (DIP) là gì và tại sao nó quan trọng trong lập trình hướng đối tượng?

13 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

13. Lambda expression trong C# là gì?

14 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

14. Sự khác biệt chính giữa `is′ và `as′ operator trong C# là gì?

15 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

15. Phương thức mở rộng (Extension method) trong C# cho phép làm gì?

16 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

16. Generics trong C# giúp giải quyết vấn đề gì?

17 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

17. NuGet Package Manager dùng để làm gì trong phát triển .NET?

18 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

18. Null-coalescing operator (??) trong C# dùng để làm gì?

19 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

19. Reflection trong .NET cho phép làm gì?

20 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

20. Razor Pages trong ASP.NET Core là gì?

21 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

21. LINQ (Language Integrated Query) trong .NET dùng để làm gì?

22 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

22. Boxing và Unboxing trong C# là gì?

23 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

23. Unit testing là gì và tại sao nó quan trọng trong phát triển phần mềm .NET?

24 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

24. C# records (từ C# 9 trở lên) có gì khác biệt so với class?

25 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

25. Trong .NET, Common Language Runtime (CLR) chịu trách nhiệm chính cho điều gì?

26 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

26. Finalizer (destructor trong C#) được sử dụng để làm gì?

27 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

27. Interface trong C# có thể chứa thành phần nào sau đây?

28 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

28. Dependency Injection (DI) là gì và lợi ích chính của nó trong .NET là gì?

29 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

29. Kestrel trong ASP.NET Core là gì?

30 / 30

Category: Lập trình .NET

Tags: Bộ đề 8

30. Sự khác biệt chính giữa .NET Framework và .NET (.NET Core trở đi) là gì?