Đề 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 Đăng vào 2 Tháng 5, 2026 bởi admin Đề 4 – Bài tập, đề thi 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 Số câu30Quiz ID11759 Làm bài Câu 1 1. Unit testing là gì và tại sao nó quan trọng trong phát triển phần mềm .NET? A A. Kiểm thử hiệu năng của ứng dụng B 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 C. Kiểm thử giao diện người dùng (UI) D D. Kiểm thử tích hợp giữa các hệ thống khác nhau Câu 2 2. Interface và Abstract Class trong C# giống và khác nhau ở điểm nào? A A. Interface có thể chứa implementation, Abstract Class thì không B B. Class có thể kế thừa nhiều Interface nhưng chỉ có thể kế thừa một Abstract Class C C. Interface dùng cho IS-A relationship, Abstract Class dùng cho HAS-A relationship D D. Interface định nghĩa hành vi, Abstract Class định nghĩa trạng thái Câu 3 3. Chức năng chính của Garbage Collector (GC) trong .NET CLR là gì? A A. Biên dịch mã IL thành mã máy B B. Quản lý và cấp phát bộ nhớ cho ứng dụng C C. Tự động thu hồi bộ nhớ không còn được sử dụng bởi ứng dụng D D. Kiểm tra và xử lý lỗi trong quá trình thực thi Câu 4 4. Namespace trong C# và .NET Framework có mục đích chính là gì? A A. Tăng tốc độ biên dịch mã nguồn B B. Quản lý bộ nhớ hiệu quả hơn C C. Tổ chức và phân loại các lớp, interface, struct,... để tránh xung đột tên D D. Cải thiện hiệu năng thực thi ứng dụng Câu 5 5. Lambda expressions trong C# là gì và thường được sử dụng ở đâu? A A. Một loại vòng lặp mới trong C# B B. Anonymous functions (hàm vô danh) ngắn gọn, thường được dùng với delegates và LINQ C C. Cách định nghĩa interface nhanh chóng D D. Cách tạo ra các biến global Câu 6 6. CLR (Common Language Runtime) trong .NET Framework đóng vai trò gì? A A. Biên dịch mã nguồn C# thành mã máy B B. Quản lý bộ nhớ và thực thi mã IL (Intermediate Language) C C. Cung cấp thư viện lớp cơ sở cho .NET D D. Xử lý giao diện người dùng trong ứng dụng web Câu 7 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 A. Razor Pages chỉ dành cho các ứng dụng nhỏ, MVC cho ứng dụng lớn B 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 C. Razor Pages nhanh hơn MVC D D. MVC dễ học hơn Razor Pages Câu 8 8. Finalizers (Destructors) trong C# được sử dụng để làm gì và khi nào nên sử dụng chúng? A A. Giải phóng bộ nhớ ngay lập tức khi object không còn được sử dụng B 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 C. Khởi tạo giá trị cho các biến thành viên D D. Quản lý ngoại lệ Câu 9 9. Trong ASP.NET Core, Middleware là gì? A A. Một thành phần để tạo ra giao diện người dùng (UI) B 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 C. Một cơ chế để quản lý session và cookies D D. Một công cụ để debug ứng dụng web Câu 10 10. NuGet là gì và tại sao nó quan trọng trong phát triển .NET? A A. Một công cụ để biên dịch mã nguồn .NET B 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 C. Một framework để xây dựng ứng dụng desktop D D. Một hệ thống quản lý version control cho .NET projects Câu 11 11. Extension methods trong C# cho phép làm gì? A A. Thay đổi hành vi của các lớp đã có sẵn B 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 C. Tạo ra các lớp kế thừa từ lớp sealed D D. Tăng hiệu suất thực thi của ứng dụng Câu 12 12. Serialization và Deserialization trong .NET là gì và tại sao chúng cần thiết? A A. Serialization là mã hóa dữ liệu, Deserialization là giải mã dữ liệu B 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 C. Serialization là nén dữ liệu, Deserialization là giải nén dữ liệu D D. Serialization và Deserialization chỉ cần thiết cho ứng dụng web Câu 13 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 A. '==' so sánh giá trị, '.Equals()' so sánh tham chiếu B 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. Cả hai đều so sánh giá trị D D. Cả hai đều so sánh tham chiếu Câu 14 14. LINQ (Language Integrated Query) trong .NET Framework cung cấp khả năng gì? A A. Thiết kế giao diện người dùng B 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 C. Quản lý phiên làm việc (session) trong ứng dụng web D D. Xây dựng các dịch vụ web RESTful Câu 15 15. Sự khác biệt giữa `List` và `IEnumerable` trong C# là gì? A A. `List` là read-only, `IEnumerable` là read-write B B. `List` là concrete type, `IEnumerable` là interface, `List` implements `IEnumerable` C C. Cả hai đều là interface D D. `IEnumerable` nhanh hơn `List` Câu 16 16. Kiểu dữ liệu value type và reference type khác nhau cơ bản ở điểm nào trong .NET? A A. Value type được lưu trên heap, reference type trên stack B B. Value type chứa giá trị trực tiếp, reference type chứa tham chiếu đến giá trị C C. Value type có thể null, reference type không thể null D D. Value type được định nghĩa bởi người dùng, reference type là kiểu dựng sẵn Câu 17 17. Giải thích ngắn gọn về cơ chế hoạt động của Event trong C#. A 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 B. Event là một cách để tạo ra các luồng (threads) mới C C. Event là một cơ chế quản lý bộ nhớ D D. Event dùng để định nghĩa giao diện người dùng Câu 18 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 A. `string` là mutable, `StringBuilder` là immutable B B. `string` là value type, `StringBuilder` là reference type C 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 D. `string` nhanh hơn `StringBuilder` trong mọi trường hợp Câu 19 19. Reflection trong .NET cho phép làm gì? A A. Tối ưu hóa hiệu suất ứng dụng B B. Kiểm tra và thao tác metadata của types, assemblies, modules, members (fields, properties, methods,...) tại runtime C C. Xây dựng giao diện người dùng động D D. Quản lý bộ nhớ tự động Câu 20 20. Attribute trong C# được dùng để làm gì? A A. Tạo ra các biến static B 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 C. Định nghĩa các phương thức ảo D D. Kiểm soát truy cập đến các thành viên lớp Câu 21 21. Entity Framework Core (EF Core) là gì và nó giúp ích gì trong phát triển ứng dụng .NET? A A. Một framework để xây dựng giao diện người dùng web B 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 C. Một thư viện để xử lý XML và JSON D D. Một công cụ để triển khai ứng dụng .NET lên server Câu 22 22. Boxing và Unboxing có thể gây ra vấn đề gì về hiệu suất trong .NET? A A. Không ảnh hưởng đến hiệu suất B 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 C. Tăng hiệu suất do tối ưu hóa bộ nhớ D D. Chỉ ảnh hưởng đến hiệu suất trong ứng dụng web Câu 23 23. Đâu là mục đích chính của Dependency Inversion Principle (DIP) trong SOLID principles? A A. Mỗi class chỉ nên có một lý do để thay đổi B 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á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 D. Interface-specific clients tốt hơn là general-purpose interfaces Câu 24 24. Delegates trong C# được sử dụng để làm gì? A A. Định nghĩa lớp trừu tượng B B. Tạo ra các biến toàn cụ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 D. Quản lý ngoại lệ trong chương trình Câu 25 25. Generics trong C# cung cấp lợi ích gì? A A. Tăng tốc độ biên dịch B 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 C. Giảm dung lượng bộ nhớ sử dụng D D. Cải thiện khả năng bảo mật ứng dụng Câu 26 26. Boxing và Unboxing trong C# là gì và khi nào chúng xảy ra? A A. Boxing là chuyển đổi reference type sang value type, Unboxing ngược lại B B. Boxing là chuyển đổi value type sang reference type, Unboxing ngược lại C C. Boxing và Unboxing xảy ra khi ép kiểu tường minh D D. Boxing và Unboxing xảy ra khi sử dụng generics Câu 27 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 A. Java B B. Python C C. C# D D. JavaScript Câu 28 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 A. Cookie Authentication chỉ dùng cho web, JWT cho mobile B B. Cookie Authentication là stateful (server-side session), JWT là stateless (client-side token) C C. Cookie Authentication an toàn hơn JWT D D. JWT dễ triển khai hơn Cookie Authentication Câu 29 29. Dependency Injection (DI) là gì và lợi ích chính của nó trong .NET là gì? A A. Một design pattern để tạo ra các singleton objects B 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 C. Một phương pháp để tối ưu hóa hiệu suất bộ nhớ D D. Một cách để quản lý phiên làm việc (session) trong ứng dụng web Câu 30 30. Async và Await trong C# được sử dụng để giải quyết vấn đề gì? A A. Tăng tốc độ tính toán song song B B. Xử lý đa luồng để cải thiện hiệu suất CPU C 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 D. Bảo mật ứng dụng web Đề 3 – Bài tập, đề thi trắc nghiệm online Thị trường và định chế tài chính Đề 5 – Bài tập, đề thi trắc nghiệm online Phát triển ứng dụng di động