JavaScript is required

Kết quả in ra màn hình của chương trình sau:

#include

void main() {

char *s;

s = "chao cac ban";

strcpy(&s[5], &s[9]);

printf("%s", s);

}

A.

“chao”

B.

“chao cac”

C.

“chao ban”

D.
“chao cac ban”
Trả lời:

Đáp án đúng: C


Đoạn chương trình thực hiện sao chép một phần của chuỗi vào một vị trí khác trong cùng chuỗi đó, dẫn đến việc ghi đè lên một phần của chuỗi ban đầu. Ban đầu, `s` trỏ đến chuỗi "chao cac ban". Lệnh `strcpy(&s[5], &s[9]);` sẽ sao chép chuỗi bắt đầu từ `s[9]` (là "ban") vào vị trí bắt đầu từ `s[5]` (vị trí sau khoảng trắng sau "chao"). Điều này dẫn đến việc chuỗi "cac" bị ghi đè bởi "ban", và kết quả là chuỗi trở thành "chao ban". Do đó, khi in ra `s`, kết quả sẽ là "chao ban".

Câu hỏi liên quan