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

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


Lập trình .NET

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

1. Sự khác biệt giữa 'is′ và 'as′ operators trong C# là gì?

A. 'is′ dùng để kiểm tra kiểu và trả về đối tượng đã chuyển đổi, 'as′ chỉ kiểm tra kiểu.
B. 'is′ chỉ kiểm tra kiểu và trả về boolean, 'as′ cố gắng chuyển đổi kiểu và trả về null nếu không thành công.
C. Cả hai đều thực hiện chuyển đổi kiểu, nhưng 'as′ nhanh hơn.
D. Cả hai đều kiểm tra kiểu, nhưng 'is′ mạnh mẽ hơn.

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

A. Biên dịch mã nguồn C#.
B. Quản lý và cài đặt các thư viện và công cụ bên ngoài (packages) vào dự án .NET.
C. Gỡ lỗi ứng dụng .NET.
D. Tạo giao diện người dùng cho ứng dụng.

3. Dependency Injection (DI) trong .NET Core giúp đạt được điều gì?

A. Giảm sự phụ thuộc giữa các module, tăng tính module hóa và khả năng kiểm thử.
B. Tăng hiệu suất ứng dụng bằng cách giảm thời gian khởi tạo đối tượng.
C. Tự động tạo mã boilerplate.
D. Đơn giản hóa việc quản lý bộ nhớ.

4. Finalizer (destructor) trong C# được gọi khi nào?

A. Khi đối tượng được tạo ra.
B. Khi đối tượng không còn được tham chiếu và Garbage Collector chuẩn bị thu hồi bộ nhớ.
C. Khi chương trình kết thúc.
D. Khi phương thức Dispose() được gọi.

5. Trong ASP.NET Core, Middleware đóng vai trò gì?

A. Quản lý kết nối cơ sở dữ liệu.
B. Xử lý các yêu cầu HTTP đến và phản hồi HTTP đi theo một pipeline.
C. Định nghĩa giao diện người dùng.
D. Thực hiện xác thực và ủy quyền người dùng.

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

A. 'struct′ là kiểu tham chiếu, còn 'class′ là kiểu giá trị.
B. 'struct′ được cấp phát trên heap, còn 'class′ được cấp phát trên stack.
C. 'struct′ là kiểu giá trị, còn 'class′ là kiểu tham chiếu.
D. 'struct′ hỗ trợ kế thừa, còn 'class′ thì không.

7. Interface và Abstract Class trong C# có điểm chung nào?

A. Cả hai đều có thể chứa code thực thi.
B. Cả hai đều không thể khởi tạo trực tiếp.
C. Cả hai đều hỗ trợ đa kế thừa.
D. Cả hai đều là kiểu giá trị.

8. Trong ASP.NET Core, Razor Pages là gì?

A. Một engine view thay thế cho Razor View Engine.
B. Một cách tiếp cận lập trình hướng trang đơn giản hóa việc xây dựng UI web dựa trên trang (page-based).
C. Một framework để xây dựng RESTful API.
D. Một công cụ để quản lý cơ sở dữ liệu.

9. Immutable object (đối tượng bất biến) là gì và lợi ích của nó?

A. Đối tượng có thể thay đổi trạng thái sau khi tạo; dễ dàng chia sẻ giữa các threads.
B. Đối tượng không thể thay đổi trạng thái sau khi tạo; an toàn thread-safe và dễ dự đoán.
C. Đối tượng chỉ có thể đọc; tăng hiệu suất.
D. Đối tượng chỉ có thể ghi một lần; giảm bộ nhớ sử dụng.

10. Sự khác biệt chính giữa .NET Framework và .NET (.NET Core trở đi) là gì?

A. .NET Framework là mã nguồn mở, còn .NET thì khô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ợ microservices, còn .NET thì không.
D. .NET Framework có hiệu suất tốt hơn .NET.

11. Kiểu dữ liệu 'var′ trong C# được suy luận kiểu bởi trình biên dịch khi nào?

A. Khi chương trình đang chạy (runtime).
B. Khi khai báo biến và không gán giá trị.
C. Khi biên dịch mã (compile time).
D. Chỉ khi biến được sử dụng trong một phương thức.

12. Đâu là mục đích của thuộc tính 'sealed′ trong C#?

A. Ngăn không cho lớp bị kế thừa.
B. Bảo vệ thuộc tính khỏi bị ghi đè.
C. Tăng hiệu suất truy cập thuộc tính.
D. Ẩn thuộc tính khỏi lớp con.

13. ValueTask trong C# được sử dụng khi nào thay vì Task?

A. Khi cần trả về giá trị ngay lập tức mà không cần bất đồng bộ.
B. Khi cần tối ưu hóa hiệu suất trong các trường hợp synchronous completion (hoàn thành đồng bộ) có thể xảy ra thường xuyên.
C. Khi làm việc với cơ sở dữ liệu.
D. Khi cần thực hiện các tác vụ song song.

14. LINQ (Language Integrated Query) trong .NET cho phép thực hiện truy vấn dữ liệu từ nguồn nào?

A. Chỉ từ cơ sở dữ liệu quan hệ.
B. Chỉ từ các đối tượng trong bộ nhớ (collections).
C. Từ nhiều nguồn dữ liệu khác nhau như cơ sở dữ liệu, XML, objects, collections…
D. Chỉ từ file văn bản.

15. Trong .NET, Framework Class Library (FCL) cung cấp thành phần nào?

A. Chỉ các công cụ dòng lệnh để biên dịch mã.
B. Một tập hợp các không gian tên và kiểu sẵn dựng để thực hiện các tác vụ lập trình phổ biến.
C. Môi trường thực thi mã được quản lý.
D. Trình biên dịch JIT (Just-In-Time).

16. Async và Await trong C# được sử dụng để làm gì?

A. Tăng tốc độ thực thi mã đồng bộ.
B. Thực hiện các tác vụ song song trên nhiều luồng.
C. Viết mã bất đồng bộ một cách dễ đọc và dễ bảo trì hơn.
D. Quản lý bộ nhớ hiệu quả hơn.

17. Expression-bodied members trong C# (ví dụ: `public int Add(int x, int y) ⇒ x + y;`) dùng để làm gì?

A. Tăng hiệu suất thực thi của phương thức.
B. Viết các phương thức, properties, constructors, finalizers ngắn gọn hơn khi chúng chỉ có một biểu thức.
C. Tạo ra các phương thức bất đồng bộ.
D. Định nghĩa các phương thức mở rộng.

18. 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 (dữ liệu về dữ liệu) cho các thành phần mã như lớp, phương thức, thuộc tính.
C. Thực hiện kiểm soát truy cập (access modifiers).
D. Xử lý ngoại lệ.

19. Boxing và Unboxing trong C# liên quan đến việc chuyển đổi giữa kiể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 nguyên thủy và kiểu chuỗi.
D. Giữa kiểu dữ liệu động và kiểu dữ liệu tĩnh.

20. Đâu là ưu điểm chính của việc sử dụng HttpClientFactory trong .NET Core∕ .NET?

A. Tăng tốc độ xử lý HTTP requests.
B. Quản lý vòng đời của HttpClient instances hiệu quả hơn, tránh socket exhaustion.
C. Đơn giản hóa việc cấu hình SSL∕TLS.
D. Tự động retry requests khi có lỗi mạng.

21. Phương thức mở rộng (Extension method) 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 một kiểu dữ liệu đã tồn tại mà không cần sửa đổi mã nguồn của kiểu đó.
C. Tạo ra một lớp con từ một lớp hiện có.
D. Ẩn các phương thức của lớp cha trong lớp con.

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

A. Kế thừa.
B. Đa hình.
C. Delegates.
D. Reflection.

23. Đâu là lợi ích của việc sử dụng Generics trong C#?

A. Tăng tốc độ biên dịch mã.
B. Cung cấp kiểu an toàn (type safety) và tránh boxing∕unboxing không cần thiết.
C. Giảm dung lượng bộ nhớ sử dụng.
D. Đơn giản hóa việc quản lý bộ nhớ.

24. Lambda expression trong C# là gì?

A. Một kiểu dữ liệu mới.
B. Một cách viết ngắn gọn cho anonymous methods (phương thức vô danh).
C. Một cơ chế để xử lý ngoại lệ.
D. Một công cụ để tối ưu hóa hiệu suất.

25. Đâu là mục đích chính của Garbage Collector (GC) trong .NET?

A. Tối ưu hóa hiệu suất CPU.
B. Quản lý bộ nhớ tự động bằng cách thu hồi bộ nhớ không còn được sử dụng.
C. Phát hiện và sửa lỗi logic trong mã.
D. Biên dịch mã IL sang mã máy.

26. Đâu là vai trò của Common Language Runtime (CLR) trong .NET?

A. Biên dịch mã C# sang mã máy.
B. Cung cấp môi trường thực thi mã được quản lý, quản lý bộ nhớ, xử lý ngoại lệ, và cung cấp các dịch vụ khác.
C. Hỗ trợ phát triển giao diện người dùng đồ họa.
D. Quản lý kết nối mạng.

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

A. Quản lý bộ nhớ.
B. Giải phóng tài nguyên unmanaged (ví dụ: file handles, database connections) một cách rõ ràng và kịp thời.
C. Xử lý ngoại lệ.
D. Tối ưu hóa hiệu suất.

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

A. Tạo ra mã máy trực tiếp.
B. Kiểm tra metadata và thông tin kiểu của assemblies, modules và types tại runtime.
C. Tối ưu hóa mã để chạy nhanh hơn.
D. Quản lý tài nguyên hệ thống.

29. yield return trong C# được sử dụng trong trường hợp nào?

A. Để kết thúc vòng lặp ngay lập tức.
B. Để trả về nhiều giá trị từ một phương thức.
C. Để tạo ra một iterator, cho phép trả về từng phần tử của một collection một cách lazy (khi cần).
D. Để xử lý ngoại lệ trong vòng lặp.

30. Delegate trong C# là gì?

A. Một kiểu dữ liệu để lưu trữ giá trị.
B. Một kiểu tham chiếu đại diện cho phương thức, cho phép truyền phương thức như tham số.
C. Một lớp cơ sở cho tất cả các lớp khác.
D. Một interface để định nghĩa hợp đồng.

1 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

1. Sự khác biệt giữa `is′ và `as′ operators trong C# là gì?

2 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

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

3 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

3. Dependency Injection (DI) trong .NET Core giúp đạt được điều gì?

4 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

4. Finalizer (destructor) trong C# được gọi khi nào?

5 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

5. Trong ASP.NET Core, Middleware đóng vai trò gì?

6 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

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

7 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

7. Interface và Abstract Class trong C# có điểm chung nào?

8 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

8. Trong ASP.NET Core, Razor Pages là gì?

9 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

9. Immutable object (đối tượng bất biến) là gì và lợi ích của nó?

10 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

10. Sự khác biệt chính giữa .NET Framework và .NET (.NET Core trở đi) là gì?

11 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

11. Kiểu dữ liệu `var′ trong C# được suy luận kiểu bởi trình biên dịch khi nào?

12 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

12. Đâu là mục đích của thuộc tính `sealed′ trong C#?

13 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

13. ValueTask trong C# được sử dụng khi nào thay vì Task?

14 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

14. LINQ (Language Integrated Query) trong .NET cho phép thực hiện truy vấn dữ liệu từ nguồn nào?

15 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

15. Trong .NET, Framework Class Library (FCL) cung cấp thành phần nào?

16 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

16. Async và Await trong C# được sử dụng để làm gì?

17 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

17. Expression-bodied members trong C# (ví dụ: `public int Add(int x, int y) ⇒ x + y;`) dùng để làm gì?

18 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

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

19 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

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

20 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

20. Đâu là ưu điểm chính của việc sử dụng HttpClientFactory trong .NET Core∕ .NET?

21 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

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

22 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

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

23 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

23. Đâu là lợi ích của việc sử dụng Generics trong C#?

24 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

24. Lambda expression trong C# là gì?

25 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

25. Đâu là mục đích chính của Garbage Collector (GC) trong .NET?

26 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

26. Đâu là vai trò của Common Language Runtime (CLR) trong .NET?

27 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

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

28 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

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

29 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

29. yield return trong C# được sử dụng trong trường hợp nào?

30 / 30

Category: Lập trình .NET

Tags: Bộ đề 5

30. Delegate trong C# là gì?