JavaScript is required

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);

A.
Đoạn chương trình trên có lỗi cú pháp.
B.
Không được phép sử dụng toán tử lấy địa chỉ đối với các thành phần “to” và “soluong”.
C.
Lây địa chỉ thành phần “soluong” dẫn đến chương trình hoạt động không đúng đắn.
D.
Cả 3 ý trên đều sai.
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