Có các khai báo sau:
char tb, mang[15]
Trong các câu lệnh sau, câu nào đúng:
Trả lời:
Đáp án đúng: B
Phân tích câu hỏi:
Câu hỏi kiểm tra kiến thức về khai báo và sử dụng biến kiểu char
và mảng char
(chuỗi) trong C/C++.
Đánh giá các phương án:
- A.
tb = "chào bạn";
: Sai.tb
là một biến kiểuchar
, chỉ có thể lưu trữ một ký tự duy nhất."chào bạn"
là một chuỗi (mảng các ký tự), không thể gán trực tiếp cho một biếnchar
. - B.
gets(mang);
: Đúng.mang
là một mảngchar
(chuỗi), và hàmgets()
được dùng để đọc một chuỗi từ đầu vào chuẩn (stdin) và lưu vào mảngmang
. Tuy nhiên, hàmgets
không an toàn và không nên sử dụng. Thay vào đó, nên sử dụngfgets
để tránh tràn bộ đệm. - C.
mang = "chaoban";
: Sai. Trong C/C++, không thể gán trực tiếp một chuỗi ký tự cho một mảng ký tự bằng toán tử=
. Cần sử dụng hàmstrcpy()
để sao chép chuỗi. - D.
gets(tb);
: Sai. Hàmgets()
dùng để đọc một chuỗi vào một mảngchar
, không phải vào một biếnchar
đơn lẻ.
Kết luận:
Phương án B là phương án đúng nhất, mặc dù việc sử dụng hàm gets
không được khuyến khích trong thực tế.