JavaScript is required

Cho thuật toán sắp xếp Bubble Sort như sau:

void BubbleSort(int M[], int N)

{

for (int I = 0; I < N-1; I++)

for (int J = N-1; J > I; J--)

if (M[J] < M[J-1])

Swap(M[J], M[J-1]);

return;

Chọn câu đúng nhất cho hàm Swap

A.

void Swap(int &X, int &Y)

{ int Temp = X;

X = Y;

Y = Temp;

return; }

B.

void Swap(float X, floatY)

{ int Temp = X;

X = Y;

Y = Temp;

return; }

C.

void Swap(int *X, int *Y)

{ int Temp = X;

X = Y; Y = Temp;

return; }

D.

void Swap(int X, intY)

{ int Temp = X;

X = Y;

Y = Temp; return; }

Trả lời:

Đáp án đúng: A


Trong thuật toán sắp xếp Bubble Sort, hàm `Swap` được sử dụng để hoán đổi giá trị của hai phần tử trong mảng. Để hoán đổi giá trị một cách chính xác, ta cần truyền tham chiếu (reference) của hai biến kiểu `int` vào hàm `Swap`. * **Đáp án 1:** `void Swap(int &X, int &Y)` sử dụng tham chiếu `&` để truyền địa chỉ của biến, cho phép thay đổi trực tiếp giá trị của biến bên ngoài hàm. Đây là cách đúng để hoán đổi giá trị. * **Đáp án 2:** `void Swap(float X, float Y)` sử dụng kiểu `float` không phù hợp với mảng `int` và truyền tham trị (pass by value), tức là chỉ tạo ra bản sao của biến, không thay đổi giá trị gốc. * **Đáp án 3:** `void Swap(int *X, int *Y)` sử dụng con trỏ, nhưng việc gán `X = Y` và `Y = Temp` chỉ thay đổi địa chỉ mà con trỏ trỏ tới, không thay đổi giá trị của các biến ban đầu. * **Đáp án 4:** `void Swap(int X, int Y)` truyền tham trị (pass by value), tức là chỉ tạo ra bản sao của biến, không thay đổi giá trị gốc. Vì vậy, đáp án đúng là đáp án 1.

Đề cương ôn thi với 220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án được chọn lọc và chia sẻ dưới đây, nhằm giúp bạn sinh viên hệ thống kiến thức chuẩn bị cho kì thi sắp diễn ra.


50 câu hỏi 60 phút

Câu hỏi liên quan