Trong các khởi tạo giá trị cho các cấu trúc sau, hãy chọn câu đúng:struct S1{ int ngay, thang, nam;}; S1=(2, 1, 3); struct S2{ char hoten[10] struct S1 ngaysinh;}; S2={“Ly Ly”, {4, 5, 6}};
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ề cách khởi tạo giá trị cho các biến cấu trúc (struct) trong ngôn ngữ lập trình C (hoặc C++). Cần xem xét cú pháp khởi tạo nào là đúng.
Đánh giá các phương án:
- S1:
struct S1{ int ngay, thang, nam;}; S1=(2, 1, 3);
Đây là cách khởi tạo sai. Khi khởi tạo một biến cấu trúc, cần sử dụng cặp ngoặc nhọn{}
để bao quanh các giá trị khởi tạo, và các giá trị này phải tương ứng với thứ tự các thành viên trong cấu trúc. - S2:
struct S2{ char hoten[10] struct S1 ngaysinh;}; S2={“Ly Ly”, {4, 5, 6}};
Ở đây,struct S2
chứa một mảng ký tựhoten
và một cấu trúcS1
có tên làngaysinh
. Việc khởi tạo“Ly Ly”
chohoten
và{4, 5, 6}
chongaysinh
là đúng cú pháp, sử dụng ngoặc nhọn để khởi tạo giá trị cho từng thành phần của cấu trúc.
Kết luận:
Vậy, S1 sai và S2 đúng.