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

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


Đề 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

1. Sự khác biệt giữa `StringBuilder` và `string` trong C# là gì?

A. `string` là mutable (có thể thay đổi), `StringBuilder` là immutable (không thể thay đổi).
B. `string` là immutable (không thể thay đổi), `StringBuilder` là mutable (có thể thay đổi).
C. `string` dùng để lưu trữ văn bản ngắn, `StringBuilder` dùng cho văn bản dài.
D. `string` có hiệu suất tốt hơn `StringBuilder` khi thao tác với chuỗi.

2. 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ớ, thực thi mã, và cung cấp các dịch vụ runtime.
C. Tối ưu hóa hiệu suất ứng dụng .NET.
D. Cung cấp các công cụ phát triển ứng dụng.

3. 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 dữ liệu từ nhiều nguồn khác nhau (databases, collections, XML,...).
C. Quản lý phiên bản mã nguồn.
D. Xử lý lỗi và ngoại lệ.

4. 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 suất ứng dụng.
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. Kiểm thử tích hợp giữa các module của ứng dụng.
D. Kiểm thử giao diện người dùng.

5. `using` statement trong C# thường được dùng để làm gì?

A. Khai báo namespace để sử dụng các class trong namespace đó.
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. Nhập (import) code từ một file C# khác.
D. Định nghĩa alias cho một namespace.

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. Java
B. Python
C. C#
D. C++

7. `virtual` và `override` keywords được sử dụng như thế nào trong C#?

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. `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. `virtual` dùng để khai báo biến ảo, `override` dùng để gán giá trị cho biến ảo.
D. `virtual` và `override` dùng để quản lý bộ nhớ ảo.

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

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. Thay đổi implementation của phương thức đã tồn tại trong một class.
C. Tạo ra class con từ một class đã tồn tại.
D. Định nghĩa interface cho một class đã tồn tại.

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. .NET Framework là mã nguồn mở, còn .NET thì đóng.
B. .NET Framework chỉ chạy trên Windows, còn .NET là đa nền tảng (cross-platform).
C. .NET Framework hỗ trợ nhiều loại ứng dụng hơn .NET.
D. .NET Framework có hiệu suất tốt hơn .NET.

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

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. 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. GC chỉ hoạt động khi ứng dụng hết bộ nhớ.
D. GC chỉ giải phóng bộ nhớ cho các đối tượng kiểu value type.

11. Entity Framework Core (EF Core) là một ORM (Object-Relational Mapper) cho .NET. ORM có vai trò gì?

A. Chuyển đổi dữ liệu từ database sang định dạng XML.
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. Tạo ra database từ code C#.
D. Tối ưu hóa truy vấn SQL.

12. Trong C#, từ khóa `async` và `await` được sử dụng để làm gì?

A. Tạo ra các luồng (threads) mới để thực hiện song song.
B. Xử lý bất đồng bộ (asynchronous operations) mà không chặn luồng chính.
C. Tăng tốc độ thực thi mã tuần tự.
D. Quản lý bộ nhớ cho các đối tượng lớn.

13. 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. Xảy ra khi ép kiểu giữa chúng.
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. Boxing và Unboxing là quá trình tối ưu hóa bộ nhớ cho value type.
D. Boxing và Unboxing liên quan đến việc quản lý exception trong .NET.

14. `sealed` class trong C# có nghĩa là gì?

A. Class không thể được khởi tạo (instantiated).
B. Class không thể được kế thừa (inherited).
C. Class chỉ có thể chứa static members.
D. Class chỉ có thể được truy cập trong cùng assembly.

15. Serialization và Deserialization trong .NET là gì?

A. Serialization là mã hóa dữ liệu, Deserialization là giải mã dữ liệu.
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. Serialization là nén dữ liệu, Deserialization là giải nén dữ liệu.
D. Serialization và Deserialization liên quan đến việc bảo mật dữ liệu.

16. Interface và Abstract Class trong C# có điểm chung và khác biệt gì?

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. 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. Interface có thể chứa các trường (fields), abstract class thì không.
D. Interface hỗ trợ đa kế thừa, abstract class thì không.

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

A. Tối ưu hóa hiệu suất ứng dụng bằng cách biên dịch mã runtime.
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. Tạo ra giao diện người dùng đồ họa (GUI) cho ứng dụng.
D. Quản lý bộ nhớ và garbage collection.

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

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. Một phương pháp để tối ưu hóa hiệu suất ứng dụng.
C. Một cách để quản lý bộ nhớ hiệu quả hơn.
D. Một công cụ để tự động sinh mã.

19. 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 (thông tin mô tả) cho code, có thể được đọc bởi runtime hoặc các công cụ khác.
C. Thực hiện kiểm soát truy cập (access control) cho các thành viên class.
D. Tối ưu hóa hiệu suất biên dịch.

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

A. Một framework để xây dựng ứng dụng web single-page (SPA).
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. Một công cụ để tạo ra API web RESTful.
D. Một thư viện JavaScript cho .NET.

21. Đâu là nhược điểm chính của việc sử dụng ViewState trong ASP.NET Web Forms?

A. Tăng độ phức tạp của code server-side.
B. Giảm hiệu suất do tăng kích thước trang và thời gian postback.
C. Khó khăn trong việc kiểm thử unit test.
D. Hạn chế khả năng mở rộng ứng dụng.

22. Event trong C# được xây dựng dựa trên cơ chế nào?

A. Interface.
B. Delegate.
C. Attribute.
D. Generic.

23. NuGet Package Manager dùng để làm gì trong .NET development?

A. Quản lý phiên bản mã nguồn.
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. Triển khai ứng dụng .NET lên server.
D. Tạo ra installer cho ứng dụng .NET.

24. Delegate trong C# là gì?

A. Một kiểu dữ liệu tham chiếu đại diện cho phương thức (method).
B. Một class trừu tượng (abstract class) dùng để kế thừa.
C. Một interface dùng để định nghĩa hợp đồng.
D. Một cấu trúc dữ liệu để lưu trữ tập hợp các giá trị.

25. Generic trong C# giải quyết vấn đề gì?

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. 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. Vấn đề về quản lý bộ nhớ cho các collection.
D. Vấn đề về tương thích giữa các phiên bản .NET Framework.

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

A. Một thành phần để quản lý trạng thái phiên người dùng.
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. Một công cụ để tạo ra giao diện người dùng động.
D. Một cơ chế để bảo mật ứng dụng web.

27. Value type và Reference type khác nhau như thế nào trong C#?

A. Value type được lưu trữ trên heap, Reference type được lưu trữ trên stack.
B. Value type lưu trữ trực tiếp giá trị, Reference type lưu trữ tham chiếu đến giá trị.
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ý.

28. Phương thức `Dispose()` trong C# thường được sử dụng để làm gì?

A. Giải phóng bộ nhớ được quản lý bởi Garbage Collector.
B. Giải phóng tài nguyên không được quản lý (unmanaged resources) như file handles, database connections.
C. Khởi tạo lại đối tượng về trạng thái ban đầu.
D. Đánh dấu đối tượng để Garbage Collector thu gom sớm hơn.

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. Common Type System (CTS)
B. Just-In-Time (JIT) Compiler
C. Garbage Collector
D. Base Class Library (BCL)

30. ViewState trong ASP.NET Web Forms dùng để làm gì?

A. Lưu trữ dữ liệu phiên (session) trên server.
B. Duy trì trạng thái của các control trên trang web giữa các postback.
C. Quản lý cache dữ liệu ứng dụng.
D. Xác thực người dùng.

1 / 30

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

Tags: Bộ đề 8

1. Sự khác biệt giữa `StringBuilder` và `string` trong C# là gì?

2 / 30

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

Tags: Bộ đề 8

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

3 / 30

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

Tags: Bộ đề 8

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

4 / 30

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

Tags: Bộ đề 8

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

5 / 30

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

Tags: Bộ đề 8

5. `using` statement trong C# thường được dùng để làm gì?

6 / 30

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

Tags: Bộ đề 8

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

7 / 30

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

Tags: Bộ đề 8

7. `virtual` và `override` keywords được sử dụng như thế nào trong C#?

8 / 30

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

Tags: Bộ đề 8

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

9 / 30

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

Tags: Bộ đề 8

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)?

10 / 30

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

Tags: Bộ đề 8

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

11 / 30

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

Tags: Bộ đề 8

11. Entity Framework Core (EF Core) là một ORM (Object-Relational Mapper) cho .NET. ORM có vai trò gì?

12 / 30

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

Tags: Bộ đề 8

12. Trong C#, từ khóa `async` và `await` được sử dụng để làm gì?

13 / 30

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

Tags: Bộ đề 8

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

14 / 30

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

Tags: Bộ đề 8

14. `sealed` class trong C# có nghĩa là gì?

15 / 30

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

Tags: Bộ đề 8

15. Serialization và Deserialization trong .NET là gì?

16 / 30

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

Tags: Bộ đề 8

16. Interface và Abstract Class trong C# có điểm chung và khác biệt gì?

17 / 30

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

Tags: Bộ đề 8

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

18 / 30

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

Tags: Bộ đề 8

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

19 / 30

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

Tags: Bộ đề 8

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

20 / 30

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

Tags: Bộ đề 8

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

21 / 30

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

Tags: Bộ đề 8

21. Đâu là nhược điểm chính của việc sử dụng ViewState trong ASP.NET Web Forms?

22 / 30

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

Tags: Bộ đề 8

22. Event trong C# được xây dựng dựa trên cơ chế nào?

23 / 30

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

Tags: Bộ đề 8

23. NuGet Package Manager dùng để làm gì trong .NET development?

24 / 30

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

Tags: Bộ đề 8

24. Delegate trong C# là gì?

25 / 30

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

Tags: Bộ đề 8

25. Generic trong C# giải quyết vấn đề gì?

26 / 30

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

Tags: Bộ đề 8

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

27 / 30

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

Tags: Bộ đề 8

27. Value type và Reference type khác nhau như thế nào trong C#?

28 / 30

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

Tags: Bộ đề 8

28. Phương thức `Dispose()` trong C# thường được sử dụng để làm gì?

29 / 30

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

Tags: Bộ đề 8

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?

30 / 30

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

Tags: Bộ đề 8

30. ViewState trong ASP.NET Web Forms dùng để làm gì?