Đề thi, bài tập trắc nghiệm online Lập trình .NETĐề 7 – 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 Đề 7 – Bài tập, đề thi trắc nghiệm online Lập trình .NET Đề 7 – Bài tập, đề thi trắc nghiệm online Lập trình .NET Số câu30Quiz ID11762 Làm bài Câu 1 1. Sự khác biệt giữa `StringBuilder` và `string` trong C# là gì? A A. `string` là mutable (có thể thay đổi), `StringBuilder` là immutable (không thể thay đổi). B B. `string` là immutable (không thể thay đổi), `StringBuilder` là mutable (có thể thay đổi). C C. `string` dùng để lưu trữ văn bản ngắn, `StringBuilder` dùng cho văn bản dài. D D. `string` có hiệu suất tốt hơn `StringBuilder` khi thao tác với chuỗi. Câu 2 2. Trong .NET, Common Language Runtime (CLR) chịu trách nhiệm chính cho điều gì? A A. Biên dịch mã nguồn C# thành mã máy. B B. Quản lý bộ nhớ, thực thi mã, và cung cấp các dịch vụ runtime. C C. Tối ưu hóa hiệu suất ứng dụng .NET. D D. Cung cấp các công cụ phát triển ứng dụng. Câu 3 3. LINQ (Language Integrated Query) trong .NET dùng để làm 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 (databases, collections, XML,...). C C. Quản lý phiên bản mã nguồn. D D. Xử lý lỗi và ngoại lệ. Câu 4 4. 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 suất ứng dụng. B B. Kiểm thử từng đơn vị nhỏ nhất của code (ví dụ: method, class) để đảm bảo chúng hoạt động đúng như mong đợi. C C. Kiểm thử tích hợp giữa các module của ứng dụng. D D. Kiểm thử giao diện người dùng. Câu 5 5. `using` statement trong C# thường được dùng để làm gì? A A. Khai báo namespace để sử dụng các class trong namespace đó. B B. Đảm bảo tài nguyên `IDisposable` được giải phóng đúng cách sau khi sử dụng, kể cả khi có exception. C C. Nhập (import) code từ một file C# khác. D D. Định nghĩa alias cho một namespace. Câu 6 6. Ngôn ngữ lập trình chính được sử dụng để phát triển ứng dụng .NET là gì? A A. Java B B. Python C C. C# D D. C++ Câu 7 7. `virtual` và `override` keywords được sử dụng như thế nào trong C#? A A. `virtual` dùng để định nghĩa phương thức trừu tượng, `override` để triển khai phương thức trừu tượng. B B. `virtual` dùng để cho phép phương thức có thể bị ghi đè (overridden) trong class con, `override` dùng để ghi đè phương thức `virtual` trong class con. C C. `virtual` dùng để khai báo biến ảo, `override` dùng để gán giá trị cho biến ảo. D D. `virtual` và `override` dùng để quản lý bộ nhớ ảo. Câu 8 8. Extension methods trong C# cho phép làm gì? A A. Thêm phương thức mới vào một class đã tồn tại mà không cần sửa đổi class đó. B B. Thay đổi implementation của phương thức đã tồn tại trong một class. C C. Tạo ra class con từ một class đã tồn tại. D D. Định nghĩa interface cho một class đã tồn tại. Câu 9 9. Đâu là sự khác biệt chính giữa .NET Framework và .NET (.NET Core và các phiên bản mới hơn)? A A. .NET Framework là mã nguồn mở, còn .NET thì đóng. B B. .NET Framework chỉ chạy trên Windows, còn .NET là đa nền tảng (cross-platform). C C. .NET Framework hỗ trợ nhiều loại ứng dụng hơn .NET. D D. .NET Framework có hiệu suất tốt hơn .NET. Câu 10 10. Garbage Collection (GC) trong .NET hoạt động như thế nào? A A. GC là một quá trình thủ công, lập trình viên phải tự gọi GC để giải phóng bộ nhớ. B B. GC là một quá trình tự động, định kỳ kiểm tra và giải phóng bộ nhớ không còn được sử dụng bởi ứng dụng. C C. GC chỉ hoạt động khi ứng dụng hết bộ nhớ. D D. GC chỉ giải phóng bộ nhớ cho các đối tượng kiểu value type. Câu 11 11. Entity Framework Core (EF Core) là một ORM (Object-Relational Mapper) cho .NET. ORM có vai trò gì? A A. Chuyển đổi dữ liệu từ database sang định dạng XML. B B. Ánh xạ giữa các đối tượng trong code và các bảng trong database, giúp thao tác database dễ dàng hơn. C C. Tạo ra database từ code C#. D D. Tối ưu hóa truy vấn SQL. Câu 12 12. Trong C#, từ khóa `async` và `await` được sử dụng để làm gì? A A. Tạo ra các luồng (threads) mới để thực hiện song song. B B. Xử lý bất đồng bộ (asynchronous operations) mà không chặn luồng chính. C C. Tăng tốc độ thực thi mã tuần tự. D D. Quản lý bộ nhớ cho các đối tượng lớn. Câu 13 13. 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. Xảy ra khi ép kiểu giữa chúng. B B. Boxing là chuyển đổi value type sang object (reference type), Unboxing là chuyển đổi ngược lại. Xảy ra khi value type cần được đối xử như object. C C. Boxing và Unboxing là quá trình tối ưu hóa bộ nhớ cho value type. D D. Boxing và Unboxing liên quan đến việc quản lý exception trong .NET. Câu 14 14. `sealed` class trong C# có nghĩa là gì? A A. Class không thể được khởi tạo (instantiated). B B. Class không thể được kế thừa (inherited). C C. Class chỉ có thể chứa static members. D D. Class chỉ có thể được truy cập trong cùng assembly. Câu 15 15. Serialization và Deserialization trong .NET là gì? 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 thành một định dạng có thể lưu trữ hoặc truyền đ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 liên quan đến việc bảo mật dữ liệu. Câu 16 16. Interface và Abstract Class trong C# có điểm chung và khác biệt gì? A A. Cả hai đều không thể khởi tạo trực tiếp, nhưng interface có thể chứa implementation còn abstract class thì không. B B. Cả hai đều định nghĩa hợp đồng, nhưng class có thể kế thừa nhiều interface, chỉ kế thừa một abstract class. C C. Interface có thể chứa các trường (fields), abstract class thì không. D D. Interface hỗ trợ đa kế thừa, abstract class thì không. Câu 17 17. Reflection trong .NET cho phép làm gì? A A. Tối ưu hóa hiệu suất ứng dụng bằng cách biên dịch mã runtime. B B. Kiểm tra metadata của các types, assemblies, modules và tạo mới instance của types tại runtime. C C. Tạo ra giao diện người dùng đồ họa (GUI) cho ứng dụng. D D. Quản lý bộ nhớ và garbage collection. Câu 18 18. Dependency Injection (DI) là gì và lợi ích chính của nó trong .NET là gì? A A. Một kỹ thuật để giảm sự phụ thuộc giữa các class, tăng tính module hóa và khả năng kiểm thử. B B. Một phương pháp để tối ưu hóa hiệu suất ứng dụng. C C. Một cách để quản lý bộ nhớ hiệu quả hơn. D D. Một công cụ để tự động sinh mã. Câu 19 19. Attribute trong C# được sử dụng để làm gì? A A. Định nghĩa kiểu dữ liệu mới. B B. Cung cấp metadata (thông tin mô tả) cho code, có thể được đọc bởi runtime hoặc các công cụ khác. C C. Thực hiện kiểm soát truy cập (access control) cho các thành viên class. D D. Tối ưu hóa hiệu suất biên dịch. Câu 20 20. Razor Pages trong ASP.NET Core là gì? A A. Một framework để xây dựng ứng dụng web single-page (SPA). B B. Một mô hình phát triển web page-centric, đơn giản hơn so với MVC, phù hợp cho các ứng dụng web đơn giản. C C. Một công cụ để tạo ra API web RESTful. D D. Một thư viện JavaScript cho .NET. Câu 21 21. Đâu là nhược điểm chính của việc sử dụng ViewState trong ASP.NET Web Forms? A A. Tăng độ phức tạp của code server-side. B B. Giảm hiệu suất do tăng kích thước trang và thời gian postback. C C. Khó khăn trong việc kiểm thử unit test. D D. Hạn chế khả năng mở rộng ứng dụng. Câu 22 22. Event trong C# được xây dựng dựa trên cơ chế nào? A A. Interface. B B. Delegate. C C. Attribute. D D. Generic. Câu 23 23. NuGet Package Manager dùng để làm gì trong .NET development? A A. Quản lý phiên bản mã nguồn. B B. Quản lý các thư viện và packages bên ngoài (third-party libraries) và dependencies của chúng trong dự án .NET. C C. Triển khai ứng dụng .NET lên server. D D. Tạo ra installer cho ứng dụng .NET. Câu 24 24. Delegate trong C# là gì? A A. Một kiểu dữ liệu tham chiếu đại diện cho phương thức (method). B B. Một class trừu tượng (abstract class) dùng để kế thừa. C C. Một interface dùng để định nghĩa hợp đồng. D D. Một cấu trúc dữ liệu để lưu trữ tập hợp các giá trị. Câu 25 25. Generic trong C# giải quyết vấn đề gì? A A. Vấn đề về hiệu suất khi làm việc với các kiểu dữ liệu khác nhau. B B. Vấn đề về type safety (an toàn kiểu dữ liệu) và code reuse (tái sử dụng mã) khi làm việc với các kiểu dữ liệu khác nhau. C C. Vấn đề về quản lý bộ nhớ cho các collection. D D. Vấn đề về tương thích giữa các phiên bản .NET Framework. Câu 26 26. Trong ASP.NET Core, Middleware là gì? A A. Một thành phần để quản lý trạng thái phiên người dùng. B B. Một pipeline xử lý request HTTP, mỗi middleware có thể xử lý request và/hoặc chuyển nó cho middleware tiếp theo. C C. Một công cụ để tạo ra giao diện người dùng động. D D. Một cơ chế để bảo mật ứng dụng web. Câu 27 27. Value type và Reference type khác nhau như thế nào trong C#? A A. Value type được lưu trữ trên heap, Reference type được lưu trữ trên stack. B B. Value type lưu trữ trực tiếp giá trị, Reference type lưu trữ tham chiếu đến giá trị. C C. Value type có thể null, Reference type không thể null. D D. Value type được quản lý bởi Garbage Collector, Reference type không được quản lý. Câu 28 28. Phương thức `Dispose()` trong C# thường được sử dụng để làm gì? A A. Giải phóng bộ nhớ được quản lý bởi Garbage Collector. B B. Giải phóng tài nguyên không được quản lý (unmanaged resources) như file handles, database connections. C C. Khởi tạo lại đối tượng về trạng thái ban đầu. D D. Đánh dấu đối tượng để Garbage Collector thu gom sớm hơn. Câu 29 29. Thành phần nào của .NET Framework cho phép các ngôn ngữ khác nhau (ví dụ: C#, VB.NET) có thể tương tác với nhau? A A. Common Type System (CTS) B B. Just-In-Time (JIT) Compiler C C. Garbage Collector D D. Base Class Library (BCL) Câu 30 30. ViewState trong ASP.NET Web Forms dùng để làm gì? A A. Lưu trữ dữ liệu phiên (session) trên server. B B. Duy trì trạng thái của các control trên trang web giữa các postback. C C. Quản lý cache dữ liệu ứng dụng. D D. Xác thực người dùng. Đề 6 – Bài tập, đề thi trắc nghiệm online Thị trường và định chế tài chính Đề 8 – Bài tập, đề thi trắc nghiệm online Phát triển ứng dụng di động