JavaScript is required

Phát biểu đúng nhất về mẫu lệnh( f là con trỏ tệp): while ((ch = fgetc(f)) != EOF)…

A.
Chọn 1 phần tử và kiểm tra xem có phải là EOF hay không.
B.
Đọc các phần tử của tệp chừng nào kí tự đó chưa phải là kí tự xuống dòng
C.
Ghi một phần tử và kiểm tra xem có phải là EOF hay không.
D.
Đọc các phần tử của tệp chừng nào kí tự đó chưa phải là kí tự kết thúc.
Trả lời:

Đáp án đúng: D


Đoạn mã `while ((ch = fgetc(f)) != EOF)` thực hiện việc đọc từng ký tự từ tệp được trỏ bởi con trỏ `f` bằng hàm `fgetc()`. Hàm `fgetc()` trả về ký tự đọc được (ép kiểu thành `int`) hoặc `EOF` (End-of-File) nếu gặp cuối tệp hoặc lỗi. Vòng lặp `while` tiếp tục chừng nào ký tự đọc được khác `EOF`. Như vậy, vòng lặp này đọc các phần tử của tệp cho đến khi gặp ký tự kết thúc tệp. Phân tích các đáp án: * **A. Chọn 1 phần tử và kiểm tra xem có phải là EOF hay không.** - Không chính xác vì `fgetc` đọc và gán giá trị cho `ch` *trước khi* kiểm tra. * **B. Đọc các phần tử của tệp chừng nào kí tự đó chưa phải là kí tự xuống dòng** - Không chính xác. Điều kiện dừng vòng lặp là gặp `EOF`, không phải ký tự xuống dòng. * **C. Ghi một phần tử và kiểm tra xem có phải là EOF hay không.** - Không chính xác, `fgetc` là hàm đọc, không phải hàm ghi. * **D. Đọc các phần tử của tệp chừng nào kí tự đó chưa phải là kí tự kết thúc.** - Chính xác. Vòng lặp tiếp tục đọc cho đến khi gặp `EOF` (kí tự kết thúc tệp). Vậy, đáp án đúng là D.

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