JavaScript is required

Anh (Chị) hãy cho biết đoạn chương trình sau thực hiện công việc gì?

int BinSearch (char *item,char *table[],int n, int (*Sosanh)(const char*,const char*)) {

int bot = 0, top = n - 1, mid, cmp;

while (bot < top) { mid = (bot + top) / 2;

if ((cmp = Sosanh(item,table[mid])) == 0) return mid;

else if (cmp < 0) top = mid - 1; else bot = mid + 1;

}

return -1;

}

int main() { char *cities[] = { “Boston”, “London”, “Sydney”, “Tokyo” };

cout << BinSearch (“Sydney”,cities,4,strcmp) << endl;

}

A.

Sắp xếp mảng tăng dần.

B.

Sắp xếp mảng giảm dần.

C.

Tìm kiếm một chuỗi trong mảng chuỗi ký tự.

D.

Đếm xem có bao nhiêu thành phần trong mảng chứa chuỗi ký tự cho trước.

Trả lời:

Đáp án đúng: C


Đoạn chương trình cung cấp một hàm `BinSearch` thực hiện tìm kiếm nhị phân (Binary Search) trên một mảng các chuỗi ký tự. Hàm này nhận vào một chuỗi `item` cần tìm, một mảng các chuỗi `table`, kích thước mảng `n`, và một hàm so sánh `Sosanh` (trong trường hợp này là `strcmp`). Trong hàm `main`, một mảng các chuỗi `cities` được khởi tạo. Sau đó, hàm `BinSearch` được gọi để tìm chuỗi "Sydney" trong mảng `cities`. Do đó, đoạn chương trình này thực hiện tìm kiếm một chuỗi trong mảng chuỗi ký tự. Các lựa chọn khác không phù hợp vì: - A, B: Chương trình không thực hiện sắp xếp mảng. - D: Chương trình không đếm số lượng thành phần chứa chuỗi ký tự cho trước, mà chỉ tìm kiếm sự tồn tại của một chuỗi duy nhất.

Câu hỏi liên quan