Hãy khai báo một cấu trúc mô tả sinh viên, thông tin về mỗi sinh viên bao gồm: tên, điểm 3 môn học. Khai báo nào sau đây là đúng:
Trả lời:
Đáp án đúng: C
Để khai báo một cấu trúc (struct) trong C/C++, ta cần sử dụng từ khóa struct
. Nếu muốn sử dụng typedef
để tạo một tên ngắn gọn hơn cho cấu trúc, ta khai báo typedef struct
. Tên của cấu trúc (trong trường hợp này là STUDENT) thường được viết hoa theo quy ước, tuy nhiên điều này không bắt buộc.
Trong các đáp án:
- Đáp án A sai vì sử dụng từ khóa
structure
thay vìstruct
. - Đáp án B sai vì sử dụng kiểu dữ liệu
int
cho điểm số (s1, s2, s3), điểm số thường là số thực (float
). Ngoài ra, khai báochar Name[]
không chỉ rõ kích thước mảng, có thể gây lỗi biên dịch hoặc hành vi không mong muốn. - Đáp án C đúng vì sử dụng
typedef struct
để định nghĩa cấu trúc STUDENT với các trường dữ liệu phù hợp:Name
là mảng các ký tự (chuỗi) vàs1
,s2
,s3
là các số thực (float
) để lưu điểm. - Đáp án D sai vì sử dụng
typedef STUDENT
không hợp lệ. Cần phải cóstruct
sautypedef
để chỉ ra rằng ta đang định nghĩa một kiểu dữ liệu cấu trúc. Thêm vào đó, kiểu dữ liệu điểm làint
cũng không phù hợp.
Vậy đáp án đúng là C.