15+ Đề Thi Thử Trắc Nghiệm – Môn Lập Trình .net

Đề 01

Đề 02

Đề 03

Đề 04

Đề 05

Đề 06

Đề 07

Đề 08

Đề 09

Đề 10

Đề 11

Đề 12

Đề 13

Đề 14

Đề 15

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 01

Trắc nghiệm Lập trình .NET - Đề 01 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: Thành phần nào của .NET Framework/.NET Core chịu trách nhiệm biên dịch mã nguồn (code) từ ngôn ngữ bậc cao (như C#) thành ngôn ngữ trung gian (IL - Intermediate Language) và sau đó thành mã máy (machine code) tại thời điểm thực thi?

  • A. Common Language Specification (CLS)
  • B. Base Class Library (BCL)
  • C. Just-In-Time Compiler (JIT)
  • D. Garbage Collector (GC)

Câu 2: Trong C#, đâu là điểm khác biệt chính giữa kiểu dữ liệu giá trị (Value Type) và kiểu dữ liệu tham chiếu (Reference Type)?

  • A. Kiểu giá trị lưu trữ dữ liệu trực tiếp, kiểu tham chiếu lưu trữ địa chỉ bộ nhớ.
  • B. Kiểu giá trị chỉ có thể là các kiểu nguyên thủy, kiểu tham chiếu là các lớp do người dùng định nghĩa.
  • C. Kiểu giá trị được cấp phát trên heap, kiểu tham chiếu được cấp phát trên stack.
  • D. Kiểu giá trị có thể là null, kiểu tham chiếu thì không.

Câu 3: Xét đoạn mã C# sau:
```csharp
class MyClass
{
public int Value;
}

void ModifyValue(MyClass obj)
{
obj.Value = 100;
}

MyClass myObject = new MyClass { Value = 50 };
ModifyValue(myObject);
// Giá trị của myObject.Value sau khi gọi hàm ModifyValue là bao nhiêu?
```

  • A. 50 (Không thay đổi)
  • B. 0 (Giá trị mặc định)
  • C. Không xác định do lỗi biên dịch
  • D. 100

Câu 4: Trong C#, từ khóa `static` khi áp dụng cho một thành viên (field, method, property) của lớp có ý nghĩa gì?

  • A. Thành viên này chỉ có thể truy cập từ bên trong lớp đó.
  • B. Thành viên này thuộc về lớp chứ không thuộc về một đối tượng cụ thể của lớp.
  • C. Thành viên này không thể bị ghi đè (override) bởi lớp con.
  • D. Thành viên này phải được khởi tạo khi đối tượng của lớp được tạo.

Câu 5: Bạn đang thiết kế một hệ thống quản lý hình dạng (Shape). Bạn có các hình cụ thể như `Circle`, `Square`, `Triangle`. Mỗi hình dạng cần có phương thức `CalculateArea()`. Bạn muốn đảm bảo rằng tất cả các lớp hình dạng đều phải triển khai phương thức này, nhưng không muốn cung cấp triển khai mặc định trong lớp cơ sở `Shape`. Bạn nên sử dụng loại lớp cơ sở nào?

  • A. Lớp trừu tượng (Abstract Class)
  • B. Lớp tĩnh (Static Class)
  • C. Lớp niêm phong (Sealed Class)
  • D. Lớp bình thường (Concrete Class)

Câu 6: Xét đoạn mã C# sau:
```csharp
int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
// evenNumbers sẽ chứa các giá trị nào?
```
Đoạn mã trên sử dụng tính năng LINQ. Kết quả của `evenNumbers` sẽ là gì?

  • A. { 1, 3, 5 }
  • B. { } (Danh sách rỗng)
  • C. { 2, 4 }
  • D. { 1, 2, 3, 4, 5 }

Câu 7: Trong .NET, cơ chế nào chịu trách nhiệm tự động giải phóng bộ nhớ không còn được sử dụng bởi các đối tượng kiểu tham chiếu?

  • A. Manual Memory Management
  • B. Garbage Collector
  • C. Just-In-Time Compiler
  • D. Common Type System

Câu 8: Bạn cần lặp qua một tập hợp các đối tượng (ví dụ: `List`) mà không cần quan tâm đến chỉ số của từng phần tử. Vòng lặp nào trong C# là phù hợp và thường được khuyến nghị sử dụng trong trường hợp này?

  • A. for
  • B. while
  • C. do-while
  • D. foreach

Câu 9: Trong C#, sự khác biệt cơ bản giữa một `interface` và một `abstract class` là gì?

  • A. Interface có thể chứa các trường (fields), còn abstract class thì không.
  • B. Một lớp chỉ có thể triển khai một interface, nhưng có thể kế thừa từ nhiều abstract class.
  • C. Một lớp có thể triển khai nhiều interface, nhưng chỉ có thể kế thừa từ một abstract class.
  • D. Abstract class chỉ chứa các phương thức trừu tượng, còn interface có thể chứa phương thức có triển khai.

Câu 10: Khi xử lý ngoại lệ (exception handling) trong C#, khối `finally` được sử dụng với mục đích gì?

  • A. Chỉ được thực thi nếu không có ngoại lệ nào xảy ra trong khối `try`.
  • B. Luôn được thực thi, bất kể có ngoại lệ xảy ra hay không.
  • C. Chỉ được thực thi nếu một ngoại lệ xảy ra trong khối `try` và được bắt bởi khối `catch` tương ứng.
  • D. Chỉ được thực thi nếu một ngoại lệ xảy ra trong khối `try` và không được bắt bởi bất kỳ khối `catch` nào.

Câu 11: Bạn đang viết một ứng dụng cần giao tiếp với cơ sở dữ liệu SQL Server trong môi trường .NET. Thư viện/namespace nào sau đây là cốt lõi để thực hiện các thao tác truy cập dữ liệu bằng ADO.NET?

  • A. System.IO
  • B. System.Net
  • C.
  • D. System.Xml

Câu 12: Trong C#, từ khóa nào được sử dụng để một lớp con gọi đến constructor của lớp cha?

  • A. base
  • B. this
  • C. parent
  • D. super

Câu 13: Bạn có một danh sách các số nguyên và muốn tạo một danh sách mới chỉ chứa bình phương của các số lẻ. Sử dụng LINQ, truy vấn nào sau đây thực hiện đúng yêu cầu đó?

  • A. numbers.Select(n => n * n).Where(n => n % 2 != 0).ToList();
  • B. numbers.Where(n => n % 2 != 0).Select(n => n * n).ToList();
  • C. numbers.Where(n => n * n % 2 != 0).ToList();
  • D. numbers.Select(n => n % 2 != 0 ? n * n : n).ToList();

Câu 14: Xét đoạn mã C# sau:
```csharp
public class Animal
{
public virtual void Speak()
{
Console.WriteLine(

  • A. Đa hình (Polymorphism), in ra
  • B. Kế thừa (Inheritance), in ra
  • C. Đóng gói (Encapsulation), in ra
  • D. Trừu tượng (Abstraction), in ra

Câu 15: Trong lập trình .NET, mục đích chính của việc sử dụng `using` statement (ví dụ: `using (SqlConnection conn = new SqlConnection(...)) { ... }`) là gì?

  • A. Để nhập các namespace vào phạm vi hiện tại.
  • B. Để tạo bí danh cho một kiểu dữ liệu.
  • C. Để bắt và xử lý ngoại lệ một cách hiệu quả.
  • D. Để đảm bảo tài nguyên không còn cần thiết (triển khai IDisposable) được giải phóng đúng cách.

Câu 16: Kiểu dữ liệu `string` trong C# là kiểu giá trị hay kiểu tham chiếu? Giải thích lý do.

  • A. Kiểu giá trị, vì nó được lưu trữ trên stack.
  • B. Kiểu tham chiếu, vì nó là một lớp và được lưu trữ trên heap.
  • C. Kiểu giá trị, vì nó có tính bất biến (immutable).
  • D. Kiểu tham chiếu, vì nó không thể là null.

Câu 17: Trong ASP.NET Core MVC, mô hình MVC (Model-View-Controller) hoạt động như thế nào?

  • A. Model xử lý yêu cầu, View chứa logic nghiệp vụ, Controller hiển thị dữ liệu.
  • B. View xử lý yêu cầu, Controller chứa logic nghiệp vụ, Model hiển thị dữ liệu.
  • C. Controller xử lý yêu cầu, Model chứa logic nghiệp vụ/dữ liệu, View hiển thị dữ liệu.
  • D. Model xử lý yêu cầu, Controller hiển thị dữ liệu, View chứa logic nghiệp vụ.

Câu 18: Xét đoạn mã C# sau:
```csharp
int x = 10;
object obj = x; // Boxing
int y = (int)obj; // Unboxing
// Nếu thay dòng cuối thành: int y = (short)obj; Điều gì sẽ xảy ra?
```

  • A. Biên dịch lỗi.
  • B. Chạy lỗi (runtime error) với InvalidCastException.
  • C. Chạy bình thường và `y` sẽ có giá trị 10.
  • D. Chạy bình thường nhưng `y` sẽ có giá trị 0.

Câu 19: Đâu là lợi ích chính của việc sử dụng Generic trong C#?

  • A. Tăng cường an toàn kiểu (type safety) và hiệu suất.
  • B. Cho phép kế thừa từ nhiều lớp cha.
  • C. Tự động giải phóng bộ nhớ không còn sử dụng.
  • D. Đảm bảo mã nguồn chỉ chạy được trên một nền tảng cụ thể.

Câu 20: Bạn cần định nghĩa một tập hợp các hằng số nguyên có tên gợi nhớ (ví dụ: các trạng thái của một đơn hàng: Pending, Processing, Shipped, Delivered). Cấu trúc nào trong C# là phù hợp nhất cho mục đích này?

  • A. Class
  • B. Struct
  • C. Enum
  • D. Interface

Câu 21: Trong C#, từ khóa `const` và `readonly` đều được sử dụng để tạo các trường không thể thay đổi giá trị. Điểm khác biệt chính giữa chúng là gì?

  • A. `const` chỉ dùng cho kiểu giá trị, `readonly` dùng cho cả kiểu giá trị và tham chiếu.
  • B. `const` có thể thay đổi giá trị sau khi khởi tạo, `readonly` thì không.
  • C. `readonly` phải được khởi tạo tại thời điểm khai báo, `const` thì không.
  • D. `const` là hằng số biên dịch, `readonly` là hằng số runtime (cho mỗi instance).

Câu 22: Bạn đang phát triển một ứng dụng web ASP.NET Core và cần gửi yêu cầu HTTP đến một API bên ngoài một cách bất đồng bộ để tránh chặn luồng chính. Từ khóa nào trong C# thường được sử dụng để đánh dấu một phương thức là bất đồng bộ và cho phép sử dụng `await` bên trong nó?

  • A. async
  • B. await
  • C. Task
  • D. void

Câu 23: Trong C#, khi nào bạn nên sử dụng `struct` thay vì `class`?

  • A. Khi cần đối tượng có thể kế thừa từ các lớp khác.
  • B. Khi đối tượng cần có thể là null.
  • C. Khi kiểu dữ liệu nhỏ, chủ yếu chứa dữ liệu và bạn muốn hiệu suất cao hơn bằng cách tránh cấp phát trên heap.
  • D. Khi cần tạo các phương thức ảo (virtual methods).

Câu 24: Xét đoạn mã sau:
```csharp
List numbers = new List { 1, 2, 3 };
List otherNumbers = numbers;
otherNumbers.Add(4);
// Số lượng phần tử trong danh sách "numbers" sau khi thêm là bao nhiêu?
```
Đoạn mã này minh họa điều gì về cách xử lý kiểu dữ liệu?

  • A. 3 (Vì `otherNumbers` là bản sao độc lập)
  • B. 0 (Lỗi runtime)
  • C. Không xác định (Lỗi biên dịch)
  • D. 4 (Vì cả hai biến trỏ cùng đối tượng)

Câu 25: Trong lập trình hướng đối tượng với C#, "Encapsulation" (Đóng gói) đề cập đến nguyên tắc nào?

  • A. Đóng gói dữ liệu (fields) và các phương thức (methods) vào một đơn vị duy nhất (lớp) và kiểm soát quyền truy cập.
  • B. Khả năng một đối tượng thuộc nhiều kiểu khác nhau.
  • C. Khả năng một lớp con kế thừa các thuộc tính và phương thức của lớp cha.
  • D. Khả năng định nghĩa các phương thức chung mà không cần cung cấp triển khai cụ thể.

Câu 26: Bạn cần tạo một đối tượng mà chỉ có duy nhất một thể hiện (instance) tồn tại trong toàn bộ ứng dụng. Mẫu thiết kế (Design Pattern) nào thường được sử dụng để đạt được điều này?

  • A. Factory Pattern
  • B. Observer Pattern
  • C. Singleton Pattern
  • D. Strategy Pattern

Câu 27: Trong C#, từ khóa `yield return` được sử dụng trong các phương thức nào và mục đích của nó là gì?

  • A. Trong các phương thức bất đồng bộ (`async`) để tạm dừng thực thi cho đến khi một tác vụ hoàn thành.
  • B. Trong các phương thức trả về tập hợp (`IEnumerable`) để trả về từng phần tử một cách lười biếng (lazy).
  • C. Để thoát khỏi một vòng lặp ngay lập tức.
  • D. Để chỉ định rằng một phương thức sẽ ném ra một ngoại lệ.

Câu 28: Mục đích chính của Common Language Runtime (CLR) trong .NET là gì?

  • A. Cung cấp môi trường thực thi cho mã .NET, bao gồm quản lý bộ nhớ và xử lý ngoại lệ.
  • B. Chỉ định các quy tắc cho phép các ngôn ngữ .NET tương tác với nhau.
  • C. Cung cấp tập hợp các thư viện cơ bản cho các tác vụ lập trình phổ biến.
  • D. Biên dịch mã nguồn thành mã máy trước khi thực thi.

Câu 29: Bạn đang đọc dữ liệu từ một file văn bản lớn và muốn xử lý từng dòng mà không đọc toàn bộ file vào bộ nhớ cùng lúc. Lớp nào trong namespace `System.IO` của .NET thường được sử dụng để đọc file theo từng dòng một cách hiệu quả?

  • A. FileStream
  • B. StreamReader
  • C. BinaryReader
  • D. MemoryStream

Câu 30: Trong C#, khái niệm "Delegate" tương tự nhất với khái niệm nào trong các ngôn ngữ lập trình khác hoặc các nguyên tắc thiết kế?

  • A. Interface
  • B. Abstract Class
  • C. Function Pointer (Con trỏ hàm)
  • D. Enum

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 1: Thành phần nào của .NET Framework/.NET Core chịu trách nhiệm biên dịch mã nguồn (code) từ ngôn ngữ bậc cao (như C#) thành ngôn ngữ trung gian (IL - Intermediate Language) và sau đó thành mã máy (machine code) tại thời điểm thực thi?

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 2: Trong C#, đâu là điểm khác biệt chính giữa kiểu dữ liệu giá trị (Value Type) và kiểu dữ liệu tham chiếu (Reference Type)?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 3: Xét đoạn mã C# sau:
```csharp
class MyClass
{
public int Value;
}

void ModifyValue(MyClass obj)
{
obj.Value = 100;
}

MyClass myObject = new MyClass { Value = 50 };
ModifyValue(myObject);
// Giá trị của myObject.Value sau khi gọi hàm ModifyValue là bao nhiêu?
```

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 4: Trong C#, từ khóa `static` khi áp dụng cho một thành viên (field, method, property) của lớp có ý nghĩa gì?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 5: Bạn đang thiết kế một hệ thống quản lý hình dạng (Shape). Bạn có các hình cụ thể như `Circle`, `Square`, `Triangle`. Mỗi hình dạng cần có phương thức `CalculateArea()`. Bạn muốn đảm bảo rằng tất cả các lớp hình dạng đều phải triển khai phương thức này, nhưng không muốn cung cấp triển khai mặc định trong lớp cơ sở `Shape`. Bạn nên sử dụng loại lớp cơ sở nào?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 6: Xét đoạn mã C# sau:
```csharp
int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
// evenNumbers sẽ chứa các giá trị nào?
```
Đoạn mã trên sử dụng tính năng LINQ. Kết quả của `evenNumbers` sẽ là gì?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 7: Trong .NET, cơ chế nào chịu trách nhiệm tự động giải phóng bộ nhớ không còn được sử dụng bởi các đối tượng kiểu tham chiếu?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 8: Bạn cần lặp qua một tập hợp các đối tượng (ví dụ: `List`) mà không cần quan tâm đến chỉ số của từng phần tử. Vòng lặp nào trong C# là phù hợp và thường được khuyến nghị sử dụng trong trường hợp này?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 9: Trong C#, sự khác biệt cơ bản giữa một `interface` và một `abstract class` là gì?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 10: Khi xử lý ngoại lệ (exception handling) trong C#, khối `finally` được sử dụng với mục đích gì?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 11: Bạn đang viết một ứng dụng cần giao tiếp với cơ sở dữ liệu SQL Server trong môi trường .NET. Thư viện/namespace nào sau đây là cốt lõi để thực hiện các thao tác truy cập dữ liệu bằng ADO.NET?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 12: Trong C#, từ khóa nào được sử dụng để một lớp con gọi đến constructor của lớp cha?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 13: Bạn có một danh sách các số nguyên và muốn tạo một danh sách mới chỉ chứa bình phương của các số lẻ. Sử dụng LINQ, truy vấn nào sau đây thực hiện đúng yêu cầu đó?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 14: Xét đoạn mã C# sau:
```csharp
public class Animal
{
public virtual void Speak()
{
Console.WriteLine("Animal sound");
}
}

public class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("Woof");
}
}

Animal myAnimal = new Dog();
myAnimal.Speak();
// Kết quả in ra màn hình là gì?
```
Đoạn mã này minh họa nguyên tắc OOP nào và kết quả in ra màn hình là gì?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 15: Trong lập trình .NET, mục đích chính của việc sử dụng `using` statement (ví dụ: `using (SqlConnection conn = new SqlConnection(...)) { ... }`) là gì?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 16: Kiểu dữ liệu `string` trong C# là kiểu giá trị hay kiểu tham chiếu? Giải thích lý do.

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 17: Trong ASP.NET Core MVC, mô hình MVC (Model-View-Controller) hoạt động như thế nào?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 18: Xét đoạn mã C# sau:
```csharp
int x = 10;
object obj = x; // Boxing
int y = (int)obj; // Unboxing
// Nếu thay dòng cuối thành: int y = (short)obj; Điều gì sẽ xảy ra?
```

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 19: Đâu là lợi ích chính của việc sử dụng Generic trong C#?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 20: Bạn cần định nghĩa một tập hợp các hằng số nguyên có tên gợi nhớ (ví dụ: các trạng thái của một đơn hàng: Pending, Processing, Shipped, Delivered). Cấu trúc nào trong C# là phù hợp nhất cho mục đích này?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 21: Trong C#, từ khóa `const` và `readonly` đều được sử dụng để tạo các trường không thể thay đổi giá trị. Điểm khác biệt chính giữa chúng là gì?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 22: Bạn đang phát triển một ứng dụng web ASP.NET Core và cần gửi yêu cầu HTTP đến một API bên ngoài một cách bất đồng bộ để tránh chặn luồng chính. Từ khóa nào trong C# thường được sử dụng để đánh dấu một phương thức là bất đồng bộ và cho phép sử dụng `await` bên trong nó?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 23: Trong C#, khi nào bạn nên sử dụng `struct` thay vì `class`?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 24: Xét đoạn mã sau:
```csharp
List numbers = new List { 1, 2, 3 };
List otherNumbers = numbers;
otherNumbers.Add(4);
// Số lượng phần tử trong danh sách 'numbers' sau khi thêm là bao nhiêu?
```
Đoạn mã này minh họa điều gì về cách xử lý kiểu dữ liệu?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 25: Trong lập trình hướng đối tượng với C#, 'Encapsulation' (Đóng gói) đề cập đến nguyên tắc nào?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 26: Bạn cần tạo một đối tượng mà chỉ có duy nhất một thể hiện (instance) tồn tại trong toàn bộ ứng dụng. Mẫu thiết kế (Design Pattern) nào thường được sử dụng để đạt được điều này?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 27: Trong C#, từ khóa `yield return` được sử dụng trong các phương thức nào và mục đích của nó là gì?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 28: Mục đích chính của Common Language Runtime (CLR) trong .NET là gì?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 29: Bạn đang đọc dữ liệu từ một file văn bản lớn và muốn xử lý từng dòng mà không đọc toàn bộ file vào bộ nhớ cùng lúc. Lớp nào trong namespace `System.IO` của .NET thường được sử dụng để đọc file theo từng dòng một cách hiệu quả?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 01

Câu 30: Trong C#, khái niệm 'Delegate' tương tự nhất với khái niệm nào trong các ngôn ngữ lập trình khác hoặc các nguyên tắc thiết kế?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 02

Trắc nghiệm Lập trình .NET - Đề 02 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) 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. Cung cấp các thư viện lớp cơ bản (Base Class Library - BCL)
  • C. Quản lý giao diện người dùng đồ họa (GUI)
  • D. Quản lý việc thực thi mã và cung cấp các dịch vụ runtime

Câu 2: Phương thức mở rộng (Extension methods) trong C# cho phép bạn làm gì?

  • A. Thêm phương thức mới vào các lớp đã tồn tại mà không cần kế thừa hoặc sửa đổi lớp gốc
  • B. Thay đổi hành vi của các phương thức hiện có trong một lớp
  • C. Tạo ra các lớp hoàn toàn mới từ các lớp đã có
  • D. Giới hạn khả năng truy cập của các phương thức trong một lớp

Câu 3: Kiểu dữ liệu "dynamic" trong C# được sử dụng khi nào?

  • A. Khi muốn khai báo biến mà không cần xác định kiểu dữ liệu cụ thể
  • B. Khi muốn tối ưu hóa hiệu suất của ứng dụng
  • C. Khi làm việc với các đối tượng mà kiểu dữ liệu chỉ được xác định tại thời gian chạy (runtime)
  • D. Khi muốn tạo ra các biến có thể thay đổi kiểu dữ liệu trong quá trình chạy

Câu 4: LINQ (Language Integrated Query) trong .NET Framework cung cấp khả năng gì chính?

  • A. Tạo giao diện người dùng tương tác (UI) cho ứng dụng web
  • B. Truy vấn và thao tác dữ liệu từ nhiều nguồn khác nhau một cách thống nhất
  • C. Quản lý bộ nhớ và thu gom rác tự động (Garbage Collection)
  • D. Xây dựng các dịch vụ web RESTful

Câu 5: Trong lập trình bất đồng bộ (Asynchronous programming) với async/await trong C#, từ khóa "await" có vai trò gì?

  • A. Tạm dừng việc thực thi phương thức hiện tại cho đến khi tác vụ bất đồng bộ hoàn thành
  • B. Bắt đầu một luồng (thread) mới để thực hiện tác vụ song song
  • C. Đánh dấu một phương thức là có thể thực thi bất đồng bộ
  • D. Xử lý ngoại lệ xảy ra trong quá trình thực thi tác vụ bất đồng bộ

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

  • A. 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
  • B. Đơn giản hóa việc quản lý bộ nhớ trong ứng dụng
  • C. Tăng tính linh hoạt, khả năng kiểm thử và bảo trì của ứng dụng
  • D. Tự động tạo mã nguồn cho các thành phần phụ thuộc

Câu 7: Trong ASP.NET Core, Middleware là gì?

  • A. Một loại controller đặc biệt để xử lý các request API
  • B. Các thành phần phần mềm được lắp ghép vào pipeline xử lý HTTP request để thực hiện các tác vụ cụ thể
  • C. Cơ chế quản lý phiên (session) và trạng thái (state) trong ứng dụng web
  • D. Công cụ để tạo giao diện người dùng (UI) động cho ứng dụng web

Câu 8: Entity Framework Core (EF Core) là một ORM (Object-Relational Mapper) trong .NET. Chức năng chính của EF Core là gì?

  • A. Tối ưu hóa hiệu suất truy vấn database
  • B. Xây dựng giao diện người dùng cho ứng dụng database
  • C. Quản lý kết nối đến nhiều loại database khác nhau
  • D. Ánh xạ giữa database quan hệ và các đối tượng .NET để đơn giản hóa việc truy cập và thao tác dữ liệu

Câu 9: Trong ngữ cảnh bảo mật ứng dụng .NET, 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 SQL Injection
  • C. Tấn công chèn mã độc vào website để thực thi trên trình duyệt của người dùng khác
  • D. Tấn công bằng cách giả mạo yêu cầu từ người dùng hợp lệ (Cross-Site Request Forgery - CSRF)

Câu 10: Garbage Collection (GC) trong .NET Framework hoạt động như thế nào?

  • A. Lập trình viên phải chủ động gọi hàm giải phóng bộ nhớ khi không còn sử dụng
  • B. Tự động giải phóng bộ nhớ không còn được ứng dụng tham chiếu đến
  • C. Chỉ giải phóng bộ nhớ khi ứng dụng kết thúc
  • D. Hoạt động dựa trên đếm số lượng tham chiếu đến đối tượng và giải phóng khi số đếm bằng 0

Câu 11: Cho đoạn mã C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. "evenNumbers" sẽ chứa gì?

  • A. Một danh sách rỗng
  • B. Một danh sách chứa tất cả các số từ 1 đến 5
  • C. Một tập hợp các số chẵn: { 2, 4 }
  • D. Một ngoại lệ sẽ xảy ra do lỗi cú pháp

Câu 12: Phương thức "Dispose()" trong .NET thường được sử dụng để làm gì?

  • A. Giải phóng bộ nhớ đã cấp phát cho đối tượng
  • B. Khởi tạo lại trạng thái ban đầu của đối tượng
  • C. Đánh dấu đối tượng để Garbage Collector thu gom
  • D. Giải phóng các tài nguyên không được quản lý bởi Garbage Collector (ví dụ: file handles, database connections)

Câu 13: Đoạn code C# sau in ra kết quả gì? `int x = 5; Action modifyX = val => x = val * 2; modifyX(3); Console.WriteLine(x);`

  • A. 3
  • B. 6
  • C. 10
  • D. Một lỗi biên dịch

Câu 14: Trong C#, sự khác biệt chính giữa "struct" và "class" là gì?

  • A. Struct là kiểu giá trị (value type), class là kiểu tham chiếu (reference type)
  • B. Struct hỗ trợ kế thừa, class thì không
  • C. Class có thể chứa phương thức, struct thì không
  • D. Struct được quản lý bộ nhớ bởi Garbage Collector, class thì không

Câu 15: Khi nào bạn nên sử dụng "interface" thay vì "abstract class" trong thiết kế hướng đối tượng với C#?

  • A. Khi muốn cung cấp một lớp cơ sở có chứa implementation chung cho các lớp con
  • B. Khi muốn tạo ra một kiểu dữ liệu mới hoàn toàn
  • C. Khi muốn định nghĩa một hợp đồng mà nhiều lớp không liên quan có thể thực hiện
  • D. Khi muốn tối ưu hóa hiệu suất của ứng dụng

Câu 16: Cho đoạn code C# sau: `string str1 =

  • A. true
  • B. false
  • C. Null
  • D. Lỗi biên dịch

Câu 17: "Boxing" và "Unboxing" là gì trong C#?

  • A. Kỹ thuật đóng gói ứng dụng .NET để triển khai
  • B. Cơ chế bảo mật để ẩn mã nguồn
  • C. Quá trình chuyển đổi giữa các phiên bản .NET Framework khác nhau
  • D. Boxing là chuyển đổi kiểu giá trị sang kiểu tham chiếu object; Unboxing là ngược lại

Câu 18: Trong ASP.NET Core MVC, "IActionResult" là gì?

  • A. Một thuộc tính để xác định route của action method
  • B. Một filter để xử lý request trước khi action method được gọi
  • C. Interface trả về của action method trong controller, cho phép trả về nhiều kiểu HTTP response khác nhau
  • D. Một class helper để tạo view model

Câu 19: Đoạn code C# sau có thể gây ra lỗi "StackOverflowException" trong trường hợp nào? `public int Factorial(int n) { return n == 0 ? 1 : n * Factorial(n - 1); }`

  • A. Khi n là số chẵn
  • B. Khi n là một số âm hoặc một số quá lớn
  • C. Khi n là số nguyên tố
  • D. Đoạn code này không bao giờ gây ra lỗi "StackOverflowException"

Câu 20: Trong C#, từ khóa "sealed" được sử dụng để làm gì?

  • A. Ngăn chặn một lớp hoặc phương thức bị kế thừa/ghi đè
  • B. Tối ưu hóa hiệu suất của lớp hoặc phương thức
  • C. Bảo vệ thành viên của lớp khỏi bị truy cập từ bên ngoài
  • D. Đánh dấu một lớp hoặc phương thức là quan trọng và không được thay đổi

Câu 21: Trong .NET, "NuGet" là gì?

  • A. Một công cụ để biên dịch mã nguồn .NET
  • B. Một framework để xây dựng giao diện người dùng web
  • C. Một trình quản lý gói (package manager) cho phép sử dụng và quản lý các thư viện bên ngoài trong dự án .NET
  • D. Một hệ thống quản lý cơ sở dữ liệu của Microsoft

Câu 22: Cho đoạn code C#: `int? nullableInt = null; int regularInt = nullableInt ?? 0;`. Giá trị của "regularInt" sau khi thực thi là bao nhiêu?

  • A. null
  • B. 0
  • C. Một giá trị ngẫu nhiên
  • D. Lỗi biên dịch

Câu 23: Trong ASP.NET Core, Razor Pages cung cấp mô hình lập trình nào?

  • A. Mô hình Model-View-Controller (MVC)
  • B. Mô hình Model-View-ViewModel (MVVM)
  • C. Mô hình Single-Page Application (SPA)
  • D. Mô hình lập trình trang (page-based), đơn giản hóa việc xây dựng UI web

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

  • A. Khám phá và thao tác metadata của assembly và các kiểu dữ liệu tại runtime
  • B. Tối ưu hóa mã nguồn trong quá trình biên dịch
  • C. Tạo giao diện người dùng đồ họa (GUI) một cách trực quan
  • D. Quản lý bộ nhớ và thu gom rác tự động

Câu 25: "CancellationToken" trong .NET được sử dụng để làm gì trong lập trình bất đồng bộ?

  • A. Đồng bộ hóa việc thực thi của nhiều tác vụ bất đồng bộ
  • B. Hủy bỏ một tác vụ bất đồng bộ đang chạy
  • C. Xử lý ngoại lệ trong tác vụ bất đồng bộ
  • D. Đo lường thời gian thực thi của tác vụ bất đồng bộ

Câu 26: Cho đoạn code C#: `var numbers = new int[] { 1, 2, 3 }; foreach (var num in numbers) { numbers[0] = 10; Console.WriteLine(num); }`. Đoạn code này in ra gì?

  • A. 10
    10
    10
  • B. 1
    2
    3
    với lỗi runtime
  • C. 1
    2
    3
  • D. Lỗi biên dịch vì thay đổi mảng trong foreach

Câu 27: Trong .NET MAUI, mục tiêu chính là gì?

  • A. Xây dựng ứng dụng web backend hiệu suất cao
  • B. Phát triển game 3D trên nền tảng .NET
  • C. Tạo ra các thư viện .NET có thể tái sử dụng
  • D. Phát triển ứng dụng đa nền tảng (mobile và desktop) từ một codebase duy nhất

Câu 28: "Delegates" trong C# là gì?

  • A. Một loại lớp đặc biệt để quản lý bộ nhớ
  • B. Kiểu dữ liệu tham chiếu đại diện cho phương thức, cho phép gọi phương thức thông qua biến delegate
  • C. Cơ chế để xử lý ngoại lệ trong .NET
  • D. Một công cụ để tạo tài liệu mã nguồn tự động

Câu 29: Trong lập trình hướng đối tượng, nguyên tắc "SOLID" là gì?

  • A. Một framework để phát triển ứng dụng web .NET
  • B. Một pattern thiết kế để quản lý dependencies trong ứng dụng
  • C. Tập hợp 5 nguyên tắc thiết kế hướng đối tượng (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion)
  • D. Một công cụ để kiểm thử đơn vị (unit testing) trong .NET

Câu 30: Cho đoạn code C#: `var list = new List { 1, 2, 3 }; list.Remove(2);`. Sau khi thực thi, "list" sẽ chứa các phần tử nào?

  • A. { 1, 3 }
  • B. { 1, 2, 3 } (không thay đổi)
  • C. { 1, null, 3 }
  • D. { 1, 2 } (chỉ loại bỏ phần tử cuối cùng)

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

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

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 2: Phương thức mở rộng (Extension methods) trong C# cho phép bạn làm gì?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 3: Kiểu dữ liệu 'dynamic' trong C# được sử dụng khi nào?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 4: LINQ (Language Integrated Query) trong .NET Framework cung cấp khả năng gì chính?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 5: Trong lập trình bất đồng bộ (Asynchronous programming) với async/await trong C#, từ khóa 'await' có vai trò gì?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

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

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 7: Trong ASP.NET Core, Middleware là gì?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 8: Entity Framework Core (EF Core) là một ORM (Object-Relational Mapper) trong .NET. Chức năng chính của EF Core là gì?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

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

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 10: Garbage Collection (GC) trong .NET Framework hoạt động như thế nào?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 11: Cho đoạn mã C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. 'evenNumbers' sẽ chứa gì?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 12: Phương thức 'Dispose()' trong .NET thường được sử dụng để làm gì?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 13: Đoạn code C# sau in ra kết quả gì? `int x = 5; Action modifyX = val => x = val * 2; modifyX(3); Console.WriteLine(x);`

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 14: Trong C#, sự khác biệt chính giữa 'struct' và 'class' là gì?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 15: Khi nào bạn nên sử dụng 'interface' thay vì 'abstract class' trong thiết kế hướng đối tượng với C#?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 16: Cho đoạn code C# sau: `string str1 = "hello"; string str2 = "hello"; bool result = ReferenceEquals(str1, str2);`. Giá trị của 'result' là gì?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 17: 'Boxing' và 'Unboxing' là gì trong C#?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 18: Trong ASP.NET Core MVC, 'IActionResult' là gì?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 19: Đoạn code C# sau có thể gây ra lỗi 'StackOverflowException' trong trường hợp nào? `public int Factorial(int n) { return n == 0 ? 1 : n * Factorial(n - 1); }`

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 20: Trong C#, từ khóa 'sealed' được sử dụng để làm gì?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 21: Trong .NET, 'NuGet' là gì?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 22: Cho đoạn code C#: `int? nullableInt = null; int regularInt = nullableInt ?? 0;`. Giá trị của 'regularInt' sau khi thực thi là bao nhiêu?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 23: Trong ASP.NET Core, Razor Pages cung cấp mô hình lập trình nào?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

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

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 25: 'CancellationToken' trong .NET được sử dụng để làm gì trong lập trình bất đồng bộ?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 26: Cho đoạn code C#: `var numbers = new int[] { 1, 2, 3 }; foreach (var num in numbers) { numbers[0] = 10; Console.WriteLine(num); }`. Đoạn code này in ra gì?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 27: Trong .NET MAUI, mục tiêu chính là gì?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 28: 'Delegates' trong C# là gì?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 29: Trong lập trình hướng đối tượng, nguyên tắc 'SOLID' là gì?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 02

Câu 30: Cho đoạn code C#: `var list = new List { 1, 2, 3 }; list.Remove(2);`. Sau khi thực thi, 'list' sẽ chứa các phần tử nào?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 03

Trắc nghiệm Lập trình .NET - Đề 03 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 của CLR là gì?

  • A. Biên dịch mã nguồn C# thành mã máy trực tiếp để tăng tốc độ thực thi.
  • B. Cung cấp một bộ thư viện lớp cơ sở (Base Class Library - BCL) để phát triển ứng dụng.
  • C. Quản lý việc thực thi mã .NET, bao gồm quản lý bộ nhớ và biên dịch Just-In-Time (JIT).
  • D. Đảm bảo tính tương thích ngược giữa các phiên bản khác nhau của .NET Framework.

Câu 2: Xét đoạn mã C# sau: `int x = 5; object y = x; int z = (int)y;`. Điều gì xảy ra khi dòng code `int z = (int)y;` được thực thi?

  • A. Lỗi biên dịch do không thể gán object cho biến int.
  • B. Giá trị của `y` được unbox và gán cho `z`, `z` sẽ có giá trị 5.
  • C. Lỗi runtime `InvalidCastException` vì object không thể ép kiểu về int.
  • D. Giá trị của `x` được sao chép vào `z` mà không thông qua `y`.

Câu 3: Đặc điểm nào sau đây KHÔNG phải là của ngôn ngữ C#?

  • A. Hỗ trợ lập trình đa nền tảng (cross-platform) thông qua .NET.
  • B. Là ngôn ngữ lập trình hướng đối tượng (Object-Oriented Programming).
  • C. Hỗ trợ đa kế thừa lớp (multiple inheritance) giống như C++.
  • D. Tự động quản lý bộ nhớ thông qua Garbage Collection.

Câu 4: Trong lập trình hướng đối tượng với C#, "tính trừu tượng" (abstraction) mang lại lợi ích gì?

  • A. Giảm độ phức tạp khi làm việc với các đối tượng bằng cách ẩn đi các chi tiết không cần thiết.
  • B. Tăng tốc độ thực thi chương trình nhờ loại bỏ các bước kiểm tra kiểu dữ liệu.
  • C. Cho phép một lớp kế thừa từ nhiều lớp cha, tăng khả năng tái sử dụng mã.
  • D. Bảo vệ dữ liệu của đối tượng khỏi bị truy cập và sửa đổi từ bên ngoài.

Câu 5: Phương thức mở rộng (extension method) trong C# được sử dụng để làm gì?

  • A. Thay thế một phương thức hiện có của một lớp bằng một phiên bản mới.
  • B. Tạo ra một lớp con (derived class) từ một lớp cha (base class).
  • C. Định nghĩa lại một phương thức ảo (virtual method) trong lớp con.
  • D. 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 lớp gốc.

Câu 6: Delegates và Events là hai khái niệm quan trọng trong C#. Sự khác biệt chính giữa Delegate và Event là gì?

  • A. Delegate chỉ dùng cho phương thức tĩnh, còn Event dùng cho phương thức instance.
  • B. Event cung cấp cơ chế kiểm soát truy cập chặt chẽ hơn delegate, giới hạn việc gọi delegate từ bên ngoài lớp chứa event.
  • C. Delegate được khai báo trong interface, còn Event được khai báo trong class.
  • D. Delegate chỉ có thể trỏ đến một phương thức, còn Event có thể trỏ đến nhiều phương thức.

Câu 7: Cho đoạn code C# sau: `List numbers = new List() { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. `evenNumbers` sẽ chứa gì sau khi đoạn code này thực thi?

  • A. Một ngoại lệ sẽ xảy ra do phương thức `Where` không được hỗ trợ trên List.
  • B. Tổng của các số chẵn trong danh sách (2 + 4 = 6).
  • C. Một tập hợp chứa các số chẵn từ danh sách ban đầu: [2, 4].
  • D. Số lượng các số chẵn trong danh sách (2).

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

  • A. Đơn giản hóa lập trình bất đồng bộ, giúp ứng dụng không bị "treo" khi thực hiện các tác vụ kéo dài.
  • B. Tăng cường tính bảo mật cho ứng dụng bằng cách mã hóa dữ liệu truyền qua mạng.
  • C. Giảm dung lượng bộ nhớ sử dụng bởi ứng dụng bằng cách tối ưu hóa việc quản lý bộ nhớ.
  • D. Cải thiện khả năng tương thích giữa ứng dụng .NET và các hệ điều hành khác nhau.

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

  • A. Tăng tốc độ biên dịch chương trình bằng cách tối ưu hóa mã nguồn.
  • B. Giảm thiểu nguy cơ xung đột tên biến giữa các module khác nhau.
  • C. Tự động tạo tài liệu API cho ứng dụng dựa trên code.
  • D. Giảm sự phụ thuộc giữa các thành phần, tăng tính kiểm thử và khả năng bảo trì của ứng dụng.

Câu 10: Trong ASP.NET Core, Middleware đóng vai trò gì?

  • A. Quản lý kết nối cơ sở dữ liệu và thực hiện các truy vấn dữ liệu.
  • B. Xử lý các HTTP request và response trong một pipeline, thực hiện các tác vụ trung gian như xác thực và logging.
  • C. Xây dựng giao diện người dùng (UI) động cho ứng dụng web.
  • D. Triển khai và quản lý vòng đời của các đối tượng (objects) trong ứng dụng.

Câu 11: Cho đoạn code C# sau: `string str1 =

  • A. true, vì C# coi chuỗi là kiểu giá trị và so sánh theo giá trị.
  • B. true, vì chuỗi được tự động chuẩn hóa trước khi so sánh.
  • C. false, vì so sánh chuỗi trong C# mặc định là phân biệt chữ hoa chữ thường.
  • D. Lỗi biên dịch vì không thể so sánh trực tiếp hai chuỗi bằng toán tử `==`.

Câu 12: Garbage Collection (GC) trong .NET Framework hoạt động như thế nào?

  • A. Giải phóng bộ nhớ ngay lập tức khi một đối tượng không còn được sử dụng.
  • B. Yêu cầu lập trình viên phải tự giải phóng bộ nhớ một cách thủ công.
  • C. Chỉ hoạt động khi bộ nhớ hệ thống gần đầy.
  • D. Tự động thu hồi bộ nhớ không còn được sử dụng bởi ứng dụng theo định kỳ.

Câu 13: Interface trong C# khác với Abstract Class ở điểm nào?

  • A. Interface hỗ trợ đa kế thừa, còn Abstract Class chỉ hỗ trợ đơn kế thừa.
  • B. Interface chỉ chứa khai báo thành viên (signatures), không chứa triển khai; Abstract Class có thể chứa cả khai báo và triển khai.
  • C. Abstract Class có thể được khởi tạo trực tiếp, còn Interface thì không.
  • D. Interface được sử dụng cho kiểu dữ liệu giá trị (value types), còn Abstract Class cho kiểu dữ liệu tham chiếu (reference types).

Câu 14: Boxing và Unboxing là gì trong C# và khi nào chúng xảy ra?

  • A. Boxing là chuyển đổi từ kiểu tham chiếu sang kiểu giá trị, Unboxing là ngược lại.
  • B. Boxing và Unboxing chỉ xảy ra khi làm việc với các kiểu dữ liệu nullable.
  • C. Boxing là chuyển đổi kiểu giá trị sang object, Unboxing là ngược lại; Boxing xảy ra ngầm định, Unboxing cần ép kiểu.
  • D. Boxing và Unboxing là cơ chế để bảo vệ dữ liệu khỏi bị thay đổi ngoài ý muốn.

Câu 15: Cho đoạn code C# sau: `int? nullableInt = null; int regularInt = nullableInt ?? -1;`. Giá trị của `regularInt` sau khi thực thi là bao nhiêu?

  • A. null, vì `nullableInt` đang là null.
  • B. -1, vì `nullableInt` là null nên toán tử `??` trả về giá trị bên phải.
  • C. 0, giá trị mặc định của kiểu int.
  • D. Lỗi runtime vì không thể gán null cho kiểu int thông thường.

Câu 16: LINQ Provider là gì và vai trò của nó trong LINQ?

  • A. Một thư viện chứa các phương thức mở rộng (extension methods) cho LINQ.
  • B. Công cụ để tối ưu hóa hiệu suất truy vấn LINQ.
  • C. Thành phần dịch truy vấn LINQ thành các lệnh truy vấn phù hợp với từng nguồn dữ liệu cụ thể.
  • D. Trình biên dịch mã LINQ thành mã IL (Intermediate Language).

Câu 17: Unit Testing là gì và tại sao nó quan trọng trong phát triển phần mềm .NET?

  • A. Kiểm thử toàn bộ hệ thống sau khi tích hợp tất cả các module.
  • B. Kiểm thử giao diện người dùng (UI) để đảm bảo trải nghiệm người dùng tốt.
  • C. Kiểm thử hiệu suất của ứng dụng dưới tải cao.
  • D. Kiểm thử từng đơn vị mã nhỏ nhất để phát hiện lỗi sớm và đảm bảo chất lượng mã.

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

  • A. Cung cấp metadata (thông tin mô tả) cho các thành phần của chương trình, có thể được sử dụng bởi runtime hoặc các công cụ khác.
  • B. Định nghĩa các quy tắc xác thực dữ liệu cho các thuộc tính của lớp.
  • C. Tạo ra các phương thức mở rộng (extension methods) cho các lớp.
  • D. Quản lý vòng đời của các đối tượng (objects) trong ứng dụng.

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

  • A. Tối ưu hóa hiệu suất thực thi của chương trình.
  • B. Khám phá và thao tác metadata của assembly, module, và type tại runtime.
  • C. Biên dịch mã nguồn C# thành mã máy trực tiếp.
  • D. Quản lý bộ nhớ và thu gom rác (garbage collection).

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

  • A. 10
    10
    10
  • B. 1
    2
    3
    10
  • C. 1
    2
    3
  • D. Lỗi runtime vì cố gắng sửa đổi collection đang được lặp.

Câu 21: Kiểu dữ liệu `dynamic` trong C# có đặc điểm gì nổi bật?

  • A. Là kiểu dữ liệu có hiệu suất thực thi cao nhất trong C#.
  • B. Kiểm tra kiểu được thực hiện tại runtime, cho phép tương tác linh hoạt với các đối tượng.
  • C. Tự động chuyển đổi giữa các kiểu dữ liệu số học khác nhau.
  • D. Đảm bảo tính an toàn kiểu tuyệt đối tại thời điểm biên dịch.

Câu 22: Kỹ thuật Caching trong .NET được sử dụng để làm gì?

  • A. Bảo vệ dữ liệu khỏi bị mất mát khi hệ thống gặp sự cố.
  • B. Tăng cường tính bảo mật bằng cách mã hóa dữ liệu trong bộ nhớ.
  • C. Cải thiện hiệu suất ứng dụng bằng cách giảm thời gian truy cập dữ liệu thường xuyên sử dụng.
  • D. Quản lý bộ nhớ hiệu quả hơn bằng cách nén dữ liệu.

Câu 23: Serialization và Deserialization là gì trong .NET và chúng được sử dụng khi nào?

  • A. Serialization là mã hóa dữ liệu, Deserialization là giải mã dữ liệu.
  • B. Serialization là tạo bản sao đối tượng, Deserialization là xóa đối tượng.
  • C. Serialization và Deserialization chỉ áp dụng cho kiểu dữ liệu string.
  • D. Serialization là chuyển đối tượng thành chuỗi byte, Deserialization là ngược lại; dùng khi lưu trữ, truyền dữ liệu.

Câu 24: Trong ASP.NET MVC, Action Filter được sử dụng để làm gì?

  • A. Định nghĩa URL routing cho ứng dụng MVC.
  • B. Thực thi logic trước hoặc sau khi action method được gọi, ví dụ: xác thực, logging.
  • C. Xây dựng giao diện người dùng (UI) cho các view trong MVC.
  • D. Quản lý trạng thái (state) của ứng dụng MVC.

Câu 25: Cho đoạn code C# sau: `string message =

  • A.
  • B.
  • C.
  • D. Lỗi runtime `ArgumentOutOfRangeException` nếu độ dài vượt quá giới hạn.

Câu 26: Razor Pages trong ASP.NET Core là gì và chúng khác biệt như thế nào so với MVC?

  • A. Mô hình phát triển ứng dụng web dựa trên trang trong ASP.NET Core, đơn giản hóa phát triển so với MVC cho ứng dụng hướng trang.
  • B. Phiên bản nâng cấp của MVC, tích hợp thêm nhiều tính năng mới.
  • C. Công nghệ để xây dựng ứng dụng web client-side sử dụng JavaScript trong .NET Core.
  • D. Mô hình phát triển ứng dụng web service (API) trong ASP.NET Core.

Câu 27: Thread và Task khác nhau như thế nào trong .NET?

  • A. Thread chỉ dùng cho tác vụ UI, Task dùng cho tác vụ nền.
  • B. Thread là tính năng cũ, Task là tính năng mới và thay thế Thread.
  • C. Thread tự quản lý, Task cần quản lý thủ công.
  • D. Thread là luồng thực thi của hệ điều hành, Task là trừu tượng hóa mức cao hơn, nhẹ và hiệu quả hơn.

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

  • A. Quản lý phiên bản của .NET Framework và .NET SDK.
  • B. Quản lý các thư viện và công cụ bên ngoài (NuGet packages) trong dự án .NET.
  • C. Triển khai ứng dụng .NET lên server.
  • D. Tạo và quản lý cơ sở dữ liệu cho ứng dụng .NET.

Câu 29: Cho đoạn code C# sau: `int[] arr = { 5, 2, 8, 1, 9 }; Array.Sort(arr);`. Mảng `arr` sẽ chứa gì sau khi thực thi?

  • A. { 9, 8, 5, 2, 1 }
  • B. { 5, 2, 8, 1, 9 }
  • C. { 1, 2, 5, 8, 9 }
  • D. { 5, 8, 9, 2, 1 }

Câu 30: `IActionResult` interface trong ASP.NET Core MVC được sử dụng để làm gì?

  • A. Định nghĩa contract cho các model trong MVC.
  • B. Quản lý routing và điều hướng trong ứng dụng MVC.
  • C. Xử lý lỗi và ngoại lệ trong action methods.
  • D. Đại diện cho kết quả trả về của một action method, cho phép trả về nhiều loại HTTP response.

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 2: Xét đoạn mã C# sau: `int x = 5; object y = x; int z = (int)y;`. Điều gì xảy ra khi dòng code `int z = (int)y;` được thực thi?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 3: Đặc điểm nào sau đây KHÔNG phải là của ngôn ngữ C#?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 4: Trong lập trình hướng đối tượng với C#, 'tính trừu tượng' (abstraction) mang lại lợi ích gì?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 5: Phương thức mở rộng (extension method) trong C# được sử dụng để làm gì?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 6: Delegates và Events là hai khái niệm quan trọng trong C#. Sự khác biệt chính giữa Delegate và Event là gì?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 7: Cho đoạn code C# sau: `List numbers = new List() { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. `evenNumbers` sẽ chứa gì sau khi đoạn code này thực thi?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

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

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

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

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 10: Trong ASP.NET Core, Middleware đóng vai trò gì?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 11: Cho đoạn code C# sau: `string str1 = "hello"; string str2 = "Hello"; bool result = (str1 == str2);`. Giá trị của `result` là gì?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 12: Garbage Collection (GC) trong .NET Framework hoạt động như thế nào?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 13: Interface trong C# khác với Abstract Class ở điểm nào?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 14: Boxing và Unboxing là gì trong C# và khi nào chúng xảy ra?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 15: Cho đoạn code C# sau: `int? nullableInt = null; int regularInt = nullableInt ?? -1;`. Giá trị của `regularInt` sau khi thực thi là bao nhiêu?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 16: LINQ Provider là gì và vai trò của nó trong LINQ?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 17: Unit Testing là gì và tại sao nó quan trọng trong phát triển phần mềm .NET?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

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

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

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

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

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

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 21: Kiểu dữ liệu `dynamic` trong C# có đặc điểm gì nổi bật?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 22: Kỹ thuật Caching trong .NET được sử dụng để làm gì?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 23: Serialization và Deserialization là gì trong .NET và chúng được sử dụng khi nào?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 24: Trong ASP.NET MVC, Action Filter được sử dụng để làm gì?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 25: Cho đoạn code C# sau: `string message = "Hello World!"; string sub = message.Substring(6, 5);`. Giá trị của `sub` là gì?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 26: Razor Pages trong ASP.NET Core là gì và chúng khác biệt như thế nào so với MVC?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 27: Thread và Task khác nhau như thế nào trong .NET?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

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

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 29: Cho đoạn code C# sau: `int[] arr = { 5, 2, 8, 1, 9 }; Array.Sort(arr);`. Mảng `arr` sẽ chứa gì sau khi thực thi?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 03

Câu 30: `IActionResult` interface trong ASP.NET Core MVC được sử dụng để làm gì?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 04

Trắc nghiệm Lập trình .NET - Đề 04 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. Biên dịch Just-In-Time (JIT) mã IL sang mã máy
  • C. Biên dịch mã nguồn C# sang mã IL (Intermediate Language)
  • D. Cung cấp các dịch vụ bảo mật và quản lý ngoại lệ

Câu 2: Cho đoạn mã C# sau: `int a = 10; object b = a; int c = (int)b;`. Trong ngữ cảnh của .NET, thao tác gán `object b = a;` được gọi là gì và mục đích chính của nó là gì?

  • A. Boxing, để chuyển đổi một kiểu giá trị (value type) thành một kiểu tham chiếu (reference type)
  • B. Unboxing, để chuyển đổi một kiểu tham chiếu thành một kiểu giá trị
  • C. Casting, để ép kiểu dữ liệu giữa các kiểu số nguyên
  • D. Inheritance, để tạo ra một đối tượng kế thừa từ lớp cha

Câu 3: Giả sử bạn đang xây dựng một ứng dụng web ASP.NET Core và cần quản lý cấu hình ứng dụng (ví dụ: chuỗi kết nối cơ sở dữ liệu, khóa API). Phương pháp được khuyến nghị và linh hoạt nhất để lưu trữ và truy cập các thông tin cấu hình này là gì?

  • A. Ghi trực tiếp các giá trị cấu hình vào mã nguồn C#
  • B. Sử dụng file cấu hình `appsettings.json` và truy cập thông qua `IConfiguration`
  • C. Sử dụng biến môi trường (Environment Variables) một cách trực tiếp
  • D. Lưu trữ cấu hình trong cơ sở dữ liệu và truy vấn mỗi khi cần

Câu 4: Trong lập trình hướng đối tượng với C#, "tính đóng gói" (encapsulation) mang lại lợi ích chính nào sau đây?

  • A. Cho phép kế thừa thuộc tính và phương thức từ lớp cha
  • B. Giúp tạo ra các đối tượng có nhiều hình thái khác nhau
  • C. Che giấu thông tin và bảo vệ trạng thái bên trong của đối tượng, kiểm soát truy cập từ bên ngoài
  • D. Tăng cường khả năng tái sử dụng mã nguồn thông qua việc tạo ra các lớp và đối tượng

Câu 5: Bạn cần thực hiện một thao tác bất đồng bộ (asynchronous) trong C# để tránh làm treo luồng chính của ứng dụng (ví dụ: tải dữ liệu từ một API). Cú pháp đúng để khai báo và gọi một phương thức bất đồng bộ là gì?

  • A. Sử dụng từ khóa `thread` và `join`
  • B. Sử dụng từ khóa `async` khi khai báo phương thức và `await` khi gọi phương thức
  • C. Sử dụng `BackgroundWorker` class
  • D. Sử dụng `Parallel.Invoke`

Câu 6: Trong Entity Framework Core, "DbContext" đóng vai trò trung tâm. Vai trò chính của DbContext là gì?

  • A. Định nghĩa cấu trúc bảng và quan hệ trong cơ sở dữ liệu
  • B. Thực hiện các truy vấn dữ liệu trực tiếp đến cơ sở dữ liệu
  • C. Quản lý kết nối đến cơ sở dữ liệu và transaction
  • D. Là cầu nối giữa ứng dụng .NET và cơ sở dữ liệu, quản lý session và theo dõi thay đổi của entities

Câu 7: Bạn muốn lọc một danh sách các đối tượng `List` trong C# để lấy ra các sản phẩm có giá lớn hơn 100 và sắp xếp theo tên sản phẩm. Sử dụng LINQ, cú pháp nào sau đây thực hiện đúng yêu cầu này?

  • A. `products.Where(p => p.Price > 100).ToList().Sort(p => p.Name);`
  • B. `products.OrderBy(p => p.Name).Where(p => p.Price > 100).ToList();`
  • C. `products.Where(p => p.Price > 100).OrderBy(p => p.Name).ToList();`
  • D. `products.FindAll(p => p.Price > 100).SortBy(p => p.Name);`

Câu 8: Trong C#, "delegate" là gì và nó thường được sử dụng để giải quyết vấn đề nào?

  • A. Một kiểu dữ liệu tham chiếu đại diện cho tham chiếu đến phương thức, thường dùng để thực hiện callback và xử lý sự kiện
  • B. Một từ khóa để khai báo lớp trừu tượng (abstract class)
  • C. Một cơ chế để quản lý bộ nhớ và thu gom rác
  • D. Một cách để tạo ra các generic types trong C#

Câu 9: "Garbage Collection" (GC) là một cơ chế tự động quản lý bộ nhớ trong .NET. Phát biểu nào sau đây mô tả đúng nhất về cách thức hoạt động của Garbage Collection?

  • A. GC giải phóng bộ nhớ ngay lập tức khi một đối tượng không còn được tham chiếu đến
  • B. GC định kỳ quét bộ nhớ heap để tìm các đối tượng không còn được tham chiếu đến và giải phóng bộ nhớ đã cấp phát cho chúng
  • C. GC yêu cầu lập trình viên phải tự giải phóng bộ nhớ một cách thủ công khi không còn sử dụng đối tượng nữa
  • D. GC chỉ hoạt động khi bộ nhớ hệ thống gần đầy và cần giải phóng không gian

Câu 10: Trong ASP.NET Core, "Middleware" là gì và vai trò chính của nó trong pipeline xử lý request là gì?

  • A. Một thành phần để định nghĩa routing và điều hướng request đến controller
  • B. Một cơ chế để xác thực và phân quyền người dùng truy cập ứng dụng
  • C. Một thành phần phần mềm được lắp ghép vào pipeline xử lý request để thực hiện các tác vụ cụ thể như logging, authentication, routing, etc.
  • D. Một công cụ để tạo giao diện người dùng (UI) cho ứng dụng web

Câu 11: Sự khác biệt chính giữa "interface" và "abstract class" trong C# là gì, khi nào bạn nên ưu tiên sử dụng interface hơn abstract class?

  • A. Interface có thể chứa code thực thi, abstract class thì không
  • B. Abstract class hỗ trợ đa kế thừa, interface thì không
  • C. Interface chỉ định nghĩa hành vi (signatures), abstract class định nghĩa cả hành vi và trạng thái (fields)
  • D. Class có thể kế thừa từ nhiều interface nhưng chỉ có thể kế thừa từ một abstract class, nên dùng interface khi muốn đa kế thừa hành vi

Câu 12: Cho đoạn code C# sau: `string str1 =

  • A. `true`, vì toán tử `==` so sánh giá trị của chuỗi trong trường hợp của kiểu `string`
  • B. `false`, vì `str1` và `str2` là hai đối tượng chuỗi khác nhau trong bộ nhớ
  • C. Lỗi biên dịch, vì không thể so sánh trực tiếp hai biến chuỗi bằng `==`
  • D. Kết quả không xác định, phụ thuộc vào phiên bản .NET runtime

Câu 13: Trong C#, "event" và "event handler" được sử dụng để làm gì và cơ chế hoạt động của chúng như thế nào?

  • A. Để tạo ra các luồng (threads) và quản lý đa luồng trong ứng dụng
  • B. Để thông báo và xử lý các sự kiện xảy ra trong ứng dụng (ví dụ: click chuột, thay đổi dữ liệu), theo mô hình publisher-subscriber
  • C. Để định nghĩa các interface và abstract class
  • D. Để thực hiện dependency injection và quản lý dependencies

Câu 14: Bạn cần lưu trữ một tập hợp các đối tượng duy nhất và cần truy xuất nhanh chóng bằng key. Cấu trúc dữ liệu nào trong .NET Collections phù hợp nhất cho yêu cầu này?

  • A. `List`
  • B. `SortedList`
  • C. `Dictionary`
  • D. `Queue`

Câu 15: Trong .NET, "NuGet" là gì và tại sao nó lại quan trọng trong quá trình phát triển phần mềm?

  • A. Một công cụ để biên dịch mã nguồn C# thành mã máy
  • B. Một framework để xây dựng giao diện người dùng (UI) cho ứng dụng .NET
  • C. Một công cụ để debug và kiểm thử ứng dụng .NET
  • D. Một trình quản lý package cho .NET, giúp dễ dàng tích hợp và quản lý các thư viện và dependencies bên ngoài

Câu 16: "Dependency Injection" (DI) là một pattern thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

  • A. Tăng hiệu suất ứng dụng bằng cách giảm thiểu việc tạo đối tượng
  • B. Giảm sự phụ thuộc giữa các thành phần, tăng tính module hóa, dễ dàng kiểm thử và bảo trì
  • C. Tăng cường bảo mật cho ứng dụng bằng cách che giấu dependencies
  • D. Giúp code ngắn gọn và dễ đọc hơn

Câu 17: Trong mô hình lập trình hướng sự kiện (Event-driven programming), ứng dụng phản ứng với các sự kiện như thế nào?

  • A. Ứng dụng thực hiện các tác vụ tuần tự theo một luồng cố định
  • B. Ứng dụng liên tục polling để kiểm tra trạng thái của hệ thống
  • C. Ứng dụng chờ đợi và phản ứng lại các sự kiện (ví dụ: từ người dùng, hệ thống) khi chúng xảy ra
  • D. Ứng dụng chủ động gửi yêu cầu đến các dịch vụ khác để lấy dữ liệu

Câu 18: "Generics" trong C# cho phép bạn viết code 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. Lợi ích chính của việc sử dụng generics là gì?

  • A. Tăng tính tái sử dụng code, kiểu an toàn (type safety) và hiệu suất (tránh boxing/unboxing)
  • B. Giảm kích thước file thực thi của ứng dụng
  • C. Đơn giản hóa quá trình debug và kiểm thử
  • D. Tăng cường khả năng tương tác với các ngôn ngữ lập trình khác

Câu 19: "Exception handling" là cơ chế quan trọng để xử lý lỗi trong .NET. Cấu trúc `try-catch-finally` được sử dụng để làm gì?

  • A. Để tạo ra các luồng (threads) và quản lý đa luồng
  • B. Để bắt và xử lý các ngoại lệ (exceptions) có thể xảy ra trong khối `try`, và đảm bảo khối `finally` luôn được thực thi
  • C. Để thực hiện các vòng lặp và điều khiển luồng chương trình
  • D. Để định nghĩa các interface và abstract class

Câu 20: Trong ASP.NET Core MVC, "Controller" có vai trò gì trong kiến trúc MVC?

  • A. Hiển thị dữ liệu và giao diện người dùng cho người dùng
  • B. Quản lý dữ liệu và tương tác với cơ sở dữ liệu
  • C. Xử lý request từ người dùng, tương tác với Model và chọn View để trả về response
  • D. Định nghĩa routing và điều hướng request

Câu 21: Bạn cần tạo một extension method trong C# để mở rộng chức năng của lớp `string`. Cú pháp đúng để khai báo một extension method là gì?

  • A. Khai báo một static method trong một static class, với tham số đầu tiên được đánh dấu bằng từ khóa `this` và là kiểu dữ liệu cần mở rộng
  • B. Khai báo một instance method trong một partial class của lớp `string`
  • C. Khai báo một virtual method trong lớp `string`
  • D. Không thể mở rộng lớp `string` vì nó là lớp sealed

Câu 22: "Reflection" trong .NET cho phép bạn làm gì?

  • A. Tăng hiệu suất ứng dụng bằng cách tối ưu hóa mã nguồn
  • B. Kiểm tra metadata của types, assemblies, và objects tại runtime; tạo và gọi types động
  • C. Quản lý bộ nhớ và thu gom rác một cách hiệu quả hơn
  • D. Tạo ra giao diện người dùng (UI) động và tương tác

Câu 23: Trong C#, "LINQ to SQL" (hoặc Entity Framework Core) giúp bạn tương tác với cơ sở dữ liệu như thế nào?

  • A. Bằng cách viết trực tiếp các câu lệnh SQL trong mã C#
  • B. Bằng cách tạo ra các stored procedures trong cơ sở dữ liệu và gọi chúng từ C#
  • C. Bằng cách cho phép truy vấn dữ liệu bằng cú pháp LINQ và tự động chuyển đổi thành câu lệnh SQL phù hợp
  • D. Bằng cách sử dụng XML để định nghĩa schema cơ sở dữ liệu và truy vấn dữ liệu

Câu 24: "Unit testing" là một phần quan trọng của quy trình phát triển phần mềm. Mục đích chính của unit testing là gì?

  • A. Kiểm tra hiệu suất tổng thể của ứng dụng
  • B. Kiểm tra tích hợp giữa các module khác nhau của ứng dụng
  • C. Kiểm tra giao diện người dùng (UI) của ứng dụng
  • D. Kiểm tra tính đúng đắn của từng đơn vị code (ví dụ: phương thức, lớp) một cách độc lập

Câu 25: Trong C#, "async" và "await" keywords giúp hiện thực hóa lập trình bất đồng bộ, nhưng điều gì thực sự xảy ra khi bạn sử dụng "await" trong một phương thức async?

  • A. Luồng hiện tại bị block cho đến khi tác vụ bất đồng bộ hoàn thành
  • B. Phương thức async tạm dừng thực thi và trả luồng điều khiển về cho caller, sau đó tiếp tục thực thi khi tác vụ được "await" hoàn thành
  • C. Một luồng mới được tạo ra để thực hiện tác vụ bất đồng bộ
  • D. Mã sau "await" bị bỏ qua nếu tác vụ bất đồng bộ không thành công

Câu 26: "SOLID principles" là một tập hợp các nguyên tắc thiết kế hướng đối tượng. Chữ "L" trong SOLID đại diện cho nguyên tắc nào và nguyên tắc đó nói về điều gì?

  • A. Single Responsibility Principle - Một lớp chỉ nên có một lý do duy nhất để thay đổi
  • B. Open/Closed Principle - Các thực thể phần mềm nên mở cho mở rộng nhưng đóng cho sửa đổi
  • C. Liskov Substitution Principle - Các lớp con có thể thay thế cho lớp cha mà không làm thay đổi tính đúng đắn của chương trình
  • D. Interface Segregation Principle - Nhiều interface chuyên biệt tốt hơn là một interface đa năng

Câu 27: "Cross-platform development" là một xu hướng quan trọng. .NET MAUI (Multi-platform App UI) được thiết kế để làm gì?

  • A. Xây dựng ứng dụng mobile và desktop đa nền tảng (iOS, Android, Windows, macOS) từ một codebase C# duy nhất
  • B. Phát triển ứng dụng web server-side với hiệu suất cao
  • C. Tạo ra các microservices và ứng dụng cloud-native
  • D. Xây dựng game 2D và 3D đa nền tảng

Câu 28: Trong ngữ cảnh của .NET, "Assembly" là gì?

  • A. Một đoạn mã C# đơn lẻ
  • B. Một đơn vị triển khai, tái sử dụng và quản lý phiên bản của code .NET, có thể là EXE hoặc DLL
  • C. Một namespace trong .NET Framework
  • D. Một project trong Visual Studio

Câu 29: "Boxing" và "Unboxing" là các thao tác liên quan đến kiểu giá trị và kiểu tham chiếu trong .NET. Điều gì xảy ra khi "unboxing" một đối tượng?

  • A. Một kiểu giá trị được chuyển đổi thành một kiểu tham chiếu
  • B. Một đối tượng trên heap được chuyển sang stack
  • C. Bộ nhớ cấp phát cho đối tượng được giải phóng
  • D. Giá trị được trích xuất từ đối tượng kiểu tham chiếu (đã được boxed) trở lại kiểu giá trị ban đầu

Câu 30: Cho đoạn mã C# sau: `var result = Task.Run(async () => { await Task.Delay(100); return 42; }); Console.WriteLine(result.Result);`. Đoạn mã này sẽ in ra giá trị nào và tại sao?

  • A. 0, vì `Task.Delay` trả về 0
  • B. Một lỗi runtime, vì không thể truy cập `Result` của Task khi nó chưa hoàn thành
  • C. 42, vì `Task.Run` thực thi tác vụ bất đồng bộ và `result.Result` sẽ block cho đến khi Task hoàn thành và trả về giá trị
  • D. Một số ngẫu nhiên, vì Task thực thi bất đồng bộ

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

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: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 2: Cho đoạn mã C# sau: `int a = 10; object b = a; int c = (int)b;`. Trong ngữ cảnh của .NET, thao tác gán `object b = a;` được gọi là gì và mục đích chính của nó là gì?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 3: Giả sử bạn đang xây dựng một ứng dụng web ASP.NET Core và cần quản lý cấu hình ứng dụng (ví dụ: chuỗi kết nối cơ sở dữ liệu, khóa API). Phương pháp *được khuyến nghị* và linh hoạt nhất để lưu trữ và truy cập các thông tin cấu hình này là gì?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 4: Trong lập trình hướng đối tượng với C#, 'tính đóng gói' (encapsulation) mang lại lợi ích chính nào sau đây?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 5: Bạn cần thực hiện một thao tác bất đồng bộ (asynchronous) trong C# để tránh làm treo luồng chính của ứng dụng (ví dụ: tải dữ liệu từ một API). Cú pháp *đúng* để khai báo và gọi một phương thức bất đồng bộ là gì?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 6: Trong Entity Framework Core, 'DbContext' đóng vai trò trung tâm. Vai trò chính của DbContext là gì?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 7: Bạn muốn lọc một danh sách các đối tượng `List` trong C# để lấy ra các sản phẩm có giá lớn hơn 100 và sắp xếp theo tên sản phẩm. Sử dụng LINQ, cú pháp nào sau đây thực hiện đúng yêu cầu này?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 8: Trong C#, 'delegate' là gì và nó thường được sử dụng để giải quyết vấn đề nào?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 9: 'Garbage Collection' (GC) là một cơ chế tự động quản lý bộ nhớ trong .NET. Phát biểu nào sau đây mô tả *đúng nhất* về cách thức hoạt động của Garbage Collection?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 10: Trong ASP.NET Core, 'Middleware' là gì và vai trò chính của nó trong pipeline xử lý request là gì?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 11: Sự khác biệt chính giữa 'interface' và 'abstract class' trong C# là gì, khi nào bạn nên ưu tiên sử dụng interface hơn abstract class?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 12: Cho đoạn code C# sau: `string str1 =

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 13: Trong C#, 'event' và 'event handler' được sử dụng để làm gì và cơ chế hoạt động của chúng như thế nào?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 14: Bạn cần lưu trữ một tập hợp các đối tượng duy nhất và cần truy xuất nhanh chóng bằng key. Cấu trúc dữ liệu nào trong .NET Collections *phù hợp nhất* cho yêu cầu này?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 15: Trong .NET, 'NuGet' là gì và tại sao nó lại quan trọng trong quá trình phát triển phần mềm?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 16: 'Dependency Injection' (DI) là một pattern thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 17: Trong mô hình lập trình hướng sự kiện (Event-driven programming), ứng dụng phản ứng với các sự kiện như thế nào?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 18: 'Generics' trong C# cho phép bạn viết code 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. Lợi ích chính của việc sử dụng generics là gì?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 19: 'Exception handling' là cơ chế quan trọng để xử lý lỗi trong .NET. Cấu trúc `try-catch-finally` được sử dụng để làm gì?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 20: Trong ASP.NET Core MVC, 'Controller' có vai trò gì trong kiến trúc MVC?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 21: Bạn cần tạo một extension method trong C# để mở rộng chức năng của lớp `string`. Cú pháp *đúng* để khai báo một extension method là gì?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 22: 'Reflection' trong .NET cho phép bạn làm gì?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 23: Trong C#, 'LINQ to SQL' (hoặc Entity Framework Core) giúp bạn tương tác với cơ sở dữ liệu như thế nào?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 24: 'Unit testing' là một phần quan trọng của quy trình phát triển phần mềm. Mục đích chính của unit testing là gì?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 25: Trong C#, 'async' và 'await' keywords giúp hiện thực hóa lập trình bất đồng bộ, nhưng điều gì *thực sự* xảy ra khi bạn sử dụng 'await' trong một phương thức async?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 26: 'SOLID principles' là một tập hợp các nguyên tắc thiết kế hướng đối tượng. Chữ 'L' trong SOLID đại diện cho nguyên tắc nào và nguyên tắc đó nói về điều gì?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 27: 'Cross-platform development' là một xu hướng quan trọng. .NET MAUI (Multi-platform App UI) được thiết kế để làm gì?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 28: Trong ngữ cảnh của .NET, 'Assembly' là gì?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 29: 'Boxing' và 'Unboxing' là các thao tác liên quan đến kiểu giá trị và kiểu tham chiếu trong .NET. Điều gì xảy ra khi 'unboxing' một đối tượng?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 04

Câu 30: Cho đoạn mã C# sau: `var result = Task.Run(async () => { await Task.Delay(100); return 42; }); Console.WriteLine(result.Result);`. Đoạn mã này sẽ in ra giá trị nào và tại sao?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 05

Trắc nghiệm 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 thuộc về CLR?

  • A. Quản lý bộ nhớ (Memory Management)
  • B. Biên dịch Just-In-Time (JIT Compilation)
  • C. Xử lý ngoại lệ (Exception Handling)
  • D. Quản lý kết nối cơ sở dữ liệu (Database Connection Management)

Câu 2: Cho đoạn code C# sau: `string str1 =

  • A. true, vì string literals luôn được interned và trỏ đến cùng một tham chiếu
  • B. true, vì ReferenceEquals so sánh giá trị của string
  • C. false, vì ReferenceEquals so sánh tham chiếu, và str1 và str2 có thể không trỏ đến cùng một đối tượng string trong bộ nhớ heap
  • D. false, vì string là kiểu giá trị

Câu 3: 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 lớp gốc
  • C. Tạo ra một lớp con từ một lớp đã cho và thêm phương thức vào lớp con đó
  • D. Chỉ định nghĩa lại các phương thức ảo của lớp cha

Câu 4: Trong ASP.NET Core, Middleware pipeline xử lý request theo thứ tự nào?

  • A. Theo thứ tự chúng được thêm vào trong Configure method của Startup.cs
  • B. Ngẫu nhiên, tùy thuộc vào CLR
  • C. Theo thứ tự bảng chữ cái của tên Middleware
  • D. Ngược lại với thứ tự chúng được thêm vào

Câu 5: Cho đoạn code LINQ sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var result = numbers.Select(n => n * 2).Where(n => n > 5).ToList();`. `result` sẽ chứa các giá trị nào?

  • A. {2, 4, 6, 8, 10}
  • B. {1, 2, 3, 4, 5}
  • C. {6, 8, 10}
  • D. Rỗng (empty list)

Câu 6: Trong Entity Framework Core, khi nào nên sử dụng phương thức `Include()` và `ThenInclude()`?

  • A. Khi muốn lazy load các related entities
  • B. Khi muốn eager load các related entities để tránh N+1 query problem
  • C. Khi muốn lọc dữ liệu từ các related entities
  • D. Khi muốn cập nhật các related entities

Câu 7: Sự khác biệt chính giữa `Task.Run()` và `Task.Factory.StartNew()` trong .NET là gì?

  • A. `Task.Run()` chỉ có thể chạy các action đồng bộ, còn `Task.Factory.StartNew()` có thể chạy cả đồng bộ và bất đồng bộ
  • B. `Task.Factory.StartNew()` sử dụng thread pool, còn `Task.Run()` tạo thread mới mỗi khi gọi
  • C. `Task.Run()` cho phép cấu hình TaskScheduler, còn `Task.Factory.StartNew()` thì không
  • D. `Task.Run()` là wrapper đơn giản hơn và được khuyến khích cho hầu hết các trường hợp chạy task trên thread pool, trong khi `Task.Factory.StartNew()` phức tạp hơn và có thể gây nhầm lẫn về default scheduler

Câu 8: Trong C#, từ khóa `yield return` được sử dụng để làm gì?

  • A. Để kết thúc một vòng lặp và trả về giá trị
  • B. Để ném ra một ngoại lệ và trả về giá trị lỗi
  • C. Để tạo ra một iterator method, trả về từng phần tử của một collection một cách lazy
  • D. Để đánh dấu một phương thức là bất đồng bộ (async)

Câu 9: Dependency Injection (DI) container trong .NET Core giải quyết vấn đề nào chính?

  • A. Vấn đề về hiệu năng của ứng dụng
  • B. Vấn đề về tightly coupled dependencies và khó khăn trong việc unit testing
  • C. Vấn đề về bảo mật của ứng dụng
  • D. Vấn đề về quản lý bộ nhớ

Câu 10: Cho đoạn code C# sau: `int? nullableInt = null; int regularInt = nullableInt;`. Điều gì sẽ xảy ra khi chạy đoạn code này?

  • A. Code sẽ biên dịch và chạy thành công, `regularInt` sẽ có giá trị 0
  • B. Code sẽ biên dịch và chạy thành công, `regularInt` sẽ có giá trị null
  • C. Code sẽ không biên dịch do lỗi kiểu dữ liệu
  • D. Code sẽ biên dịch thành công, nhưng sẽ gây ra exception tại runtime vì cố gắng unbox null value

Câu 11: Trong .NET, thuật ngữ "Boxing" và "Unboxing" liên quan đến kiểu dữ liệu nào?

  • A. Value types và Reference types
  • B. Chỉ Reference types
  • C. Chỉ Value types
  • D. Generic types và Non-generic types

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

  • A. Để định nghĩa các biến toàn cục
  • B. Để cung cấp metadata (thông tin mô tả) cho code, có thể được sử dụng bởi compiler, runtime hoặc framework
  • C. Để tạo ra các đối tượng dynamic
  • D. Để thực hiện dependency injection

Câu 13: Cho đoạn code Razor trong ASP.NET Core: `@if (Model.Count > 0) {

Có dữ liệu

} else {

Không có dữ liệu

}`. `Model` ở đây đại diện cho đối tượng nào?

  • A. HttpContext
  • B. Session
  • C. Dữ liệu được truyền từ Controller đến View (View Model)
  • D. Configuration settings của ứng dụng

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

  • A. Interface chỉ định nghĩa contract, không chứa implementation; Abstract class có thể chứa implementation và abstract members
  • B. Interface có thể có constructors, Abstract class thì không
  • C. Abstract class hỗ trợ multiple inheritance, Interface thì không
  • D. Không có sự khác biệt đáng kể, chúng có thể thay thế nhau hoàn toàn

Câu 15: Delegate trong C# là gì và nó thường được sử dụng cho mục đích nào?

  • A. Một kiểu dữ liệu để lưu trữ dữ liệu cấu trúc phức tạp
  • B. Một kiểu dữ liệu đại diện cho references to methods, thường dùng cho callbacks và event handling
  • C. Một cách để tạo ra các lớp generic
  • D. Một cơ chế để quản lý bộ nhớ

Câu 16: Cho đoạn code C#: `var result = 5 & 3;`. Giá trị của `result` là bao nhiêu?

  • A. 8
  • B. 5
  • C. 3
  • D. 1

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

  • A. Một class để định nghĩa model trong MVC
  • B. Một attribute để xác định route cho action method
  • C. Một interface mà action methods trong Controller trả về, đại diện cho HTTP response
  • D. Một class để xử lý exception trong middleware pipeline

Câu 18: Sự khác biệt giữa `async void` và `async Task` methods trong C# là gì?

  • A. `async void` methods nhanh hơn `async Task` methods
  • B. `async Task` methods có thể được awaited và trả về kết quả, `async void` methods thường dùng cho event handlers và không thể được awaited trực tiếp
  • C. `async void` methods có thể xử lý exceptions tốt hơn `async Task` methods
  • D. Không có sự khác biệt, chúng có thể thay thế nhau trong mọi trường hợp

Câu 19: Cho code C# sau: `List numbers = new List { 1, 2, 3 }; numbers.RemoveAt(1);`. `numbers` sẽ chứa các giá trị nào sau khi thực hiện?

  • A. {1, 2, 3}
  • B. {2, 3}
  • C. {1, 3}
  • D. Rỗng (empty list)

Câu 20: Trong .NET, NuGet là gì?

  • A. Một công cụ để debug code C#
  • B. Một framework để xây dựng giao diện người dùng desktop
  • C. Một loại biến trong C#
  • D. Một package manager cho .NET, dùng để quản lý và chia sẻ các thư viện và công cụ

Câu 21: Phương thức `Dispose()` trong .NET Framework được sử dụng để làm gì?

  • A. Để giải phóng bộ nhớ được quản lý bởi Garbage Collector
  • B. Để giải phóng các unmanaged resources (ví dụ: file handles, database connections)
  • C. Để khởi tạo đối tượng
  • D. Để bắt và xử lý exceptions

Câu 22: Cho đoạn code C#: `string name =

  • A.
  • B.
  • C. Lỗi biên dịch vì sử dụng ký tự $
  • D. Rỗng (empty string)

Câu 23: Trong Unit Testing với xUnit, attribute nào được sử dụng để đánh dấu một method là test case?

  • A. [TestMethod]
  • B. [Test]
  • C. [Fact]
  • D. [TestCase]

Câu 24: Sự khác biệt giữa `StringBuilder` và `string` trong C# khi làm việc với chuỗi là gì?

  • A. `string` là mutable, còn `StringBuilder` là immutable
  • B. `string` là immutable, mỗi operation tạo ra string mới; `StringBuilder` là mutable và hiệu quả hơn cho nhiều string manipulations
  • C. `StringBuilder` chỉ dùng cho số, còn `string` dùng cho văn bản
  • D. Không có sự khác biệt về chức năng, chỉ khác nhau về syntax

Câu 25: Cho đoạn code LINQ: `var numbers = new int[] { 1, 2, 2, 3, 3, 3 }; var distinctNumbers = numbers.Distinct();`. `distinctNumbers` sẽ chứa các giá trị nào?

  • A. {1, 2, 2, 3, 3, 3}
  • B. {2, 3}
  • C. {1}
  • D. {1, 2, 3}

Câu 26: Trong ASP.NET Core, Dependency Injection thường được cấu hình ở file nào?

  • A. Startup.cs (hoặc Program.cs trong .NET 6+)
  • B. appsettings.json
  • C. web.config
  • D. project.json

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

  • A. `==` so sánh giá trị, còn `.Equals()` so sánh tham chiếu
  • B. `==` chỉ dùng cho kiểu số, còn `.Equals()` dùng cho mọi kiểu
  • C. `==` so sánh tham chiếu theo mặc định cho reference types (có thể overload), `.Equals()` (virtual method) thường so sánh giá trị và nên được override để cung cấp value equality
  • D. Không có sự khác biệt, chúng có thể thay thế nhau hoàn toàn

Câu 28: Cho đoạn code C#: `int number = 10; Action printNumber = x => Console.WriteLine(x); printNumber(number);`. Đoạn code này minh họa khái niệm nào?

  • A. Generics
  • B. Delegates và Lambda Expressions
  • C. Events
  • D. Interfaces

Câu 29: Trong .NET, thuật ngữ "Garbage Collection" (GC) dùng để chỉ quá trình nào?

  • A. Quá trình biên dịch mã nguồn C# thành mã máy
  • B. Quá trình quản lý dependencies của ứng dụng
  • C. Quá trình xử lý exceptions trong ứng dụng
  • D. Quá trình tự động thu hồi bộ nhớ không còn được sử dụng bởi ứng dụng

Câu 30: Cho đoạn code C#: `int[] numbers = { 1, 2, 3 }; foreach (var num in numbers) { num = num * 2; }`. Sau khi chạy vòng lặp, mảng `numbers` sẽ chứa giá trị nào?

  • A. {1, 2, 3}
  • B. {2, 4, 6}
  • C. Lỗi biên dịch vì không thể gán giá trị cho `num` trong foreach
  • D. Rỗng (empty array)

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

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 thuộc về CLR?

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 2: Cho đoạn code C# sau: `string str1 = "hello"; string str2 = "hello"; bool result = object.ReferenceEquals(str1, str2);`. Giá trị của `result` là gì và tại sao?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 3: Phương thức mở rộng (Extension Method) trong C# cho phép làm gì?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 4: Trong ASP.NET Core, Middleware pipeline xử lý request theo thứ tự nào?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 5: Cho đoạn code LINQ sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var result = numbers.Select(n => n * 2).Where(n => n > 5).ToList();`. `result` sẽ chứa các giá trị nào?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 6: Trong Entity Framework Core, khi nào nên sử dụng phương thức `Include()` và `ThenInclude()`?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 7: Sự khác biệt chính giữa `Task.Run()` và `Task.Factory.StartNew()` trong .NET là gì?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 8: Trong C#, từ khóa `yield return` được sử dụng để làm gì?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 9: Dependency Injection (DI) container trong .NET Core giải quyết vấn đề nào chính?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 10: Cho đoạn code C# sau: `int? nullableInt = null; int regularInt = nullableInt;`. Điều gì sẽ xảy ra khi chạy đoạn code này?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 11: Trong .NET, thuật ngữ 'Boxing' và 'Unboxing' liên quan đến kiểu dữ liệu nào?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

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

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 13: Cho đoạn code Razor trong ASP.NET Core: `@if (Model.Count > 0) {

Có dữ liệu

} else {

Không có dữ liệu

}`. `Model` ở đây đại diện cho đối tượng nào?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

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

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 15: Delegate trong C# là gì và nó thường được sử dụng cho mục đích nào?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 16: Cho đoạn code C#: `var result = 5 & 3;`. Giá trị của `result` là bao nhiêu?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

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

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 18: Sự khác biệt giữa `async void` và `async Task` methods trong C# là gì?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 19: Cho code C# sau: `List numbers = new List { 1, 2, 3 }; numbers.RemoveAt(1);`. `numbers` sẽ chứa các giá trị nào sau khi thực hiện?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 20: Trong .NET, NuGet là gì?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 21: Phương thức `Dispose()` trong .NET Framework được sử dụng để làm gì?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 22: Cho đoạn code C#: `string name = "John Doe"; string message = $"Hello, {name}!";`. Giá trị của `message` sau khi chạy là gì?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 23: Trong Unit Testing với xUnit, attribute nào được sử dụng để đánh dấu một method là test case?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 24: Sự khác biệt giữa `StringBuilder` và `string` trong C# khi làm việc với chuỗi là gì?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 25: Cho đoạn code LINQ: `var numbers = new int[] { 1, 2, 2, 3, 3, 3 }; var distinctNumbers = numbers.Distinct();`. `distinctNumbers` sẽ chứa các giá trị nào?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 26: Trong ASP.NET Core, Dependency Injection thường được cấu hình ở file nào?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

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

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 28: Cho đoạn code C#: `int number = 10; Action printNumber = x => Console.WriteLine(x); printNumber(number);`. Đoạn code này minh họa khái niệm nào?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 29: Trong .NET, thuật ngữ 'Garbage Collection' (GC) dùng để chỉ quá trình nào?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 05

Câu 30: Cho đoạn code C#: `int[] numbers = { 1, 2, 3 }; foreach (var num in numbers) { num = num * 2; }`. Sau khi chạy vòng lặp, mảng `numbers` sẽ chứa giá trị nào?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 06

Trắc nghiệm Lập trình .NET - Đề 06 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. Biên dịch mã nguồn C# thành mã máy (Compile C# source code to machine code).
  • B. Quản lý bộ nhớ và thu gom rác (Memory management and garbage collection).
  • C. Cung cấp môi trường thực thi mã an toàn và tin cậy (Providing a secure and reliable execution environment).
  • D. Hỗ trợ đa ngôn ngữ lập trình (.NET languages) (Supporting multiple programming languages).

Câu 2: Cho đoạn mã C# sau: `int? nullableInt = null; int regularInt = nullableInt.Value;`. Điều gì sẽ xảy ra khi đoạn mã này được thực thi?

  • A. `regularInt` sẽ nhận giá trị 0.
  • B. `regularInt` sẽ nhận giá trị null.
  • C. Một ngoại lệ `InvalidOperationException` sẽ được ném ra.
  • D. Đoạn mã sẽ biên dịch lỗi vì không thể gán `null` cho `int`.

Câu 3: Phương thức mở rộng (Extension method) trong C# cho phép bạn 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 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 một lớp con (derived class) từ một lớp cha (base class).
  • D. Triển khai đa kế thừa (multiple inheritance) trong C#.

Câu 4: Trong lập trình hướng đối tượng với C#, khái niệm "tính đóng gói" (Encapsulation) nhằm mục đích chính là gì?

  • A. Tăng tốc độ thực thi chương trình.
  • B. Giảm dung lượng bộ nhớ sử dụng.
  • C. Ẩn giấu thông tin và bảo vệ dữ liệu bên trong đối tượng, chỉ cho phép truy cập thông qua các phương thức được định nghĩa.
  • D. Cho phép một lớp kế thừa từ nhiều lớp khác nhau.

Câu 5: Khi nào bạn nên sử dụng giao diện (Interface) thay vì lớp trừu tượng (Abstract class) trong C#?

  • A. Khi bạn muốn cung cấp một số hành vi mặc định (default behavior) cho các lớp kế thừa.
  • B. Khi bạn muốn các lớp kế thừa chia sẻ trạng thái (state) chung.
  • C. Khi bạn muốn giới hạn lớp kế thừa chỉ được phép kế thừa từ một lớp duy nhất.
  • D. Khi bạn muốn định nghĩa một tập hợp các phương thức mà các lớp không liên quan có thể triển khai, và không muốn áp đặt một cây kế thừa cứng nhắc.

Câu 6: Đoạn mã LINQ sau thực hiện điều gì: `var result = numbers.Where(n => n % 2 == 0).OrderByDescending(n => n).FirstOrDefault();` Giả sử `numbers` là một danh sách các số nguyên.

  • A. Tìm số chẵn lớn nhất trong danh sách `numbers`.
  • B. Tìm số lẻ nhỏ nhất trong danh sách `numbers`.
  • C. Sắp xếp danh sách `numbers` theo thứ tự giảm dần.
  • D. Trả về phần tử đầu tiên của danh sách `numbers`.

Câu 7: Trong ASP.NET Core MVC, Middleware (lớp trung gian) hoạt động như thế nào trong pipeline xử lý request?

  • A. Middleware chỉ được thực thi sau khi action method trong controller đã hoàn thành.
  • B. Middleware tạo thành một pipeline, mỗi middleware có thể xử lý request và quyết định chuyển request đến middleware tiếp theo hoặc kết thúc pipeline.
  • C. Middleware chỉ được sử dụng để xử lý lỗi và exception trong ứng dụng.
  • D. Middleware thay thế cho controller và action method trong ASP.NET Core MVC.

Câu 8: Dependency Injection (DI - Tiêm phụ thuộc) mang lại lợi ích chính nào trong phát triển ứng dụng .NET?

  • A. 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.
  • B. Đơn giản hóa việc triển khai ứng dụng lên môi trường production.
  • C. Giảm sự phụ thuộc giữa các thành phần (decoupling), giúp ứng dụng dễ kiểm thử, bảo trì và mở rộng.
  • D. Tự động tạo ra tài liệu kỹ thuật cho ứng dụng.

Câu 9: Trong Entity Framework Core, khái niệm "DbContext" dùng để làm gì?

  • A. Đại diện cho một session với database, cho phép truy vấn và lưu trữ dữ liệu.
  • B. Định nghĩa cấu trúc bảng (table schema) trong database.
  • C. Thực hiện migration để cập nhật database schema.
  • D. Tạo ra các stored procedure trong database.

Câu 10: Phương thức `async` và từ khóa `await` trong C# được sử dụng để giải quyết vấn đề nào?

  • A. Tăng tốc độ thực thi các đoạn mã đồng bộ.
  • B. Đơn giản hóa việc quản lý bộ nhớ trong ứng dụng.
  • C. Tạo ra các luồng (threads) mới để thực hiện công việc song song.
  • D. Thực hiện các thao tác bất đồng bộ (asynchronous operations) một cách dễ dàng, tránh blocking UI thread trong các ứng dụng GUI hoặc web.

Câu 11: Giả sử bạn có một lớp `Dog` kế thừa từ lớp `Animal`. Khi bạn tạo một đối tượng `Dog` và gán nó cho biến kiểu `Animal`, như sau: `Animal myAnimal = new Dog();`. Hành vi nào sau đây thể hiện tính đa hình (Polymorphism)?

  • A. Biến `myAnimal` chỉ có thể truy cập các thuộc tính và phương thức được định nghĩa trong lớp `Animal`.
  • B. Nếu lớp `Dog` ghi đè (override) một phương thức ảo (virtual method) của lớp `Animal`, khi gọi phương thức này thông qua biến `myAnimal`, phiên bản phương thức của lớp `Dog` sẽ được thực thi.
  • C. Không thể gán đối tượng `Dog` cho biến kiểu `Animal` vì chúng là hai kiểu dữ liệu khác nhau.
  • D. Biến `myAnimal` sẽ tự động chuyển đổi kiểu dữ liệu thành `Dog`.

Câu 12: Trong C#, "boxing" và "unboxing" là gì và khi nào chúng xảy ra?

  • A. Boxing là quá trình chuyển đổi từ kiểu tham chiếu (reference type) sang kiểu giá trị (value type), còn unboxing là ngược lại.
  • B. Boxing và unboxing là các kỹ thuật để tối ưu hóa hiệu suất bộ nhớ trong .NET.
  • C. Boxing là quá trình chuyển đổi một kiểu giá trị (value type) sang kiểu tham chiếu (reference type) object, unboxing là quá trình ngược lại. Chúng xảy ra khi có sự chuyển đổi giữa value type và object.
  • D. Boxing và unboxing chỉ xảy ra khi sử dụng nullable types trong C#.

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

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

Câu 14: Sự khác biệt chính giữa `StringBuilder` và `string` trong C# là gì?

  • A. `string` nhanh hơn `StringBuilder` trong các thao tác chuỗi.
  • B. `string` có thể thay đổi nội dung sau khi tạo, còn `StringBuilder` thì không.
  • C. `string` được sử dụng cho các chuỗi ngắn, còn `StringBuilder` cho các chuỗi dài.
  • D. `string` là immutable (bất biến), mỗi lần thao tác tạo ra một đối tượng `string` mới, trong khi `StringBuilder` là mutable (có thể thay đổi) và hiệu quả hơn cho việc xây dựng chuỗi phức tạp.

Câu 15: Trong mô hình lập trình hướng sự kiện (Event-driven programming), Delegates và Events được sử dụng để làm gì?

  • A. Quản lý bộ nhớ và thu gom rác.
  • B. Thực hiện các thao tác bất đồng bộ.
  • C. Cho phép các đối tượng giao tiếp với nhau khi có sự kiện xảy ra. Delegates định nghĩa kiểu cho event handler, Events cung cấp cơ chế publish/subscribe.
  • D. Tạo ra giao diện người dùng động.

Câu 16: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; numbers.RemoveAt(2);`. Giá trị của `numbers` sau khi thực hiện đoạn code trên là gì?

  • A. `{ 1, 2, 3, 4, 5 }`
  • B. `{ 1, 2, 4, 5 }`
  • C. `{ 1, 2, 3, 5 }`
  • D. `{ 2, 3, 4, 5 }`

Câu 17: Trong lập trình .NET, Assembly là gì?

  • A. Một namespace chứa các lớp và interface liên quan.
  • B. Một file mã nguồn C# (.cs).
  • C. Một thư viện các hàm và lớp dùng chung.
  • D. Đơn vị triển khai, tái sử dụng và quản lý phiên bản trong .NET. Nó chứa mã IL (Intermediate Language), metadata và manifest.

Câu 18: `IDisposable` interface trong .NET được sử dụng để làm gì?

  • A. Giải phóng tài nguyên không được quản lý (unmanaged resources) như file handles, database connections, bộ nhớ không được quản lý, khi đối tượng không còn được sử dụng.
  • B. Quản lý bộ nhớ và thu gom rác tự động.
  • C. Thực hiện các thao tác bất đồng bộ.
  • D. Bảo vệ dữ liệu bên trong đối tượng.

Câu 19: Cho đoạn mã C# sau: `int x = 5; int y = x++; int z = ++x;`. Giá trị của `y` và `z` sau khi đoạn mã này thực thi là bao nhiêu?

  • A. y = 5, z = 6
  • B. y = 6, z = 6
  • C. y = 5, z = 7
  • D. y = 6, z = 7

Câu 20: Attribute (thuộc tính) trong C# được sử dụng để làm gì?

  • A. Thay đổi hành vi của các đối tượng trong runtime.
  • B. Cung cấp metadata (thông tin mô tả) cho code, có thể được sử dụng bởi runtime, trình biên dịch hoặc các công cụ khác (ví dụ: reflection, validation).
  • C. Tăng hiệu suất thực thi của ứng dụng.
  • D. Tạo ra giao diện người dùng tùy biến.

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

  • A. Quản lý kết nối database.
  • B. Xây dựng giao diện người dùng web.
  • C. Thực hiện các thao tác file I/O.
  • D. Gửi HTTP requests và nhận HTTP responses từ web services hoặc APIs.

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

  • A. Một loại middleware trong ASP.NET Core.
  • B. Một ORM (Object-Relational Mapper) cho ASP.NET Core.
  • C. Một mô hình lập trình page-centric trong ASP.NET Core, đơn giản hóa việc xây dựng giao diện người dùng web dựa trên trang.
  • D. Một công cụ để triển khai ứng dụng ASP.NET Core lên Azure.

Câu 23: Serialization và Deserialization dùng để làm gì trong .NET?

  • A. Tối ưu hóa hiệu suất ứng dụng.
  • B. Serialization là quá trình chuyển đổi một đối tượng thành một luồng byte (stream) để lưu trữ hoặc truyền tải, Deserialization là quá trình ngược lại, chuyển đổi luồng byte trở lại đối tượng.
  • C. Quản lý bộ nhớ và thu gom rác.
  • D. Bảo vệ dữ liệu bằng cách mã hóa và giải mã.

Câu 24: Unit testing (kiểm thử đơn vị) có vai trò gì trong quy trình phát triển phần mềm .NET?

  • A. Kiểm thử hiệu suất của ứng dụng.
  • B. Kiểm thử giao diện người dùng.
  • C. Kiểm thử tích hợp giữa các module khác nhau.
  • D. Đảm bảo tính đúng đắn của từng đơn vị mã nhỏ nhất (ví dụ: phương thức, lớp), giúp phát hiện lỗi sớm, cải thiện chất lượng code và hỗ trợ refactoring.

Câu 25: Garbage Collection (GC - Thu gom rác) trong .NET Framework hoạt động như thế nào?

  • A. GC chỉ hoạt động khi bộ nhớ vật lý đầy.
  • B. Lập trình viên phải chủ động gọi GC để giải phóng bộ nhớ.
  • C. GC là một tiến trình chạy ngầm, tự động giải phóng bộ nhớ không còn được tham chiếu bởi ứng dụng, giúp ngăn ngừa memory leaks.
  • D. GC chỉ giải phóng bộ nhớ cho các đối tượng kiểu value type.

Câu 26: Cho đoạn code C#: `string name = null; string message = name?.ToUpper();`. Giá trị của `message` sau khi thực thi là gì?

  • A. `null`
  • B. Một chuỗi rỗng
  • C. `NAME`
  • D. Một ngoại lệ `NullReferenceException`.

Câu 27: `ConfigureAwait(false)` thường được sử dụng khi viết code `async/await` trong .NET để làm gì?

  • A. Bắt buộc continuation (phần code sau `await`) phải chạy trên UI thread.
  • B. Ngăn chặn continuation (phần code sau `await`) quay trở lại SynchronizationContext hoặc TaskScheduler ban đầu, giúp cải thiện hiệu suất và tránh deadlock trong một số trường hợp (đặc biệt trong thư viện class library hoặc ASP.NET Core).
  • C. Báo hiệu cho Garbage Collector thu gom đối tượng ngay lập tức sau khi `await` hoàn thành.
  • D. Vô hiệu hóa cơ chế bất đồng bộ, làm cho code chạy đồng bộ.

Câu 28: Namespace trong .NET Framework có mục đích chính là gì?

  • A. Tăng tốc độ biên dịch mã nguồn.
  • B. Giảm dung lượng bộ nhớ sử dụng của ứng dụng.
  • C. Tổ chức code, tránh xung đột tên giữa các lớp và kiểu dữ liệu, giúp quản lý code dễ dàng hơn.
  • D. Tự động tạo ra tài liệu API cho ứng dụng.

Câu 29: Reflection trong .NET cho phép bạn làm gì?

  • A. Biên dịch mã nguồn C# thành mã máy tại runtime.
  • B. Tối ưu hóa hiệu suất ứng dụng bằng cách tự động sửa đổi mã IL.
  • C. Quản lý bộ nhớ và thu gom rác.
  • D. Khám phá metadata của các types (lớp, interface, struct, enum, delegate) và assemblies tại runtime, cho phép tạo instance của types, gọi methods, truy cập properties một cách động.

Câu 30: Giả sử bạn có một ứng dụng ASP.NET Core Web API. Bạn muốn xác thực (authenticate) người dùng và xác định quyền truy cập (authorize) của họ vào các endpoint khác nhau. Cơ chế nào thường được sử dụng trong ASP.NET Core để thực hiện điều này?

  • A. Garbage Collection (GC).
  • B. ASP.NET Core Identity, JWT (JSON Web Tokens) và các middleware authentication/authorization.
  • C. Reflection.
  • D. Dependency Injection (DI).

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

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: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 2: Cho đoạn mã C# sau: `int? nullableInt = null; int regularInt = nullableInt.Value;`. Điều gì sẽ xảy ra khi đoạn mã này được thực thi?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 3: Phương thức mở rộng (Extension method) trong C# cho phép bạn làm gì?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 4: Trong lập trình hướng đối tượng với C#, khái niệm 'tính đóng gói' (Encapsulation) nhằm mục đích chính là gì?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 5: Khi nào bạn nên sử dụng giao diện (Interface) thay vì lớp trừu tượng (Abstract class) trong C#?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 6: Đoạn mã LINQ sau thực hiện điều gì: `var result = numbers.Where(n => n % 2 == 0).OrderByDescending(n => n).FirstOrDefault();` Giả sử `numbers` là một danh sách các số nguyên.

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 7: Trong ASP.NET Core MVC, Middleware (lớp trung gian) hoạt động như thế nào trong pipeline xử lý request?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 8: Dependency Injection (DI - Tiêm phụ thuộc) mang lại lợi ích chính nào trong phát triển ứng dụng .NET?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 9: Trong Entity Framework Core, khái niệm 'DbContext' dùng để làm gì?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 10: Phương thức `async` và từ khóa `await` trong C# được sử dụng để giải quyết vấn đề nào?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 11: Giả sử bạn có một lớp `Dog` kế thừa từ lớp `Animal`. Khi bạn tạo một đối tượng `Dog` và gán nó cho biến kiểu `Animal`, như sau: `Animal myAnimal = new Dog();`. Hành vi nào sau đây thể hiện tính đa hình (Polymorphism)?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 12: Trong C#, 'boxing' và 'unboxing' là gì và khi nào chúng xảy ra?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

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

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 14: Sự khác biệt chính giữa `StringBuilder` và `string` trong C# là gì?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 15: Trong mô hình lập trình hướng sự kiện (Event-driven programming), Delegates và Events được sử dụng để làm gì?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 16: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; numbers.RemoveAt(2);`. Giá trị của `numbers` sau khi thực hiện đoạn code trên là gì?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 17: Trong lập trình .NET, Assembly là gì?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 18: `IDisposable` interface trong .NET được sử dụng để làm gì?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 19: Cho đoạn mã C# sau: `int x = 5; int y = x++; int z = ++x;`. Giá trị của `y` và `z` sau khi đoạn mã này thực thi là bao nhiêu?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 20: Attribute (thuộc tính) trong C# được sử dụng để làm gì?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

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

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

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

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 23: Serialization và Deserialization dùng để làm gì trong .NET?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 24: Unit testing (kiểm thử đơn vị) có vai trò gì trong quy trình phát triển phần mềm .NET?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 25: Garbage Collection (GC - Thu gom rác) trong .NET Framework hoạt động như thế nào?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 26: Cho đoạn code C#: `string name = null; string message = name?.ToUpper();`. Giá trị của `message` sau khi thực thi là gì?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 27: `ConfigureAwait(false)` thường được sử dụng khi viết code `async/await` trong .NET để làm gì?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 28: Namespace trong .NET Framework có mục đích chính là gì?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 29: Reflection trong .NET cho phép bạn làm gì?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 06

Câu 30: Giả sử bạn có một ứng dụng ASP.NET Core Web API. Bạn muốn xác thực (authenticate) người dùng và xác định quyền truy cập (authorize) của họ vào các endpoint khác nhau. Cơ chế nào thường được sử dụng trong ASP.NET Core để thực hiện điều này?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 07

Trắc nghiệm Lập trình .NET - Đề 07 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, AssemblyManifest chứa thông tin quan trọng nào về một assembly?

  • A. Chỉ chứa mã IL (Intermediate Language)
  • B. Chỉ chứa thông tin về các kiểu dữ liệu công khai (public types)
  • C. Chỉ chứa thông tin về bảo mật của assembly
  • D. Chứa metadata mô tả assembly, bao gồm định danh, phiên bản, và các assembly phụ thuộc.

Câu 2: Khi nào Garbage Collector (GC) trong .NET Framework hoạt động?

  • A. Chỉ khi ứng dụng .NET được khởi động
  • B. Chỉ khi bộ nhớ vật lý của hệ thống đạt mức tối đa
  • C. Chỉ khi lập trình viên gọi GC bằng lệnh `GC.Collect()`
  • D. Định kỳ và tự động khi hệ thống cần bộ nhớ hoặc khi bộ nhớ thế hệ 0 đầy.

Câu 3: Cho đoạn code C# sau: `string str1 =

  • A. True, vì giá trị của hai chuỗi giống nhau.
  • B. True, vì string là kiểu tham chiếu.
  • C. False, vì `ReferenceEquals` so sánh tham chiếu đối tượng, không phải giá trị.
  • D. Không xác định, kết quả phụ thuộc vào phiên bản .NET Framework.

Câu 4: 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 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 lớp gốc.
  • C. Tạo ra một lớp con (derived class) từ một lớp hiện có.
  • D. Cho phép gọi phương thức private của một lớp từ bên ngoài lớp đó.

Câu 5: Đặc điểm nào sau đây KHÔNG phải là của Interface trong C#?

  • A. Định nghĩa một tập hợp các thành viên mà một lớp phải thực hiện.
  • B. Cho phép đa kế thừa (multiple inheritance) về mặt giao diện.
  • C. Có thể chứa các trường (fields) để lưu trữ trạng thái.
  • D. Đảm bảo tính trừu tượng hóa (abstraction) trong lập trình hướng đối tượng.

Câu 6: Delegates trong C# được sử dụng để làm gì?

  • A. Đại diện cho tham chiếu đến phương thức, cho phép gọi phương thức một cách gián tiếp.
  • B. Định nghĩa cấu trúc dữ liệu phức tạp để lưu trữ thông tin.
  • C. Kiểm soát truy cập đến các thành viên của một lớp.
  • D. Tối ưu hóa hiệu suất bằng cách thực thi mã song song.

Câu 7: `async` và `await` keywords trong C# được sử dụng để giải quyết vấn đề nào?

  • A. Quản lý bộ nhớ và thu gom rác (garbage collection).
  • B. Lập trình bất đồng bộ (asynchronous programming) và tránh blocking UI thread.
  • C. Xử lý ngoại lệ (exception handling) một cách hiệu quả hơn.
  • D. Thực hiện Dependency Injection và Inversion of Control.

Câu 8: 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) cho ứng dụng Windows.
  • B. Quản lý phiên bản của các assembly và dependencies.
  • C. Thực hiện bảo mật và xác thực người dùng trong ứng dụng web.
  • D. Truy vấn dữ liệu từ nhiều nguồn khác nhau (collections, databases, XML) một cách thống nhất.

Câu 9: Dependency Injection (DI) là gì và lợi ích chính của nó trong phát triển ứng dụng .NET?

  • A. Một kỹ thuật để tối ưu hóa hiệu suất ứng dụng bằng cách giảm thiểu việc tạo đối tượng.
  • B. Một phương pháp để quản lý bộ nhớ và tránh rò rỉ bộ nhớ trong ứng dụng.
  • C. Một pattern thiết kế giúp giảm sự phụ thuộc giữa các thành phần, tăng tính module hóa và khả năng kiểm thử.
  • D. Một cơ chế bảo mật để kiểm soát truy cập đến các tài nguyên của ứng dụng.

Câu 10: Trong Entity Framework Core, DbSet đại diện cho khái niệm nào?

  • A. Một kết nối đến database server.
  • B. Một tập hợp các thực thể (entities) cùng loại, thường tương ứng với một bảng trong database.
  • C. Một transaction đang hoạt động trong database.
  • D. Một stored procedure được định nghĩa trong database.

Câu 11: ViewState trong ASP.NET Web Forms được sử dụng để làm gì?

  • A. Duy trì trạng thái của các control trên trang web giữa các postback.
  • B. Lưu trữ dữ liệu session cho người dùng.
  • C. Cache dữ liệu trang web để tăng hiệu suất.
  • D. Xác thực người dùng và quản lý quyền truy cập.

Câu 12: Razor Pages trong ASP.NET Core là gì và khác biệt chính so với MVC?

  • A. Một framework JavaScript tích hợp trong ASP.NET Core.
  • B. Một ORM (Object-Relational Mapper) thay thế Entity Framework Core.
  • C. Một mô hình phát triển web page-based trong ASP.NET Core, đơn giản hóa việc xây dựng UI so với MVC.
  • D. Một công cụ để tạo RESTful APIs trong ASP.NET Core.

Câu 13: Middleware trong ASP.NET Core pipeline có vai trò gì?

  • A. Quản lý kết nối database trong ứng dụng ASP.NET Core.
  • B. Xử lý các HTTP request và response trong pipeline, thực hiện các tác vụ như authentication, logging, routing.
  • C. Tạo và quản lý View trong mô hình MVC.
  • D. Định nghĩa cấu trúc dữ liệu và validation cho mô hình dữ liệu.

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

  • A. Định nghĩa các thuộc tính (properties) của một lớp.
  • B. Kiểm soát quyền truy cập (access modifiers) của 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 mã, có thể được sử dụng bởi compiler, runtime, hoặc các framework khác.

Câu 15: Boxing và Unboxing trong C# là gì và khi nào chúng xảy ra?

  • A. Kỹ thuật nén và giải nén dữ liệu để tiết kiệm bộ nhớ.
  • B. Cơ chế mã hóa và giải mã dữ liệu để bảo mật thông tin.
  • C. Boxing là chuyển đổi kiểu giá trị sang kiểu tham chiếu object, Unboxing là ngược lại. Boxing xảy ra khi cần kiểu giá trị như object.
  • D. Quá trình tạo và hủy đối tượng trong Garbage Collection.

Câu 16: Sự khác biệt chính giữa `StringBuilder` và `string` trong C# khi làm việc với chuỗi?

  • A. `string` nhanh hơn `StringBuilder` trong hầu hết các thao tác.
  • B. `string` là immutable, mỗi thay đổi tạo ra chuỗi mới. `StringBuilder` là mutable, thay đổi trực tiếp trên đối tượng hiện tại.
  • C. `StringBuilder` chỉ dùng cho chuỗi số, còn `string` cho chuỗi văn bản.
  • D. `string` được lưu trên stack, `StringBuilder` được lưu trên heap.

Câu 17: Extension Method có thể được định nghĩa cho kiểu dữ liệu nào?

  • A. Chỉ các lớp (class) do người dùng tự định nghĩa.
  • B. Chỉ các interface và abstract classes.
  • C. Chỉ các kiểu dữ liệu value type (struct, enum).
  • D. Bất kỳ kiểu dữ liệu nào trong .NET, kể cả lớp sealed, struct, interface, và kiểu primitive.

Câu 18: Trong ngữ cảnh của .NET Core và .NET Framework, "cross-platform" nghĩa là gì?

  • A. Ứng dụng có thể chạy trên nhiều trình duyệt web khác nhau.
  • B. Ứng dụng có thể truy cập nhiều loại database khác nhau.
  • C. Ứng dụng có thể chạy trên nhiều hệ điều hành khác nhau (Windows, macOS, Linux).
  • D. Ứng dụng có thể được phát triển bằng nhiều ngôn ngữ lập trình khác nhau.

Câu 19: Chức năng chính của Common Language Runtime (CLR) trong .NET Framework là gì?

  • A. Quản lý việc thực thi mã .NET, bao gồm quản lý bộ nhớ, bảo mật, và tương tác với hệ điều hành.
  • B. Biên dịch mã nguồn C# sang mã máy.
  • C. Cung cấp các thư viện lớp cơ sở (Base Class Library) cho .NET.
  • D. Hỗ trợ phát triển ứng dụng web ASP.NET.

Câu 20: Sự khác biệt giữa `virtual`, `override`, và `new` keywords khi làm việc với kế thừa trong C#?

  • A. `virtual` dùng để tạo lớp trừu tượng, `override` để tạo interface, `new` để tạo lớp sealed.
  • B. `virtual` cho phép override, `override` để ghi đè phương thức virtual, `new` để ẩn phương thức của lớp cha.
  • C. `virtual` tạo phương thức static, `override` tạo phương thức instance, `new` tạo constructor.
  • D. Không có sự khác biệt, chúng có thể dùng thay thế cho nhau.

Câu 21: Trong C#, cấu trúc `struct` khác biệt so với `class` như thế nào về bản chất?

  • A. `struct` hỗ trợ đa kế thừa, `class` chỉ hỗ trợ đơn kế thừa.
  • B. `struct` được dùng cho lập trình web, `class` cho ứng dụng desktop.
  • C. `struct` là kiểu giá trị (value type), `class` là kiểu tham chiếu (reference type).
  • D. `struct` có thể chứa phương thức, `class` chỉ chứa dữ liệu.

Câu 22: `IDisposable` interface trong .NET được sử dụng để làm gì?

  • A. Quản lý bộ nhớ tự động (Garbage Collection).
  • B. Xử lý ngoại lệ và đảm bảo tính toàn vẹn dữ liệu.
  • C. Thực hiện Dependency Injection và Inversion of Control.
  • D. Giải phóng tài nguyên không được quản lý bởi Garbage Collector (ví dụ: file handles, database connections).

Câu 23: `sealed` keyword trong C# có ý nghĩa gì khi áp dụng cho một class?

  • A. Lớp chỉ có thể được truy cập trong cùng một assembly.
  • B. Lớp không thể được kế thừa (derived class).
  • C. Lớp chỉ có thể chứa các phương thức static.
  • D. Lớp được tối ưu hóa để có hiệu suất cao hơn.

Câu 24: Trong C#, `event` keyword được sử dụng để làm gì và nó liên quan đến delegate như thế nào?

  • A. Định nghĩa một phương thức async.
  • B. Tạo một thuộc tính chỉ đọc (read-only property).
  • C. Định nghĩa một sự kiện trong lớp, dựa trên delegate để thông báo cho các lớp khác.
  • D. Kiểm soát truy cập đa luồng đến tài nguyên chia sẻ.

Câu 25: Sự khác biệt chính giữa `List` và `ArrayList` trong .NET Collections?

  • A. `List` là generic và type-safe, `ArrayList` là non-generic và lưu trữ object.
  • B. `List` có kích thước cố định, `ArrayList` có kích thước động.
  • C. `List` chỉ dùng cho kiểu dữ liệu value type, `ArrayList` cho reference type.
  • D. `List` là interface, `ArrayList` là implementation.

Câu 26: Trong lập trình đa luồng (multithreading) với .NET, khi nào nên sử dụng `Task` thay vì `Thread`?

  • A. Khi cần kiểm soát thread ở mức độ rất thấp và chi tiết.
  • B. Khi cần thực hiện các thao tác đồng bộ (synchronous operations).
  • C. Khi phát triển ứng dụng console đơn giản.
  • D. Trong hầu hết các trường hợp lập trình bất đồng bộ và song song hiện đại, vì `Task` dễ quản lý và lập lịch hơn.

Câu 27: Sự khác biệt giữa eager loading và lazy loading trong Entity Framework Core?

  • A. Eager loading nhanh hơn lazy loading trong mọi trường hợp.
  • B. Eager loading tải related entities ngay lập tức, lazy loading tải khi cần.
  • C. Eager loading chỉ dùng cho quan hệ 1-1, lazy loading cho quan hệ 1-n và n-n.
  • D. Lazy loading luôn hiệu quả hơn eager loading về hiệu suất.

Câu 28: Trong ASP.NET Core, Dependency Injection thường được cấu hình ở đâu?

  • A. Trong file `Program.cs` ở phương thức `Main()`.
  • B. Trong file `appsettings.json`.
  • C. Trong phương thức `ConfigureServices` của lớp `Startup.cs`.
  • D. Trong các Controller constructors.

Câu 29: Mục đích chính của Unit Testing trong phát triển phần mềm .NET là gì?

  • A. Kiểm tra từng đơn vị mã nguồn 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.
  • B. Kiểm tra toàn bộ hệ thống sau khi tích hợp các module.
  • C. Đo hiệu suất và khả năng chịu tải của ứng dụng.
  • D. Kiểm tra giao diện người dùng và trải nghiệm người dùng.

Câu 30: Cho đoạn code C# sau: `var result = 5 +

  • A. int, 10
  • B. int, 55
  • C. double, 10.0
  • D. string,

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 1: Trong .NET, AssemblyManifest chứa thông tin quan trọng nào về một assembly?

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 2: Khi nào Garbage Collector (GC) trong .NET Framework hoạt động?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 3: Cho đoạn code C# sau: `string str1 = "hello"; string str2 = "hello";`. Biểu thức `object.ReferenceEquals(str1, str2)` sẽ trả về giá trị gì và tại sao?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 4: Phương thức mở rộng (Extension Method) trong C# cho phép làm gì?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 5: Đặc điểm nào sau đây KHÔNG phải là của Interface trong C#?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 6: Delegates trong C# được sử dụng để làm gì?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 7: `async` và `await` keywords trong C# được sử dụng để giải quyết vấn đề nào?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 8: LINQ (Language Integrated Query) trong .NET Framework cung cấp khả năng gì?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 9: Dependency Injection (DI) là gì và lợi ích chính của nó trong phát triển ứng dụng .NET?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 10: Trong Entity Framework Core, DbSet đại diện cho khái niệm nào?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 11: ViewState trong ASP.NET Web Forms được sử dụng để làm gì?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 12: Razor Pages trong ASP.NET Core là gì và khác biệt chính so với MVC?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 13: Middleware trong ASP.NET Core pipeline có vai trò gì?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

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

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 15: Boxing và Unboxing trong C# là gì và khi nào chúng xảy ra?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 16: Sự khác biệt chính giữa `StringBuilder` và `string` trong C# khi làm việc với chuỗi?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 17: Extension Method có thể được định nghĩa cho kiểu dữ liệu nào?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 18: Trong ngữ cảnh của .NET Core và .NET Framework, 'cross-platform' nghĩa là gì?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 19: Chức năng chính của Common Language Runtime (CLR) trong .NET Framework là gì?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 20: Sự khác biệt giữa `virtual`, `override`, và `new` keywords khi làm việc với kế thừa trong C#?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 21: Trong C#, cấu trúc `struct` khác biệt so với `class` như thế nào về bản chất?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 22: `IDisposable` interface trong .NET được sử dụng để làm gì?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 23: `sealed` keyword trong C# có ý nghĩa gì khi áp dụng cho một class?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 24: Trong C#, `event` keyword được sử dụng để làm gì và nó liên quan đến delegate như thế nào?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 25: Sự khác biệt chính giữa `List` và `ArrayList` trong .NET Collections?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 26: Trong lập trình đa luồng (multithreading) với .NET, khi nào nên sử dụng `Task` thay vì `Thread`?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 27: Sự khác biệt giữa eager loading và lazy loading trong Entity Framework Core?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 28: Trong ASP.NET Core, Dependency Injection thường được cấu hình ở đâu?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 29: Mục đích chính của Unit Testing trong phát triển phần mềm .NET là gì?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 07

Câu 30: Cho đoạn code C# sau: `var result = 5 + "5";`. Kiểu dữ liệu và giá trị của `result` sẽ là gì?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 08

Trắc nghiệm Lập trình .NET - Đề 08 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

  • A. Biên dịch mã nguồn C# thành mã máy
  • B. Quản lý việc thực thi mã .NET và cung cấp các dịch vụ runtime
  • C. Cung cấp các thư viện lớp cơ sở cho .NET Framework
  • D. Xây dựng giao diện người dùng đồ họa cho ứng dụng Windows

Câu 2: Giả sử bạn có một ứng dụng .NET Framework cũ cần được chuyển sang nền tảng hiện đại, đa nền tảng. Nền tảng .NET mới nào của Microsoft sẽ phù hợp nhất cho mục đích này?

  • A. .NET Framework 4.8
  • B. Silverlight
  • C. .NET (hoặc .NET 7, .NET 8...)
  • D. Xamarin

Câu 3: Trong C#, bạn muốn tạo một kiểu dữ liệu tùy chỉnh mà các biến của kiểu này chỉ có thể nhận một tập hợp hữu hạn các giá trị được đặt tên. Kiểu dữ liệu nào sau đây phù hợp nhất?

  • A. enum
  • B. struct
  • C. class
  • D. interface

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

  • A. { 1, 3, 5 }
  • B. { 2, 4 }
  • C. { 1, 2, 3, 4, 5 }
  • D. Rỗng (không có phần tử nào)

Câu 5: Trong lập trình hướng đối tượng với C#, "tính đóng gói" (encapsulation) mang lại lợi ích chính nào?

  • A. Tăng tốc độ thực thi chương trình
  • B. Giảm dung lượng bộ nhớ sử dụng
  • C. Cho phép đa kế thừa giữa các lớp
  • D. Che giấu thông tin và bảo vệ dữ liệu bên trong đối tượng

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

  • A. Khi bạn cần một kiểu dữ liệu nhẹ, biểu diễn một giá trị đơn giản và không cần kế thừa
  • B. Khi bạn cần một kiểu dữ liệu phức tạp với nhiều phương thức và thuộc tính
  • C. Khi bạn muốn tận dụng tính đa hình và kế thừa
  • D. Không có sự khác biệt, có thể dùng thay thế lẫn nhau

Câu 7: Trong ASP.NET Core, "Middleware" là gì và nó hoạt động như thế nào trong pipeline xử lý request?

  • A. Một cơ chế để tạo ra các view trong ứng dụng MVC
  • B. Một thành phần để quản lý kết nối cơ sở dữ liệu
  • C. Các thành phần xử lý request và response trong pipeline của ứng dụng ASP.NET Core
  • D. Một loại dependency injection container

Câu 8: Entity Framework Core (EF Core) là một ORM (Object-Relational Mapper) trong .NET. Công dụng chính của EF Core là gì?

  • A. Tăng tốc độ truy vấn cơ sở dữ liệu
  • B. Giúp thao tác với cơ sở dữ liệu dễ dàng hơn thông qua các đối tượng C#
  • C. Tạo ra giao diện người dùng cho ứng dụng web
  • D. Quản lý bộ nhớ và giải phóng tài nguyên trong .NET

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

  • A. Một từ khóa để khai báo lớp trừu tượng
  • B. Một cơ chế để thực hiện đa kế thừa
  • C. Một kiểu dữ liệu nguyên thủy (primitive type)
  • D. Một kiểu tham chiếu phương thức, thường dùng trong xử lý sự kiện và callback

Câu 10: Phương thức mở rộng (extension method) trong C# cho phép bạn làm gì?

  • A. Thay đổi hành vi của phương thức có sẵn trong một lớp
  • B. Tạo ra một lớp con từ một lớp đã có
  • 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 lớp gốc
  • D. Giảm thiểu việc sử dụng bộ nhớ cho các đối tượng

Câu 11: "Boxing" và "Unboxing" là gì trong C# và chúng liên quan đến kiểu dữ liệu nào?

  • A. Cơ chế quản lý bộ nhớ tự động của CLR
  • B. Quá trình chuyển đổi giữa kiểu giá trị và kiểu tham chiếu (object)
  • C. Kỹ thuật tối ưu hóa hiệu suất trong .NET
  • D. Các loại lỗi thường gặp khi lập trình với C#

Câu 12: "async" và "await" trong C# được sử dụng để làm gì?

  • A. Tăng tốc độ thực thi mã tuần tự
  • B. Quản lý đa luồng và xử lý song song
  • C. Đơn giản hóa lập trình bất đồng bộ và tránh blocking luồng chính
  • D. Kiểm soát truy cập đồng thời vào tài nguyên chia sẻ

Câu 13: Giả sử bạn cần lưu trữ một tập hợp các đối tượng duy nhất, không theo thứ tự cụ thể và cần kiểm tra sự tồn tại của một phần tử một cách nhanh chóng. Cấu trúc dữ liệu nào trong .NET Collections phù hợp nhất?

  • A. HashSet
  • B. List
  • C. Dictionary
  • D. SortedList

Câu 14: "Dependency Injection" (DI) là một nguyên tắc thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

  • A. Tăng hiệu suất ứng dụng
  • B. Giảm kích thước mã nguồn
  • C. Tự động tạo tài liệu API
  • D. Giảm sự phụ thuộc giữa các thành phần và tăng tính kiểm thử

Câu 15: Trong mô hình MVC (Model-View-Controller) của ASP.NET Core, "Controller" có vai trò gì?

  • A. Đại diện cho dữ liệu và logic nghiệp vụ của ứng dụng
  • B. Xử lý request của người dùng và điều phối tương tác giữa Model và View
  • C. Hiển thị dữ liệu cho người dùng và tương tác với người dùng
  • D. Định nghĩa cấu trúc URL của ứng dụng

Câu 16: Razor Pages là một framework phát triển web trong ASP.NET Core. Điểm khác biệt chính của Razor Pages so với MVC là gì?

  • A. Razor Pages sử dụng ngôn ngữ Razor còn MVC thì không
  • B. Razor Pages mạnh mẽ hơn MVC trong việc xây dựng API
  • C. Razor Pages tập trung vào mô hình hướng trang, đơn giản hóa cấu trúc ứng dụng so với MVC
  • D. Razor Pages chỉ hỗ trợ C#, còn MVC hỗ trợ nhiều ngôn ngữ hơn

Câu 17: Trong C#, "garbage collection" (GC) là gì và nó hoạt động như thế nào?

  • A. Một kỹ thuật tối ưu hóa hiệu suất bằng cách tái sử dụng bộ nhớ
  • B. Cơ chế quản lý lỗi và ngoại lệ trong .NET
  • C. Một công cụ để phân tích và gỡ lỗi bộ nhớ
  • D. Cơ chế tự động thu hồi bộ nhớ không còn được sử dụng bởi ứng dụng

Câu 18: Cho đoạn code C#: `int? nullableInt = null;`. "int?" biểu thị điều gì?

  • A. Một kiểu số nguyên lớn hơn int thông thường
  • B. Một kiểu int có thể nhận giá trị null
  • C. Một kiểu số nguyên chỉ đọc
  • D. Một kiểu dữ liệu tùy chỉnh do người dùng định nghĩa

Câu 19: "LINQ to SQL" và "LINQ to Entities" khác nhau như thế nào?

  • A. LINQ to SQL chỉ làm việc với SQL Server, còn LINQ to Entities (EF Core) hỗ trợ nhiều loại CSDL
  • B. LINQ to Entities nhanh hơn LINQ to SQL
  • C. LINQ to SQL là một phần của .NET Core, còn LINQ to Entities thuộc .NET Framework
  • D. Không có sự khác biệt, chúng là tên gọi khác nhau của cùng một công nghệ

Câu 20: Trong C#, "generics" (kiểu tổng quát) mang lại lợi ích chính nào?

  • A. Giảm thời gian biên dịch mã nguồn
  • B. Đơn giản hóa cú pháp ngôn ngữ C#
  • C. Tăng tính tái sử dụng mã và đảm bảo kiểu an toàn tại thời điểm biên dịch
  • D. Tự động quản lý bộ nhớ cho các đối tượng

Câu 21: Cho đoạn code C#: `var result = Calculate(5, 0);`. Giả sử phương thức `Calculate` có thể ném ra ngoại lệ `DivideByZeroException`. Làm thế nào để xử lý ngoại lệ này một cách an toàn?

  • A. `if (b != 0) { var result = Calculate(a, b); }`
  • B. `try { var result = Calculate(5, 0); } catch (DivideByZeroException ex) { // Xử lý ngoại lệ }`
  • C. `[ExceptionHandler] public var result = Calculate(5, 0);`
  • D. `// Không cần xử lý, .NET tự động bỏ qua lỗi`

Câu 22: Trong ASP.NET Core, "View Components" khác gì so với "Partial Views"?

  • A. Partial Views có thể tái sử dụng, View Components thì không
  • B. View Components nhanh hơn Partial Views
  • C. Partial Views hỗ trợ Dependency Injection, View Components thì không
  • D. View Components có logic xử lý riêng (code-behind), Partial Views thì không

Câu 23: "NuGet" là gì trong hệ sinh thái .NET?

  • A. Một công cụ để biên dịch mã C# thành mã máy
  • B. Một framework để xây dựng giao diện người dùng web
  • C. Trình quản lý gói thư viện cho .NET, giúp cài đặt và quản lý các thư viện bên ngoài
  • D. Một hệ thống kiểm soát phiên bản mã nguồn

Câu 24: Khi nào bạn nên sử dụng "interface" thay vì "abstract class" trong C#?

  • A. Khi bạn muốn tạo ra một lớp cơ sở mà các lớp con có thể kế thừa và mở rộng
  • B. Khi bạn muốn định nghĩa một hợp đồng (contract) mà các lớp khác phải thực hiện, và không muốn cung cấp bất kỳ triển khai mặc định nào
  • C. Khi bạn cần đa kế thừa (multiple inheritance) trong C#
  • D. Không có sự khác biệt lớn, có thể dùng thay thế lẫn nhau

Câu 25: Trong C#, từ khóa "sealed" được sử dụng để làm gì?

  • A. Ngăn chặn việc kế thừa từ một lớp hoặc ghi đè phương thức ảo
  • B. Đảm bảo tính bất biến (immutability) của một lớp
  • C. Khai báo một lớp là trừu tượng (abstract)
  • D. Tạo ra một lớp tĩnh (static class)

Câu 26: "Blazor" là gì và nó có gì đặc biệt so với các framework web khác của ASP.NET Core?

  • A. Một template engine mới cho ASP.NET Core MVC
  • B. Một ORM (Object-Relational Mapper) thế hệ mới
  • C. Framework để xây dựng ứng dụng web phía client bằng C# và .NET, có thể chạy trên trình duyệt hoặc server
  • D. Một công cụ để triển khai ứng dụng .NET lên cloud

Câu 27: "Reflection" trong .NET cho phép bạn làm gì?

  • A. Tăng tốc độ biên dịch mã nguồn
  • B. Tối ưu hóa bộ nhớ sử dụng của ứng dụng
  • C. Debug và kiểm tra lỗi trong quá trình phát triển
  • D. Khám phá và thao tác với metadata của các assembly, module, và type tại runtime

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

  • A. Tạo ra giao diện người dùng web
  • B. Gửi HTTP request và nhận HTTP response từ server
  • C. Quản lý phiên (session) trong ứng dụng web
  • D. Kết nối và truy vấn cơ sở dữ liệu

Câu 29: Trong C#, sự khác biệt chính giữa "string" và "StringBuilder" là gì?

  • A. String là bất biến (immutable), StringBuilder là khả biến (mutable)
  • B. StringBuilder chỉ dùng cho web, String dùng cho ứng dụng desktop
  • C. String nhanh hơn StringBuilder trong mọi trường hợp
  • D. Không có sự khác biệt về chức năng, chỉ khác nhau về cú pháp

Câu 30: Cho đoạn code C#: `Action log = message => Console.WriteLine(message);`. "Action" là gì?

  • A. Một kiểu dữ liệu string đặc biệt
  • B. Một thuộc tính (property) của lớp Console
  • C. Một kiểu delegate dựng sẵn đại diện cho phương thức không trả về giá trị và nhận một tham số kiểu string
  • D. Một từ khóa để khai báo biến cục bộ

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 2: Giả sử bạn có một ứng dụng .NET Framework cũ cần được chuyển sang nền tảng hiện đại, đa nền tảng. Nền tảng .NET mới nào của Microsoft sẽ phù hợp nhất cho mục đích này?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 3: Trong C#, bạn muốn tạo một kiểu dữ liệu tùy chỉnh mà các biến của kiểu này chỉ có thể nhận một tập hợp hữu hạn các giá trị được đặt tên. Kiểu dữ liệu nào sau đây phù hợp nhất?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

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

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 5: Trong lập trình hướng đối tượng với C#, 'tính đóng gói' (encapsulation) mang lại lợi ích chính nào?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

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

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 7: Trong ASP.NET Core, 'Middleware' là gì và nó hoạt động như thế nào trong pipeline xử lý request?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 8: Entity Framework Core (EF Core) là một ORM (Object-Relational Mapper) trong .NET. Công dụng chính của EF Core là gì?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

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

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 10: Phương thức mở rộng (extension method) trong C# cho phép bạn làm gì?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 11: 'Boxing' và 'Unboxing' là gì trong C# và ch??ng liên quan đến kiểu dữ liệu nào?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 12: 'async' và 'await' trong C# được sử dụng để làm gì?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 13: Giả sử bạn cần lưu trữ một tập hợp các đối tượng duy nhất, không theo thứ tự cụ thể và cần kiểm tra sự tồn tại của một phần tử một cách nhanh chóng. Cấu trúc dữ liệu nào trong .NET Collections phù hợp nhất?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 14: 'Dependency Injection' (DI) là một nguyên tắc thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 15: Trong mô hình MVC (Model-View-Controller) của ASP.NET Core, 'Controller' có vai trò gì?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 16: Razor Pages là một framework phát triển web trong ASP.NET Core. Điểm khác biệt chính của Razor Pages so với MVC là gì?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 17: Trong C#, 'garbage collection' (GC) là gì và nó hoạt động như thế nào?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 18: Cho đoạn code C#: `int? nullableInt = null;`. 'int?' biểu thị điều gì?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 19: 'LINQ to SQL' và 'LINQ to Entities' khác nhau như thế nào?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 20: Trong C#, 'generics' (kiểu tổng quát) mang lại lợi ích chính nào?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 21: Cho đoạn code C#: `var result = Calculate(5, 0);`. Giả sử phương thức `Calculate` có thể ném ra ngoại lệ `DivideByZeroException`. Làm thế nào để xử lý ngoại lệ này một cách an toàn?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 22: Trong ASP.NET Core, 'View Components' khác gì so với 'Partial Views'?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 23: 'NuGet' là gì trong hệ sinh thái .NET?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 24: Khi nào bạn nên sử dụng 'interface' thay vì 'abstract class' trong C#?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 25: Trong C#, từ khóa 'sealed' được sử dụng để làm gì?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 26: 'Blazor' là gì và nó có gì đặc biệt so với các framework web khác của ASP.NET Core?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 27: 'Reflection' trong .NET cho phép bạn làm gì?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

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

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 29: Trong C#, sự khác biệt chính giữa 'string' và 'StringBuilder' là gì?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 08

Câu 30: Cho đoạn code C#: `Action log = message => Console.WriteLine(message);`. 'Action' là gì?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 09

Trắc nghiệm Lập trình .NET - Đề 09 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

  • A. Biên dịch mã nguồn C# thành mã máy.
  • B. Quản lý giao diện người dùng trong ứng dụng Windows Forms.
  • C. Cung cấp môi trường thực thi và quản lý mã .NET, bao gồm quản lý bộ nhớ và biên dịch JIT.
  • D. Thư viện lớp cơ sở cho phép truy cập dữ liệu và làm việc với web.

Câu 2: Xét đoạn mã C# sau: `int x = 10; string y =

  • A. int, 30
  • B. string,
  • C. object, 30
  • D. Lỗi biên dịch do không thể cộng int và string trực tiếp.

Câu 3: Trong lập trình hướng đối tượng với C#, "tính đóng gói" (encapsulation) mang lại lợi ích chính nào?

  • A. Che giấu thông tin và bảo vệ dữ liệu bên trong đối tượng, chỉ cho phép truy cập thông qua các phương thức công khai.
  • B. Cho phép một lớp kế thừa các thuộc tính và phương thức từ nhiều lớp cha.
  • C. Khả năng một đối tượng thuộc nhiều lớp khác nhau có thể phản ứng khác nhau với cùng một thông điệp.
  • D. Tạo ra các lớp trừu tượng không thể khởi tạo trực tiếp, chỉ dùng để định nghĩa giao diện chung.

Câu 4: Phương thức mở rộng (extension methods) trong C# cho phép làm gì?

  • A. Thay thế các phương thức hiện có của một lớp bằng các phương thức mới.
  • B. Tạo ra các lớp con kế thừa từ một lớp cha và thêm phương thức mới.
  • C. Sửa đổi trực tiếp mã nguồn của các lớp thư viện .NET framework.
  • D. Thêm phương thức mới vào các lớp đã tồn tại mà không cần kế thừa hoặc sửa đổi mã nguồn gốc.

Câu 5: Trong ASP.NET Core, Middleware pipeline được sử dụng để xử lý request và response HTTP. Middleware nào sau đây thường được sử dụng ĐẦU TIÊN trong pipeline để ghi log thông tin request?

  • A. AuthenticationMiddleware
  • B. LoggingMiddleware
  • C. StaticFileMiddleware
  • D. RoutingMiddleware

Câu 6: Đoạn code C# sau sử dụng LINQ: `var result = numbers.Where(n => n > 5).OrderByDescending(n => n).FirstOrDefault();`. Nếu `numbers` là danh sách `{2, 8, 5, 10, 1, 7}`, giá trị của `result` sẽ là bao nhiêu?

  • A. 8
  • B. 7
  • C. 10
  • D. 5

Câu 7: Trong Entity Framework Core, khái niệm "DbContext" có vai trò gì?

  • A. Đại diện cho một session kết nối đến database, cho phép truy vấn và lưu dữ liệu.
  • B. Xác định cấu trúc bảng và quan hệ giữa các bảng trong database.
  • C. Thực hiện migration để cập nhật schema database.
  • D. Mapping các lớp C# với các bảng trong database.

Câu 8: Kiểu dữ liệu "Nullable Value Types" trong C# giải quyết vấn đề gì?

  • A. Cho phép kiểu tham chiếu (reference types) nhận giá trị mặc định thay vì null.
  • B. Cho phép kiểu giá trị (value types) như int, bool, DateTime có thể nhận giá trị null.
  • C. Tự động chuyển đổi giữa kiểu giá trị và kiểu tham chiếu.
  • D. Tăng hiệu suất truy cập dữ liệu kiểu giá trị.

Câu 9: "Dependency Injection" (DI) là một nguyên tắc thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

  • A. Tăng tốc độ biên dịch ứng dụng .NET.
  • B. Giảm kích thước file thực thi của ứng dụng.
  • C. Giảm sự phụ thuộc giữa các thành phần, tăng tính module hóa và khả năng kiểm thử.
  • D. Tự động tạo ra tài liệu kỹ thuật cho ứng dụng.

Câu 10: Trong C#, từ khóa "async" và "await" được sử dụng để làm gì?

  • A. Quản lý bộ nhớ và giải phóng tài nguyên không sử dụng.
  • B. Xử lý các sự kiện (events) trong giao diện người dùng.
  • C. Tạo ra các thread mới để thực hiện song song các tác vụ.
  • D. Thực hiện lập trình bất đồng bộ, giúp ứng dụng không bị treo khi thực hiện các tác vụ tốn thời gian.

Câu 11: "Garbage Collection" (GC) trong .NET Framework là gì?

  • A. Một kỹ thuật biên dịch mã nguồn C# thành mã máy hiệu quả hơn.
  • B. Một tiến trình tự động quản lý bộ nhớ, thu hồi bộ nhớ không còn được sử dụng.
  • C. Một cơ chế xử lý ngoại lệ (exceptions) trong ứng dụng .NET.
  • D. Một công cụ để tối ưu hiệu suất ứng dụng .NET.

Câu 12: Trong C#, "Delegates" và "Events" được sử dụng cho mục đích chính nào?

  • A. Định nghĩa các giao diện (interfaces) cho các lớp.
  • B. Thực hiện đa hình (polymorphism) trong lập trình hướng đối tượng.
  • C. Thực hiện lập trình hướng sự kiện, cho phép các đối tượng giao tiếp và phản ứng với các sự kiện.
  • D. Quản lý vòng đời của đối tượng và giải phóng tài nguyên.

Câu 13: "Unit Testing" là một phần quan trọng của quy trình phát triển phần mềm. Mục đích chính của Unit Testing là gì?

  • A. Kiểm tra từng đơn vị code nhỏ nhất (ví dụ: phương thức, lớp) để đảm bảo chúng hoạt động đúng như mong đợi.
  • B. Kiểm tra toàn bộ hệ thống để đảm bảo các thành phần tích hợp với nhau tốt.
  • C. Kiểm tra hiệu suất và khả năng chịu tải của ứng dụng.
  • D. Kiểm tra giao diện người dùng và trải nghiệm người dùng.

Câu 14: Trong C#, "Generics" mang lại lợi ích gì?

  • A. Cho phép tạo ra các lớp và phương thức chỉ hoạt động với một kiểu dữ liệu cụ thể.
  • B. Giảm kích thước bộ nhớ sử dụng bởi ứng dụng.
  • C. Tăng tốc độ thực thi của ứng dụng bằng cách tối ưu hóa mã máy.
  • D. Tăng tính tái sử dụng code, an toàn kiểu dữ liệu và hiệu suất.

Câu 15: Trong ASP.NET Core MVC, "Controllers" có vai trò gì?

  • A. Định nghĩa giao diện người dùng và hiển thị dữ liệu cho người dùng.
  • B. Xử lý request từ client, tương tác với model và chọn view để trả về response.
  • C. Quản lý dữ liệu và logic nghiệp vụ của ứng dụng.
  • D. Cấu hình routing và middleware cho ứng dụng web.

Câu 16: "Boxing" và "Unboxing" là gì trong C#?

  • A. Kỹ thuật mã hóa và giải mã dữ liệu trong C#.
  • B. Cơ chế quản lý bộ nhớ cho kiểu giá trị và kiểu tham chiếu.
  • C. Quá trình chuyển đổi giữa kiểu giá trị (value type) và kiểu object (reference type).
  • D. Các phương thức để tạo và hủy đối tượng trong C#.

Câu 17: Trong ADO.NET, đối tượng "DataAdapter" được sử dụng để làm gì?

  • A. Thiết lập kết nối đến database.
  • B. Thực thi các câu lệnh SQL trực tiếp trên database.
  • C. Lưu trữ dữ liệu lấy từ database dưới dạng bảng.
  • D. Làm cầu nối giữa DataSet và nguồn dữ liệu, cho phép lấy và cập nhật dữ liệu.

Câu 18: Trong C#, "Interfaces" (giao diện) khác với "Abstract Classes" (lớp trừu tượng) ở điểm nào chính?

  • A. Lớp trừu tượng (Abstract classes) không thể được khởi tạo trực tiếp, trong khi giao diện (Interfaces) có thể.
  • B. Một lớp có thể implement nhiều giao diện (Interfaces), nhưng chỉ có thể kế thừa từ một lớp trừu tượng (Abstract Class).
  • C. Giao diện (Interfaces) có thể chứa implementation cho các phương thức, trong khi lớp trừu tượng (Abstract Classes) thì không.
  • D. Lớp trừu tượng (Abstract Classes) được sử dụng cho đa kế thừa, trong khi giao diện (Interfaces) thì không.

Câu 19: "NuGet" là gì trong hệ sinh thái .NET?

  • A. Một công cụ biên dịch mã nguồn C# thành mã máy.
  • B. Một framework phát triển ứng dụng web của Microsoft.
  • C. Một trình quản lý package cho phép dễ dàng thêm, cập nhật và loại bỏ các thư viện và công cụ bên ngoài trong dự án .NET.
  • D. Một hệ thống quản lý phiên bản mã nguồn (version control) của Microsoft.

Câu 20: Trong C#, "Properties" (thuộc tính) khác với "Fields" (trường) như thế nào?

  • A. Properties cho phép kiểm soát truy cập và thêm logic khi đọc/ghi dữ liệu, trong khi Fields là biến thành viên truy cập trực tiếp.
  • B. Fields được khai báo public, còn Properties luôn phải là private.
  • C. Properties chỉ được sử dụng trong Interfaces, còn Fields chỉ được sử dụng trong Classes.
  • D. Không có sự khác biệt lớn, Properties và Fields có thể thay thế cho nhau.

Câu 21: Khi nào bạn nên sử dụng "Struct" thay vì "Class" trong C#?

  • A. Khi bạn cần kế thừa từ một kiểu khác.
  • B. Khi bạn muốn sử dụng đa hình (polymorphism).
  • C. Khi bạn cần một kiểu dữ liệu nhỏ, đơn giản, là kiểu giá trị và quan tâm đến hiệu suất.
  • D. Khi bạn muốn tạo ra các đối tượng có hành vi phức tạp.

Câu 22: Trong C#, "Exception Handling" (xử lý ngoại lệ) được thực hiện bằng cách sử dụng khối lệnh nào?

  • A. if-else
  • B. try-catch-finally
  • C. for-loop
  • D. switch-case

Câu 23: "Razor Pages" trong ASP.NET Core là gì?

  • A. Một engine view engine thay thế cho Razor trong ASP.NET Core MVC.
  • B. Một middleware để quản lý routing trong ASP.NET Core.
  • C. Một ORM (Object-Relational Mapper) tích hợp trong ASP.NET Core.
  • D. Một framework phát triển web page-based đơn giản hóa trong ASP.NET Core, thay thế cho MVC trong một số trường hợp.

Câu 24: Trong C#, từ khóa "sealed" được sử dụng để làm gì?

  • A. Ngăn chặn việc kế thừa từ một lớp hoặc override một phương thức.
  • B. Đảm bảo rằng một lớp chỉ có thể được khởi tạo một lần duy nhất (singleton pattern).
  • C. Tối ưu hóa hiệu suất của lớp bằng cách ngăn chặn virtual method dispatch.
  • D. Khai báo một lớp là bất biến (immutable).

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

  • A. Biên dịch mã nguồn C# thành mã máy tại thời điểm runtime.
  • B. Tự động sinh mã C# từ database schema.
  • C. Kiểm tra metadata và thông tin kiểu của assemblies và types tại runtime, và tạo/gọi đối tượng động.
  • D. Tối ưu hóa bộ nhớ và hiệu suất ứng dụng .NET.

Câu 26: Trong ASP.NET Core Web API, HTTP status code "201 Created" thường được sử dụng khi nào?

  • A. Khi request thành công nhưng không có nội dung trả về.
  • B. Khi một resource mới đã được tạo thành công trên server.
  • C. Khi server đã hiểu request nhưng chưa xử lý xong.
  • D. Khi client gửi request không hợp lệ.

Câu 27: "CancellationToken" trong C# được sử dụng để làm gì trong lập trình bất đồng bộ?

  • A. Đồng bộ hóa việc truy cập vào tài nguyên chia sẻ giữa các thread.
  • B. Xử lý ngoại lệ trong các tác vụ bất đồng bộ.
  • C. Đo lường thời gian thực thi của các tác vụ bất đồng bộ.
  • D. Hủy bỏ việc thực thi các tác vụ bất đồng bộ đang chạy.

Câu 28: Trong Entity Framework Core, "Migrations" được sử dụng để làm gì?

  • A. Tối ưu hóa hiệu suất truy vấn database.
  • B. Sao lưu và phục hồi database.
  • C. Quản lý và áp dụng các thay đổi schema database theo thời gian, đồng bộ với model code.
  • D. Tạo ra database từ model code một cách tự động khi ứng dụng chạy lần đầu.

Câu 29: Trong ASP.NET Core, "Routing" có vai trò gì?

  • A. Ánh xạ các request HTTP đến các endpoint xử lý (Controllers, Razor Pages) dựa trên URL.
  • B. Xác thực và ủy quyền người dùng truy cập vào ứng dụng.
  • C. Quản lý state của ứng dụng web (session, cookies).
  • D. Xử lý các file tĩnh (HTML, CSS, JavaScript) trong ứng dụng web.

Câu 30: Cho đoạn code C# sau: `var numbers = new List {1, 2, 3}; numbers.Remove(2);`. Hỏi sau khi thực thi, danh sách `numbers` sẽ chứa các phần tử nào?

  • A. {1, 3, 2}
  • B. {1, 3}
  • C. {2, 3}
  • D. {1, 2}

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 2: Xét đoạn mã C# sau: `int x = 10; string y = "20"; object z = x + y;`. Kiểu dữ liệu của biến 'z' và giá trị của nó sau khi thực thi là gì?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 3: Trong lập trình hướng đối tượng với C#, 'tính đóng gói' (encapsulation) mang lại lợi ích chính nào?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 4: Phương thức mở rộng (extension methods) trong C# cho phép làm gì?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 5: Trong ASP.NET Core, Middleware pipeline được sử dụng để xử lý request và response HTTP. Middleware nào sau đây thường được sử dụng ĐẦU TIÊN trong pipeline để ghi log thông tin request?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 6: Đoạn code C# sau sử dụng LINQ: `var result = numbers.Where(n => n > 5).OrderByDescending(n => n).FirstOrDefault();`. Nếu `numbers` là danh sách `{2, 8, 5, 10, 1, 7}`, giá trị của `result` sẽ là bao nhiêu?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 7: Trong Entity Framework Core, khái niệm 'DbContext' có vai trò gì?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 8: Kiểu dữ liệu 'Nullable Value Types' trong C# giải quyết vấn đề gì?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 9: 'Dependency Injection' (DI) là một nguyên tắc thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 10: Trong C#, từ khóa 'async' và 'await' được sử dụng để làm gì?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 11: 'Garbage Collection' (GC) trong .NET Framework là gì?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 12: Trong C#, 'Delegates' và 'Events' được sử dụng cho mục đích chính nào?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 13: 'Unit Testing' là một phần quan trọng của quy trình phát triển phần mềm. Mục đích chính của Unit Testing là gì?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 14: Trong C#, 'Generics' mang lại lợi ích gì?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 15: Trong ASP.NET Core MVC, 'Controllers' có vai trò gì?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 16: 'Boxing' và 'Unboxing' là gì trong C#?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 17: Trong ADO.NET, đối tượng 'DataAdapter' được sử dụng để làm gì?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 18: Trong C#, 'Interfaces' (giao diện) khác với 'Abstract Classes' (lớp trừu tượng) ở điểm nào chính?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 19: 'NuGet' là gì trong hệ sinh thái .NET?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 20: Trong C#, 'Properties' (thuộc tính) khác với 'Fields' (trường) như thế nào?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 21: Khi nào bạn nên sử dụng 'Struct' thay vì 'Class' trong C#?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 22: Trong C#, 'Exception Handling' (xử lý ngoại lệ) được thực hiện bằng cách sử dụng khối lệnh nào?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 23: 'Razor Pages' trong ASP.NET Core là gì?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 24: Trong C#, từ khóa 'sealed' được sử dụng để làm gì?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

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

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 26: Trong ASP.NET Core Web API, HTTP status code '201 Created' thường được sử dụng khi nào?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 27: 'CancellationToken' trong C# được sử dụng để làm gì trong lập trình bất đồng bộ?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 28: Trong Entity Framework Core, 'Migrations' được sử dụng để làm gì?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 29: Trong ASP.NET Core, 'Routing' có vai trò gì?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 09

Câu 30: Cho đoạn code C# sau: `var numbers = new List {1, 2, 3}; numbers.Remove(2);`. Hỏi sau khi thực thi, danh sách `numbers` sẽ chứa các phần tử nào?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 10

Trắc nghiệm Lập trình .NET - Đề 10 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

  • A. Biên dịch mã nguồn C# thành mã máy trực tiếp.
  • B. Quản lý việc thực thi mã .NET, bao gồm quản lý bộ nhớ, an ninh và xử lý ngoại lệ.
  • C. Cung cấp các thư viện lớp cơ bản để xây dựng giao diện người dùng đồ họa.
  • D. Kết nối và tương tác với các hệ quản trị cơ sở dữ liệu khác nhau.

Câu 2: Cho đoạn mã C# sau: `int x = 10; object y = x; int z = (int)y;`. Điều gì xảy ra khi dòng mã `int z = (int)y;` được thực thi?

  • A. Giá trị của `y` (đang được boxed) được unboxed và gán cho biến `z`.
  • B. Lỗi biên dịch vì không thể chuyển đổi ngầm định từ object sang int.
  • C. Lỗi runtime do kiểu của `y` không tương thích với int.
  • D. Biến `z` sẽ nhận giá trị null vì object `y` không trỏ đến một đối tượng int thực sự.

Câu 3: 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. 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 các kiểu dữ liệu đã tồn tại mà không cần kế thừa hoặc sửa đổi lớp gốc.
  • D. Cho phép đa kế thừa trong C#.

Câu 4: Đâu là sự khác biệt chính giữa `IEnumerable` và `IQueryable` trong .NET?

  • A. `IEnumerable` hỗ trợ truy vấn dữ liệu từ xa, còn `IQueryable` chỉ làm việc với dữ liệu tại chỗ.
  • B. `IQueryable` thực thi truy vấn trên máy chủ, còn `IEnumerable` thực thi truy vấn trên client.
  • C. `IEnumerable` cho phép trì hoãn thực thi truy vấn, còn `IQueryable` thực thi ngay lập tức.
  • D. `IQueryable` được tối ưu hóa cho việc truy vấn dữ liệu từ các nguồn dữ liệu như database, trong khi `IEnumerable` phù hợp hơn với dữ liệu trong bộ nhớ.

Câu 5: Trong lập trình bất đồng bộ (asynchronous programming) với `async` và `await` trong C#, từ khóa `await` có tác dụng gì?

  • A. Khởi tạo một luồng (thread) mới để thực hiện tác vụ bất đồng bộ.
  • B. Tạm dừng việc thực thi phương thức `async` hiện tại cho đến khi tác vụ bất đồng bộ hoàn thành, nhưng không chặn luồng chính.
  • C. Hủy bỏ tác vụ bất đồng bộ đang chạy.
  • D. Đồng bộ hóa việc truy cập vào tài nguyên dùng chung giữa các luồng.

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

  • A. Tăng hiệu suất ứng dụng bằng cách giảm thiểu việc tạo đối tượng.
  • B. Đơn giản hóa việc triển khai và cấu hình ứng dụng.
  • C. Tăng tính kiểm thử, khả năng bảo trì và giảm sự phụ thuộc giữa các thành phần của ứng dụng.
  • D. Tự động tạo mã (code generation) cho các thành phần phụ thuộc.

Câu 7: Trong ASP.NET Core, Middleware pipeline được sử dụng để làm gì?

  • A. Xử lý các HTTP request đến ứng dụng, theo một chuỗi các thành phần (middleware) được cấu hình.
  • B. Quản lý kết nối cơ sở dữ liệu cho ứng dụng ASP.NET Core.
  • C. Định tuyến (routing) các request đến các controller và action tương ứng.
  • D. Cung cấp cơ chế xác thực và ủy quyền cho ứng dụng web.

Câu 8: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. Biến `evenNumbers` sẽ chứa gì sau khi đoạn code này thực thi?

  • A. Một danh sách rỗng.
  • B. Một đối tượng `IEnumerable` chứa các số chẵn từ danh sách `numbers`.
  • C. Một danh sách mới chứa các số chẵn từ danh sách `numbers`.
  • D. Lỗi runtime vì `Where` không trả về danh sách.

Câu 9: Trong Entity Framework Core (EF Core), DbSet được sử dụng để làm gì?

  • A. Định nghĩa cấu trúc bảng (table schema) trong cơ sở dữ liệu.
  • B. Cấu hình kết nối đến cơ sở dữ liệu.
  • C. Biểu diễn một bảng trong cơ sở dữ liệu và cho phép thực hiện các truy vấn LINQ trên bảng đó.
  • D. Quản lý migrations cơ sở dữ liệu.

Câu 10: Đâu là cách tốt nhất để xử lý ngoại lệ (exceptions) trong .NET?

  • A. Bắt tất cả các ngoại lệ bằng khối `catch (Exception ex)` và bỏ qua chúng.
  • B. Sử dụng `try-catch` ở mọi nơi có thể xảy ra lỗi.
  • C. Để ứng dụng crash khi có ngoại lệ xảy ra để dễ dàng debug.
  • D. Chỉ bắt và xử lý các ngoại lệ mà ứng dụng có thể phục hồi, và ghi log các ngoại lệ không xử lý được để debug và cải thiện.

Câu 11: Trong mô hình lập trình hướng đối tượng của C#, tính đóng gói (encapsulation) mang lại lợi ích gì?

  • A. Cho phép đa kế thừa.
  • B. Ẩn giấu chi tiết triển khai bên trong của một đối tượng và bảo vệ dữ liệu khỏi bị truy cập và sửa đổi trực tiếp từ bên ngoài.
  • C. Tạo ra các lớp trừu tượng.
  • D. Giảm thiểu việc sử dụng bộ nhớ.

Câu 12: Delegates và Events là hai khái niệm quan trọng trong C#. Sự khác biệt chính giữa chúng là gì?

  • A. Delegates chỉ được sử dụng cho các sự kiện UI, còn Events dùng cho logic nghiệp vụ.
  • B. Events là một dạng đặc biệt của delegates, được tối ưu hóa cho hiệu suất.
  • C. Delegate là một kiểu dữ liệu tham chiếu đến phương thức, còn Event là một cơ chế để lớp hoặc đối tượng thông báo cho các đối tượng khác khi có sự kiện xảy ra, sử dụng delegate ở bên trong.
  • D. Không có sự khác biệt, Delegates và Events có thể thay thế cho nhau hoàn toàn.

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

  • A. Tạo ra một đối tượng string mới chứa chuỗi
  • B. Sửa đổi đối tượng `str1` để nó chứa chuỗi
  • C. Gây ra lỗi runtime vì không thể cộng hai chuỗi trực tiếp.
  • D. Trả về null nếu một trong hai chuỗi là null.

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

  • A. Tăng hiệu suất thực thi của ứng dụng.
  • B. Cung cấp metadata (dữ liệu về dữ liệu) cho các thành phần của mã như lớp, phương thức, thuộc tính, v.v., có thể được sử dụng bởi runtime hoặc các công cụ khác.
  • C. Thay đổi hành vi của CLR.
  • D. Tự động sinh mã (code generation) dựa trên cấu hình.

Câu 15: Refactoring code là một hoạt động quan trọng trong phát triển phần mềm. Mục đích chính của refactoring là gì?

  • A. Thêm chức năng mới vào phần mềm.
  • B. Sửa lỗi trong mã nguồn.
  • C. Cải thiện cấu trúc bên trong của mã nguồn (tính dễ đọc, dễ bảo trì, v.v.) mà không thay đổi chức năng bên ngoài của nó.
  • D. Tối ưu hóa hiệu suất của ứng dụng.

Câu 16: Garbage Collection (GC) là một tính năng tự động quản lý bộ nhớ trong .NET. GC hoạt động như thế nào?

  • A. GC giải phóng bộ nhớ ngay khi một đối tượng không còn được tham chiếu đến.
  • B. Lập trình viên phải chủ động gọi GC để giải phóng bộ nhớ.
  • C. GC chỉ hoạt động khi bộ nhớ vật lý đầy.
  • D. GC định kỳ quét vùng nhớ heap để tìm các đối tượng không còn được tham chiếu đến và giải phóng bộ nhớ mà chúng chiếm giữ.

Câu 17: Đâu là cách khai báo biến hằng số (constant) trong C#?

  • A. `readonly int MAX_VALUE = 100;`
  • B. `const int MAX_VALUE = 100;`
  • C. `static int MAX_VALUE = 100;`
  • D. `final int MAX_VALUE = 100;`

Câu 18: Sự khác biệt chính giữa `struct` và `class` trong C# là gì?

  • A. `struct` là kiểu giá trị (value type), còn `class` là kiểu tham chiếu (reference type).
  • B. `class` được lưu trữ trên stack, còn `struct` được lưu trữ trên heap.
  • C. `struct` hỗ trợ kế thừa, còn `class` thì không.
  • D. `class` có thể chứa phương thức, còn `struct` thì không.

Câu 19: Cho đoạn code C#: `int? nullableInt = null;`. Ý nghĩa của dấu `?` sau kiểu `int` là gì?

  • A. Khai báo một biến kiểu con trỏ (pointer) đến int.
  • B. Khai báo một biến kiểu số nguyên lớn (big integer).
  • C. Cho phép biến kiểu giá trị `int` có thể nhận giá trị `null`.
  • D. Không có ý nghĩa gì, đây chỉ là một cách viết khác của `int`.

Câu 20: Trong ASP.NET Core MVC, Controller đóng vai trò gì?

  • A. Hiển thị giao diện người dùng (UI) cho ứng dụng web.
  • B. Xử lý request từ người dùng, tương tác với Model để lấy dữ liệu, và chọn View để trả về response.
  • C. Quản lý dữ liệu và logic nghiệp vụ của ứng dụng.
  • D. Định nghĩa cấu trúc URL của ứng dụng.

Câu 21: Serialization và Deserialization là gì trong .NET?

  • A. Serialization là quá trình mã hóa dữ liệu, Deserialization là quá trình giải mã dữ liệu.
  • B. Serialization là quá trình chuyển đổi dữ liệu sang định dạng XML, Deserialization là quá trình chuyển đổi XML về lại đối tượng.
  • C. Serialization và Deserialization là các kỹ thuật tối ưu hóa hiệu suất ứng dụng.
  • D. Serialization là quá trình chuyển đổi một đối tượng thành một chuỗi byte để lưu trữ hoặc truyền tải, Deserialization là quá trình ngược lại, chuyển đổi chuỗi byte trở lại đối tượng.

Câu 22: Unit testing là một phần quan trọng của quy trình phát triển phần mềm. Mục đích chính của unit testing là gì?

  • A. Kiểm tra hiệu suất của ứng dụng.
  • B. Kiểm tra giao diện người dùng (UI) của ứng dụng.
  • C. Kiểm tra từng đơn vị mã (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.
  • D. Kiểm tra tích hợp giữa các module khác nhau của ứng dụng.

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

  • A. 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.
  • B. Quản lý phiên bản .NET Framework hoặc .NET SDK.
  • C. Triển khai ứng dụng .NET lên server.
  • D. Tạo môi trường phát triển ảo cho dự án .NET.

Câu 24: Cho đoạn code C#: `int[] numbers = { 1, 2, 3 };`. Biểu thức `numbers[3] = 4;` sẽ gây ra điều gì khi thực thi?

  • A. Mảng `numbers` sẽ tự động mở rộng kích thước và gán giá trị 4 vào vị trí thứ 4.
  • B. Lỗi `IndexOutOfRangeException` sẽ được ném ra vì chỉ số 3 vượt quá giới hạn của mảng (0-2).
  • C. Không có lỗi xảy ra, giá trị 4 sẽ được gán vào một vùng nhớ không xác định.
  • D. Giá trị tại `numbers[3]` sẽ được đặt thành 0.

Câu 25: LINQ to SQL cho phép truy vấn dữ liệu từ cơ sở dữ liệu SQL Server bằng cách nào?

  • A. Sử dụng câu lệnh SQL nhúng trực tiếp trong mã C#.
  • B. Sử dụng stored procedures trong SQL Server.
  • C. Sử dụng cú pháp LINQ (C# hoặc VB.NET) để viết truy vấn, sau đó LINQ to SQL sẽ dịch các truy vấn này thành câu lệnh SQL và thực thi trên SQL Server.
  • D. Truy cập trực tiếp các file dữ liệu của SQL Server.

Câu 26: Sự khác biệt giữa `async void` và `async Task` khi khai báo phương thức bất đồng bộ trong C# là gì?

  • A. `async void` hiệu suất cao hơn `async Task`.
  • B. `async Task` chỉ được sử dụng cho các phương thức trả về giá trị, còn `async void` cho phương thức không trả về giá trị.
  • C. Không có sự khác biệt, `async void` và `async Task` có thể thay thế cho nhau.
  • D. `async Task` cho phép phương thức bất đồng bộ trả về một giá trị và dễ dàng kiểm soát luồng thực thi, xử lý ngoại lệ và chờ đợi kết quả, trong khi `async void` thường chỉ dùng cho các event handler và khó kiểm soát lỗi.

Câu 27: Trong ASP.NET Core, Razor Pages là gì?

  • A. Một công cụ để tạo giao diện người dùng đồ họa (GUI) cho ứng dụng desktop.
  • B. Một mô hình lập trình hướng trang (page-centric) để xây dựng ứng dụng web trong ASP.NET Core, đơn giản hóa việc phát triển UI và xử lý request trong cùng một file Razor.
  • C. Một ORM (Object-Relational Mapper) cho ASP.NET Core.
  • D. Một framework JavaScript tích hợp sẵn trong ASP.NET Core.

Câu 28: Đâu là cách sử dụng interface trong C#?

  • A. Để tạo ra các lớp trừu tượng.
  • B. Để triển khai đa kế thừa.
  • C. Để định nghĩa một hợp đồng (contract) mà các lớp khác có thể triển khai, đảm bảo tính đa hình và khả năng thay thế.
  • D. Để tăng hiệu suất của ứng dụng.

Câu 29: Cho đoạn code C#: `string name = null; int length = name.Length;`. Điều gì xảy ra khi dòng code `int length = name.Length;` được thực thi?

  • A. Lỗi `NullReferenceException` sẽ được ném ra vì bạn đang cố gắng truy cập thuộc tính `Length` của một đối tượng null.
  • B. Biến `length` sẽ nhận giá trị 0.
  • C. Biến `length` sẽ nhận giá trị null.
  • D. Không có lỗi xảy ra, chương trình vẫn chạy bình thường.

Câu 30: Trong .NET, thuật ngữ

  • A. Mã được viết bằng ngôn ngữ C++.
  • B. Mã được biên dịch sang Intermediate Language (IL) và được thực thi bởi Common Language Runtime (CLR), chịu sự quản lý của CLR về bộ nhớ, an ninh và các tài nguyên khác.
  • C. Mã được biên dịch trực tiếp thành mã máy (native code).
  • D. Mã JavaScript chạy trên trình duyệt web.

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 2: Cho đoạn mã C# sau: `int x = 10; object y = x; int z = (int)y;`. Điều gì xảy ra khi dòng mã `int z = (int)y;` được thực thi?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

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

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 4: Đâu là sự khác biệt chính giữa `IEnumerable` và `IQueryable` trong .NET?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 5: Trong lập trình bất đồng bộ (asynchronous programming) với `async` và `await` trong C#, từ khóa `await` có tác dụng gì?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

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

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 7: Trong ASP.NET Core, Middleware pipeline được sử dụng để làm gì?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 8: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. Biến `evenNumbers` sẽ chứa gì sau khi đoạn code này thực thi?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 9: Trong Entity Framework Core (EF Core), DbSet được sử dụng để làm gì?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 10: Đâu là cách tốt nhất để xử lý ngoại lệ (exceptions) trong .NET?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 11: Trong mô hình lập trình hướng đối tượng của C#, tính đóng gói (encapsulation) mang lại lợi ích gì?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 12: Delegates và Events là hai khái niệm quan trọng trong C#. Sự khác biệt chính giữa chúng là gì?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 13: Cho đoạn mã C# sau: `string str1 = "hello"; string str2 = "world";`. Biểu thức `str1 + str2` sẽ tạo ra một đối tượng string mới hay sửa đổi đối tượng `str1`?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

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

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 15: Refactoring code là một hoạt động quan trọng trong phát triển phần mềm. Mục đích chính của refactoring là gì?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 16: Garbage Collection (GC) là một tính năng tự động quản lý bộ nhớ trong .NET. GC hoạt động như thế nào?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 17: Đâu là cách khai báo biến hằng số (constant) trong C#?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 18: Sự khác biệt chính giữa `struct` và `class` trong C# là gì?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 19: Cho đoạn code C#: `int? nullableInt = null;`. Ý nghĩa của dấu `?` sau kiểu `int` là gì?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 20: Trong ASP.NET Core MVC, Controller đóng vai trò gì?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 21: Serialization và Deserialization là gì trong .NET?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 22: Unit testing là một phần quan trọng của quy trình phát triển phần mềm. Mục đích chính của unit testing là gì?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

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

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 24: Cho đoạn code C#: `int[] numbers = { 1, 2, 3 };`. Biểu thức `numbers[3] = 4;` sẽ gây ra điều gì khi thực thi?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 25: LINQ to SQL cho phép truy vấn dữ liệu từ cơ sở dữ liệu SQL Server bằng cách nào?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 26: Sự khác biệt giữa `async void` và `async Task` khi khai báo phương thức bất đồng bộ trong C# là gì?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 27: Trong ASP.NET Core, Razor Pages là gì?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 28: Đâu là cách sử dụng interface trong C#?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 29: Cho đoạn code C#: `string name = null; int length = name.Length;`. Điều gì xảy ra khi dòng code `int length = name.Length;` được thực thi?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 10

Câu 30: Trong .NET, thuật ngữ "Managed Code" dùng để chỉ loại mã nào?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 11

Trắc nghiệm Lập trình .NET - Đề 11 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!

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. Biên dịch mã IL (Intermediate Language) sang mã máy (Just-In-Time Compilation - JIT)
  • C. Quản lý vòng đời (lifecycle) của ứng dụng web ASP.NET
  • D. Cung cấp các dịch vụ an ninh và quản lý kiểu dữ liệu

Câu 2: Xét đoạn mã C# sau: `int x = 5; string y =

  • A. `x + y`
  • B. `x * x`
  • C. `x + 3`
  • D. `string z = y;`

Câu 3: Đâu là phát biểu đúng về sự khác biệt giữa kiểu dữ liệu `struct` và `class` trong C#?

  • A. `struct` là kiểu tham chiếu, còn `class` là kiểu giá trị.
  • B. `struct` không hỗ trợ kế thừa, còn `class` hỗ trợ kế thừa.
  • C. Biến kiểu `struct` được cấp phát bộ nhớ trên heap, còn biến kiểu `class` trên stack.
  • D. `struct` có thể chứa các phương thức ảo (virtual methods), còn `class` thì không.

Câu 4: Trong lập trình hướng đối tượng với C#, tính đóng gói (encapsulation) thể hiện rõ nhất qua cơ chế nào?

  • A. Tính đa hình (Polymorphism)
  • B. Tính kế thừa (Inheritance)
  • C. Tính trừu tượng (Abstraction)
  • D. Sử dụng các mức độ truy cập (Access Modifiers) cho các thành viên lớp

Câu 5: Cho đoạn code C# sau: `List numbers = new List() { 1, 2, 3, 4, 5 }; numbers.RemoveAt(2);`. Sau khi thực thi, danh sách `numbers` sẽ chứa các phần tử nào?

  • A. `{ 1, 2, 3, 4, 5 }`
  • B. `{ 2, 3, 4, 5 }`
  • C. `{ 1, 2, 4, 5 }`
  • D. `{ 1, 2, 3, 4 }`

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

  • A. Thay thế các phương thức hiện có của 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 lớp đó.
  • C. Tạo ra một bản sao của lớp với các phương thức mới.
  • D. Giới hạn khả năng kế thừa của một lớp.

Câu 7: Trong ASP.NET Core, middleware pipeline được sử dụng để xử lý request. Middleware nào sau đây thường được sử dụng ĐẦU TIÊN trong pipeline để ghi log thông tin về mỗi HTTP request?

  • A. Logging Middleware
  • B. Authentication Middleware
  • C. Routing Middleware
  • D. Exception Handling Middleware

Câu 8: Kiểu dữ liệu `dynamic` trong C# khác biệt so với kiểu `object` như thế nào?

  • A. `dynamic` là kiểu giá trị, `object` là kiểu tham chiếu.
  • B. `dynamic` chỉ dùng cho kiểu số, `object` dùng cho mọi kiểu.
  • C. Kiểm tra kiểu của `dynamic` diễn ra ở runtime, còn `object` ở compile-time.
  • D. `dynamic` hỗ trợ boxing/unboxing, `object` thì không.

Câu 9: Cho biết kết quả của đoạn mã C# sau: `int? nullableInt = null; int regularInt = nullableInt ?? 0; Console.WriteLine(regularInt);`

  • A. NullReferenceException
  • B. 0
  • C. Giá trị rỗng (empty string)
  • D. Không xác định

Câu 10: Trong Entity Framework Core, DbSet đại diện cho điều gì?

  • A. Một kết nối đến database.
  • B. Một migration trong database.
  • C. Một bảng (table) trong database và cho phép truy vấn các bản ghi kiểu T.
  • D. Một stored procedure trong database.

Câu 11: Tính năng LINQ (Language Integrated Query) trong .NET Framework chủ yếu giúp giải quyết vấn đề gì?

  • A. Tăng tốc độ biên dịch mã nguồn.
  • B. Quản lý bộ nhớ hiệu quả hơn.
  • C. Tạo giao diện người dùng đồ họa (GUI) dễ dàng hơn.
  • D. Truy vấn dữ liệu từ nhiều nguồn khác nhau một cách thống nhất và dễ dàng.

Câu 12: Trong mô hình MVC (Model-View-Controller) của ASP.NET MVC, Controller chịu trách nhiệm chính cho việc gì?

  • A. Hiển thị dữ liệu người dùng trên giao diện web.
  • B. Xử lý logic ứng dụng và điều phối tương tác giữa Model và View.
  • C. Định nghĩa cấu trúc dữ liệu và tương tác với database.
  • D. Quản lý phiên làm việc (session) của người dùng.

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

  • A. Delegate trả về một giá trị kiểu `string` và không có tham số.
  • B. Delegate trả về một giá trị kiểu `string` và nhận một tham số kiểu `string`.
  • C. Delegate trả về `void` và nhận một tham số kiểu `string`.
  • D. Delegate trả về `void` và không có tham số.

Câu 14: Để triển khai Dependency Injection (DI) trong ASP.NET Core, bạn thường sử dụng cơ chế nào?

  • A. Built-in Service Container (IServiceCollection và IServiceProvider)
  • B. AppDomain
  • C. Garbage Collector
  • D. Global Assembly Cache (GAC)

Câu 15: Đâu là lợi ích chính của việc sử dụng async và await trong lập trình C#?

  • A. Tăng tốc độ thực thi mã tuần tự (synchronous code).
  • B. Giảm mức sử dụng bộ nhớ của ứng dụng.
  • C. Cải thiện khả năng phản hồi (responsiveness) và hiệu suất của ứng dụng bằng cách lập trình bất đồng bộ.
  • D. Đơn giản hóa việc quản lý đa luồng (multi-threading).

Câu 16: Cho đoạn code C#: `string str1 =

  • A. `true`
  • B. `false`
  • C. Lỗi biên dịch
  • D. Null

Câu 17: Trong C#, từ khóa `sealed` được sử dụng để làm gì khi khai báo một lớp?

  • A. Cho phép lớp được kế thừa từ nhiều lớp khác.
  • B. Bảo vệ lớp khỏi bị thay đổi bởi các lớp dẫn xuất.
  • C. Đảm bảo lớp chỉ có thể được khởi tạo một lần duy nhất (singleton).
  • D. Ngăn chặn việc kế thừa từ lớp đó.

Câu 18: Đâu là cách tốt nhất để giải phóng tài nguyên không được quản lý (unmanaged resources) trong C#?

  • A. Chờ Garbage Collector tự động thu hồi.
  • B. Gọi phương thức `Finalize()` của đối tượng.
  • C. Sử dụng interface `IDisposable` và khối `using`.
  • D. Đặt biến tham chiếu đối tượng về `null`.

Câu 19: Cho biết mục đích sử dụng của thuộc tính (attribute) trong C#.

  • A. Tăng hiệu suất thực thi của chương trình.
  • B. Cung cấp metadata (siêu dữ liệu) cho các thành phần code.
  • C. Kiểm soát quyền truy cập vào các thành viên lớp.
  • D. Định nghĩa quan hệ kế thừa giữa các lớp.

Câu 20: Trong mô hình lập trình hướng sự kiện (event-driven programming), event (sự kiện) đóng vai trò gì?

  • A. Đại diện cho một trạng thái cụ thể của đối tượng.
  • B. Thực hiện một hành động cụ thể khi được gọi trực tiếp.
  • C. Lưu trữ dữ liệu liên quan đến đối tượng.
  • D. Thông báo cho các đối tượng khác về một điều gì đó đã xảy ra.

Câu 21: Trong C#, `var` keyword được sử dụng để khai báo biến. Vậy kiểu dữ liệu của biến `var` được xác định khi nào?

  • A. Tại thời điểm biên dịch (compile-time) dựa trên biểu thức khởi tạo.
  • B. Tại thời điểm chạy chương trình (runtime) khi biến được gán giá trị.
  • C. Kiểu dữ liệu là `dynamic` và được kiểm tra tại runtime.
  • D. Kiểu dữ liệu mặc định là `object`.

Câu 22: Cho đoạn code C# sau: `int[] numbers = { 1, 2, 3 }; foreach (int num in numbers) { num = num * 2; }`. Sau khi vòng lặp kết thúc, mảng `numbers` sẽ chứa giá trị nào?

  • A. `{ 2, 4, 6 }`
  • B. `{ 1, 2, 3, 2, 4, 6 }`
  • C. `{ 1, 2, 3 }`
  • D. `{ 0, 0, 0 }`

Câu 23: Trong ASP.NET Core Web API, HTTP status code nào thường được trả về khi một request POST tạo thành công một resource mới?

  • A. 200 OK
  • B. 400 Bad Request
  • C. 404 Not Found
  • D. 201 Created

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

  • A. Interface hỗ trợ đa kế thừa, abstract class thì không.
  • B. Interface chỉ chứa khai báo thành viên, abstract class có thể chứa cả khai báo và implementation.
  • C. Abstract class nhanh hơn interface về hiệu năng.
  • D. Interface có thể có constructors, abstract class thì không.

Câu 25: Cho code C#: `Func square = x => x * x; int result = square(5);`. `Func` trong C# đại diện cho kiểu delegate nào?

  • A. Delegate trả về một giá trị và có tham số đầu vào.
  • B. Delegate trả về `void` và có tham số đầu vào.
  • C. Delegate trả về một giá trị và không có tham số đầu vào.
  • D. Delegate trả về `void` và không có tham số đầu vào.

Câu 26: Trong .NET, Assembly (hợp ngữ) là gì?

  • A. Một namespace trong .NET Framework.
  • B. Một file cấu hình của ứng dụng .NET.
  • C. Đơn vị triển khai, quản lý phiên bản và tái sử dụng code trong .NET.
  • D. Một tiến trình (process) đang chạy của ứng dụng .NET.

Câu 27: Cho đoạn code C#: `string message = null; try { throw new ArgumentNullException(nameof(message)); } catch (ArgumentNullException ex) { message =

  • A. `null`
  • B. `Exception caught!`
  • C. `Finally block`
  • D. `Exception caught! Finally block`

Câu 28: Trong ASP.NET Core, Dependency Injection container có phạm vi (scope) mặc định cho các service được đăng ký như thế nào?

  • A. Singleton (một instance duy nhất cho toàn bộ ứng dụng)
  • B. Scoped (một instance cho mỗi HTTP request)
  • C. Transient (một instance mới mỗi khi được resolve)
  • D. Per-thread (một instance cho mỗi thread)

Câu 29: Cho biết công dụng chính của Garbage Collector (GC) trong .NET CLR.

  • A. Biên dịch mã IL sang mã máy.
  • B. Quản lý vòng đời của ứng dụng.
  • C. Tự động thu hồi bộ nhớ không còn được sử dụng bởi ứng dụng.
  • D. Xác thực và ủy quyền người dùng.

Câu 30: Trong C#, từ khóa `partial` khi định nghĩa class cho phép làm gì?

  • A. Chia định nghĩa một class ra thành nhiều file mã nguồn.
  • B. Ngăn chặn việc kế thừa từ class đó.
  • C. Tạo ra một class abstract.
  • D. Định nghĩa một class static.

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

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: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 2: Xét đoạn mã C# sau: `int x = 5; string y = "10";`. Biểu thức nào sau đây sẽ gây ra lỗi biên dịch?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 3: Đâu là phát biểu đúng về sự khác biệt giữa kiểu dữ liệu `struct` và `class` trong C#?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 4: Trong lập trình hướng đối tượng với C#, tính đóng gói (encapsulation) thể hiện rõ nhất qua cơ chế nào?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 5: Cho đoạn code C# sau: `List numbers = new List() { 1, 2, 3, 4, 5 }; numbers.RemoveAt(2);`. Sau khi thực thi, danh sách `numbers` sẽ chứa các phần tử nào?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

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

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 7: Trong ASP.NET Core, middleware pipeline được sử dụng để xử lý request. Middleware nào sau đây thường được sử dụng ĐẦU TIÊN trong pipeline để ghi log thông tin về mỗi HTTP request?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 8: Kiểu dữ liệu `dynamic` trong C# khác biệt so với kiểu `object` như thế nào?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 9: Cho biết kết quả của đoạn mã C# sau: `int? nullableInt = null; int regularInt = nullableInt ?? 0; Console.WriteLine(regularInt);`

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 10: Trong Entity Framework Core, DbSet đại diện cho điều gì?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 11: Tính năng LINQ (Language Integrated Query) trong .NET Framework chủ yếu giúp giải quyết vấn đề gì?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 12: Trong mô hình MVC (Model-View-Controller) của ASP.NET MVC, Controller chịu trách nhiệm chính cho việc gì?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 13: Cho đoạn code C#: `Action greet = name => { Console.WriteLine("Hello, " + name); }; greet("World");`. `Action` trong C# đại diện cho kiểu delegate nào?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 14: Để triển khai Dependency Injection (DI) trong ASP.NET Core, bạn thường sử dụng cơ chế nào?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 15: Đâu là lợi ích chính của việc sử dụng async và await trong lập trình C#?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 16: Cho đoạn code C#: `string str1 = "hello"; string str2 = "HELLO"; bool result = (str1 == str2);`. Giá trị của `result` sẽ là gì?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 17: Trong C#, từ khóa `sealed` được sử dụng để làm gì khi khai báo một lớp?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 18: Đâu là cách tốt nhất để giải phóng tài nguyên không được quản lý (unmanaged resources) trong C#?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 19: Cho biết mục đích sử dụng của thuộc tính (attribute) trong C#.

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 20: Trong mô hình lập trình hướng sự kiện (event-driven programming), event (sự kiện) đóng vai trò gì?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 21: Trong C#, `var` keyword được sử dụng để khai báo biến. Vậy kiểu dữ liệu của biến `var` được xác định khi nào?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 22: Cho đoạn code C# sau: `int[] numbers = { 1, 2, 3 }; foreach (int num in numbers) { num = num * 2; }`. Sau khi vòng lặp kết thúc, mảng `numbers` sẽ chứa giá trị nào?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 23: Trong ASP.NET Core Web API, HTTP status code nào thường được trả về khi một request POST tạo thành công một resource mới?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

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

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 25: Cho code C#: `Func square = x => x * x; int result = square(5);`. `Func` trong C# đại diện cho kiểu delegate nào?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 26: Trong .NET, Assembly (hợp ngữ) là gì?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 27: Cho đoạn code C#: `string message = null; try { throw new ArgumentNullException(nameof(message)); } catch (ArgumentNullException ex) { message = "Exception caught!"; } finally { message += " Finally block"; } Console.WriteLine(message);`. Kết quả in ra màn hình là gì?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 28: Trong ASP.NET Core, Dependency Injection container có phạm vi (scope) mặc định cho các service được đăng ký như thế nào?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 29: Cho biết công dụng chính của Garbage Collector (GC) trong .NET CLR.

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 11

Câu 30: Trong C#, từ khóa `partial` khi định nghĩa class cho phép làm gì?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 12

Trắc nghiệm Lập trình .NET - Đề 12 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!

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ý ngoại lệ
  • C. Biên dịch mã nguồn C# thành mã máy (Machine Code)
  • D. Thực thi mã bytecode (Intermediate Language - IL)

Câu 2: Cho đoạn mã C# sau: `int? nullableInt = null;`. Phát biểu nào sau đây là đúng về `nullableInt`?

  • A. Biến `nullableInt` có thể chứa một giá trị số nguyên hoặc giá trị `null`.
  • B. Biến `nullableInt` là một kiểu dữ liệu động, kiểu của nó được xác định tại thời gian chạy.
  • C. Biến `nullableInt` sẽ tự động được gán giá trị 0 nếu không được khởi tạo.
  • D. Biến `nullableInt` là một kiểu tham chiếu đến một đối tượng số nguyên.

Câu 3: Xét tình huống một ứng dụng ASP.NET Core cần truy cập dữ liệu từ cơ sở dữ liệu. Công nghệ nào của .NET thường được sử dụng để thực hiện việc ánh xạ đối tượng - quan hệ (ORM) và tương tác với database một cách hiệu quả?

  • A. ADO.NET
  • B. Entity Framework Core (EF Core)
  • C. LINQ to SQL
  • D. ASP.NET Web API

Câu 4: Phương thức mở rộng (Extension Method) trong C# cho phép:

  • A. 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 đó.
  • B. Thay thế các phương thức hiện có của một lớp bằng các phương thức mới.
  • C. Tạo ra các lớp con kế thừa từ một lớp cha và ghi đè phương thức.
  • D. Nạp chồng toán tử cho các lớp và struct.

Câu 5: Trong lập trình hướng đối tượng với C#, nguyên tắc "SOLID" nào khuyến khích việc các lớp (class) nên mở cho mở rộng (open for extension) nhưng đóng cho sửa đổi (closed for modification)?

  • A. Single Responsibility Principle (SRP)
  • B. Liskov Substitution Principle (LSP)
  • C. Open/Closed Principle (OCP)
  • D. Interface Segregation Principle (ISP)

Câu 6: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. `evenNumbers` sẽ chứa gì sau khi đoạn code này thực thi?

  • A. Số lượng các số chẵn trong danh sách `numbers`.
  • B. Một tập hợp (collection) chứa các số chẵn từ danh sách `numbers`.
  • C. Tổng của các số chẵn trong danh sách `numbers`.
  • D. Một tập hợp chứa các số lẻ từ danh sách `numbers`.

Câu 7: Trong ASP.NET Core MVC, thành phần nào chịu trách nhiệm xử lý request từ người dùng, tương tác với model để lấy dữ liệu, và chọn view để trả về response?

  • A. Controller
  • B. Model
  • C. View
  • D. Middleware

Câu 8: Dependency Injection (DI) là một mẫu thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

  • A. Tăng hiệu suất ứng dụng bằng cách giảm thiểu việc tạo đối tượng.
  • B. Giảm dung lượng bộ nhớ sử dụng bởi ứng dụng.
  • C. Đơn giản hóa việc triển khai ứng dụng lên môi trường production.
  • D. Tăng tính kiểm thử, bảo trì và khả năng tái sử dụng của mã nguồn.

Câu 9: Cho đoạn mã C# sau: `async Task ProcessDataAsync() { await Task.Delay(1000); return 42; }`. Từ khóa `async` và `await` trong phương thức này được sử dụng để:

  • A. Tăng tốc độ thực thi các phép tính toán phức tạp.
  • B. Thực hiện các tác vụ bất đồng bộ mà không làm treo (block) luồng chính của ứng dụng.
  • C. Quản lý bộ nhớ hiệu quả hơn khi làm việc với dữ liệu lớn.
  • D. Đơn giản hóa quá trình debug và xử lý lỗi trong ứng dụng.

Câu 10: Trong .NET, NuGet là gì và vai trò của nó trong phát triển phần mềm?

  • A. Một công cụ quản lý mã nguồn phiên bản (version control) cho các dự án .NET.
  • B. Trình biên dịch mã C# và các ngôn ngữ .NET khác.
  • C. Trình quản lý gói thư viện, giúp thêm và quản lý các thư viện bên ngoài vào dự án .NET.
  • D. Công cụ để triển khai và phân phối ứng dụng .NET đến người dùng cuối.

Câu 11: Kiểu dữ liệu `dynamic` trong C# có đặc điểm gì khác biệt so với kiểu `var`?

  • A. `var` là kiểu dữ liệu động, còn `dynamic` là kiểu tĩnh.
  • B. Kiểu của `dynamic` được kiểm tra tại thời gian chạy (runtime), còn kiểu của `var` được suy luận tại thời gian biên dịch (compile-time).
  • C. `dynamic` chỉ sử dụng được cho các kiểu dữ liệu nguyên thủy, còn `var` dùng cho kiểu phức tạp.
  • D. `dynamic` không cần phải khai báo kiểu dữ liệu, còn `var` thì bắt buộc.

Câu 12: Trong C#, interface và abstract class có điểm chung và khác biệt nào? Điểm khác biệt chính là:

  • A. Interface có thể chứa các trường (fields), còn abstract class thì không.
  • B. Abstract class hỗ trợ đa kế thừa, còn interface thì không.
  • C. Abstract class có thể chứa implementation cho một số phương thức, còn interface thì không.
  • D. Interface chỉ được sử dụng cho kiểu dữ liệu tham chiếu, còn abstract class cho cả kiểu giá trị và tham chiếu.

Câu 13: Cho đoạn code C# sau: `string message =

  • A. Delegates và Lambda Expressions
  • B. Events và Event Handlers
  • C. Generics và Type Constraints
  • D. Exception Handling và Try-Catch blocks

Câu 14: Trong .NET, thuật ngữ "Garbage Collection" (GC) dùng để chỉ quá trình nào?

  • A. Quá trình biên dịch mã nguồn C# thành mã máy.
  • B. Quá trình tự động giải phóng bộ nhớ không còn được sử dụng bởi ứng dụng .NET.
  • C. Quá trình debug và tìm lỗi trong mã nguồn.
  • D. Quá trình quản lý phiên bản và cập nhật các thư viện .NET.

Câu 15: Cho cấu trúc thư mục dự án ASP.NET Core MVC. File `Startup.cs` có vai trò chính là gì?

  • A. Định nghĩa các Models và DataContext cho ứng dụng.
  • B. Chứa các Controllers và Actions xử lý request từ người dùng.
  • C. Cấu hình các services, middleware và các thiết lập khởi động ứng dụng ASP.NET Core.
  • D. Định nghĩa các Views và Layouts cho giao diện người dùng.

Câu 16: Trong C#, từ khóa `sealed` được sử dụng để:

  • A. Khai báo một lớp hoặc phương thức là tĩnh (static).
  • B. Bảo vệ một lớp hoặc phương thức khỏi bị truy cập từ bên ngoài assembly.
  • C. Đảm bảo một lớp hoặc phương thức chỉ có thể được truy cập trong phạm vi lớp hiện tại.
  • D. Ngăn chặn việc kế thừa từ một lớp hoặc ghi đè một phương thức ảo.

Câu 17: Trong mô hình lập trình hướng sự kiện (Event-Driven Programming), "event" (sự kiện) được hiểu là gì?

  • A. Một hành động hoặc sự kiện xảy ra trong hệ thống mà ứng dụng cần phản ứng.
  • B. Một đối tượng chứa dữ liệu và phương thức để thao tác dữ liệu.
  • C. Một đoạn mã được thực thi tuần tự từ trên xuống dưới.
  • D. Một cơ chế để xử lý lỗi và ngoại lệ trong chương trình.

Câu 18: Cho đoạn code C# sử dụng LINQ: `var result = data.GroupBy(x => x.Category).Select(g => new { CategoryName = g.Key, Count = g.Count() });`. Đoạn code này thực hiện thao tác gì trên tập dữ liệu `data`?

  • A. Lọc ra các phần tử có `Category` trùng lặp trong `data`.
  • B. Sắp xếp các phần tử trong `data` theo `Category`.
  • C. Nhóm các phần tử trong `data` theo `Category` và đếm số lượng phần tử trong mỗi nhóm.
  • D. Tính tổng giá trị của một thuộc tính nào đó trong mỗi `Category`.

Câu 19: Trong ASP.NET Core, Middleware Pipeline là gì và nó hoạt động như thế nào?

  • A. Một thành phần để quản lý dữ liệu và tương tác với cơ sở dữ liệu trong ASP.NET Core.
  • B. Một chuỗi các thành phần (middleware) xử lý request HTTP theo thứ tự, tạo thành một pipeline.
  • C. Một cơ chế để định tuyến request đến các Controller Actions phù hợp.
  • D. Một hệ thống để quản lý phiên làm việc (session) và xác thực người dùng.

Câu 20: Phương thức `Dispose()` trong .NET Framework và .NET Core được sử dụng để làm gì?

  • A. Giải phóng bộ nhớ được quản lý (managed memory) bởi Garbage Collector.
  • B. Khởi tạo các tài nguyên cần thiết cho một đối tượng khi nó được tạo ra.
  • C. Giải phóng các tài nguyên không được quản lý (unmanaged resources) như file handles, network connections.
  • D. Đăng ký đối tượng để Garbage Collector thu gom khi không còn tham chiếu đến.

Câu 21: Trong C#, thuộc tính (property) khác biệt so với trường (field) như thế nào?

  • A. Trường (field) có thể chứa nhiều kiểu dữ liệu khác nhau, còn thuộc tính (property) chỉ chứa một kiểu dữ liệu duy nhất.
  • B. Thuộc tính (property) cung cấp cơ chế kiểm soát truy cập và thay đổi dữ liệu thông qua accessors (get, set), còn trường (field) thì không.
  • C. Trường (field) được sử dụng để định nghĩa hành vi của đối tượng, còn thuộc tính (property) để lưu trữ trạng thái.
  • D. Không có sự khác biệt đáng kể giữa trường (field) và thuộc tính (property), chúng có thể thay thế cho nhau.

Câu 22: Cho đoạn code C# sau: `try { // Code có thể gây ra exception } catch (Exception ex) { // Xử lý exception } finally { // Code luôn được thực thi }`. Khối lệnh `finally` có vai trò gì?

  • A. Chỉ được thực thi khi có exception xảy ra trong khối `try`.
  • B. Chỉ được thực thi khi không có exception xảy ra trong khối `try`.
  • C. Thực hiện xử lý chính cho exception.
  • D. Luôn được thực thi, dùng để đảm bảo các công việc dọn dẹp (cleanup) được thực hiện, bất kể có exception hay không.

Câu 23: Trong .NET, thuật ngữ "Cross-Platform" (đa nền tảng) có nghĩa là gì?

  • A. Ứng dụng có thể chạy trên nhiều hệ điều hành khác nhau (ví dụ: Windows, macOS, Linux) mà không cần sửa đổi mã nguồn.
  • B. Ứng dụng chỉ chạy được trên một hệ điều hành duy nhất nhưng có thể truy cập dữ liệu từ nhiều nguồn khác nhau.
  • C. Ứng dụng được phát triển bởi nhiều nhóm lập trình viên từ các quốc gia khác nhau.
  • D. Ứng dụng có giao diện người dùng hỗ trợ nhiều ngôn ngữ khác nhau.

Câu 24: Cho đoạn code C#: `int[] numbers = { 1, 2, 3 }; foreach (var num in numbers) { Console.WriteLine(num); }`. Vòng lặp `foreach` này sẽ lặp qua các phần tử của mảng `numbers` như thế nào?

  • A. Lặp ngẫu nhiên qua các phần tử của mảng.
  • B. Lặp qua các phần tử của mảng theo thứ tự ngược lại (từ cuối đến đầu).
  • C. Lặp tuần tự qua từng phần tử của mảng từ đầu đến cuối.
  • D. Chỉ lặp qua các phần tử có giá trị chẵn trong mảng.

Câu 25: Trong .NET, Assembly là gì và vai trò của nó trong việc triển khai ứng dụng?

  • A. Một đoạn mã nguồn C# được viết bởi lập trình viên.
  • B. Đơn vị triển khai, tái sử dụng và kiểm soát phiên bản trong .NET, thường là một file DLL hoặc EXE.
  • C. Một công cụ để debug và kiểm tra lỗi trong ứng dụng .NET.
  • D. Một cơ sở dữ liệu chứa thông tin cấu hình của ứng dụng .NET.

Câu 26: Cho đoạn code C#: `Func add = (a, b) => a + b;`. `Func` đại diện cho kiểu delegate nào?

  • A. Delegate không nhận tham số và trả về kiểu `int`.
  • B. Delegate nhận một tham số kiểu `int` và không trả về giá trị.
  • C. Delegate nhận hai tham số kiểu `int` và trả về giá trị kiểu `int`.
  • D. Delegate nhận tham số kiểu `string` và trả về kiểu `int`.

Câu 27: Trong ASP.NET Core Web API, HTTP method nào thường được sử dụng để tạo mới một resource trên server?

  • A. GET
  • B. POST
  • C. PUT
  • D. DELETE

Câu 28: Unit testing là gì và tại sao nó quan trọng trong phát triển phần mềm .NET?

  • A. Kiểm thử toàn bộ hệ thống sau khi tích hợp tất cả các module.
  • B. Kiểm thử giao diện người dùng để đảm bảo trải nghiệm người dùng tốt.
  • C. Kiểm thử hiệu năng của ứng dụng dưới tải lớn.
  • D. Kiểm thử từng đơn vị mã nhỏ nhất (ví dụ: method, function) để đảm bảo chúng hoạt động đúng, giúp phát hiện lỗi sớm và cải thiện chất lượng mã.

Câu 29: Cho đoạn code C#: `List names = new List {

  • A.
  • B.
  • C. null
  • D. Exception sẽ được throw

Câu 30: Trong .NET Core, `appsettings.json` file thường được sử dụng để làm gì?

  • A. Lưu trữ mã nguồn của ứng dụng .NET Core.
  • B. Lưu trữ cấu hình ứng dụng như connection strings, logging levels, và các thiết lập khác.
  • C. Định nghĩa giao diện người dùng (UI) của ứng dụng.
  • D. Quản lý các NuGet packages và dependencies của dự án.

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

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: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 2: Cho đoạn mã C# sau: `int? nullableInt = null;`. Phát biểu nào sau đây là đúng về `nullableInt`?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 3: Xét tình huống một ứng dụng ASP.NET Core cần truy cập dữ liệu từ cơ sở dữ liệu. Công nghệ nào của .NET thường được sử dụng để thực hiện việc ánh xạ đối tượng - quan hệ (ORM) và tương tác với database một cách hiệu quả?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 4: Phương thức mở rộng (Extension Method) trong C# cho phép:

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 5: Trong lập trình hướng đối tượng với C#, nguyên tắc 'SOLID' nào khuyến khích việc các lớp (class) nên mở cho mở rộng (open for extension) nhưng đóng cho sửa đổi (closed for modification)?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 6: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. `evenNumbers` sẽ chứa gì sau khi đoạn code này thực thi?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 7: Trong ASP.NET Core MVC, thành phần nào chịu trách nhiệm xử lý request từ người dùng, tương tác với model để lấy dữ liệu, và chọn view để trả về response?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 8: Dependency Injection (DI) là một mẫu thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 9: Cho đoạn mã C# sau: `async Task ProcessDataAsync() { await Task.Delay(1000); return 42; }`. Từ khóa `async` và `await` trong phương thức này được sử dụng để:

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 10: Trong .NET, NuGet là gì và vai trò của nó trong phát triển phần mềm?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 11: Kiểu dữ liệu `dynamic` trong C# có đặc điểm gì khác biệt so với kiểu `var`?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 12: Trong C#, interface và abstract class có điểm chung và khác biệt nào? Điểm khác biệt chính là:

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 13: Cho đoạn code C# sau: `string message =

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 14: Trong .NET, thuật ngữ 'Garbage Collection' (GC) dùng để chỉ quá trình nào?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 15: Cho cấu trúc thư mục dự án ASP.NET Core MVC. File `Startup.cs` có vai trò chính là gì?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 16: Trong C#, từ khóa `sealed` được sử dụng để:

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 17: Trong mô hình lập trình hướng sự kiện (Event-Driven Programming), 'event' (sự kiện) được hiểu là gì?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 18: Cho đoạn code C# sử dụng LINQ: `var result = data.GroupBy(x => x.Category).Select(g => new { CategoryName = g.Key, Count = g.Count() });`. Đoạn code này thực hiện thao tác gì trên tập dữ liệu `data`?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 19: Trong ASP.NET Core, Middleware Pipeline là gì và nó hoạt động như thế nào?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 20: Phương thức `Dispose()` trong .NET Framework và .NET Core được sử dụng để làm gì?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 21: Trong C#, thuộc tính (property) khác biệt so với trường (field) như thế nào?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 22: Cho đoạn code C# sau: `try { // Code có thể gây ra exception } catch (Exception ex) { // Xử lý exception } finally { // Code luôn được thực thi }`. Khối lệnh `finally` có vai trò gì?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 23: Trong .NET, thuật ngữ 'Cross-Platform' (đa nền tảng) có nghĩa là gì?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 24: Cho đoạn code C#: `int[] numbers = { 1, 2, 3 }; foreach (var num in numbers) { Console.WriteLine(num); }`. Vòng lặp `foreach` này sẽ lặp qua các phần tử của mảng `numbers` như thế nào?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 25: Trong .NET, Assembly là gì và vai trò của nó trong việc triển khai ứng dụng?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 26: Cho đoạn code C#: `Func add = (a, b) => a + b;`. `Func` đại diện cho kiểu delegate nào?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 27: Trong ASP.NET Core Web API, HTTP method nào thường được sử dụng để tạo mới một resource trên server?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 28: Unit testing là gì và tại sao nó quan trọng trong phát triển phần mềm .NET?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 29: Cho đoạn code C#: `List names = new List {

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 12

Câu 30: Trong .NET Core, `appsettings.json` file thường được sử dụng để làm gì?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 13

Trắc nghiệm Lập trình .NET - Đề 13 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!

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. Biên dịch mã nguồn C# thành mã máy (machine code) trước khi thực thi.
  • B. Quản lý việc thực thi mã .NET, bao gồm cả quản lý bộ nhớ và thu gom rác.
  • C. Cung cấp các dịch vụ gỡ lỗi và giám sát hiệu suất cho các ứng dụng .NET.
  • D. Đảm bảo tính an toàn kiểu và quản lý các ngoại lệ trong quá trình thực thi.

Câu 2: Xét đoạn mã C# sau: `int x = 10; object y = x; x = 20;`. Hỏi giá trị của `y` sau khi đoạn mã này được thực thi là bao nhiêu?

  • A. 20
  • B. 10
  • C. 0
  • D. Đoạn mã gây ra lỗi biên dịch.

Câu 3: Trong lập trình hướng đối tượng với C#, "tính đóng gói" (encapsulation) mang lại lợi ích chính nào sau đây?

  • A. Tăng hiệu suất thực thi chương trình bằng cách giảm thiểu truy cập bộ nhớ.
  • B. Cho phép tái sử dụng code một cách hiệu quả thông qua cơ chế kế thừa.
  • C. Giảm sự phụ thuộc lẫn nhau giữa các thành phần phần mềm và tăng tính bảo trì.
  • D. Đơn giản hóa việc tạo và quản lý các đối tượng trong chương trình.

Câu 4: Phương thức mở rộng (extension method) trong C# cho phép bạn 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. Tạo ra một lớp con (derived class) từ một lớp đã cho.
  • C. Truy cập các thành viên private của một lớp từ bên ngoài lớp đó.
  • D. 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âu 5: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. `evenNumbers` sẽ chứa bao nhiêu phần tử sau khi đoạn code này chạy?

  • A. 5
  • B. 2
  • C. 3
  • D. 0

Câu 6: Trong C#, từ khóa `async` và `await` được sử dụng để làm gì?

  • A. Thực hiện các hoạt động bất đồng bộ một cách dễ dàng và hiệu quả.
  • B. Tăng tốc độ thực thi của các vòng lặp `for` và `foreach`.
  • C. Đảm bảo rằng một đoạn mã chỉ được thực thi bởi một thread duy nhất tại một thời điểm.
  • D. Quản lý bộ nhớ và thu gom rác một cách tự động.

Câu 7: Kiểu dữ liệu `Nullable` trong C# giải quyết vấn đề gì?

  • A. Cho phép các biến kiểu tham chiếu (reference type) nhận giá trị mặc định.
  • B. Tăng hiệu suất khi làm việc với các kiểu dữ liệu số.
  • C. Cho phép các biến kiểu giá trị (value type) có thể nhận giá trị null.
  • D. Giúp kiểm tra kiểu dữ liệu tại thời gian biên dịch chặt chẽ hơn.

Câu 8: Interface trong C# khác biệt cơ bản so với abstract class ở điểm nào?

  • A. Abstract class có thể chứa các phương thức static, còn interface thì không.
  • B. Một lớp có thể implement nhiều interface, nhưng chỉ có thể kế thừa từ một abstract class.
  • C. Interface hỗ trợ đa kế thừa, còn abstract class thì không.
  • D. Abstract class định nghĩa hành vi, còn interface định nghĩa cấu trúc dữ liệu.

Câu 9: Trong ASP.NET Core, Middleware pipeline chịu trách nhiệm chính cho việc gì?

  • A. Quản lý kết nối cơ sở dữ liệu và thực hiện các truy vấn.
  • B. Xử lý logic nghiệp vụ của ứng dụng và trả về dữ liệu cho client.
  • C. Hiển thị giao diện người dùng (UI) và tương tác với người dùng.
  • D. Xử lý các HTTP request và response, thực hiện các tác vụ trung gian trước khi request được xử lý bởi ứng dụng.

Câu 10: Dependency Injection (DI) container trong .NET (ví dụ: ASP.NET Core DI container) giúp ích gì cho việc phát triển ứng dụng?

  • A. Quản lý và cung cấp các dependencies (sự phụ thuộc) cho các lớp, giúp giảm sự phụ thuộc và tăng tính module hóa.
  • B. Tự động tạo ra code boilerplate (mã lặp đi lặp lại) để giảm thời gian phát triển.
  • C. Tối ưu hóa hiệu suất ứng dụng bằng cách giảm thiểu việc tạo và hủy đối tượng.
  • D. Đảm bảo tính an toàn và bảo mật cho ứng dụng bằng cách kiểm soát quyền truy cập.

Câu 11: Trong Entity Framework Core (EF Core), "migrations" được sử dụng để làm gì?

  • A. Tối ưu hóa hiệu suất truy vấn dữ liệu từ cơ sở dữ liệu.
  • B. Tạo ra các stored procedure và functions trong cơ sở dữ liệu.
  • C. Quản lý và áp dụng các thay đổi schema (cấu trúc) của cơ sở dữ liệu theo thời gian.
  • D. Tạo ra các class entity tự động từ cơ sở dữ liệu đã tồn tại.

Câu 12: Cho đoạn code C#: `string str1 =

  • A. Cùng vùng nhớ với `str1` sau khi nội dung được cập nhật.
  • B. Cùng vùng nhớ với `str2` sau khi nội dung được cập nhật.
  • C. Một vùng nhớ được chia sẻ giữa `str1` và `str2`.
  • D. Một vùng nhớ hoàn toàn mới chứa chuỗi

Câu 13: `Garbage Collection` (GC) trong .NET Framework hoạt động như thế nào?

  • A. GC là một cơ chế để quản lý kết nối đến cơ sở dữ liệu.
  • B. GC là một tiến trình tự động thu hồi bộ nhớ không còn được sử dụng bởi ứng dụng.
  • C. GC là một phần của trình biên dịch C# để tối ưu hóa mã nguồn.
  • D. GC là một kỹ thuật để quản lý các phiên bản của thư viện .NET.

Câu 14: Delegate trong C# được sử dụng để làm gì?

  • A. Đại diện cho tham chiếu đến một phương thức, cho phép truyền phương thức như tham số.
  • B. Định nghĩa cấu trúc dữ liệu phức tạp, tương tự như struct hoặc class.
  • C. Quản lý vòng đời của các đối tượng trong ứng dụng.
  • D. Thực hiện đa luồng và xử lý song song các tác vụ.

Câu 15: Thuộc tính (property) trong C# khác với trường (field) như thế nào?

  • A. Trường (field) có thể chứa logic phức tạp, còn thuộc tính (property) thì không.
  • B. Thuộc tính (property) chỉ được sử dụng trong interface, còn trường (field) thì chỉ trong class.
  • C. Thuộc tính (property) cung cấp cơ chế kiểm soát truy cập và sửa đổi dữ liệu, còn trường (field) thì truy cập trực tiếp.
  • D. Trường (field) là thành viên tĩnh (static), còn thuộc tính (property) là thành viên instance.

Câu 16: Cho đoạn code C#: `int? nullableInt = null; int regularInt = nullableInt;`. Điều gì sẽ xảy ra khi chạy đoạn code này?

  • A. `regularInt` sẽ nhận giá trị 0.
  • B. Một exception `InvalidOperationException` sẽ được throw tại runtime.
  • C. `regularInt` sẽ nhận giá trị null.
  • D. Đoạn code biên dịch lỗi.

Câu 17: Attribute trong C# được dùng để làm gì?

  • A. Tăng hiệu suất thực thi của chương trình.
  • B. Kiểm soát quyền truy cập vào các thành viên của lớp.
  • C. Định nghĩa cấu trúc dữ liệu tùy chỉnh.
  • D. Cung cấp metadata (siêu dữ liệu) cho code, có thể được sử dụng bởi runtime hoặc các công cụ khác.

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

  • A. Kiểu giá trị (value type) và kiểu tham chiếu (reference type).
  • B. Kiểu dữ liệu nguyên thủy (primitive type) và kiểu dữ liệu phức tạp (complex type).
  • C. Kiểu dữ liệu tĩnh (static type) và kiểu dữ liệu động (dynamic type).
  • D. Kiểu dữ liệu generic và kiểu dữ liệu non-generic.

Câu 19: `yield return` trong C# được sử dụng trong ngữ cảnh nào và có tác dụng gì?

  • A. Để kết thúc một vòng lặp `for` hoặc `foreach` ngay lập tức.
  • B. Để tạo ra một iterator method, trả về một chuỗi các giá trị một cách "lười biếng" (lazy).
  • C. Để xử lý ngoại lệ trong khối `try-catch`.
  • D. Để khai báo một biến cục bộ có tuổi thọ kéo dài qua nhiều lần gọi phương thức.

Câu 20: So sánh `StringBuilder` và `string` trong C# về hiệu suất khi thực hiện nhiều phép nối chuỗi. Lựa chọn nào đúng?

  • A. `string` hiệu quả hơn vì nó là kiểu dữ liệu cơ bản của C#.
  • B. Cả `string` và `StringBuilder` có hiệu suất tương đương trong mọi trường hợp.
  • C. `StringBuilder` hiệu quả hơn đáng kể khi thực hiện nhiều phép nối chuỗi vì nó có thể thay đổi chuỗi trực tiếp.
  • D. Hiệu suất phụ thuộc vào độ dài của chuỗi, không phụ thuộc vào việc dùng `string` hay `StringBuilder`.

Câu 21: `nameof` operator trong C# có chức năng gì?

  • A. Kiểm tra xem một biến có phải là null hay không.
  • B. Lấy tên của một biến, kiểu, hoặc thành viên như một chuỗi.
  • C. Chuyển đổi một chuỗi thành tên biến hợp lệ.
  • D. So sánh tên của hai biến xem chúng có giống nhau không.

Câu 22: Phương thức `Dispose()` trong interface `IDisposable` được sử dụng để làm gì?

  • A. Thu hồi bộ nhớ đã cấp phát cho đối tượng.
  • B. Khởi tạo các giá trị mặc định cho các thuộc tính của đối tượng.
  • C. Giải phóng các tài nguyên không được quản lý (unmanaged resources) mà đối tượng đang nắm giữ.
  • D. Đăng ký đối tượng với Garbage Collector để quản lý bộ nhớ.

Câu 23: Trong C#, từ khóa `sealed` được sử dụng để làm gì khi áp dụng cho một lớp?

  • A. Đảm bảo rằng lớp chỉ có thể được khởi tạo một lần duy nhất (singleton pattern).
  • B. Ngăn không cho lớp bị thay đổi sau khi biên dịch.
  • C. Làm cho tất cả các thành viên của lớp trở thành `private`.
  • D. Ngăn không cho bất kỳ lớp nào khác kế thừa từ lớp này.

Câu 24: Extension method phải được khai báo trong loại lớp nào?

  • A. Trong một interface.
  • B. Trong một lớp `static`.
  • C. Trong một abstract class.
  • D. Trong bất kỳ lớp nào.

Câu 25: Cho đoạn code C#: `List names = new List() {

  • A. `{
  • B. `{
  • C. `{
  • D. `{

Câu 26: Regex (Regular Expression) trong .NET được sử dụng chủ yếu cho mục đích gì?

  • A. Tìm kiếm, so khớp và thao tác với các mẫu chuỗi văn bản.
  • B. Mã hóa và giải mã dữ liệu.
  • C. Quản lý bộ nhớ và thu gom rác.
  • D. Tạo giao diện người dùng đồ họa.

Câu 27: `dynamic` keyword trong C# mang lại lợi ích chính nào?

  • A. Tăng hiệu suất thực thi chương trình bằng cách bỏ qua kiểm tra kiểu.
  • B. Đảm bảo tính an toàn kiểu mạnh mẽ hơn tại thời điểm biên dịch.
  • C. Cho phép khai báo các biến mà không cần chỉ định kiểu dữ liệu.
  • D. Cho phép bỏ qua kiểm tra kiểu tại thời điểm biên dịch và thực hiện kiểm tra kiểu tại runtime.

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

  • A. Tạo ra các giao diện người dùng web (web user interfaces).
  • B. Gửi HTTP requests và nhận HTTP responses từ web servers.
  • C. Quản lý phiên làm việc (session) trong ứng dụng web.
  • D. Kết nối và truy vấn cơ sở dữ liệu từ xa.

Câu 29: LINQ Provider có vai trò gì trong LINQ?

  • A. Tối ưu hóa hiệu suất truy vấn LINQ.
  • B. Kiểm tra tính hợp lệ của cú pháp truy vấn LINQ.
  • C. Chuyển đổi các truy vấn LINQ thành ngôn ngữ truy vấn cụ thể cho từng nguồn dữ liệu (ví dụ: SQL, XML query).
  • D. Cung cấp các phương thức mở rộng (extension methods) cho LINQ.

Câu 30: Cho đoạn code C#: `int[] numbers = { 1, 2, 3, 4, 5 }; var result = numbers.Select(x => x * 2).ToList();`. `result` sẽ chứa các giá trị nào?

  • A. `{ 1, 2, 3, 4, 5 }` (không thay đổi).
  • B. `{ 2, 4, 6 }` (chỉ nhân đôi số chẵn).
  • C. `{ 10 }` (tổng các số nhân đôi).
  • D. `{ 2, 4, 6, 8, 10 }`.

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

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: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 2: Xét đoạn mã C# sau: `int x = 10; object y = x; x = 20;`. Hỏi giá trị của `y` sau khi đoạn mã này được thực thi là bao nhiêu?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 3: Trong lập trình hướng đối tượng với C#, 'tính đóng gói' (encapsulation) mang lại lợi ích chính nào sau đây?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 4: Phương thức mở rộng (extension method) trong C# cho phép bạn làm gì?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 5: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. `evenNumbers` sẽ chứa bao nhiêu phần tử sau khi đoạn code này chạy?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 6: Trong C#, từ khóa `async` và `await` được sử dụng để làm gì?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 7: Kiểu dữ liệu `Nullable` trong C# giải quyết vấn đề gì?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 8: Interface trong C# khác biệt cơ bản so với abstract class ở điểm nào?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 9: Trong ASP.NET Core, Middleware pipeline chịu trách nhiệm chính cho việc gì?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 10: Dependency Injection (DI) container trong .NET (ví dụ: ASP.NET Core DI container) giúp ích gì cho việc phát triển ứng dụng?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 11: Trong Entity Framework Core (EF Core), 'migrations' được sử dụng để làm gì?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 12: Cho đoạn code C#: `string str1 = "hello"; string str2 = "world"; string str3 = str1 + str2;`. `str3` sẽ tham chiếu đến vùng nhớ nào?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 13: `Garbage Collection` (GC) trong .NET Framework hoạt động như thế nào?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 14: Delegate trong C# được sử dụng để làm gì?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 15: Thuộc tính (property) trong C# khác với trường (field) như thế nào?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 16: Cho đoạn code C#: `int? nullableInt = null; int regularInt = nullableInt;`. Điều gì sẽ xảy ra khi chạy đoạn code này?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 17: Attribute trong C# được dùng để làm gì?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

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

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 19: `yield return` trong C# được sử dụng trong ngữ cảnh nào và có tác dụng gì?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 20: So sánh `StringBuilder` và `string` trong C# về hiệu suất khi thực hiện nhiều phép nối chuỗi. Lựa chọn nào đúng?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 21: `nameof` operator trong C# có chức năng gì?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 22: Phương thức `Dispose()` trong interface `IDisposable` được sử dụng để làm gì?

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 23: Trong C#, từ khóa `sealed` được sử dụng để làm gì khi áp dụng cho một lớp?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 24: Extension method phải được khai báo trong loại lớp nào?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 25: Cho đoạn code C#: `List names = new List() { "Alice", "Bob", "Charlie" }; names.RemoveAt(1);`. Danh sách `names` sau khi thực hiện lệnh `RemoveAt(1)` sẽ chứa những phần tử nào?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 26: Regex (Regular Expression) trong .NET được sử dụng chủ yếu cho mục đích gì?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 27: `dynamic` keyword trong C# mang lại lợi ích chính nào?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

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

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 29: LINQ Provider có vai trò gì trong LINQ?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 13

Câu 30: Cho đoạn code C#: `int[] numbers = { 1, 2, 3, 4, 5 }; var result = numbers.Select(x => x * 2).ToList();`. `result` sẽ chứa các giá trị nào?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 14

Trắc nghiệm Lập trình .NET - Đề 14 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

  • A. Biên dịch mã nguồn C# thành mã máy.
  • B. Cung cấp môi trường runtime để thực thi và quản lý các ứng dụng .NET.
  • C. Định nghĩa cú pháp và quy tắc cho ngôn ngữ lập trình C#.
  • D. Cung cấp các công cụ và thư viện để phát triển giao diện người dùng.

Câu 2: Hãy xem xét đoạn mã C# sau: `int x = 10; string y =

  • A. int, vì C# ưu tiên kiểu số.
  • B. object, vì `var` có thể chứa bất kỳ kiểu dữ liệu nào.
  • C. string, vì toán tử "+" giữa `int` và `string` thực hiện nối chuỗi.
  • D. Lỗi biên dịch, vì không thể cộng trực tiếp `int` và `string`.

Câu 3: Giả sử bạn có một danh sách các đối tượng `Product` với thuộc tính `Price`. Bạn muốn lọc ra các sản phẩm có giá lớn hơn 100 và sắp xếp chúng theo giá giảm dần. Sử dụng LINQ, cách nào sau đây là hiệu quả nhất?

  • A. `products.Where(p => p.Price > 100).OrderByDescending(p => p.Price);`
  • B. `products.OrderByDescending(p => p.Price).Where(p => p.Price > 100);`
  • C. `products.Sort().Where(p => p.Price > 100);`
  • D. `products.Filter(p => p.Price > 100).SortDescending(p => p.Price);`

Câu 4: Trong lập trình hướng đối tượng với C#, "tính đóng gói" (encapsulation) mang lại lợi ích gì chính?

  • A. Tăng tốc độ thực thi chương trình.
  • B. Che giấu thông tin và bảo vệ dữ liệu của đối tượng, kiểm soát truy cập.
  • C. Cho phép một lớp kế thừa từ nhiều lớp cha.
  • D. Giảm dung lượng bộ nhớ sử dụng bởi chương trình.

Câu 5: Khi nào bạn nên sử dụng "interface" thay vì "abstract class" trong C#?

  • A. Khi bạn muốn cung cấp một lớp cơ sở với các phương thức đã được triển khai.
  • B. Khi bạn muốn tạo ra một hệ thống phân cấp lớp kế thừa phức tạp.
  • C. Khi bạn muốn định nghĩa một "hợp đồng" mà nhiều lớp không liên quan có thể thực hiện.
  • D. Khi bạn muốn tối ưu hóa hiệu suất bằng cách tránh đa hình động.

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

  • A. Boxing là chuyển đổi kiểu tham chiếu sang kiểu giá trị, unboxing là ngược lại.
  • B. Boxing và unboxing đều là các loại ép kiểu ngầm định trong C#.
  • C. Boxing là tạo ra một bản sao của đối tượng, unboxing là giải phóng đối tượng.
  • D. Boxing là chuyển đổi kiểu giá trị sang kiểu object, unboxing là chuyển đổi từ object về kiểu giá trị.

Câu 7: Phương thức `Dispose()` và `Finalize()` trong C# có vai trò gì và sự khác biệt giữa chúng là gì?

  • A. Cả hai đều dùng để tạo và khởi tạo đối tượng, nhưng `Dispose()` nhanh hơn.
  • B. Cả hai đều dùng để giải phóng bộ nhớ, `Finalize()` được gọi trước `Dispose()`.
  • C. `Dispose()` giải phóng tài nguyên một cách chủ động và xác định, `Finalize()` giải phóng tài nguyên thụ động khi GC thu hồi.
  • D. `Dispose()` chỉ dùng cho kiểu giá trị, `Finalize()` chỉ dùng cho kiểu tham chiếu.

Câu 8: Delegate trong C# được sử dụng để làm gì?

  • A. Định nghĩa một lớp trừu tượng không thể khởi tạo.
  • B. Đại diện cho tham chiếu đến một phương thức, cho phép gọi phương thức một cách gián tiếp.
  • C. Quản lý vòng đời của đối tượng và giải phóng bộ nhớ.
  • D. Tạo ra các luồng thực thi song song trong ứng dụng.

Câu 9: "Async" và "Await" keyword trong C# được sử dụng để giải quyết vấn đề gì và hoạt động như thế nào?

  • A. Giải quyết vấn đề blocking (chặn luồng) trong các hoạt động I/O, cho phép thực hiện bất đồng bộ mà không làm treo ứng dụng.
  • B. Tăng tốc độ thực thi các phép tính toán phức tạp bằng cách chia nhỏ công việc.
  • C. Quản lý bộ nhớ và tránh rò rỉ bộ nhớ trong ứng dụng.
  • D. Bảo vệ ứng dụng khỏi các cuộc tấn công bảo mật và lỗ hổng.

Câu 10: Cho đoạn code C# sau: `string str1 =

  • A. true, vì C# coi chuỗi là kiểu giá trị và so sánh theo nội dung.
  • B. true, vì trình biên dịch sẽ tự động chuẩn hóa chuỗi.
  • C. Lỗi biên dịch, vì không thể so sánh chuỗi bằng toán tử "=="
  • D. false, vì so sánh chuỗi trong C# mặc định là phân biệt chữ hoa chữ thường.

Câu 11: Trong ASP.NET Core, "Middleware" là gì và vai trò của nó trong pipeline xử lý request?

  • A. Một loại controller đặc biệt để xử lý các request API.
  • B. Các thành phần phần mềm tạo thành pipeline xử lý HTTP request trong ứng dụng ASP.NET Core.
  • C. Một công cụ để quản lý và triển khai ứng dụng ASP.NET Core lên server.
  • D. Một thư viện JavaScript để xây dựng giao diện người dùng động cho ứng dụng ASP.NET Core.

Câu 12: Dependency Injection (DI) container trong ASP.NET Core giúp giải quyết vấn đề gì và mang lại lợi ích gì?

  • A. Tăng tốc độ khởi động ứng dụng ASP.NET Core.
  • B. Tự động tạo database schema từ code.
  • C. Quản lý và cung cấp các dependency cho các lớp, giảm sự phụ thuộc và tăng tính module hóa.
  • D. Bảo mật ứng dụng bằng cách mã hóa dữ liệu cấu hình.

Câu 13: Trong Entity Framework Core (EF Core), "DbContext" có vai trò gì?

  • A. Định nghĩa cấu trúc database schema (bảng, cột, khóa...).
  • B. Thực hiện migration để cập nhật database schema.
  • C. Kết nối đến database server và thực hiện các truy vấn SQL trực tiếp.
  • D. Đại diện cho một session kết nối đến database và cung cấp API để tương tác với dữ liệu.

Câu 14: "Migration" trong Entity Framework Core được sử dụng để làm gì?

  • A. Tạo ra các truy vấn SQL tối ưu để truy cập dữ liệu.
  • B. Quản lý và áp dụng các thay đổi schema database dựa trên model code.
  • C. Khởi tạo dữ liệu mẫu (seed data) cho database.
  • D. Tạo ra các lớp thực thể (entity classes) từ database schema hiện có.

Câu 15: Sự khác biệt chính giữa "IEnumerable" và "IQueryable" trong .NET là gì khi làm việc với LINQ và dữ liệu?

  • A. `IEnumerable` chỉ dùng cho danh sách kiểu giá trị, `IQueryable` cho kiểu tham chiếu.
  • B. `IQueryable` nhanh hơn `IEnumerable` trong mọi trường hợp.
  • C. `IEnumerable` thực hiện truy vấn LINQ tại client-side, `IQueryable` cho phép thực thi truy vấn tại server (database).
  • D. `IEnumerable` chỉ đọc dữ liệu, `IQueryable` cho phép sửa đổi dữ liệu.

Câu 16: Trong C#, "Generics" (kiểu tổng quát) mang lại lợi ích gì chính?

  • A. Tăng cường tính bảo mật cho ứng dụng.
  • B. Giảm kích thước file thực thi của chương trình.
  • C. Cho phép đa kế thừa trong C#.
  • D. Tăng tính tái sử dụng code, kiểu an toàn và hiệu suất bằng cách tham số hóa kiểu dữ liệu.

Câu 17: Cho đoạn code C#: `int? nullableInt = null;`. "int?" biểu thị điều gì?

  • A. Một kiểu số nguyên lớn hơn `int`.
  • B. Một kiểu nullable int, có thể nhận giá trị `null`.
  • C. Một kiểu int chỉ chứa giá trị dương.
  • D. Một kiểu int không thể thay đổi giá trị sau khi khởi tạo.

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

  • A. Tăng hiệu suất thực thi của chương trình.
  • B. Định nghĩa quyền truy cập (public, private, protected).
  • C. Cung cấp metadata (thông tin mô tả) cho code, có thể được sử dụng bởi trình biên dịch, runtime hoặc framework.
  • D. Tạo ra giao diện người dùng đồ họa.

Câu 19: "Garbage Collection" (GC) trong .NET hoạt động như thế nào?

  • A. GC giải phóng bộ nhớ ngay lập tức khi đối tượng không còn được sử dụng.
  • B. Lập trình viên phải tự gọi GC để giải phóng bộ nhớ.
  • C. GC chỉ hoạt động khi bộ nhớ hệ thống gần đầy.
  • D. GC là cơ chế tự động thu hồi bộ nhớ không còn được tham chiếu bởi ứng dụng.

Câu 20: Cho đoạn code C#: `var numbers = new List { 1, 2, 3 }; numbers.Add(

  • A. Biên dịch thành công và thêm chuỗi
  • B. Biên dịch thành công nhưng bỏ qua lệnh `Add(
  • C. Lỗi biên dịch, vì không thể thêm chuỗi vào danh sách kiểu int.
  • D. Lỗi runtime khi cố gắng thêm chuỗi vào danh sách kiểu int.

Câu 21: Trong C#, "Extension Methods" (phương thức mở rộng) dùng để làm gì?

  • A. 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.
  • B. Thay thế các phương thức hiện có của một lớp.
  • C. Tạo ra các lớp con từ một lớp cha.
  • D. Thay đổi hành vi của toán tử trên các kiểu dữ liệu.

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

  • A. Tăng tốc độ biên dịch chương trình C#.
  • B. Kiểm tra metadata và thông tin kiểu của assembly, module, type, member... tại runtime và thao tác với chúng.
  • C. Tối ưu hóa bộ nhớ sử dụng bởi ứng dụng.
  • D. Bảo vệ mã nguồn khỏi bị decompile.

Câu 23: "Value types" và "Reference types" khác nhau như thế nào trong C# về cách lưu trữ và quản lý bộ nhớ?

  • A. Value types được lưu trên heap, reference types được lưu trên stack.
  • B. Không có sự khác biệt về cách lưu trữ, chỉ khác nhau về cách sử dụng.
  • C. Value types lưu trữ trực tiếp giá trị trên stack, reference types lưu trữ tham chiếu đến đối tượng trên heap.
  • D. Value types nhanh hơn reference types về tốc độ truy cập.

Câu 24: "Event" trong C# được sử dụng để làm gì và cơ chế hoạt động như thế nào?

  • A. Thay thế cho đa kế thừa trong C#.
  • B. Quản lý ngoại lệ trong chương trình.
  • C. Định nghĩa các thuộc tính của một lớp.
  • D. Cho phép một lớp hoặc đối tượng thông báo cho các đối tượng khác khi có sự kiện xảy ra, sử dụng delegate.

Câu 25: "Partial classes" trong C# có tác dụng gì?

  • A. Tăng tốc độ biên dịch cho các lớp lớn.
  • B. Chia một lớp lớn thành nhiều file mã nguồn để dễ quản lý và làm việc nhóm.
  • C. Tạo ra các lớp trừu tượng không thể khởi tạo.
  • D. Cho phép kế thừa từ nhiều lớp cha.

Câu 26: "Lambda expressions" trong C# là gì và thường được sử dụng trong ngữ cảnh nào?

  • A. Một loại vòng lặp mới trong C#.
  • B. Một cách khai báo biến cục bộ ngắn gọn.
  • C. Hàm vô danh (anonymous function) ngắn gọn, thường dùng với LINQ và delegate.
  • D. Một cơ chế xử lý ngoại lệ nâng cao.

Câu 27: Cho đoạn code C#: `string name = null; int length = name.Length;`. Điều gì sẽ xảy ra khi đoạn code này được thực thi?

  • A. Biên dịch thành công và `length` sẽ có giá trị 0.
  • B. Biên dịch thành công và `length` sẽ có giá trị null.
  • C. Lỗi biên dịch, vì không thể truy cập thành viên của biến `null`.
  • D. Lỗi runtime `NullReferenceException`, vì cố gắng truy cập thành viên của biến `null`.

Câu 28: "SOLID principles" là gì và tại sao chúng quan trọng trong lập trình hướng đối tượng?

  • A. Tập hợp các nguyên tắc thiết kế hướng đối tượng giúp code dễ bảo trì, mở rộng, kiểm thử và tái sử dụng.
  • B. Các công cụ debug mạnh mẽ trong Visual Studio.
  • C. Các mẫu thiết kế (design patterns) phổ biến trong .NET.
  • D. Các quy ước đặt tên biến và phương thức trong C#.

Câu 29: "NuGet" package manager được sử dụng để làm gì trong .NET development?

  • A. Quản lý database migrations trong Entity Framework Core.
  • B. Quản lý, cài đặt và cập nhật các thư viện và công cụ bên ngoài (packages) cho dự án .NET.
  • C. Triển khai ứng dụng .NET lên server.
  • D. Tạo giao diện người dùng đồ họa cho ứng dụng.

Câu 30: Trong mô hình lập trình "Model-View-Controller" (MVC) của ASP.NET Core, "Controller" có trách nhiệm chính là gì?

  • A. Hiển thị dữ liệu cho người dùng và xử lý tương tác người dùng.
  • B. Định nghĩa cấu trúc dữ liệu và logic nghiệp vụ của ứng dụng.
  • C. Xử lý request từ người dùng, tương tác với model và chọn view để trả về response.
  • D. Quản lý kết nối database và truy vấn dữ liệu.

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính của CLR là gì?

2 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 2: Hãy xem xét đoạn mã C# sau: `int x = 10; string y = "20"; var z = x + y;`. Kiểu dữ liệu của biến `z` sẽ là gì và tại sao?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 3: Giả sử bạn có một danh sách các đối tượng `Product` với thuộc tính `Price`. Bạn muốn lọc ra các sản phẩm có giá lớn hơn 100 và sắp xếp chúng theo giá giảm dần. Sử dụng LINQ, cách nào sau đây là hiệu quả nhất?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 4: Trong lập trình hướng đối tượng với C#, 'tính đóng gói' (encapsulation) mang lại lợi ích gì chính?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 5: Khi nào bạn nên sử dụng 'interface' thay vì 'abstract class' trong C#?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

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

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 7: Phương thức `Dispose()` và `Finalize()` trong C# có vai trò gì và sự khác biệt giữa chúng là gì?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 8: Delegate trong C# được sử dụng để làm gì?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 9: 'Async' và 'Await' keyword trong C# được sử dụng để giải quyết vấn đề gì và hoạt động như thế nào?

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 10: Cho đoạn code C# sau: `string str1 = "hello"; string str2 = "Hello"; bool result = (str1 == str2);`. Giá trị của `result` sẽ là gì?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 11: Trong ASP.NET Core, 'Middleware' là gì và vai trò của nó trong pipeline xử lý request?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 12: Dependency Injection (DI) container trong ASP.NET Core giúp giải quyết vấn đề gì và mang lại lợi ích gì?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 13: Trong Entity Framework Core (EF Core), 'DbContext' có vai trò gì?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 14: 'Migration' trong Entity Framework Core được sử dụng để làm gì?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 15: Sự khác biệt chính giữa 'IEnumerable' và 'IQueryable' trong .NET là gì khi làm việc với LINQ và dữ liệu?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 16: Trong C#, 'Generics' (kiểu tổng quát) mang lại lợi ích gì chính?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 17: Cho đoạn code C#: `int? nullableInt = null;`. 'int?' biểu thị điều gì?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

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

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 19: 'Garbage Collection' (GC) trong .NET hoạt động như thế nào?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 20: Cho đoạn code C#: `var numbers = new List { 1, 2, 3 }; numbers.Add("4");`. Đoạn code này có biên dịch được không và tại sao?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 21: Trong C#, 'Extension Methods' (phương thức mở rộng) dùng để làm gì?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

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

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 23: 'Value types' và 'Reference types' khác nhau như thế nào trong C# về cách lưu trữ và quản lý bộ nhớ?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 24: 'Event' trong C# được sử dụng để làm gì và cơ chế hoạt động như thế nào?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 25: 'Partial classes' trong C# có tác dụng gì?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 26: 'Lambda expressions' trong C# là gì và thường được sử dụng trong ngữ cảnh nào?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 27: Cho đoạn code C#: `string name = null; int length = name.Length;`. Điều gì sẽ xảy ra khi đoạn code này được thực thi?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 28: 'SOLID principles' là gì và tại sao chúng quan trọng trong lập trình hướng đối tượng?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 29: 'NuGet' package manager được sử dụng để làm gì trong .NET development?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 14

Câu 30: Trong mô hình lập trình 'Model-View-Controller' (MVC) của ASP.NET Core, 'Controller' có trách nhiệm chính là gì?

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


Trắc nghiệm Lập trình .NET

Trắc nghiệm Lập trình .NET - Đề 15

Trắc nghiệm Lập trình .NET - Đề 15 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!

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. Biên dịch mã nguồn C# thành mã trung gian (Intermediate Language - IL).
  • B. Quản lý bộ nhớ tự động thông qua Garbage Collection.
  • C. Cung cấp các dịch vụ an ninh và quản lý kiểu dữ liệu.
  • D. Biên dịch mã IL thành mã máy (native code) phù hợp với nền tảng đích (Just-In-Time Compilation - JIT).

Câu 2: Xét đoạn mã C# sau: `int x = 10; object y = x; x = 20;`. Hỏi giá trị của `y` sau khi thực hiện đoạn mã trên là bao nhiêu và tại sao?

  • A. 20, vì `y` tham chiếu đến vùng nhớ của `x`.
  • B. 20, vì object là kiểu dữ liệu động nên giá trị sẽ tự động cập nhật.
  • C. 10, vì `y` lưu trữ bản sao giá trị của `x` tại thời điểm gán.
  • D. Lỗi biên dịch, vì không thể gán trực tiếp `int` cho `object`.

Câu 3: Giả sử bạn có một lớp `NhanVien` với phương thức ảo `TinhLuong()`. Lớp `TruongPhong` kế thừa từ `NhanVien` và ghi đè phương thức `TinhLuong()`. Khi bạn gọi `TinhLuong()` trên một đối tượng `NhanVien` nhưng thực tế đối tượng này là một thể hiện của `TruongPhong`, phương thức `TinhLuong()` nào sẽ được thực thi?

  • A. Phương thức `TinhLuong()` của lớp `NhanVien`, vì biến có kiểu `NhanVien`.
  • B. Phương thức `TinhLuong()` của lớp `TruongPhong`, vì đối tượng thực tế là `TruongPhong`.
  • C. Tùy thuộc vào thời điểm biên dịch, có thể là phương thức của lớp cha hoặc lớp con.
  • D. Lỗi thời gian chạy, vì không thể gọi phương thức ảo trên biến lớp cha.

Câu 4: Trong ASP.NET Core, Middleware pipeline được sử dụng để xử lý request HTTP. Thứ tự của middleware trong pipeline có quan trọng không và tại sao?

  • A. Có, thứ tự rất quan trọng. Middleware được thực thi theo thứ tự đăng ký và có thể ảnh hưởng lẫn nhau.
  • B. Không, thứ tự không quan trọng. ASP.NET Core tự động sắp xếp middleware để tối ưu hiệu suất.
  • C. Chỉ quan trọng đối với middleware xác thực và ủy quyền, còn lại thứ tự không ảnh hưởng.
  • D. Thứ tự chỉ quan trọng khi có middleware ghi log, để đảm bảo log đầy đủ thông tin.

Câu 5: Entity Framework Core (EF Core) là một ORM phổ biến trong .NET. Khi nào bạn nên sử dụng Migrations trong EF Core?

  • A. Chỉ khi triển khai ứng dụng lên môi trường production.
  • B. Mỗi khi ứng dụng được khởi động lại để đảm bảo database luôn được tạo mới.
  • C. Khi có bất kỳ thay đổi nào trong model (lớp entity) của ứng dụng cần được phản ánh vào schema database.
  • D. Chỉ khi database server được nâng cấp phiên bản.

Câu 6: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. `evenNumbers` trong đoạn code trên là kiểu dữ liệu gì và điều gì xảy ra khi bạn lặp qua `evenNumbers`?

  • A. `List`, và các số chẵn (2, 4) đã được lọc ra ngay lập tức.
  • B. `List`, và khi lặp qua sẽ lọc ra các số chẵn.
  • C. `IQueryable`, và các số chẵn đã được lọc ra ngay lập tức.
  • D. `IEnumerable`, và khi lặp qua `evenNumbers` thì các số chẵn mới được lọc ra.

Câu 7: Trong C#, sự khác biệt chính giữa `async` và `await` là gì?

  • A. `async` tạo ra một thread mới để thực thi song song, `await` đồng bộ hóa các thread.
  • B. `async` đánh dấu phương thức là bất đồng bộ, `await` tạm dừng thực thi phương thức cho đến khi tác vụ hoàn thành mà không block thread chính.
  • C. `async` dùng để xử lý các sự kiện bất đồng bộ, `await` dùng để gọi các phương thức bất đồng bộ.
  • D. `async` và `await` chỉ là cú pháp rút gọn cho việc sử dụng `Task` và `Thread`.

Câu 8: NuGet là gì và tại sao nó quan trọng trong phát triển .NET?

  • A. Một công cụ để biên dịch mã C# thành mã máy.
  • B. Một framework để xây dựng giao diện người dùng web.
  • C. Một trình quản lý package cho .NET, giúp quản lý các thư viện và công cụ bên ngoài.
  • D. Một công cụ để kiểm thử và debug ứng dụng .NET.

Câu 9: So sánh sự khác biệt chính giữa Interface và Abstract Class trong C#.

  • A. Interface hỗ trợ đa kế thừa, Abstract Class thì không.
  • B. Abstract Class có thể chứa các phương thức static, Interface thì không.
  • C. Interface có thể chứa các trường dữ liệu, Abstract Class thì không.
  • D. Interface chỉ định nghĩa contract (hành vi), Abstract Class có thể cung cấp implement (một phần hoặc toàn bộ).

Câu 10: Trong C#, Delegates và Events được sử dụng để làm gì và mối quan hệ giữa chúng là gì?

  • A. Delegates dùng để tạo ra các thread, Events dùng để đồng bộ hóa các thread.
  • B. Delegates là kiểu đại diện phương thức, Events là cơ chế thông báo sự kiện dựa trên delegates.
  • C. Delegates dùng để quản lý bộ nhớ, Events dùng để xử lý ngoại lệ.
  • D. Delegates và Events là hai cách khác nhau để tạo ra các lớp đa hình.

Câu 11: Cho đoạn code C# sau: `string str1 =

  • A. `true`, `true`, vì cả hai đều so sánh giá trị của chuỗi.
  • B. `false`, `false`, vì chuỗi là kiểu tham chiếu và chúng trỏ đến vị trí khác nhau.
  • C. `true`, có thể `true` hoặc `false` (tùy thuộc vào string interning), vì `==` so sánh giá trị, `ReferenceEquals` so sánh tham chiếu.
  • D. `false`, `true`, vì `==` so sánh tham chiếu, `ReferenceEquals` so sánh giá trị.

Câu 12: Trong ASP.NET Core, Dependency Injection (DI) là một nguyên tắc thiết kế quan trọng. Lợi ích chính của việc sử dụng DI là gì?

  • A. 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.
  • B. Giảm dung lượng bộ nhớ sử dụng của ứng dụng.
  • C. Đơn giản hóa việc cấu hình và triển khai ứng dụng.
  • D. Tăng tính module hóa, khả năng kiểm thử, và tái sử dụng code bằng cách giảm sự phụ thuộc giữa các thành phần.

Câu 13: Sự khác biệt giữa `StringBuilder` và `string` trong C# khi làm việc với chuỗi là gì và khi nào nên sử dụng `StringBuilder`?

  • A. `string` nhanh hơn `StringBuilder` trong mọi trường hợp, nên luôn ưu tiên dùng `string`.
  • B. `string` là immutable, `StringBuilder` là mutable. Dùng `StringBuilder` khi cần thao tác chuỗi nhiều lần để tránh tạo ra nhiều đối tượng string tạm thời.
  • C. `StringBuilder` chỉ nên dùng khi làm việc với chuỗi có độ dài cố định, `string` cho chuỗi động.
  • D. `StringBuilder` dùng để mã hóa chuỗi, `string` để lưu trữ chuỗi thông thường.

Câu 14: Trong LINQ, phương thức `FirstOrDefault()` và `SingleOrDefault()` khác nhau như thế nào trong trường hợp không tìm thấy phần tử thỏa mãn điều kiện hoặc tìm thấy nhiều hơn một phần tử?

  • A. `FirstOrDefault()` trả về giá trị default khi không tìm thấy, `SingleOrDefault()` trả về null.
  • B. `FirstOrDefault()` trả về phần tử đầu tiên, `SingleOrDefault()` trả về phần tử cuối cùng.
  • C. `FirstOrDefault()` trả về default nếu không tìm thấy, không lỗi khi không tìm thấy. `SingleOrDefault()` trả về default nếu không tìm thấy, nhưng throw exception nếu tìm thấy nhiều hơn một.
  • D. `FirstOrDefault()` và `SingleOrDefault()` giống nhau, chỉ khác tên gọi.

Câu 15: Cho đoạn code C# sử dụng Generics: `public class MyGenericClass { public T Value { get; set; } }`. Mục đích chính của việc sử dụng Generics trong .NET là gì?

  • A. Tăng tính tái sử dụng của code, đảm bảo type safety, và cải thiện hiệu suất bằng cách tránh boxing/unboxing.
  • B. Giảm kích thước mã nguồn và làm cho code dễ đọc hơn.
  • C. Tăng cường khả năng bảo mật của ứng dụng.
  • D. Cho phép tạo ra các lớp và phương thức có thể thực thi đa luồng.

Câu 16: Trong .NET, Assembly là gì và vai trò của nó trong việc triển khai và quản lý ứng dụng?

  • A. Một đoạn mã C# nhỏ, có thể tái sử dụng trong nhiều dự án.
  • B. Đơn vị triển khai, tái sử dụng, và kiểm soát phiên bản của ứng dụng .NET, chứa mã IL, metadata, và manifest.
  • C. Một công cụ để biên dịch mã C# thành mã máy.
  • D. Một loại file cấu hình chứa thông tin về ứng dụng.

Câu 17: Sự khác biệt giữa Checked và Unchecked context trong C# là gì và khi nào chúng ta cần quan tâm đến chúng?

  • A. Checked context nhanh hơn Unchecked context trong tính toán số học.
  • B. Checked context dùng cho debug, Unchecked context dùng cho release build.
  • C. Checked context kích hoạt kiểm tra tràn số học và throw exception, Unchecked context bỏ qua kiểm tra tràn.
  • D. Checked context chỉ dùng cho kiểu số nguyên, Unchecked context cho kiểu số thực.

Câu 18: Cho đoạn code C#: `int? nullableInt = null; int regularInt = nullableInt;`. Điều gì xảy ra khi chạy đoạn code này và làm thế nào để gán giá trị từ `nullableInt` cho `regularInt` một cách an toàn?

  • A. `regularInt` sẽ nhận giá trị 0, vì đó là giá trị mặc định của kiểu `int`.
  • B. Lỗi `InvalidOperationException` sẽ xảy ra khi cố gắng gán `null` từ `nullableInt` cho `regularInt`. Cần kiểm tra `HasValue` hoặc dùng `??`.
  • C. `regularInt` sẽ nhận giá trị `null`, vì kiểu `int?` có thể chứa `null`.
  • D. Đoạn code biên dịch thành công và chạy mà không có lỗi.

Câu 19: Trong ASP.NET Core Web API, sự khác biệt giữa `IActionResult` và `ActionResult` là gì và khi nào nên sử dụng loại nào?

  • A. `IActionResult` dùng cho response thành công, `ActionResult` cho response lỗi.
  • B. `IActionResult` chỉ dùng cho Web API, `ActionResult` cho MVC.
  • C. `IActionResult` trả về dữ liệu dạng JSON, `ActionResult` trả về XML.
  • D. `IActionResult` là interface chung, linh hoạt, `ActionResult` cung cấp type safety và thông tin kiểu trả về cụ thể hơn. Nên dùng `ActionResult` khi có thể.

Câu 20: Cho đoạn code C#: `using (FileStream fs = new FileStream(

  • A. Để import namespace vào trong file code.
  • B. Để khai báo biến global trong C#.
  • C. Để đảm bảo đối tượng `IDisposable` được giải phóng tài nguyên (gọi `Dispose()`) khi ra khỏi block `using`, kể cả khi có exception.
  • D. Để tạo ra một thread mới để thực hiện thao tác với file.

Câu 21: Trong .NET, Garbage Collection (GC) hoạt động như thế nào và mục đích của nó là gì?

  • A. GC là cơ chế quản lý bộ nhớ tự động, tự động thu hồi bộ nhớ không còn được tham chiếu bởi ứng dụng, giúp tránh memory leak.
  • B. GC là một thành phần của trình biên dịch C#, giúp tối ưu hóa mã nguồn.
  • C. GC là một thư viện .NET dùng để quản lý file và thư mục.
  • D. GC là một công cụ debug để tìm và sửa lỗi memory leak trong ứng dụng.

Câu 22: So sánh sự khác biệt giữa `List` và `HashSet` trong C# về hiệu suất và trường hợp sử dụng phù hợp.

  • A. `List` nhanh hơn `HashSet` trong mọi trường hợp, nên luôn ưu tiên dùng `List`.
  • B. `List` duy trì thứ tự, tìm kiếm O(n). `HashSet` không thứ tự, tìm kiếm O(1). `HashSet` nhanh hơn cho kiểm tra tồn tại, `List` cho danh sách có thứ tự.
  • C. Cả `List` và `HashSet` đều có hiệu suất tương đương, chỉ khác nhau về cú pháp sử dụng.
  • D. `HashSet` chỉ dùng cho kiểu dữ liệu số, `List` cho mọi kiểu dữ liệu.

Câu 23: Trong ASP.NET Core, Routing là gì và vai trò của nó trong việc xử lý request?

  • A. Routing là cơ chế bảo mật trong ASP.NET Core, kiểm soát truy cập vào các action method.
  • B. Routing là thành phần middleware để ghi log request và response.
  • C. Routing là cơ chế ánh xạ URL request đến action method trong controller, giúp điều hướng request và tạo URL thân thiện.
  • D. Routing là công cụ để deploy ứng dụng ASP.NET Core lên server.

Câu 24: Cho đoạn code C#: `var result = 5 +

  • A. `int`, giá trị 15, vì C# tự động convert string sang int.
  • B. `int`, lỗi compile, vì không thể cộng int và string trực tiếp.
  • C. `object`, giá trị là một đối tượng chứa cả số 5 và chuỗi
  • D. `string`, giá trị

Câu 25: Trong .NET, Reflection là gì và ứng dụng của nó trong lập trình?

  • A. Reflection là kỹ thuật tối ưu hóa hiệu suất ứng dụng .NET.
  • B. Reflection là khả năng kiểm tra metadata của assembly, type, member, và tạo/gọi đối tượng, method, property động tại runtime. Ứng dụng trong ORM, DI container, plugin system...
  • C. Reflection là một pattern thiết kế để xử lý sự kiện trong ứng dụng.
  • D. Reflection là một công cụ debug mạnh mẽ của .NET.

Câu 26: Sự khác biệt giữa `throw ex;` và `throw;` trong khối `catch` của C# là gì?

  • A. `throw ex;` nhanh hơn `throw;` vì không cần giữ lại stack trace.
  • B. `throw ex;` chỉ dùng cho exception tùy chỉnh, `throw;` cho exception hệ thống.
  • C. `throw ex;` tạo stack trace mới từ điểm `throw`, mất stack trace gốc. `throw;` re-throw exception hiện tại, giữ nguyên stack trace gốc.
  • D. `throw ex;` dùng để throw exception có điều kiện, `throw;` throw exception vô điều kiện.

Câu 27: Trong ASP.NET Core, Session và Cookie khác nhau như thế nào về cách lưu trữ và mục đích sử dụng?

  • A. Session lưu trữ dữ liệu trên client, Cookie lưu trữ dữ liệu trên server.
  • B. Session lưu trữ trên server, dùng cookie theo dõi session ID. Cookie lưu trữ trên client. Session an toàn hơn, Cookie cho persistent preferences.
  • C. Session và Cookie giống nhau về cách lưu trữ, chỉ khác nhau về cú pháp sử dụng trong ASP.NET Core.
  • D. Session dùng cho Web API, Cookie dùng cho MVC.

Câu 28: Cho đoạn code C#: `int[] numbers = { 1, 2, 3 }; foreach (var num in numbers) { num = num * 2; }`. Sau khi chạy đoạn code, giá trị của mảng `numbers` sẽ như thế nào và tại sao?

  • A. Mảng `numbers` vẫn là `{ 1, 2, 3 }`, vì `num` trong `foreach` là bản sao giá trị, thay đổi `num` không ảnh hưởng đến mảng gốc.
  • B. Mảng `numbers` sẽ trở thành `{ 2, 4, 6 }`, vì `foreach` cho phép sửa đổi trực tiếp các phần tử của mảng.
  • C. Lỗi compile, vì không thể gán giá trị cho biến lặp `num` trong `foreach`.
  • D. Mảng `numbers` sẽ trở thành `{ 1, 2, 3, 2, 4, 6 }`, vì các giá trị mới được thêm vào cuối mảng.

Câu 29: Trong .NET, Unit Testing là gì và tại sao nó là một phần quan trọng của quy trình phát triển phần mềm?

  • A. Unit testing là quá trình kiểm thử toàn bộ ứng dụng sau khi hoàn thành code.
  • B. Unit testing là một loại tài liệu kỹ thuật mô tả chức năng của từng module.
  • C. Unit testing là công cụ để đo hiệu suất ứng dụng .NET.
  • D. Unit testing là kiểm thử từng đơn vị code nhỏ nhất (method, class), đảm bảo hoạt động đúng. Quan trọng để phát hiện lỗi sớm, refactor an toàn, tăng chất lượng code.

Câu 30: Trong C#, Extension Methods là gì và chúng được sử dụng để làm gì?

  • A. Extension methods là phương thức ảo (virtual) trong C#.
  • B. Extension methods cho phép thêm phương thức mới vào kiểu dữ liệu đã tồn tại mà không cần sửa đổi lớp gốc hoặc kế thừa. Dùng từ khóa `this` trong tham số đầu tiên.
  • C. Extension methods là phương thức private chỉ có thể gọi trong lớp khai báo.
  • D. Extension methods là một dạng delegate trong C#.

1 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

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: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 2: Xét đoạn mã C# sau: `int x = 10; object y = x; x = 20;`. Hỏi giá trị của `y` sau khi thực hiện đoạn mã trên là bao nhiêu và tại sao?

3 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 3: Giả sử bạn có một lớp `NhanVien` với phương thức ảo `TinhLuong()`. Lớp `TruongPhong` kế thừa từ `NhanVien` và ghi đè phương thức `TinhLuong()`. Khi bạn gọi `TinhLuong()` trên một đối tượng `NhanVien` nhưng thực tế đối tượng này là một thể hiện của `TruongPhong`, phương thức `TinhLuong()` nào sẽ được thực thi?

4 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 4: Trong ASP.NET Core, Middleware pipeline được sử dụng để xử lý request HTTP. Thứ tự của middleware trong pipeline có quan trọng không và tại sao?

5 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 5: Entity Framework Core (EF Core) là một ORM phổ biến trong .NET. Khi nào bạn nên sử dụng Migrations trong EF Core?

6 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 6: Cho đoạn code C# sau: `var numbers = new List { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0);`. `evenNumbers` trong đoạn code trên là kiểu dữ liệu gì và điều gì xảy ra khi bạn lặp qua `evenNumbers`?

7 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 7: Trong C#, sự khác biệt chính giữa `async` và `await` là gì?

8 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 8: NuGet là gì và tại sao nó quan trọng trong phát triển .NET?

9 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 9: So sánh sự khác biệt chính giữa Interface và Abstract Class trong C#.

10 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 10: Trong C#, Delegates và Events được sử dụng để làm gì và mối quan hệ giữa chúng là gì?

11 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 11: Cho đoạn code C# sau: `string str1 = "hello"; string str2 = "hello";`. Biểu thức `str1 == str2` và `object.ReferenceEquals(str1, str2)` trả về giá trị gì và tại sao?

12 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 12: Trong ASP.NET Core, Dependency Injection (DI) là một nguyên tắc thiết kế quan trọng. Lợi ích chính của việc sử dụng DI là gì?

13 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 13: Sự khác biệt giữa `StringBuilder` và `string` trong C# khi làm việc với chuỗi là gì và khi nào nên sử dụng `StringBuilder`?

14 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 14: Trong LINQ, phương thức `FirstOrDefault()` và `SingleOrDefault()` khác nhau như thế nào trong trường hợp không tìm thấy phần tử thỏa mãn điều kiện hoặc tìm thấy nhiều hơn một phần tử?

15 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 15: Cho đoạn code C# sử dụng Generics: `public class MyGenericClass { public T Value { get; set; } }`. Mục đích chính của việc sử dụng Generics trong .NET là gì?

16 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 16: Trong .NET, Assembly là gì và vai trò của nó trong việc triển khai và quản lý ứng dụng?

17 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 17: Sự khác biệt giữa Checked và Unchecked context trong C# là gì và khi nào chúng ta cần quan tâm đến chúng?

18 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 18: Cho đoạn code C#: `int? nullableInt = null; int regularInt = nullableInt;`. Điều gì xảy ra khi chạy đoạn code này và làm thế nào để gán giá trị từ `nullableInt` cho `regularInt` một cách an toàn?

19 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 19: Trong ASP.NET Core Web API, sự khác biệt giữa `IActionResult` và `ActionResult` là gì và khi nào nên sử dụng loại nào?

20 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 20: Cho đoạn code C#: `using (FileStream fs = new FileStream("data.txt", FileMode.OpenOrCreate)) { ... }`. Mục đích của từ khóa `using` trong C# là gì?

21 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 21: Trong .NET, Garbage Collection (GC) hoạt động như thế nào và mục đích của nó là gì?

22 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 22: So sánh sự khác biệt giữa `List` và `HashSet` trong C# về hiệu suất và trường hợp sử dụng phù hợp.

23 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 23: Trong ASP.NET Core, Routing là gì và vai trò của nó trong việc xử lý request?

24 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 24: Cho đoạn code C#: `var result = 5 + "10";`. Kiểu dữ liệu của `result` là gì và giá trị của nó là bao nhiêu?

25 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 25: Trong .NET, Reflection là gì và ứng dụng của nó trong lập trình?

26 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 26: Sự khác biệt giữa `throw ex;` và `throw;` trong khối `catch` của C# là gì?

27 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 27: Trong ASP.NET Core, Session và Cookie khác nhau như thế nào về cách lưu trữ và mục đích sử dụng?

28 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 28: Cho đoạn code C#: `int[] numbers = { 1, 2, 3 }; foreach (var num in numbers) { num = num * 2; }`. Sau khi chạy đoạn code, giá trị của mảng `numbers` sẽ như thế nào và tại sao?

29 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 29: Trong .NET, Unit Testing là gì và tại sao nó là một phần quan trọng của quy trình phát triển phần mềm?

30 / 30

Category: Trắc nghiệm Lập trình .NET

Tags: Bộ đề 15

Câu 30: Trong C#, Extension Methods là gì và chúng được sử dụng để làm gì?

Viết một bình luận