Cho đoạn chương trình sau. Chọn câu đúng nhất trong các câu sau:
struct {
int to;
float soluong;
}
x[10]
for (int i = 0; i < 10; i++) scanf(“ % d % f”, & x[i].to, & x[i].soluong);
struct {
int to;
float soluong;
}
x[10]
for (int i = 0; i < 10; i++) scanf(“ % d % f”, & x[i].to, & x[i].soluong);
Trả lời:
Đáp án đúng: C
Đoạn chương trình khai báo một mảng `x` gồm 10 phần tử, mỗi phần tử là một cấu trúc (struct) chứa hai trường: `to` (kiểu `int`) và `soluong` (kiểu `float`). Sau đó, một vòng lặp `for` được sử dụng để đọc dữ liệu vào các trường này thông qua hàm `scanf`.
* **Lỗi cú pháp:** Không có lỗi cú pháp trong đoạn chương trình. Cú pháp khai báo struct và sử dụng scanf đều hợp lệ.
* **Toán tử lấy địa chỉ:** Việc sử dụng toán tử `&` (lấy địa chỉ) là hoàn toàn hợp lệ và cần thiết khi sử dụng `scanf` để ghi dữ liệu trực tiếp vào các biến.
* **Địa chỉ thành phần "soluong":** Việc lấy địa chỉ của thành phần `soluong` không dẫn đến lỗi hoặc hoạt động không đúng đắn. `scanf` cần địa chỉ của biến để có thể lưu giá trị đọc được từ đầu vào.
Vì vậy, cả ba ý A, B và C đều sai. Đáp án đúng là D.
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
