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.tblà 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.manglà 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àmgetskhô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ế.





