Bài Tập, Đề Thi Trắc Nghiệm Online – Môn Lập Trình .net – Đề 05

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


Môn Lập Trình .net

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net - Đề 05

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net - Đề 05 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính nào sau đây KHÔNG phải là trách nhiệm của CLR?

  • A. Quản lý bộ nhớ và thu gom rác (Garbage Collection)
  • B. Cung cấp các dịch vụ bảo mật và quản lý kiểu dữ liệu
  • C. Biên dịch mã nguồn C# thành mã máy (machine code) trực tiếp
  • D. Hỗ trợ đa ngôn ngữ và khả năng tương tác giữa các ngôn ngữ .NET

Câu 2: Cho đoạn mã C# sau: `List numbers = new List() { 1, 2, 3, 4, 5 }; var result = numbers.Where(n => n % 2 == 0).Select(n => n * n);`. `result` sẽ chứa các giá trị nào sau khi đoạn mã này thực thi?

  • A. [1, 4, 9, 16, 25]
  • B. [4, 16]
  • C. [2, 4]
  • D. [1, 2, 3, 4, 5]

Câu 3: Dependency Injection (DI) là một nguyên tắc quan trọng trong phát triển ứng dụng .NET. Lợi ích chính của việc sử dụng DI là gì?

  • A. Tăng cường tính module hóa, khả năng kiểm thử và bảo trì của ứng dụng
  • B. Giảm hiệu suất ứng dụng do tạo thêm lớp trung gian
  • C. Làm phức tạp cấu hình ứng dụng và tăng thời gian phát triển
  • D. Hạn chế khả năng tái sử dụng code trong dự án

Câu 4: Trong ASP.NET Core, Middleware pipeline xử lý request HTTP theo thứ tự nhất định. Điều gì xảy ra nếu một middleware không gọi `await next.Invoke()`?

  • A. Request sẽ được chuyển trực tiếp đến middleware cuối cùng trong pipeline.
  • B. Request sẽ được xử lý bởi middleware tiếp theo một cách tuần tự.
  • C. Pipeline sẽ bị đoản mạch và request không được xử lý tiếp bởi các middleware sau đó.
  • D. Ứng dụng sẽ tự động khởi động lại để thiết lập lại pipeline.

Câu 5: Entity Framework Core (EF Core) là ORM phổ biến trong .NET. Phát biểu nào sau đây mô tả đúng nhất về "Code-First Migrations" trong EF Core?

  • A. Cơ chế tự động tạo database từ database schema đã tồn tại.
  • B. Công cụ để viết câu lệnh SQL trực tiếp và bỏ qua lớp ORM.
  • C. Phương pháp quản lý kết nối database trong ứng dụng .NET.
  • D. Cách tiếp cận phát triển database schema từ code C# và quản lý thay đổi schema theo thời gian.

Câu 6: Cho đoạn code C# sau: `async Task ProcessDataAsync() { await Task.Delay(1000); return 42; }`. Từ khóa `async` và `await` được sử dụng trong lập trình bất đồng bộ (asynchronous programming) để làm gì?

  • A. Tăng tốc độ thực thi code bằng cách sử dụng đa luồng.
  • B. Cho phép thực thi code không đồng bộ mà vẫn giữ cấu trúc code tuần tự, dễ đọc.
  • C. Ngăn chặn việc thực thi đồng thời của các phương thức.
  • D. Đảm bảo rằng các hoạt động I/O luôn được thực hiện đồng bộ.

Câu 7: `IEnumerable` và `IQueryable` đều là interface trong .NET để làm việc với tập hợp dữ liệu. Sự khác biệt chính giữa chúng là gì?

  • A. `IEnumerable` hỗ trợ truy vấn LINQ, còn `IQueryable` thì không.
  • B. `IQueryable` chỉ dùng cho dữ liệu in-memory, còn `IEnumerable` dùng cho database.
  • C. `IQueryable` cho phép trì hoãn thực thi truy vấn và tối ưu hóa truy vấn ở phía nguồn dữ liệu (ví dụ: database), còn `IEnumerable` thực thi truy vấn in-memory.
  • D. Không có sự khác biệt đáng kể, chúng có thể thay thế cho nhau trong mọi trường hợp.

Câu 8: Trong C#, "boxing" và "unboxing" liên quan đến việc chuyển đổi giữa kiểu giá trị (value type) và kiểu tham chiếu (reference type). Khi nào "boxing" xảy ra?

  • A. Khi một kiểu giá trị (ví dụ: `int`) được gán cho một kiểu tham chiếu (ví dụ: `object`).
  • B. Khi một kiểu tham chiếu được chuyển đổi ngược lại thành kiểu giá trị.
  • C. Khi một phương thức trả về một kiểu giá trị.
  • D. Khi một biến kiểu tham chiếu được khởi tạo.

Câu 9: Attribute trong .NET được sử dụng để làm gì?

  • A. Định nghĩa kiểu dữ liệu mới trong C#.
  • B. Kiểm soát quyền truy cập (access modifiers) cho các thành viên lớp.
  • C. Thực hiện dependency injection.
  • D. Cung cấp metadata (thông tin mô tả) cho các thành phần code như lớp, phương thức, thuộc tính.

Câu 10: Delegate trong C# là gì và nó thường được sử dụng trong trường hợp nào?

  • A. Một loại lớp đặc biệt dùng để tạo ra các đối tượng.
  • B. Một kiểu dữ liệu tham chiếu đến phương thức, thường dùng để thực hiện callback và xử lý sự kiện.
  • C. Một cơ chế quản lý bộ nhớ tự động trong .NET.
  • D. Một kỹ thuật để tối ưu hóa hiệu suất ứng dụng.

Câu 11: Cho đoạn mã C#: `string str1 =

  • A. true
  • B. Có thể là true hoặc false tùy thuộc vào cài đặt hệ thống.
  • C. false
  • D. Gây ra lỗi biên dịch.

Câu 12: Garbage Collection (GC) là một phần quan trọng của CLR. Mục đích chính của GC là gì?

  • A. Tự động thu hồi bộ nhớ không còn được sử dụng bởi ứng dụng, ngăn chặn rò rỉ bộ nhớ.
  • B. Tối ưu hóa hiệu suất CPU bằng cách giảm tải cho bộ xử lý.
  • C. Quản lý phiên bản của các thư viện .NET Framework.
  • D. Kiểm soát quyền truy cập vào bộ nhớ của ứng dụng.

Câu 13: "Reflection" trong .NET cho phép làm gì?

  • A. Biên dịch code C# sang mã máy.
  • B. Kiểm tra metadata và thông tin kiểu của các assembly, module, type và thành viên của chúng tại runtime.
  • C. Tối ưu hóa code để chạy nhanh hơn.
  • D. Debug ứng dụng .NET.

Câu 14: Interface và abstract class đều được dùng để hiện thực tính trừu tượng (abstraction) trong C#. Sự khác biệt chính giữa chúng là gì?

  • A. Abstract class hỗ trợ đa kế thừa, còn interface thì không.
  • B. Interface có thể chứa code thực thi, còn abstract class thì không.
  • C. Một lớp có thể kế thừa nhiều interface nhưng chỉ có thể kế thừa một abstract class.
  • D. Không có sự khác biệt về chức năng, chỉ khác nhau về cú pháp.

Câu 15: "Generics" trong C# mang lại lợi ích gì?

  • A. Giảm kích thước file thực thi của ứng dụng.
  • B. Tăng tốc độ biên dịch code C#.
  • C. Cho phép viết code hướng đối tượng mà không cần interface.
  • D. Tăng tính type-safe, tái sử dụng code và hiệu suất bằng cách tránh boxing/unboxing.

Câu 16: Trong mô hình lập trình hướng sự kiện (event-driven programming), event handler là gì?

  • A. Một đối tượng chứa thông tin về sự kiện đã xảy ra.
  • B. Một phương thức được gọi khi một sự kiện cụ thể xảy ra.
  • C. Một lớp dùng để định nghĩa các loại sự kiện.
  • D. Một giao diện (interface) mà các lớp sự kiện phải implement.

Câu 17: Extension methods trong C# cho phép làm gì?

  • A. Thay đổi cách thức hoạt động của các toán tử trong C#.
  • B. Tạo ra các lớp kế thừa từ các lớp sealed.
  • C. 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 trực tiếp kiểu đó hoặc kế thừa.
  • D. Tăng cường bảo mật cho ứng dụng .NET.

Câu 18: LINQ Provider chịu trách nhiệm chính trong việc gì khi sử dụng LINQ với các nguồn dữ liệu khác nhau (ví dụ: database, XML, objects)?

  • A. Chuyển đổi các truy vấn LINQ thành ngôn ngữ truy vấn cụ thể của nguồn dữ liệu (ví dụ: SQL cho database).
  • B. Quản lý kết nối đến các nguồn dữ liệu khác nhau.
  • C. Tối ưu hóa hiệu suất của các truy vấn LINQ.
  • D. Xác thực quyền truy cập vào nguồn dữ liệu.

Câu 19: Cho đoạn code C#: `int? nullableInt = null; int regularInt = nullableInt;`. Đoạn code này có biên dịch thành công không? Nếu không, tại sao?

  • A. Biên dịch thành công và `regularInt` sẽ có giá trị 0.
  • B. Không biên dịch thành công vì không thể gán `null` từ `nullableInt` cho `regularInt` mà không ép kiểu hoặc kiểm tra null.
  • C. Biên dịch thành công và `regularInt` sẽ có giá trị `null`.
  • D. Chỉ biên dịch thành công nếu `nullableInt` không phải là `null`.

Câu 20: "Sealed class" trong C# có đặc điểm gì?

  • A. Chỉ có thể chứa các phương thức static.
  • B. Không thể tạo instance (đối tượng) từ sealed class.
  • C. Bắt buộc phải được kế thừa bởi một lớp khác.
  • D. Không thể được sử dụng làm lớp cơ sở (base class) cho các lớp khác (ngăn chặn kế thừa).

Câu 21: `ValueTask` trong C# được giới thiệu để giải quyết vấn đề gì so với `Task` trong lập trình bất đồng bộ?

  • A. `ValueTask` cung cấp khả năng hủy bỏ tác vụ (cancellation) tốt hơn so với `Task`.
  • B. `ValueTask` luôn thực thi tác vụ một cách đồng bộ.
  • C. `ValueTask` giúp giảm overhead và cải thiện hiệu suất trong các trường hợp tác vụ bất đồng bộ có thể hoàn thành đồng bộ.
  • D. `ValueTask` chỉ được sử dụng cho các tác vụ I/O, còn `Task` cho các tác vụ CPU-bound.

Câu 22: Trong ASP.NET Core, `IActionResult` là gì?

  • A. Một interface dùng để định nghĩa request HTTP.
  • B. Một interface đại diện cho kết quả trả về từ một action method trong controller, cho phép trả về các HTTP response khác nhau (ví dụ: View, JSON, Redirect).
  • C. Một class dùng để cấu hình middleware pipeline.
  • D. Một attribute dùng để xác thực người dùng.

Câu 23: Khi nào nên sử dụng "struct" thay vì "class" trong C#?

  • A. Khi cần tạo ra các kiểu dữ liệu nhỏ, value-type, và quan tâm đến hiệu suất (giảm overhead của heap allocation).
  • B. Khi cần đa kế thừa (multiple inheritance).
  • C. Khi cần sử dụng garbage collection.
  • D. Khi cần tạo ra các kiểu dữ liệu phức tạp với nhiều phương thức và thuộc tính.

Câu 24: Cho đoạn code C#: `var numbers = new int[] { 1, 2, 3 }; foreach (var num in numbers) { numbers = new int[] { 4, 5, 6 }; Console.WriteLine(num); }`. Đoạn code này in ra kết quả gì?

  • A. 1 2 3 4 5 6
  • B. 4 5 6
  • C. 1 4
  • D. 1 2 3

Câu 25: "nameof" operator trong C# được sử dụng để làm gì?

  • A. Kiểm tra kiểu của một biến tại runtime.
  • B. Chuyển đổi một biến sang kiểu string.
  • C. Lấy tên của một biến, kiểu, hoặc thành viên của kiểu (method, property, etc.) dưới dạng string.
  • D. Định nghĩa tên alias cho một namespace.

Câu 26: Trong ngữ cảnh bảo mật ứng dụng web ASP.NET Core, Cross-Site Scripting (XSS) là loại tấn công nào?

  • A. Tấn công từ chối dịch vụ (Denial of Service).
  • B. Tấn công bằng cách chèn mã script độc hại vào website, thực thi trên trình duyệt của người dùng khác.
  • C. Tấn công giả mạo yêu cầu (Cross-Site Request Forgery).
  • D. Tấn công vét cạn mật khẩu (Brute-force attack).

Câu 27: Kestrel là gì trong ASP.NET Core?

  • A. Một ORM (Object-Relational Mapper) cho ASP.NET Core.
  • B. Một công cụ để quản lý dependency injection trong ASP.NET Core.
  • C. Một framework testing cho ASP.NET Core.
  • D. Một web server đa nền tảng, mã nguồn mở, mặc định cho ASP.NET Core.

Câu 28: Cho đoạn code C#: `Action greet = name => { Console.WriteLine(

  • A. Một delegate kiểu generic đại diện cho một phương thức trả về `void` và có một tham số kiểu `string`.
  • B. Một class dùng để định nghĩa các action trong ASP.NET Core MVC.
  • C. Một attribute dùng để xác định action method trong controller.
  • D. Một interface dùng để tạo ra các action bất đồng bộ.

Câu 29: "async void" method trong C# thường được khuyến cáo sử dụng trong trường hợp nào?

  • A. Cho tất cả các phương thức bất đồng bộ để tăng hiệu suất.
  • B. Khi cần trả về một giá trị từ phương thức bất đồng bộ.
  • C. Chủ yếu dùng cho event handlers vì chúng không thể trả về `Task`.
  • D. Để thực hiện các tác vụ đồng bộ bên trong một phương thức bất đồng bộ.

Câu 30: NuGet Package Manager được sử dụng để làm gì trong .NET development?

  • A. Biên dịch code C# thành mã máy.
  • B. Quản lý và cài đặt các thư viện và packages bên ngoài vào dự án .NET.
  • C. Debug ứng dụng .NET.
  • D. Tạo database schema từ code C#.

1 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính nào sau đây KHÔNG phải là trách nhiệm của CLR?

2 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 2: Cho đoạn mã C# sau: `List numbers = new List() { 1, 2, 3, 4, 5 }; var result = numbers.Where(n => n % 2 == 0).Select(n => n * n);`. `result` sẽ chứa các giá trị nào sau khi đoạn mã này thực thi?

3 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 3: Dependency Injection (DI) là một nguyên tắc quan trọng trong phát triển ứng dụng .NET. Lợi ích chính của việc sử dụng DI là gì?

4 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 4: Trong ASP.NET Core, Middleware pipeline xử lý request HTTP theo thứ tự nhất định. Điều gì xảy ra nếu một middleware không gọi `await next.Invoke()`?

5 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 5: Entity Framework Core (EF Core) là ORM phổ biến trong .NET. Phát biểu nào sau đây mô tả đúng nhất về 'Code-First Migrations' trong EF Core?

6 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 6: Cho đoạn code C# sau: `async Task ProcessDataAsync() { await Task.Delay(1000); return 42; }`. Từ khóa `async` và `await` được sử dụng trong lập trình bất đồng bộ (asynchronous programming) để làm gì?

7 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 7: `IEnumerable` và `IQueryable` đều là interface trong .NET để làm việc với tập hợp dữ liệu. Sự khác biệt chính giữa chúng là gì?

8 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 8: Trong C#, 'boxing' và 'unboxing' liên quan đến việc chuyển đổi giữa kiểu giá trị (value type) và kiểu tham chiếu (reference type). Khi nào 'boxing' xảy ra?

9 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 9: Attribute trong .NET được sử dụng để làm gì?

10 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 10: Delegate trong C# là gì và nó thường được sử dụng trong trường hợp nào?

11 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 11: Cho đoạn mã C#: `string str1 =

12 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 12: Garbage Collection (GC) là một phần quan trọng của CLR. Mục đích chính của GC là gì?

13 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 13: 'Reflection' trong .NET cho phép làm gì?

14 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 14: Interface và abstract class đều được dùng để hiện thực tính trừu tượng (abstraction) trong C#. Sự khác biệt chính giữa chúng là gì?

15 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 15: 'Generics' trong C# mang lại lợi ích gì?

16 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 16: Trong mô hình lập trình hướng sự kiện (event-driven programming), event handler là gì?

17 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 17: Extension methods trong C# cho phép làm gì?

18 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 18: LINQ Provider chịu trách nhiệm chính trong việc gì khi sử dụng LINQ với các nguồn dữ liệu khác nhau (ví dụ: database, XML, objects)?

19 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 19: Cho đoạn code C#: `int? nullableInt = null; int regularInt = nullableInt;`. Đoạn code này có biên dịch thành công không? Nếu không, tại sao?

20 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 20: 'Sealed class' trong C# có đặc điểm gì?

21 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 21: `ValueTask` trong C# được giới thiệu để giải quyết vấn đề gì so với `Task` trong lập trình bất đồng bộ?

22 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 22: Trong ASP.NET Core, `IActionResult` là gì?

23 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 23: Khi nào nên sử dụng 'struct' thay vì 'class' trong C#?

24 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 24: Cho đoạn code C#: `var numbers = new int[] { 1, 2, 3 }; foreach (var num in numbers) { numbers = new int[] { 4, 5, 6 }; Console.WriteLine(num); }`. Đoạn code này in ra kết quả gì?

25 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 25: 'nameof' operator trong C# được sử dụng để làm gì?

26 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 26: Trong ngữ cảnh bảo mật ứng dụng web ASP.NET Core, Cross-Site Scripting (XSS) là loại tấn công nào?

27 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 27: Kestrel là gì trong ASP.NET Core?

28 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 28: Cho đoạn code C#: `Action greet = name => { Console.WriteLine("Hello, " + name); }; greet("World");`. `Action` là gì?

29 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 29: 'async void' method trong C# thường được khuyến cáo sử dụng trong trường hợp nào?

30 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 5

Câu 30: NuGet Package Manager được sử dụng để làm gì trong .NET development?

Xem kết quả