Trong các khai báo sau, khai báo nào không đúng:
Trả lời:
Đáp án đúng: D
Câu hỏi kiểm tra về cú pháp khai báo cấu trúc (struct) trong C/C++.
Phương án A đúng: Khai báo một struct tên là Date với các thành viên ngay, thang, nam kiểu int.
Phương án B đúng: Khai báo trực tiếp hai biến D1, D2 kiểu struct với các thành viên ngay, thang, nam kiểu int. Tuy nhiên, cách khai báo này không định nghĩa một kiểu dữ liệu struct cụ thể nào có tên.
Phương án C đúng: Sử dụng typedef để định nghĩa một kiểu dữ liệu mới là Date, tương đương với struct { int ngay, thang, nam; }. Sau đó, Date có thể được sử dụng như một kiểu dữ liệu.
Phương án D sai: Khai báo struct Date với các trường bitfields ngay (7 bits), thang (6 bits) và nam (5 bits). Đây là một cách khai báo hợp lệ, tuy nhiên, có một lỗi tiềm ẩn là kiểu dữ liệu `long int` có thể không đủ lớn để chứa các giá trị ngày, tháng, năm. Ngoài ra việc sử dụng `long int` cho bitfield có thể gây ra warning hoặc lỗi biên dịch tùy theo compiler. Tuy nhiên, về mặt cú pháp thì khai báo này vẫn có thể được chấp nhận bởi một số trình biên dịch C/C++.
Tuy nhiên, trong các phương án trên, phương án D có khả năng gây ra lỗi hoặc warning nhiều nhất, do đó, có thể xem nó là "không đúng" nhất. Nếu đề bài yêu cầu tìm phương án sai về mặt *ý nghĩa* (logic) thì D phù hợp hơn, còn nếu xét về mặt *cú pháp* thì A,B,C đều đúng cú pháp.
Vì đề bài hỏi "khai báo nào *không đúng*" và xét về khả năng gây lỗi/warning thì D có khả năng cao hơn.
Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
