JavaScript is required

Cho tệp nhị phân DATA chứa dãy các cấu trúc liền nhau L struct T{…} x;và f là con trỏ tệp đến DATA. Chọn câu đúng nhất trong các câu sau:

A.
Lệnh fseek(f,10,SEEK_END) định vị con trỏ tệp đến byte thứ 10 trong tệp.
B.
Đoạn lệnh fseek(f, 10, SEEK_END); định vị con trỏ tới cuối tệp.
C.

Giả sử tệp có n cấu trúc, lệnh fseek(f, n, SEEK_SET) sẽ đặt con trỏ tới cấu trúc cuối cùng của tệp.

D.
Giả sử tệp có n cấu trúc, lệnh fseek(f, n, SEEK_CUR); sẽ không làm thay đổi vị trí con trỏ của tệp.
Trả lời:

Đáp án đúng: C


**Phân tích câu hỏi:** Câu hỏi kiểm tra kiến thức về hàm `fseek()` trong C/C++ dùng để định vị con trỏ tệp trong một tệp nhị phân chứa các cấu trúc. Cần hiểu rõ các tham số của `fseek()` và cách nó hoạt động với các hằng số `SEEK_SET`, `SEEK_CUR`, `SEEK_END`. **Đánh giá các phương án:** * **A. Lệnh `fseek(f,10,SEEK_END)` định vị con trỏ tệp đến byte thứ 10 trong tệp.** * Sai. `SEEK_END` chỉ vị trí bắt đầu đếm là từ cuối tệp. Lệnh này sẽ di chuyển con trỏ đến vị trí cách cuối tệp 10 byte *về phía trước* (vì offset là dương). Không phải byte thứ 10 tính từ đầu tệp. * **B. Đoạn lệnh `fseek(f, 10, SEEK_END);` định vị con trỏ tới cuối tệp.** * Sai. Như đã giải thích ở phương án A, `fseek(f, 10, SEEK_END)` di chuyển con trỏ 10 byte *từ* cuối tệp. * **C. Giả sử tệp có n cấu trúc, lệnh `fseek(f, n, SEEK_SET)` sẽ đặt con trỏ tới cấu trúc cuối cùng của tệp.** * Sai. Lệnh `fseek(f, n, SEEK_SET)` sẽ di chuyển con trỏ đến byte thứ `n` *từ đầu tệp*. Nó không đảm bảo rằng con trỏ sẽ trỏ tới cấu trúc cuối cùng. Để trỏ đến cấu trúc cuối cùng cần phải nhân n với kích thước của mỗi struct. * **D. Giả sử tệp có n cấu trúc, lệnh `fseek(f, n, SEEK_CUR);` sẽ không làm thay đổi vị trí con trỏ của tệp.** * Sai. `SEEK_CUR` sử dụng vị trí hiện tại của con trỏ làm điểm bắt đầu. Câu lệnh này sẽ di chuyển con trỏ tệp đi `n` byte so với vị trí hiện tại. Chỉ khi n=0 thì con trỏ mới không bị thay đổi. **Kết luận:** Không có đáp án nào đúng trong các phương án đã cho.

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