Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Trắc nghiệm cấp phát bộ nhớ và quá trình biên dịch trong C

Các câu hỏi trắc nghiệm về cấp phát bộ nhớ và quy trình biên dịch C.

Câu 1: Output của code union + malloc

union my_union { int i; float f; char c; };
union my_union* u = malloc(sizeof(union my_union));
u->f = 20.60f; printf("%f", u->f);

Đáp án: 20.600000 (Union dùng chung vùng nhớ, float in ra 20.600000)

Câu 2: Thứ tự quy trình biên dịch

Đáp án: Preprocessor → Compiler → Assembler → Linking

Câu 3: #include được thay thế ở giai đoạn nào?

Đáp án: Preprocessing (Tiền xử lý)

Câu 4: Mục đích fflush()

Đáp án: Xóa bộ đệm xuất (output buffer) và đẩy ra console

Câu 5: Lỗi trong code malloc

char* ptr; *ptr = (int*)malloc(30);

Đáp án: Lỗi tại *ptr = (int*)malloc(30) - ép kiểu con trỏ sai, nên là ptr = (char*)malloc(30)