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

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

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

1. Từ khóa `sealed` trong C# được sử dụng để làm gì?

A. Ngăn chặn việc một lớp hoặc phương thức bị kế thừa (overridden).
B. Bảo vệ biến thành viên khỏi bị truy cập từ bên ngoài lớp.
C. Tạo ra một lớp abstract.
D. Đảm bảo rằng một lớp chỉ có thể được khởi tạo một lần.

2. Sự khác biệt chính giữa `StringBuilder` và `string` trong C# là gì khi thao tác với chuỗi?

A. `string` là mutable, `StringBuilder` là immutable.
B. `string` tạo ra chuỗi có độ dài cố định, `StringBuilder` có thể thay đổi độ dài.
C. `string` là immutable (bất biến), mỗi lần thay đổi tạo ra chuỗi mới, `StringBuilder` là mutable (có thể thay đổi), thao tác trực tiếp trên chuỗi hiện tại, hiệu quả hơn cho thao tác chuỗi phức tạp.
D. Không có sự khác biệt về hiệu suất, cả hai đều có hiệu suất tương đương.

3. Đâu là sự khác biệt chính giữa `interface` và `abstract class` trong C#?

A. Interface có thể chứa code thực thi, abstract class thì không.
B. Lớp có thể kế thừa từ nhiều abstract class, nhưng chỉ implement một interface.
C. Lớp có thể implement nhiều interface, nhưng chỉ kế thừa từ một abstract class.
D. Không có sự khác biệt, `interface` và `abstract class` có thể thay thế nhau hoàn toàn.

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

A. Một loại testing để kiểm tra hiệu suất của ứng dụng.
B. Một loại testing để kiểm tra giao diện người dùng.
C. Một phương pháp kiểm thử từng đơn vị code nhỏ nhất (ví dụ: phương thức, lớp) một cách độc lập để đảm bảo chúng hoạt động đúng như mong đợi. Nó quan trọng để phát hiện lỗi sớm, cải thiện chất lượng code và hỗ trợ refactoring.
D. Một phương pháp để triển khai ứng dụng nhanh hơn.

5. DI Container (Dependency Injection Container) trong .NET có vai trò gì?

A. Biên dịch code C#.
B. Quản lý vòng đời của dependencies, tạo và inject dependencies vào các lớp cần chúng.
C. Quản lý phiên bản của các NuGet packages.
D. Triển khai ứng dụng lên server.

6. Đâu là mục đích của `async void` method trong C#?

A. Để tạo ra các phương thức bất đồng bộ trả về giá trị.
B. Để tạo ra các phương thức bất đồng bộ không trả về giá trị, thường chỉ dùng cho event handlers.
C. Để tạo ra các phương thức đồng bộ chạy trên background thread.
D. Để tạo ra các phương thức extension methods bất đồng bộ.

7. Sự khác biệt chính giữa `var` và các kiểu dữ liệu tường minh (explicit types) trong C# là gì?

A. `var` tạo ra kiểu dữ liệu động (dynamic type) trong khi kiểu tường minh là tĩnh.
B. `var` chỉ có thể được sử dụng bên trong phương thức, kiểu tường minh có thể dùng ở mọi nơi.
C. `var` cho phép trình biên dịch suy luận kiểu dữ liệu dựa trên biểu thức khởi tạo, kiểu tường minh phải được khai báo rõ ràng.
D. Không có sự khác biệt, `var` và kiểu dữ liệu tường minh có thể thay thế nhau hoàn toàn.

8. Đâu là mục đích của Middleware trong ASP.NET Core?

A. Quản lý kết nối cơ sở dữ liệu.
B. Xử lý các HTTP request và response pipeline, cho phép thêm các logic xử lý trung gian.
C. Định nghĩa routing cho ứng dụng web.
D. Cung cấp các dịch vụ caching.

9. Trong .NET, CLR (Common Language Runtime) chịu trách nhiệm chính cho công việc nào?

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. Cung cấp các thư viện lớp cơ sở cho phát triển ứng dụng.
D. Xử lý giao diện người dùng đồ họa trong ứng dụng Windows.

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

A. Nhà phát triển phải tự giải phóng bộ nhớ thủ công.
B. GC tự động thu hồi bộ nhớ không còn được tham chiếu bởi ứng dụng.
C. GC chỉ hoạt động khi bộ nhớ RAM đầy.
D. GC chỉ hoạt động khi ứng dụng kết thúc.

11. Blazor WebAssembly cho phép làm gì?

A. Phát triển ứng dụng server-side rendered bằng C#.
B. Chạy code C# trực tiếp trong trình duyệt web client-side.
C. Xây dựng API RESTful sử dụng C#.
D. Tạo ứng dụng desktop đa nền tảng bằng C#.

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

A. Một engine view cho WinForms.
B. Một cách tiếp cận page-centric để xây dựng ứng dụng web trong ASP.NET Core, đơn giản hơn MVC cho một số trường hợp.
C. Một ORM (Object-Relational Mapper) thay thế Entity Framework Core.
D. Một framework để phát triển API RESTful.

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

A. Định nghĩa giao diện người dùng đồ họa.
B. Tạo ra các luồng (threads) trong ứng dụng.
C. Tham chiếu đến phương thức, cho phép truyền phương thức như tham số.
D. Quản lý các kết nối cơ sở dữ liệu.

14. Đâu là sự khác biệt chính giữa .NET Framework và .NET (.NET Core / .NET 5+)?

A. .NET Framework là mã nguồn mở, .NET thì không.
B. .NET Framework chỉ chạy trên Windows, .NET là cross-platform.
C. .NET Framework hỗ trợ phát triển web, .NET thì chỉ hỗ trợ desktop.
D. Không có sự khác biệt, cả hai đều là cùng một nền tảng.

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

A. Vấn đề bảo mật trong ứng dụng web.
B. Vấn đề hiệu suất khi làm việc với giao diện người dùng đồ họa.
C. Vấn đề blocking (chặn) luồng chính khi thực hiện các thao tác I/O hoặc tác vụ tốn thời gian.
D. Vấn đề quản lý bộ nhớ trong các ứng dụng lớn.

16. WPF (Windows Presentation Foundation) trong .NET được sử dụng để phát triển loại ứng dụng nào?

A. Ứng dụng web server.
B. Ứng dụng dòng lệnh (console application).
C. Ứng dụng desktop Windows với giao diện người dùng đồ họa phong phú.
D. Ứng dụng mobile đa nền tảng.

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

A. Một kỹ thuật bảo mật để ngăn chặn tấn công SQL Injection.
B. Một design pattern 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à khả năng test.
C. Một phương pháp tối ưu hóa hiệu suất truy vấn cơ sở dữ liệu.
D. Một công cụ để tự động tạo code boilerplate.

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

A. Tăng tốc độ thực thi chương trình.
B. Thêm metadata (thông tin mô tả) vào code, có thể được sử dụng bởi runtime hoặc các công cụ khác.
C. Quản lý bộ nhớ tự động.
D. Định nghĩa giao diện người dùng.

19. Đâu là mục đích chính của Namespaces trong C#?

A. Tăng tốc độ biên dịch mã.
B. Quản lý bộ nhớ hiệu quả hơn.
C. Tổ chức code, tránh xung đột tên và tạo cấu trúc phân cấp.
D. Cải thiện hiệu suất runtime của ứng dụng.

20. Kiểu dữ liệu `value type` nào sau đây KHÔNG phải là kiểu built-in trong C#?

A. int
B. float
C. string
D. bool

21. Đâu là mục đích của `using` statement trong C#?

A. Import namespaces để sử dụng các lớp và thành viên bên trong namespace đó.
B. Khai báo biến cục bộ.
C. Định nghĩa namespaces.
D. Tối ưu hóa hiệu suất ứng dụng.

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

A. Thiết kế giao diện người dùng tương tác.
B. Truy vấn dữ liệu từ nhiều nguồn khác nhau (collections, databases, XML, etc.) một cách thống nhất.
C. Quản lý bộ nhớ và garbage collection.
D. Xử lý bất đồng bộ (asynchronous operations).

23. Entity Framework Core (EF Core) là gì?

A. Một framework để xây dựng giao diện người dùng web.
B. Một ORM (Object-Relational Mapper) cho .NET, giúp làm việc với cơ sở dữ liệu dễ dàng hơn.
C. Một công cụ để triển khai ứng dụng .NET lên cloud.
D. Một thư viện để xử lý XML trong .NET.

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

A. Tăng tốc độ biên dịch code.
B. Kiểm tra và thao tác metadata của types, assemblies và modules tại runtime.
C. Tối ưu hóa hiệu suất ứng dụng.
D. Xây dựng giao diện người dùng đồ họa.

25. Boxing và Unboxing trong C# liên quan đến kiểu dữ liệu nào?

A. Kiểu dữ liệu tham chiếu (reference types).
B. Kiểu dữ liệu giá trị (value types) và kiểu object.
C. Kiểu dữ liệu string.
D. Kiểu dữ liệu generic.

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

A. Thay đổi hành vi của các phương thức hiện có trong một lớp.
B. Thêm phương thức mới vào các kiểu dữ liệu đã tồn tại mà không cần sửa đổi lớp gốc.
C. Tạo ra các lớp kế thừa từ các lớp sealed.
D. Cho phép đa kế thừa trong C#.

27. NuGet Package Manager được sử dụng để làm gì trong .NET development?

A. Quản lý phiên bản của .NET Framework.
B. Biên dịch mã nguồn C# thành mã máy.
C. Quản lý và tích hợp các thư viện và package bên ngoài vào dự án .NET.
D. Triển khai ứng dụng .NET lên server.

28. 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. JavaScript

29. Generic trong C# giúp giải quyết vấn đề nào?

A. Vấn đề bảo mật dữ liệu.
B. Vấn đề hiệu suất khi làm việc với strings.
C. Vấn đề type safety và code reuse bằng cách cho phép tạo ra các lớp, interfaces và phương thức có thể làm việc với nhiều kiểu dữ liệu khác nhau mà vẫn đảm bảo kiểu.
D. Vấn đề quản lý bộ nhớ trong các ứng dụng lớn.

30. IActionResult trong ASP.NET Core MVC là gì?

A. Một interface cho phép định nghĩa các view trong MVC.
B. Một interface đại diện cho kết quả của một action method trong controller, cho phép trả về các loại response khác nhau (JSON, View, Redirect, v.v.).
C. Một class để quản lý routing trong ứng dụng MVC.
D. Một attribute để 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ộ đề 2

1. Từ khóa 'sealed' trong C# được sử dụng để làm gì?

2 / 30

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

Tags: Bộ đề 2

2. Sự khác biệt chính giữa 'StringBuilder' và 'string' trong C# là gì khi thao tác với chuỗi?

3 / 30

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

Tags: Bộ đề 2

3. Đâu là sự khác biệt chính giữa 'interface' và 'abstract class' trong C#?

4 / 30

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

Tags: Bộ đề 2

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

5 / 30

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

Tags: Bộ đề 2

5. DI Container (Dependency Injection Container) trong .NET có vai trò gì?

6 / 30

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

Tags: Bộ đề 2

6. Đâu là mục đích của 'async void' method trong C#?

7 / 30

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

Tags: Bộ đề 2

7. Sự khác biệt chính giữa 'var' và các kiểu dữ liệu tường minh (explicit types) trong C# là gì?

8 / 30

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

Tags: Bộ đề 2

8. Đâu là mục đích của Middleware trong ASP.NET Core?

9 / 30

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

Tags: Bộ đề 2

9. Trong .NET, CLR (Common Language Runtime) chịu trách nhiệm chính cho công việc nào?

10 / 30

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

Tags: Bộ đề 2

10. Garbage Collection (GC) trong .NET CLR 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ộ đề 2

11. Blazor WebAssembly 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ộ đề 2

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

13 / 30

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

Tags: Bộ đề 2

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

14 / 30

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

Tags: Bộ đề 2

14. Đâu là sự khác biệt chính giữa .NET Framework và .NET (.NET Core / .NET 5+)?

15 / 30

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

Tags: Bộ đề 2

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

16 / 30

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

Tags: Bộ đề 2

16. WPF (Windows Presentation Foundation) trong .NET được sử dụng để phát triển loại ứng dụng nào?

17 / 30

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

Tags: Bộ đề 2

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

18 / 30

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

Tags: Bộ đề 2

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

19 / 30

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

Tags: Bộ đề 2

19. Đâu là mục đích chính của Namespaces trong C#?

20 / 30

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

Tags: Bộ đề 2

20. Kiểu dữ liệu 'value type' nào sau đây KHÔNG phải là kiểu built-in trong C#?

21 / 30

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

Tags: Bộ đề 2

21. Đâu là mục đích của 'using' statement trong C#?

22 / 30

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

Tags: Bộ đề 2

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

23 / 30

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

Tags: Bộ đề 2

23. Entity Framework Core (EF Core) là gì?

24 / 30

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

Tags: Bộ đề 2

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

25 / 30

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

Tags: Bộ đề 2

25. Boxing và Unboxing trong C# liên quan đến kiểu dữ liệu nào?

26 / 30

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

Tags: Bộ đề 2

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

27 / 30

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

Tags: Bộ đề 2

27. NuGet Package Manager được sử dụng để làm gì trong .NET development?

28 / 30

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

Tags: Bộ đề 2

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

29 / 30

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

Tags: Bộ đề 2

29. Generic trong C# giúp giải quyết vấn đề nào?

30 / 30

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

Tags: Bộ đề 2

30. IActionResult trong ASP.NET Core MVC là gì?