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 tuân theo cú pháp nhất định. Cấu trúc này dùng để nhóm các biến có kiểu dữ liệu khác nhau thành một đơn vị duy nhất. Trong trường hợp này, chúng ta cần khai báo một cấu trúc mô tả sinh viên, bao gồm tên (kiểu chuỗi ký tự) và điểm 3 môn học (kiểu số thực để có thể lưu điểm lẻ).
- Lựa chọn A: Sai vì sử dụng
structurethay vìstruct(trong C/C++, từ khóa đúng làstruct). Hơn nữa, khai báo mảngName[]không chỉ rõ kích thước. Các biến điểm khai báo kiểuintlà không phù hợp, cần khai báo kiểu số thực (floathoặcdouble) để lưu điểm chính xác hơn. - Lựa chọn B: Sai vì sử dụng
structđúng, nhưng khai báo mảngName[]không chỉ rõ kích thước và các biến điểm khai báo kiểuintlà không phù hợp. - Lựa chọn C: Đúng vì sử dụng
typedef struct STUDENTđể định nghĩa một kiểu dữ liệu mới tên làSTUDENT.char Name[]không chỉ rõ kích thước (vấn đề này có thể được giải quyết bằng cách cấp phát động hoặc chỉ định kích thước tối đa). Điểm số s1, s2, s3 khai báo kiểufloatlà phù hợp để lưu điểm số có phần thập phân. - Lựa chọn D: Sai vì
typedefcần đi kèm vớistructkhi định nghĩa cấu trúc, vàSTUDENTchưa được định nghĩa trước đó. Thêm vào đó, khai báo mảngName[]không chỉ rõ kích thước và các biến điểm khai báo kiểuintlà không phù hợp.
Vậy đáp án đúng nhất là C.





