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

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

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

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

A. Một thành phần để quản lý trạng thái phiên (session state).
B. Một thành phần để xác thực và ủy quyền người dùng.
C. Các thành phần tạo thành pipeline xử lý request HTTP, mỗi middleware thực hiện một tác vụ cụ thể trên request và response.
D. Một thành phần để định tuyến (routing) các request HTTP đến các controller thích hợp.

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

A. Định nghĩa các lớp trừu tượng (abstract classes).
B. Đại diện cho các phương thức và cho phép truyền phương thức như tham số.
C. Tạo ra các luồng (threads) để thực hiện các tác vụ song song.
D. Quản lý bộ nhớ và giải phóng bộ nhớ không sử dụng.

3. Sự khác biệt chính giữa cấu trúc (struct) và lớp (class) trong C# là gì?

A. Struct hỗ trợ kế thừa, class thì không.
B. Struct là kiểu tham chiếu, class là kiểu giá trị.
C. Struct là kiểu giá trị, class là kiểu tham chiếu và struct thường được dùng cho các kiểu dữ liệu nhỏ, nhẹ.
D. Struct chỉ có thể chứa dữ liệu, class có thể chứa cả dữ liệu và phương thức.

4. yield return trong C# được sử dụng trong ngữ cảnh nào?

A. Để xử lý ngoại lệ (exceptions).
B. Để tạo ra các iterator (phương thức lặp) cho phép trả về một chuỗi các giá trị một cách tuần tự (lazy evaluation).
C. Để thực hiện các tác vụ không đồng bộ.
D. Để định nghĩa các thuộc tính (properties).

5. Trong .NET Framework, Common Language Runtime (CLR) chịu trách nhiệm chính cho việc 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 khác.
C. Xây dựng giao diện người dùng đồ họa (GUI).
D. Quản lý cơ sở dữ liệu và truy vấn dữ liệu.

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

A. Tăng tốc độ biên dịch mã chương trình.
B. Cho phép viết mã 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 an toàn (type safety) và hiệu suất.
C. Đơn giản hóa việc quản lý bộ nhớ.
D. Cải thiện khả năng bảo mật của ứng dụng.

7. Sự khác biệt chính giữa Interface và Abstract Class trong C# là gì?

A. Interface có thể chứa implemention code, còn Abstract Class thì không.
B. Một lớp có thể kế thừa từ nhiều Interface, nhưng chỉ có thể kế thừa từ một Abstract Class.
C. Abstract Class được sử dụng cho đa hình (polymorphism), còn Interface thì không.
D. Interface chỉ định nghĩa các thuộc tính, còn Abstract Class chỉ định nghĩa các phương thức.

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

A. Tăng cường tính bảo mật cho ứng dụng.
B. Cung cấp metadata (thông tin bổ sung) cho mã, có thể được sử dụng bởi compiler, runtime environment, hoặc các thư viện khác.
C. Tối ưu hóa hiệu suất thực thi của mã.
D. Đơn giản hóa việc quản lý bộ nhớ.

9. Entity Framework (EF) Core là gì trong .NET?

A. Một framework để xây dựng giao diện người dùng web (web UI).
B. Một ORM (Object-Relational Mapper) giúp tương tác với cơ sở dữ liệu một cách dễ dàng hơn bằng cách ánh xạ các đối tượng .NET với các bảng trong cơ sở dữ liệu.
C. Một thư viện để xử lý các tác vụ không đồng bộ.
D. Một công cụ để kiểm thử đơn vị (unit testing) trong .NET.

10. String Interpolation trong C# (ví dụ: `string name = `Alice`; string message = $`Hello, {name}!`;`) dùng để làm gì?

A. Tăng cường tính bảo mật cho chuỗi.
B. Cung cấp một cách dễ đọc và ngắn gọn hơn để tạo chuỗi bằng cách nhúng các biểu thức trực tiếp vào chuỗi.
C. Tối ưu hóa hiệu suất xử lý chuỗi.
D. Đơn giản hóa việc so sánh chuỗi.

11. Đặc điểm nào sau đây KHÔNG phải là đặc điểm của C#?

A. Hỗ trợ đa kế thừa lớp (multiple class inheritance).
B. Là ngôn ngữ lập trình hướng đối tượng.
C. Chạy trên nền tảng .NET CLR.
D. Hỗ trợ garbage collection tự động.

12. Sự khác biệt chính giữa `throw;` và `throw ex;` (khi `ex` là exception đã bắt được) trong khối catch của C# là gì?

A. `throw ex;` giữ nguyên stack trace gốc của exception, còn `throw;` thì không.
B. `throw;` giữ nguyên stack trace gốc của exception, còn `throw ex;` thì cập nhật stack trace, làm mất thông tin về vị trí lỗi ban đầu.
C. `throw ex;` chỉ ném lại exception nếu nó thuộc một kiểu cụ thể, còn `throw;` thì ném lại mọi exception.
D. `throw;` chỉ dùng được trong khối finally, còn `throw ex;` dùng được trong khối catch.

13. Mục đích chính của thuộc tính (property) trong C# là gì?

A. Thay thế cho biến toàn cục (global variable).
B. Cung cấp cơ chế kiểm soát việc truy cập và sửa đổi dữ liệu thành viên (fields) của một lớp, cho phép thêm logic tùy chỉnh (ví dụ: validation) khi get hoặc set giá trị.
C. Tạo ra các hằng số (constants) trong một lớp.
D. Định nghĩa các phương thức mở rộng (extension methods).

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

A. Tạo giao diện người dùng đồ họa (GUI) tương tác.
B. Truy vấn dữ liệu từ nhiều nguồn khác nhau (collections, databases, XML, etc.) bằng cú pháp thống nhất.
C. Quản lý bộ nhớ tự động và thu gom rác thải.
D. Xây dựng các dịch vụ web và API RESTful.

15. Trong lập trình hướng đối tượng với C#, tính đóng gói (encapsulation) nhằm mục đích gì?

A. Cho phép một lớp kế thừa các thuộc tính và phương thức từ lớp khác.
B. Che giấu thông tin chi tiết triển khai bên trong của một lớp và chỉ hiển thị giao diện bên ngoài.
C. Định nghĩa nhiều phương thức có cùng tên nhưng khác nhau về tham số.
D. Cho phép các đối tượng thuộc các lớp khác nhau phản ứng khác nhau với cùng một thông điệp.

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

A. Thêm phương thức mới vào một lớp đã được niêm phong (sealed class).
B. Sửa đổi hành vi của các phương thức hiện có trong một lớp.
C. Thêm phương thức mới vào một kiểu dữ liệu mà không cần sửa đổi mã nguồn của kiểu đó.
D. Tạo ra một lớp con (derived class) từ một lớp cha.

17. Phương thức Dispose() và interface IDisposable trong .NET được sử dụng để làm gì?

A. Tối ưu hóa hiệu suất thực thi của mã.
B. Giải phóng các tài nguyên không được quản lý (unmanaged resources) như file handles, network connections, database connections, etc. một cách rõ ràng và kịp thời.
C. Quản lý bộ nhớ tự động.
D. Đảm bảo tính bảo mật cho ứng dụng.

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

A. Quản lý cơ sở dữ liệu cho ứng dụng .NET.
B. Quản lý các thư viện và packages bên ngoài mà dự án .NET sử dụng.
C. Biên dịch mã nguồn C# thành mã máy.
D. Triển khai ứng dụng .NET lên server.

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

A. Tối ưu hóa hiệu suất thực thi của mã.
B. Quản lý bộ nhớ tự động bằng cách giải phóng bộ nhớ không còn được sử dụng bởi ứng dụng.
C. Xử lý các ngoại lệ (exceptions) trong quá trình thực thi.
D. Đảm bảo tính bảo mật cho ứng dụng.

20. Razor Pages trong ASP.NET Core khác biệt so với MVC (Model-View-Controller) như thế nào?

A. Razor Pages chỉ hỗ trợ lập trình phía client, còn MVC hỗ trợ cả client và server.
B. Razor Pages là một mô hình đơn giản hóa của MVC, tập trung vào các trang (page-centric) và giảm sự phức tạp cho các ứng dụng web đơn giản.
C. Razor Pages sử dụng JavaScript framework (ví dụ: React, Angular) còn MVC thì không.
D. Razor Pages chỉ dùng được cho web API, còn MVC dùng cho web UI.

21. Kiểu dữ liệu nào sau đây KHÔNG phải là kiểu giá trị (value type) trong C#?

A. int
B. char
C. struct
D. string

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

A. Tối ưu hóa hiệu suất thực thi của mã.
B. Kiểm tra và thao tác metadata của các types (lớp, interface, struct, etc.) và assemblies tại runtime.
C. Biên dịch mã nguồn C# thành mã máy.
D. Triển khai ứng dụng .NET lên server.

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

A. Tăng tốc độ biên dịch mã chương trình.
B. Cải thiện hiệu suất và khả năng phản hồi của ứng dụng bằng cách thực hiện các tác vụ không đồng bộ mà không chặn luồng chính.
C. Bảo vệ ứng dụng khỏi các lỗ hổng bảo mật.
D. Giảm dung lượng bộ nhớ sử dụng của ứng dụng.

24. Expression-bodied members trong C# (ví dụ: `public int Add(int a, int b) => a + b;`) giúp làm gì?

A. Tăng tốc độ thực thi của phương thức.
B. Cung cấp cú pháp ngắn gọn hơn để định nghĩa các phương thức, properties, constructors, finalizers, và indexers mà chỉ có một biểu thức duy nhất.
C. Cải thiện khả năng bảo mật của mã.
D. Đơn giản hóa việc quản lý bộ nhớ.

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

A. Định nghĩa các ngoại lệ (exceptions) tùy chỉnh.
B. Cho phép một đối tượng thông báo cho các đối tượng khác khi có một sự kiện nào đó xảy ra.
C. Tạo ra các luồng (threads) để thực hiện các tác vụ song song.
D. Quản lý cấu hình ứng dụng.

26. Trong ngữ cảnh lập trình đa luồng (multithreading) với C#, race condition là gì?

A. Một tình huống khi một luồng (thread) bị treo và không phản hồi.
B. Một tình huống khi nhiều luồng cố gắng truy cập và sửa đổi tài nguyên chia sẻ cùng một lúc, và kết quả cuối cùng phụ thuộc vào thứ tự thực hiện của các luồng, có thể dẫn đến kết quả không mong muốn.
C. Một tình huống khi một luồng chờ đợi một tài nguyên không bao giờ được giải phóng.
D. Một tình huống khi các luồng cạnh tranh để giành quyền truy cập CPU.

27. ValueTask trong C# (so với Task) được giới thiệu để giải quyết vấn đề chính nào?

A. Tăng tốc độ thực thi của các tác vụ không đồng bộ.
B. Giảm overhead (chi phí) khi thực hiện các tác vụ không đồng bộ hoàn thành một cách đồng bộ (synchronously).
C. Đơn giản hóa việc xử lý lỗi trong các tác vụ không đồng bộ.
D. Cải thiện khả năng quản lý bộ nhớ cho các tác vụ không đồng bộ.

28. Dependency Injection (DI) là một nguyên tắc thiết kế phần mềm nhằm mục đích gì?

A. Tăng cường tính bảo mật cho ứng dụng.
B. Giảm sự phụ thuộc lẫn nhau giữa các thành phần (lớp, module) của ứng dụng, giúp chúng dễ kiểm thử, bảo trì và tái sử dụng hơn.
C. Tối ưu hóa hiệu suất thực thi của ứng dụng.
D. Đơn giản hóa việc triển khai và cấu hình ứng dụng.

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

A. Định nghĩa các kiểu dữ liệu tùy chỉnh phức tạp.
B. Nhóm nhiều giá trị có thể khác kiểu dữ liệu thành một đơn vị duy nhất mà không cần định nghĩa một lớp hoặc struct riêng.
C. Tạo ra các luồng (threads) để thực hiện các tác vụ song song.
D. Quản lý cấu hình ứng dụng.

30. Boxing và Unboxing trong C# liên quan đến việc chuyển đổi giữa kiểu dữ liệu nào?

A. Giữa kiểu số nguyên và kiểu số thực.
B. Giữa kiểu tham chiếu và kiểu giá trị.
C. Giữa kiểu dữ liệu động (dynamic) và kiểu dữ liệu tĩnh (static).
D. Giữa kiểu dữ liệu chung (generic) và kiểu dữ liệu cụ thể.

1 / 30

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

Tags: Bộ đề 7

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

2 / 30

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

Tags: Bộ đề 7

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

3 / 30

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

Tags: Bộ đề 7

3. Sự khác biệt chính giữa cấu trúc (struct) và lớp (class) trong C# là gì?

4 / 30

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

Tags: Bộ đề 7

4. yield return trong C# được sử dụng trong ngữ cảnh nào?

5 / 30

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

Tags: Bộ đề 7

5. Trong .NET Framework, Common Language Runtime (CLR) chịu trách nhiệm chính cho việc gì?

6 / 30

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

Tags: Bộ đề 7

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

7 / 30

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

Tags: Bộ đề 7

7. Sự khác biệt chính giữa Interface và Abstract Class trong C# là gì?

8 / 30

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

Tags: Bộ đề 7

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

9 / 30

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

Tags: Bộ đề 7

9. Entity Framework (EF) Core là gì trong .NET?

10 / 30

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

Tags: Bộ đề 7

10. String Interpolation trong C# (ví dụ: `string name = 'Alice'; string message = $'Hello, {name}!';`) dùng để làm gì?

11 / 30

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

Tags: Bộ đề 7

11. Đặc điểm nào sau đây KHÔNG phải là đặc điểm của C#?

12 / 30

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

Tags: Bộ đề 7

12. Sự khác biệt chính giữa `throw;` và `throw ex;` (khi `ex` là exception đã bắt được) trong khối catch của C# là gì?

13 / 30

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

Tags: Bộ đề 7

13. Mục đích chính của thuộc tính (property) trong C# là gì?

14 / 30

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

Tags: Bộ đề 7

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ộ đề 7

15. Trong lập trình hướng đối tượng với C#, tính đóng gói (encapsulation) nhằm mục đích gì?

16 / 30

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

Tags: Bộ đề 7

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

17 / 30

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

Tags: Bộ đề 7

17. Phương thức Dispose() và interface IDisposable trong .NET được sử dụng để làm gì?

18 / 30

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

Tags: Bộ đề 7

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

19 / 30

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

Tags: Bộ đề 7

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

20 / 30

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

Tags: Bộ đề 7

20. Razor Pages trong ASP.NET Core khác biệt so với MVC (Model-View-Controller) như thế nào?

21 / 30

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

Tags: Bộ đề 7

21. Kiểu dữ liệu nào sau đây KHÔNG phải là kiểu giá trị (value type) trong C#?

22 / 30

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

Tags: Bộ đề 7

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

23 / 30

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

Tags: Bộ đề 7

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

24 / 30

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

Tags: Bộ đề 7

24. Expression-bodied members trong C# (ví dụ: `public int Add(int a, int b) => a + b;`) giúp làm gì?

25 / 30

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

Tags: Bộ đề 7

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

26 / 30

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

Tags: Bộ đề 7

26. Trong ngữ cảnh lập trình đa luồng (multithreading) với C#, race condition là gì?

27 / 30

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

Tags: Bộ đề 7

27. ValueTask trong C# (so với Task) được giới thiệu để giải quyết vấn đề chính nào?

28 / 30

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

Tags: Bộ đề 7

28. Dependency Injection (DI) là một nguyên tắc thiết kế phần mềm nhằm mục đích gì?

29 / 30

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

Tags: Bộ đề 7

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

30 / 30

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

Tags: Bộ đề 7

30. Boxing và Unboxing trong C# liên quan đến việc chuyển đổi giữa kiểu dữ liệu nào?