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

1

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é!!!


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

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

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

A. Kiểm thử hiệu năng của ứng dụng
B. Kiểm thử từng đơn vị (unit) nhỏ nhất của code (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 (UI)
D. Kiểm thử tích hợp giữa các hệ thống khác nhau

2. Interface và Abstract Class trong C# giống và khác nhau ở điểm nào?

A. Interface có thể chứa implementation, Abstract Class thì không
B. Class có thể kế thừa nhiều Interface nhưng chỉ có thể kế thừa một Abstract Class
C. Interface dùng cho IS-A relationship, Abstract Class dùng cho HAS-A relationship
D. Interface định nghĩa hành vi, Abstract Class định nghĩa trạng thái

3. Chức năng chính của Garbage Collector (GC) trong .NET CLR là gì?

A. Biên dịch mã IL thành mã máy
B. Quản lý và cấp phát bộ nhớ cho ứng dụng
C. Tự động thu hồi bộ nhớ không còn được sử dụng bởi ứng dụng
D. Kiểm tra và xử lý lỗi trong quá trình thực thi

4. Namespace trong C# và .NET Framework có mục đích chính là gì?

A. Tăng tốc độ biên dịch mã nguồn
B. Quản lý bộ nhớ hiệu quả hơn
C. Tổ chức và phân loại các lớp, interface, struct,... để tránh xung đột tên
D. Cải thiện hiệu năng thực thi ứng dụng

5. Lambda expressions trong C# là gì và thường được sử dụng ở đâu?

A. Một loại vòng lặp mới trong C#
B. Anonymous functions (hàm vô danh) ngắn gọn, thường được dùng với delegates và LINQ
C. Cách định nghĩa interface nhanh chóng
D. Cách tạo ra các biến global

6. CLR (Common Language Runtime) trong .NET Framework đóng vai trò 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ã IL (Intermediate Language)
C. Cung cấp thư viện lớp cơ sở cho .NET
D. Xử lý giao diện người dùng trong ứng dụng web

7. Razor Pages và MVC (Model-View-Controller) là hai mô hình phát triển web trong ASP.NET Core. Sự khác biệt chính giữa chúng là gì?

A. Razor Pages chỉ dành cho các ứng dụng nhỏ, MVC cho ứng dụng lớn
B. Razor Pages tập trung vào page-centric development, MVC tập trung vào application-centric development với sự tách biệt rõ ràng
C. Razor Pages nhanh hơn MVC
D. MVC dễ học hơn Razor Pages

8. Finalizers (Destructors) trong C# được sử dụng để làm gì và khi nào nên sử dụng chúng?

A. Giải phóng bộ nhớ ngay lập tức khi object không còn được sử dụng
B. Thực hiện các tác vụ cleanup tài nguyên unmanaged (ví dụ: file handles, database connections) khi object bị garbage collected
C. Khởi tạo giá trị cho các biến thành viên
D. Quản lý ngoại lệ

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

A. Một thành phần để tạo ra giao diện người dùng (UI)
B. Một pipeline xử lý request, mỗi middleware thực hiện một công việc cụ thể trên request và response
C. Một cơ chế để quản lý session và cookies
D. Một công cụ để debug ứng dụng web

10. NuGet là gì và tại sao nó quan trọng trong phát triển .NET?

A. Một công cụ để biên dịch mã nguồn .NET
B. Một package manager cho .NET, giúp quản lý và chia sẻ các thư viện và công cụ
C. Một framework để xây dựng ứng dụng desktop
D. Một hệ thống quản lý version control cho .NET projects

11. Extension methods trong C# cho phép làm gì?

A. Thay đổi hành vi của các lớp đã có sẵn
B. Thêm phương thức mới vào các lớp đã có sẵn mà không cần sửa đổi mã nguồn của lớp đó
C. Tạo ra các lớp kế thừa từ lớp sealed
D. Tăng hiệu suất thực thi của ứng dụng

12. Serialization và Deserialization trong .NET là gì và tại sao chúng cần thiết?

A. Serialization là mã hóa dữ liệu, Deserialization là giải mã dữ liệu
B. Serialization là chuyển đổi object sang một định dạng có thể lưu trữ hoặc truyền tải (ví dụ: JSON, XML, binary), Deserialization là quá trình ngược lại
C. Serialization là nén dữ liệu, Deserialization là giải nén dữ liệu
D. Serialization và Deserialization chỉ cần thiết cho ứng dụng web

13. Sự khác biệt chính giữa `==` và `.Equals()` khi so sánh các đối tượng trong C# là gì?

A. `==` so sánh giá trị, `.Equals()` so sánh tham chiếu
B. `==` so sánh tham chiếu, `.Equals()` so sánh giá trị (mặc định cho reference type, có thể override để so sánh giá trị)
C. Cả hai đều so sánh giá trị
D. Cả hai đều so sánh tham chiếu

14. LINQ (Language Integrated Query) trong .NET Framework cung cấp khả năng gì?

A. Thiết kế giao diện người dùng
B. Truy vấn dữ liệu từ nhiều nguồn khác nhau (collections, databases, XML,...) một cách thống nhất
C. Quản lý phiên làm việc (session) trong ứng dụng web
D. Xây dựng các dịch vụ web RESTful

15. Sự khác biệt giữa `List` và `IEnumerable` trong C# là gì?

A. `List` là read-only, `IEnumerable` là read-write
B. `List` là concrete type, `IEnumerable` là interface, `List` implements `IEnumerable`
C. Cả hai đều là interface
D. `IEnumerable` nhanh hơn `List`

16. 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 được lưu trên heap, reference type trên stack
B. Value type chứa giá trị trực tiếp, reference type chứa tham chiếu đến giá trị
C. Value type có thể null, reference type không thể null
D. Value type được định nghĩa bởi người dùng, reference type là kiểu dựng sẵn

17. Giải thích ngắn gọn về cơ chế hoạt động của Event trong C#.

A. Event là một loại delegate đặc biệt, cho phép một object thông báo cho các object khác khi có sự kiện xảy ra, theo mô hình publisher-subscriber
B. Event là một cách để tạo ra các luồng (threads) mới
C. Event là một cơ chế quản lý bộ nhớ
D. Event dùng để định nghĩa giao diện người dùng

18. Sự khác biệt giữa `StringBuilder` và `string` trong C# là gì, và khi nào nên sử dụng `StringBuilder`?

A. `string` là mutable, `StringBuilder` là immutable
B. `string` là value type, `StringBuilder` là reference type
C. `string` là immutable, `StringBuilder` là mutable và nên dùng khi thực hiện nhiều thao tác chuỗi
D. `string` nhanh hơn `StringBuilder` trong mọi trường hợp

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

A. Tối ưu hóa hiệu suất ứng dụng
B. Kiểm tra và thao tác metadata của types, assemblies, modules, members (fields, properties, methods,...) tại runtime
C. Xây dựng giao diện người dùng động
D. Quản lý bộ nhớ tự động

20. Attribute trong C# được dùng để làm gì?

A. Tạo ra các biến static
B. Thêm metadata (thông tin mô tả) vào code, có thể được đọc và xử lý bởi runtime hoặc các công cụ khác
C. Định nghĩa các phương thức ảo
D. Kiểm soát truy cập đến các thành viên lớp

21. Entity Framework Core (EF Core) là gì và nó giúp ích gì trong phát triển ứng dụng .NET?

A. Một framework để xây dựng giao diện người dùng web
B. Một ORM (Object-Relational Mapper) giúp tương tác với cơ sở dữ liệu bằng cách sử dụng các đối tượng C# thay vì viết SQL trực tiếp
C. Một thư viện để xử lý XML và JSON
D. Một công cụ để triển khai ứng dụng .NET lên server

22. Boxing và Unboxing có thể gây ra vấn đề gì về hiệu suất trong .NET?

A. Không ảnh hưởng đến hiệu suất
B. Gây ra overhead hiệu suất do việc chuyển đổi giữa value type và reference type, đặc biệt khi thực hiện nhiều lần
C. Tăng hiệu suất do tối ưu hóa bộ nhớ
D. Chỉ ảnh hưởng đến hiệu suất trong ứng dụng web

23. Đâu là mục đích chính của Dependency Inversion Principle (DIP) trong SOLID principles?

A. Mỗi class chỉ nên có một lý do để thay đổi
B. Các lớp dẫn xuất nên có thể thay thế cho lớp cơ sở của chúng
C. Các module cấp cao không nên phụ thuộc vào các module cấp thấp. Cả hai nên phụ thuộc vào abstractions
D. Interface-specific clients tốt hơn là general-purpose interfaces

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

A. Định nghĩa lớp trừu tượng
B. Tạo ra các biến toàn cục
C. Tham chiếu đến phương thức và cho phép gọi phương thức một cách gián tiếp
D. Quản lý ngoại lệ trong chương trình

25. Generics trong C# cung cấp lợi ích gì?

A. Tăng tốc độ biên dịch
B. Cho phép viết code có thể tái sử dụng với nhiều kiểu dữ liệu khác nhau mà vẫn đảm bảo type safety và hiệu suất
C. Giảm dung lượng bộ nhớ sử dụng
D. Cải thiện khả năng bảo mật ứng dụng

26. Boxing và Unboxing trong C# là gì và khi nào chúng xảy ra?

A. Boxing là chuyển đổi reference type sang value type, Unboxing ngược lại
B. Boxing là chuyển đổi value type sang reference type, Unboxing ngược lại
C. Boxing và Unboxing xảy ra khi ép kiểu tường minh
D. Boxing và Unboxing xảy ra khi sử dụng generics

27. Trong .NET, ngôn ngữ lập trình chính được sử dụng để phát triển ứng dụng là gì?

A. Java
B. Python
C. C#
D. JavaScript

28. Trong ngữ cảnh bảo mật .NET, Cookie Authentication và JWT (JSON Web Token) Authentication khác nhau như thế nào?

A. Cookie Authentication chỉ dùng cho web, JWT cho mobile
B. Cookie Authentication là stateful (server-side session), JWT là stateless (client-side token)
C. Cookie Authentication an toàn hơn JWT
D. JWT dễ triển khai hơn Cookie Authentication

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

A. Một design pattern để tạo ra các singleton objects
B. Một kỹ thuật để giảm coupling (sự phụ thuộc) giữa các components, tăng tính modularity và khả năng test của ứng dụng
C. Một phương pháp để tối ưu hóa hiệu suất bộ nhớ
D. Một cách để quản lý phiên làm việc (session) trong ứng dụng web

30. Async và Await trong C# được sử dụng để giải quyết vấn đề gì?

A. Tăng tốc độ tính toán song song
B. Xử lý đa luồng để cải thiện hiệu suất CPU
C. Thực hiện các hoạt động I/O không đồng bộ (non-blocking) để tránh treo ứng dụng UI
D. Bảo mật ứng dụng web

1 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

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

2 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

2. Interface và Abstract Class trong C# giống và khác nhau ở điểm nào?

3 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

3. Chức năng chính của Garbage Collector (GC) trong .NET CLR là gì?

4 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

4. Namespace trong C# và .NET Framework có mục đích chính là gì?

5 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

5. Lambda expressions trong C# là gì và thường được sử dụng ở đâu?

6 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

6. CLR (Common Language Runtime) trong .NET Framework đóng vai trò gì?

7 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

7. Razor Pages và MVC (Model-View-Controller) là hai mô hình phát triển web trong ASP.NET Core. Sự khác biệt chính giữa chúng là gì?

8 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

8. Finalizers (Destructors) trong C# được sử dụng để làm gì và khi nào nên sử dụng chúng?

9 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

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

10 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

10. NuGet là gì và tại sao nó quan trọng trong phát triển .NET?

11 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

11. Extension methods trong C# cho phép làm gì?

12 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

12. Serialization và Deserialization trong .NET là gì và tại sao chúng cần thiết?

13 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

13. Sự khác biệt chính giữa '==' và '.Equals()' khi so sánh các đối tượng trong C# là gì?

14 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

14. LINQ (Language Integrated Query) trong .NET Framework cung cấp khả năng gì?

15 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

15. Sự khác biệt giữa `List` và `IEnumerable` trong C# là gì?

16 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

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

17 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

17. Giải thích ngắn gọn về cơ chế hoạt động của Event trong C#.

18 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

18. Sự khác biệt giữa `StringBuilder` và `string` trong C# là gì, và khi nào nên sử dụng `StringBuilder`?

19 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

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

20 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

20. Attribute trong C# được dùng để làm gì?

21 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

21. Entity Framework Core (EF Core) là gì và nó giúp ích gì trong phát triển ứng dụng .NET?

22 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

22. Boxing và Unboxing có thể gây ra vấn đề gì về hiệu suất trong .NET?

23 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

23. Đâu là mục đích chính của Dependency Inversion Principle (DIP) trong SOLID principles?

24 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

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

25 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

25. Generics trong C# cung cấp lợi ích gì?

26 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

26. Boxing và Unboxing trong C# là gì và khi nào chúng xảy ra?

27 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

27. Trong .NET, ngôn ngữ lập trình chính được sử dụng để phát triển ứng dụng là gì?

28 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

28. Trong ngữ cảnh bảo mật .NET, Cookie Authentication và JWT (JSON Web Token) Authentication khác nhau như thế nào?

29 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

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

30 / 30

Category: Đề thi, bài tập trắc nghiệm online Lập trình .NET

Tags: Bộ đề 4

30. Async và Await trong C# được sử dụng để giải quyết vấn đề gì?