Chọn kết quả hợp lí cho chương trình sau:
void main() {
struct sv {
float d;
char ht[10]
};
struct sv m, * p;
p = & m;
printf(“ % p”, & m);
printf(“ % p”, p);
};
void main() {
struct sv {
float d;
char ht[10]
};
struct sv m, * p;
p = & m;
printf(“ % p”, & m);
printf(“ % p”, p);
};
Trả lời:
Đáp án đúng: D
Chương trình C này in ra địa chỉ của biến cấu trúc `m` hai lần. `&m` lấy địa chỉ trực tiếp của `m`, còn `p = &m;` gán địa chỉ của `m` cho con trỏ `p`, do đó `p` cũng trỏ đến địa chỉ của `m`. Vì vậy, cả hai lệnh `printf` sẽ in ra cùng một địa chỉ. Các giá trị địa chỉ cụ thể (ví dụ: FFE6FFE6) phụ thuộc vào vị trí bộ nhớ mà biến `m` được cấp phát khi chương trình chạy. Tuy nhiên, điều quan trọng là cả hai giá trị này phải giống nhau.
Do đó, đáp án A và D có khả năng đúng nhất, tuy nhiên vì đáp án A có cùng một địa chỉ được in ra 2 lần, nên đáp án A là đáp án đúng.
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
