Which statements are correct when copying string s1 into s2 manually?(Choose 2 correct answers)
4 phương ánCó giải thích
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng gồm hai ý: "Uses array indexing" và "Uses pointer arithmetic". Chép chuỗi bằng tay nghĩa là tự viết vòng lặp chuyển từng ký tự của s1 sang s2 cho tới khi gặp ký tự rỗng kết thúc, rồi đặt ký tự rỗng cho s2; vòng lặp đó có đúng hai cách cài đặt tương đương trong C, hoặc truy cập theo chỉ số kiểu s2[i] = s1[i], hoặc dịch con trỏ kiểu *d++ = *s++, bởi phép lấy chỉ số trong C vốn được định nghĩa qua số học con trỏ. Cần công bố khuyết điểm của đề: câu ghi rõ chọn hai nhưng bản khoá in kèm chỉ tô được một ô. "Requires memory allocation" sai vì s2 là mảng đã có sẵn chỗ từ lúc khai báo, vòng lặp chỉ ghi vào chỗ đó, không gọi malloc. "Works without checking for buffer overflow" nói đúng về sự kiện nhưng đó là khuyết điểm phải tránh của cách làm, không phải cách chép chuỗi; nếu s1 dài hơn s2 thì chương trình ghi tràn và hỏng bộ nhớ.
Cùng phần 8
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây