JavaScript is required

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:

A.

structure STUDENT {char Name[] int s1,s2,s3;};

B.

struct STUDENT {char Name[] int s1, s2, s3;};

C.

typedef struct STUDENT {char Name[] float s1,s2,s3;};

D.

typedef STUDENT { char Name[] int s1, s2,s3;};

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áo char 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 sau typedef để 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.

Câu hỏi liên quan