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

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

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

1. Kiểu dữ liệu nào sau đây là kiểu tham chiếu (reference type) trong C#?

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

2. Trong ASP.NET Core, middleware là gì?

A. Một loại cơ sở dữ liệu được sử dụng cho ứng dụng web.
B. Một thành phần phần mềm xử lý request và response HTTP trong pipeline của ứng dụng.
C. Một framework để xây dựng giao diện người dùng phía client.
D. Một công cụ để quản lý deployment của ứng dụng ASP.NET Core.

3. Sự khác biệt giữa `as` và `cast` operators trong C# khi chuyển đổi kiểu dữ liệu là gì?

A. `as` ném exception nếu chuyển đổi không thành công, `cast` trả về null.
B. `cast` ném exception nếu chuyển đổi không thành công, `as` trả về null.
C. `as` dùng cho value types, `cast` dùng cho reference types.
D. Không có sự khác biệt, `as` và `cast` có thể dùng thay thế cho nhau.

4. Async và await trong C# được sử dụng chủ yếu để giải quyết vấn đề nào?

A. Tăng tốc độ xử lý tính toán phức tạp.
B. Cải thiện khả năng phản hồi của ứng dụng khi thực hiện các tác vụ I/O dài hạn.
C. Đơn giản hóa việc quản lý bộ nhớ.
D. Bảo mật ứng dụng trước các cuộc tấn công.

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

A. Định nghĩa giao diện người dùng cho ứng dụng.
B. Đóng gói phương thức như một đối tượng, cho phép truyền phương thức như tham số.
C. Quản lý vòng đời của đối tượng trong ứng dụng.
D. Xử lý lỗi và ngoại lệ trong quá trình thực thi.

6. Boxing và Unboxing gây ảnh hưởng như thế nào đến hiệu suất của ứng dụng .NET?

A. Boxing và unboxing giúp tăng hiệu suất vì chúng tối ưu hóa việc sử dụng bộ nhớ.
B. Boxing và unboxing có thể làm giảm hiệu suất vì chúng gây ra overhead trong quá trình chuyển đổi kiểu dữ liệu.
C. Boxing và unboxing chỉ ảnh hưởng đến hiệu suất trong các ứng dụng web, không ảnh hưởng đến ứng dụng desktop.
D. Boxing và unboxing không ảnh hưởng đến hiệu suất.

7. Đâu là vai trò của `NuGet` trong .NET development?

A. Biên dịch mã nguồn C# thành mã máy.
B. Quản lý các package (thư viện, công cụ) phụ thuộc cho dự án .NET.
C. Tạo giao diện người dùng cho ứng dụng web.
D. Triển khai ứng dụng .NET lên server.

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

A. Giải phóng bộ nhớ ngay lập tức khi đối tượng không còn được tham chiếu.
B. Giải phóng bộ nhớ theo định kỳ cho các đối tượng không còn được tham chiếu.
C. Yêu cầu lập trình viên tự giải phóng bộ nhớ bằng tay.
D. Chỉ giải phóng bộ nhớ khi ứng dụng kết thúc.

9. Trong WPF (Windows Presentation Foundation), XAML (eXtensible Application Markup Language) được sử dụng để làm gì?

A. Viết logic nghiệp vụ cho ứng dụng.
B. Định nghĩa giao diện người dùng (UI) một cáchDeclarative.
C. Truy vấn dữ liệu từ cơ sở dữ liệu.
D. Xử lý sự kiện từ người dùng.

10. Value types và Reference types khác nhau cơ bản ở cách chúng được lưu trữ trong bộ nhớ như thế nào?

A. Value types được lưu trên heap, reference types được lưu trên stack.
B. Value types được lưu trực tiếp giá trị, reference types lưu địa chỉ tham chiếu đến giá trị.
C. Value types được quản lý bởi Garbage Collector, reference types thì không.
D. Value types có kích thước cố định, reference types có kích thước thay đổi.

11. Trong .NET, Assembly là gì?

A. Một đoạn mã C# không thể biên dịch được.
B. Đơn vị triển khai, phiên bản và tái sử dụng code trong .NET, bao gồm metadata, mã IL, và manifest.
C. Một công cụ để debug ứng dụng .NET.
D. Một loại cơ sở dữ liệu NoSQL.

12. Generics trong C# giải quyết vấn đề nào và mang lại lợi ích gì?

A. Vấn đề trùng lặp code và tăng tính type safety bằng cách cho phép định nghĩa các kiểu dữ liệu tổng quát (parameterized types).
B. Vấn đề quản lý bộ nhớ và tăng tốc độ thực thi.
C. Vấn đề bảo mật và kiểm soát truy cập.
D. Vấn đề tương thích giữa các phiên bản .NET Framework khác nhau.

13. 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.
B. Truy vấn dữ liệu từ nhiều nguồn khác nhau (databases, XML, objects) một cách thống nhất.
C. Quản lý phiên bản và triển khai ứng dụng.
D. Tối ưu hóa hiệu suất thực thi của mã.

14. Trong .NET, Common Language Runtime (CLR) có vai trò chính 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ã bytecode, và cung cấp các dịch vụ runtime.
C. Cung cấp các thư viện lớp cơ bản cho .NET Framework.
D. Xử lý giao diện người dùng trong các ứng dụng Windows Forms.

15. Interfaces và Abstract classes trong C# có điểm chung và khác biệt gì?

A. Cả hai đều định nghĩa blueprint cho các lớp, nhưng interface có thể chứa implementation, abstract class thì không.
B. Cả hai đều định nghĩa blueprint cho các lớp, nhưng interface chỉ chứa khai báo phương thức, abstract class có thể chứa implementation và biến thành viên.
C. Interface dùng cho kiểu giá trị, abstract class dùng cho kiểu tham chiếu.
D. Abstract class hỗ trợ đa kế thừa, interface thì không.

16. Attribute trong .NET được sử dụng để làm gì?

A. Định nghĩa cấu trúc dữ liệu phức tạp.
B. Cung cấp metadata (thông tin mô tả) về các thành phần code (classes, methods, properties...).
C. Thực hiện kiểm tra lỗi cú pháp trong quá trình biên dịch.
D. Tạo ra giao diện người dùng động.

17. Trong lập trình hướng đối tượng với C#, tính chất `đa hình` (polymorphism) thể hiện điều gì?

A. Khả năng một lớp kế thừa từ nhiều lớp khác.
B. Khả năng một đối tượng thuộc nhiều lớp khác nhau.
C. Khả năng một đối tượng có thể biểu hiện các hành vi khác nhau tùy thuộc vào ngữ cảnh.
D. Khả năng ẩn giấu thông tin và chỉ cho phép truy cập qua giao diện.

18. Sự khác biệt chính giữa `const` và `readonly` modifiers trong C# là gì?

A. `const` có thể được gán giá trị tại runtime, `readonly` phải được gán giá trị tại compile time.
B. `const` phải được gán giá trị tại compile time, `readonly` có thể được gán giá trị tại constructor hoặc inline.
C. `const` chỉ dùng cho kiểu giá trị, `readonly` dùng cho cả kiểu giá trị và kiểu tham chiếu.
D. Không có sự khác biệt, `const` và `readonly` có thể dùng thay thế cho nhau.

19. Razor Pages và MVC (Model-View-Controller) là hai mô hình phát triển web trong ASP.NET Core. Sự khác biệt chính giữa chúng là gì?

A. Razor Pages chỉ dành cho các ứng dụng nhỏ, MVC cho ứng dụng lớn.
B. Razor Pages tập trung vào page-centric development, MVC tập trung vào request-centric development.
C. Razor Pages sử dụng C#, MVC sử dụng JavaScript.
D. Razor Pages không hỗ trợ dependency injection, MVC thì có.

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

A. Tạo ra mã máy trực tiếp từ mã nguồn C#.
B. Khám phá và thao tác metadata của types, assemblies, modules và members tại runtime.
C. Tối ưu hóa hiệu suất bộ nhớ.
D. Bảo mật ứng dụng khỏi các cuộc tấn công reverse engineering.

21. Trong .NET MAUI, bạn có thể xây dựng ứng dụng cho các nền tảng nào?

A. Chỉ Windows và macOS.
B. Windows, macOS, Linux.
C. Windows, macOS, iOS, Android.
D. Windows, macOS, iOS, Android, Web.

22. Dependency Injection (DI) container trong .NET (ví dụ: Autofac, Ninject) giúp ích gì cho việc phát triển ứng dụng?

A. Tăng tốc độ biên dịch mã nguồn.
B. Quản lý và cung cấp các dependency (sự phụ thuộc) giữa các thành phần của ứng dụng.
C. Tự động tạo tài liệu kỹ thuật cho dự án.
D. Kiểm tra và sửa lỗi mã nguồn tự động.

23. Đâu là mục đích chính của việc sử dụng `sealed` keyword trong C# khi khai báo một class?

A. Tăng tốc độ khởi tạo đối tượng của class.
B. Ngăn không cho class bị kế thừa bởi các class khác.
C. Giảm kích thước bộ nhớ của đối tượng class.
D. Tăng cường bảo mật cho class.

24. Đâu là mục đích chính của việc sử dụng `using` statement trong C#?

A. Tăng tốc độ biên dịch mã nguồn.
B. Đảm bảo các đối tượng IDisposable được giải phóng tài nguyên (ví dụ: file, connection) một cách chính xác và kịp thời.
C. Khai báo namespace để sử dụng các lớp bên trong namespace đó.
D. Tối ưu hóa hiệu suất bộ nhớ.

25. Đâu là sự khác biệt chính giữa `boxing` và `unboxing` trong C#?

A. Boxing là chuyển đổi từ kiểu tham chiếu sang kiểu giá trị, unboxing ngược lại.
B. Boxing là chuyển đổi từ kiểu giá trị sang kiểu tham chiếu, unboxing ngược lại.
C. Boxing là tối ưu hóa hiệu suất bộ nhớ, unboxing là giải phóng bộ nhớ.
D. Boxing và unboxing là hai cách khác nhau để khai báo biến kiểu object.

26. Sự khác biệt giữa `==` và `.Equals()` khi so sánh các đối tượng string trong C# là gì?

A. `==` so sánh giá trị nội dung của string, `.Equals()` so sánh tham chiếu (địa chỉ bộ nhớ).
B. `==` so sánh tham chiếu (địa chỉ bộ nhớ), `.Equals()` so sánh giá trị nội dung của string.
C. Không có sự khác biệt, `==` và `.Equals()` hoạt động giống nhau với string.
D. `==` nhanh hơn `.Equals()` khi so sánh string.

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

A. Thay đổi implementation của các phương thức có sẵn trong một lớp.
B. Thêm phương thức mới vào một lớp đã tồn tại mà không cần sửa đổi mã nguồn của lớp đó.
C. Tạo ra các lớp kế thừa từ lớp sealed.
D. Tăng hiệu suất thực thi của phương thức.

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

A. Tăng cường bảo mật cho ứng dụng web.
B. Tự động hóa việc triển khai ứng dụng lên server.
C. Ánh xạ giữa cơ sở dữ liệu quan hệ và các đối tượng trong ngôn ngữ lập trình.
D. Tối ưu hóa hiệu suất truy vấn cơ sở dữ liệu.

29. Sự khác biệt giữa `throw` và `throw ex` khi xử lý exceptions trong C# là gì?

A. `throw ex` giữ nguyên stack trace gốc của exception, `throw` thì không.
B. `throw` giữ nguyên stack trace gốc của exception, `throw ex` thì làm mất stack trace gốc.
C. `throw ex` nhanh hơn `throw` vì không cần tạo exception mới.
D. Không có sự khác biệt, `throw` và `throw ex` có thể dùng thay thế cho nhau.

30. Đâu là lợi ích chính của việc sử dụng Properties thay vì Public Fields trong C#?

A. Properties nhanh hơn Public Fields về hiệu suất truy cập.
B. Properties cho phép kiểm soát truy cập (get, set) và thêm logic vào quá trình get/set giá trị, Public Fields thì không.
C. Public Fields dễ đọc hơn Properties.
D. Properties chỉ dùng cho kiểu tham chiếu, Public Fields dùng cho kiểu giá trị.

1 / 30

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

Tags: Bộ đề 9

1. Kiểu dữ liệu nào sau đây là kiểu tham chiếu (reference type) trong C#?

2 / 30

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

Tags: Bộ đề 9

2. Trong ASP.NET Core, middleware là gì?

3 / 30

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

Tags: Bộ đề 9

3. Sự khác biệt giữa 'as' và 'cast' operators trong C# khi chuyển đổi kiểu dữ liệu là gì?

4 / 30

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

Tags: Bộ đề 9

4. Async và await trong C# được sử dụng chủ yếu để giải quyết vấn đề nào?

5 / 30

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

Tags: Bộ đề 9

5. Delegates trong C# được sử 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ộ đề 9

6. Boxing và Unboxing gây ảnh hưởng như thế nào đến hiệu suất của ứng dụng .NET?

7 / 30

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

Tags: Bộ đề 9

7. Đâu là vai trò của 'NuGet' trong .NET development?

8 / 30

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

Tags: Bộ đề 9

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

9 / 30

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

Tags: Bộ đề 9

9. Trong WPF (Windows Presentation Foundation), XAML (eXtensible Application Markup Language) được sử dụng để làm gì?

10 / 30

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

Tags: Bộ đề 9

10. Value types và Reference types khác nhau cơ bản ở cách chúng được lưu trữ trong bộ nhớ như thế nào?

11 / 30

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

Tags: Bộ đề 9

11. Trong .NET, Assembly là gì?

12 / 30

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

Tags: Bộ đề 9

12. Generics trong C# giải quyết vấn đề nào và mang lại lợi ích gì?

13 / 30

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

Tags: Bộ đề 9

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

14 / 30

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

Tags: Bộ đề 9

14. Trong .NET, Common Language Runtime (CLR) có vai trò chính nào?

15 / 30

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

Tags: Bộ đề 9

15. Interfaces và Abstract classes trong C# có điểm chung và khác biệt gì?

16 / 30

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

Tags: Bộ đề 9

16. Attribute trong .NET được sử dụng để làm gì?

17 / 30

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

Tags: Bộ đề 9

17. Trong lập trình hướng đối tượng với C#, tính chất 'đa hình' (polymorphism) thể hiện điều gì?

18 / 30

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

Tags: Bộ đề 9

18. Sự khác biệt chính giữa 'const' và 'readonly' modifiers trong C# là gì?

19 / 30

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

Tags: Bộ đề 9

19. Razor Pages và MVC (Model-View-Controller) là hai mô hình phát triển web trong ASP.NET Core. Sự khác biệt chính giữa chúng là gì?

20 / 30

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

Tags: Bộ đề 9

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

21 / 30

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

Tags: Bộ đề 9

21. Trong .NET MAUI, bạn có thể xây dựng ứng dụng cho các nền tảng nào?

22 / 30

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

Tags: Bộ đề 9

22. Dependency Injection (DI) container trong .NET (ví dụ: Autofac, Ninject) giúp ích gì cho việc phát triển ứng dụng?

23 / 30

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

Tags: Bộ đề 9

23. Đâu là mục đích chính của việc sử dụng 'sealed' keyword trong C# khi khai báo một class?

24 / 30

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

Tags: Bộ đề 9

24. Đâu là mục đích chính của việc sử dụng 'using' statement trong C#?

25 / 30

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

Tags: Bộ đề 9

25. Đâu là sự khác biệt chính giữa 'boxing' và 'unboxing' trong C#?

26 / 30

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

Tags: Bộ đề 9

26. Sự khác biệt giữa '==' và '.Equals()' khi so sánh các đối tượng string trong C# là gì?

27 / 30

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

Tags: Bộ đề 9

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

28 / 30

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

Tags: Bộ đề 9

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

29 / 30

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

Tags: Bộ đề 9

29. Sự khác biệt giữa 'throw' và 'throw ex' khi xử lý exceptions trong C# là gì?

30 / 30

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

Tags: Bộ đề 9

30. Đâu là lợi ích chính của việc sử dụng Properties thay vì Public Fields trong C#?