JavaScript is required

Để dùng danh sách liên kết, xét hai khai báo sau(cần 1KB để lưu dữ thông tin về một sinh viên). (Với “thongtin” là một thành phần dữ liệu
của cấu trúc); Chọn câu đúng nhất trong các câu sau:
1. Khai báo 1:
struct SV {
thongtin;
struct SV * tiep;
};
2. Khai báo 2:
struct SV {
thongtin
};
struct DS {
struct SV * sv;
struct DS * tiep;
}

A.
Khai báo 1 tốn nhiều bộ nhớ hơn khai báo 2.
B.
Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi đổi vị trí 2 sinh viên
C.
Khai báo 1 sẽ giúp tiết kiệm câu lệnh hơn khi viết hàm đổi vị trí 2 sinh viên.
D.
Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi duyệt danh sách.
Trả lời:

Đáp án đúng: B


**Phân tích:** Câu hỏi này kiểm tra kiến thức về danh sách liên kết (linked list) và so sánh hiệu quả giữa hai cách khai báo cấu trúc dữ liệu để tạo danh sách liên kết. * **Khai báo 1:** Sử dụng một cấu trúc `SV` duy nhất, trong đó mỗi phần tử chứa thông tin sinh viên (`thongtin`) và một con trỏ (`tiep`) đến phần tử tiếp theo trong danh sách. * **Khai báo 2:** Sử dụng hai cấu trúc: `SV` (chỉ chứa thông tin sinh viên) và `DS` (chứa một con trỏ đến `SV` và một con trỏ đến phần tử `DS` tiếp theo). **Đánh giá các phương án:** * **A. Khai báo 1 tốn nhiều bộ nhớ hơn khai báo 2.** * Sai. Khai báo 2 tốn nhiều bộ nhớ hơn vì mỗi nút trong danh sách liên kết khai báo 2 cần thêm bộ nhớ để lưu trữ con trỏ `sv` trong cấu trúc `DS`. * **B. Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi đổi vị trí 2 sinh viên.** * Sai. Việc đổi vị trí hai sinh viên trong cả hai trường hợp đều yêu cầu duyệt danh sách đến vị trí cần đổi và thực hiện các thao tác trên con trỏ. Tốc độ không khác biệt đáng kể. * **C. Khai báo 1 sẽ giúp tiết kiệm câu lệnh hơn khi viết hàm đổi vị trí 2 sinh viên.** * Đúng. Với khai báo 1, việc đổi vị trí hai sinh viên đơn giản chỉ là thay đổi các con trỏ `tiep`. Với khai báo 2, ta cần thay đổi cả con trỏ `sv` và `tiep`, do đó cần nhiều câu lệnh hơn. * **D. Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi duyệt danh sách.** * Sai. Khai báo 2 có thể chậm hơn một chút do cần truy cập gián tiếp qua con trỏ `sv` để lấy thông tin sinh viên. **Kết luận:** Phương án C là đúng nhất.

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