Có thể rất lớn và chi phụ thuộc vào dung lượng đĩa Hướng dẫn giải Kiểu dữ liệu tệp có những đặc điểm sau: + Được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt nguồn điện.. + Lượ[r]
Trang 1TỆP VÀ THAO TÁC VỚI TỆP
1 Lý thuyết cần nhớ
1.1 Vai trò và đặc điểm kiểu tệp
- Vai trò: Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài để sử dụng về sau VD: Đĩa cứng, đĩa
mềm, đĩa CD, USB,
- Đặc điểm: Không bị mất khi ngắt điện, lượng thông tin lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc
vào dung lượng bộ nhớ ngoài
1.2 Khai báo biến tệp: Var <tên biến tệp> : Text ;
1.3 Thao tác với tệp:
1.4 Một số hàm thường dùng đối với tệp văn bản:
- Hàm EOF(<tên biến tệp>);
- Hàm EOLN(<tên biến tệp>);
2 Luyện tập
Câu 1: Dữ liệu kiểu tệp được lưu ở đâu?
A được lưu trữ trên ROM
B được lưu trữ trên RAM
C chỉ được lưu trữ trên đĩa cứng
D được lưu trữ trên bộ nhớ ngoài
Hướng dẫn giải
Assign(<biến tệp>, <tên tệp>);
Rewrite(<biến tệp>);
Read(<biến tệp>,<danh sách biến>);
Close(<biến tệp>);
Reset(<biến tệp>);
Write(<biến tệp>,<danh sách kết quả>);
Đọc Ghi
Assign(<biến tệp>, <tên tệp>);
Rewrite(<biến tệp>);
Read(<biến tệp>,<danh sách biến>);
Close(<biến tệp>);
Reset(<biến tệp>);
Write(<biến tệp>,<danh sách kết quả>);
Đọc Ghi
Trang 2Dữ liệu kiểu tệp được lưu trữ ở bộ nhờ ngoài (đĩa mềm, đĩa cứng, CD, thiết bị nhớ Flash…) và không bị
mất đi khi tắt nguồn điện
Đáp án D
Câu 2: Phát biểu nào đúng về dữ liệu kiểu tệp?
A Sẽ bị mất hết khi tắt máy
B Sẽ bị mất hết khi chương trình thực hiện xong
C Được lưu trữ lâu dài trên bộ nhớ ngoài
D Không bao giờ bị mất
Hướng dẫn giải
Dữ liệu kiểu tệp được lưu trữ ở bộ nhờ ngoài (đĩa mềm, đĩa cứng, CD, thiết bị nhớ Flash…) và không bị
mất đi khi tắt nguồn điện
Đáp án D
Câu 3: Lượng dữ liệu lưu trữ trên tệp có đặc điểm ra sao?
A Không được lớn hơn 8Kb
B Không được lớn hơn 128Mb
C Không được lớn hơn 1Gb
D Có thể rất lớn và chi phụ thuộc vào dung lượng đĩa
Hướng dẫn giải
Kiểu dữ liệu tệp có những đặc điểm sau:
+ Được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt nguồn điện
+ Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng của đĩa
Đáp án D
Câu 4: Trong Pascal, để khai báo biên tập văn bản là sử dụng cú pháp nào?
A Var < tên tệp >: text;
B Var < tên biến tệp >text;
C Var < tên tệp > string;
D Var < biến tệp > string;
Hướng dẫn giải
Khai báo biến tệp văn bản có dạng Var < tên biến tệp >:text;
Trang 3Đáp án B
Câu 5: Trong Pascal, để khai báo hai bên tệp văn bản f1, f2 ta viết câu lệnh ra sao?
A var f1, f2: text;
B var f1,f2: txt;
C var f1.txt, f2.txt;
D var f1.txt; f2.txt;
Hướng dẫn giải
Trong Pascal, để khai báo hai bên tệp văn bản f1, f2 ta viết câu lệnh var f1, f2: text;
Đáp án A
Câu 6: Để gán tên tệp cho biến tệp ta sử dụng câu lệnh nào?
A < biến tệp > := < tên tệp >;
B < tên tệp > =< biến tệp >;
C assign (< biến tệp > < tên tệp >);
D assign (< tên tệp >.< biến tệp >);
Hướng dẫn giải
Để thao tác với tệp, trước hết phải gắn tên tệp với đại diện của nó là biến tệp bằng thủ tục:
Assign (< biến tệp > < tên tệp >);
Đáp án C
Câu 7: Để gán tệp KETQUA.TXT cho biến tệp f ta sử dụng câu lệnh nào?
A f:='KETQUA.TXT';
B 'KETQUA.TXT':=f;
C assign(f, 'KETQUA.TXT');
D assign('KETQUA.TXT',f);
Hướng dẫn giải
Để thao tác với tệp, trước hết phải gắn tên tệp với đại diện của nó là biến tệp bằng thủ tục:
Assign(<biến tệp>,<tên tệp>);
→ assign(f, 'KETQUA.TXT'); là phép gán đúng
Đáp án C
Trang 4Câu 8: Để đọc dữ liệu từ tệp văn bản, ta có thể sử dụng thủ tục nào?
A read (< tên tệp >, < danh sách biến >);
B read (< biến tệp >, < danh sách biến >);
C Real (< tên tệp >, < danh sách biến >);
D Real (< biến tệp >, < danh sách biến >);
Hướng dẫn giải
Câu lệnh dùng thủ tục để đọc:
Read (< biến tệp >, < danh sách biến >); hoặc Readln (< biến tệp >, < danh sách biến >);
Đáp án B
Câu 9: Để ghi dữ liệu vào tệp văn bản, ta có thể sử dụng thủ tục nào?
A read (< tên tệp >, < danh sách kết quả >);
B read (< biến tệp >, < danh sách kết quả >);
C write (< tên tệp >, < danh sách kết quả >);
D write (< biến tệp >, < danh sách kết quả >);
Hướng dẫn giải
Câu lệnh dùng thủ tục để ghi là:
Write (< biến tệp >, < danh sách kết quả >);
hoặc Writeln (< biến tệp >, < danh sách kết quả >);
Đáp án D
Câu 10: Mở tệp để đọc dữ liệu, ta sử dụng thủ tục nào?
A Reset (< tên tệp >);
B Reset (< biến tệp >);
C Rewrite (< tên tệp >);
D Rewrite (< biến tệp >);
Hướng dẫn giải
Mở một tệp đã gắn với một biết tệp để đọc ta dùng thủ tục:
Reset (< biến tệp >);
Đáp án B
Trang 5Câu 11: Mở tệp để ghi dữ liệu, ta sử dụng thủ tục gì?
A Reset (< tên tệp >);
B Reset (< biến tệp >);
C Rewrite (< tên tệp >);
D Rewrite (< biến tệp >);
Hướng dẫn giải
Câu lệnh dùng thủ tục mở tệp để ghi dữ liệu có dạng:
Rewrite (< biến tệp >);
Đáp án D
Câu 12: Thủ tục đóng tệp có dạng gì?
A Close(< biến tệp >);
B Close(< tên tệp >);
C Close;
D Close all;
Hướng dẫn giải
Sau khi làm việc xong với tệp càn phải đóng tệp Việc đóng tệp là đặc biệt quan trọng sau khi ghi dữ liệu, khi đó hệ thong mới thực sự hoàn tất việc hi dữ liệu ra tệp
Cú pháp:
Close(< biến tệp >);
Đáp án A
Câu 13: Nếu hàm eof (< biến tệp >) cho giá trị bằng TRUE thì con trỏ tệp nằm ở vị trí nào?
A Đầu dòng
B Cuối dòng
C Đầu tệp
D Cuối tệp
Hướng dẫn giải
Hàm eof (< biến tệp >) trả về giá trị true nếu con trỏ tệp dang chỉ tới cuối tệp (SGK/86)
Đáp án D
Trang 6Câu 14: Nếu hàm eoln (< biến tệp >) cho giá trị bằng TRUE thì con trỏ tệp nằm ở vị trí nào?
A Đầu dòng
B Cuối dòng
C Đầu tệp
D Cuối tệp
Hướng dẫn giải
Hàm eoln(< biến tệp >) trả về giá trị true nếu con trỏ tệp đang chỉ tới cuối dòng (SGK/86)
Đáp án B
Câu 15: Cho một tệp văn bản có tên là 'ATXT’ có duy nhất một dòng chứa 5 số nguyên (các số này cách
nhau ít nhất một dấu cách) Đoạn lênh nào đọc 5 số từ tệp vào mảng số nguyên A và ghi 5 số đó ra màn
hình?
A assign(f, 'A.TXT');
reset (f);
for i:=1 to 5 do read (f,a[i]);
close(f);
for i:=1 to 5 do write(a[i],' ');
B assign(f,'A TXT);
reset (f);
for i:=1 to 5 do read (f,a[i]);
close(f);
for i:=1 to 5 do read (a[i],' ');
C assign(f, 'A.TXT');
reset (f);
for i:=1 to 5 do write(f,a[i]);
close(f);
for i:=1 to 5 do write(a[i],' ');
D assign(f, 'A.TXT');
reset (f);
for i:=1 to 5 do write(f,a[i]);
Trang 7close(f);
for i:=1 to 5 do read(a[i],' ');
Hướng dẫn giải
+ Câu lệnh dùng thủ tục để đọc:
Read(< biến tệp >,< danh sách các biến >); Readln(< biến tệp >,< danh sách các biến >);
+ Câu lệnh dùng thủ tục để ghi là:
Write(< biến tệp >,< danh sách kết quả >); Writeln(< biến tệp >,< danh sách kết quả >);
B sai Vì sử dụng cả 2 lệnh đọc
C sai Vì sử dụng cả 2 lệnh ghi
D sai Vì đề bài yêu cầu đọc 5 số vào mảng sau đó mới ghi ra màn hình nên thứ tự câu lệnh: lệnh đọc
trước lệnh ghi sau
Đáp án A
Câu 16: Cho mảng A gồm 5 phần tử kiểu integer Đoạn lệnh nào ghi 5 số đó ra tệp văn bản tên là
'A.TXT' (ghi trên một dòng, các số này cách nhau đúng một dấu cách)?
A assign(f,A.TXT);
rewrite(f);
for i:=1 to 5 do write(f,a[i],' ');
close(f);
B assign(f.A.TXT);
rewrite(f);
for i:=1 to 5 do write(a[i],' ');
close(f);
C assign(f,'A.TXT');
rewrite(f);
for i:=1 to 5 do write(f,a[i],' ');
close(f);
D assign(f,'A.TXT');
rewrite(f);
for i:=1 to 5 do write(a[i],' ');
Trang 8close(f);
Hướng dẫn giải
Câu lệnh dùng thủ tục để ghi là:
Write(< biến tệp >,< danh sách các biến >); Writeln(< biến tệp >,< danh sách các biến >);
A sai Vì thiếu dấu nháy đơn trong tên tệp khi gắn tệp assign (f,'A.TXT');
B sai Vì:
+ thiếu dấu nháy đơn trong tên tệp khi gắn tệp assign (f,'A.TXT');
+ thiếu f (< biến tệp >) trong câu lệnh ghi do đề yêu cầu ghi 5 số đó ra tệp văn bản
D sai Vì thiếu f (< biến tệp >) trong câu lệnh ghi do đề yêu cầu ghi 5 số đó ra tệp văn bản
Đáp án C
Câu 17: Cho mảng A gồm 5 phần tử kiểu integer Đoạn lệnh nào ghi 5 số đó ra tệp văn bản tên là
'A.TXT' (ghi trên 5 dòng, mỗi dòng một số)?
A assign(f,'A.TXT');
rewrite(f);
for i:=1 to 5 do write(f,a[i],' ');
close(f);
B assign(f,'A.TXT');
rewrite(f);
for i:=1 to 5 do write(a[i],' ');
close(f);
C assign(f,'A.TXT');
rewrite(f);
for i:=1 to 5 do writeln(f,a[i],' ');
close(f);
D assign(f,'A.TXT');
rewrite(f);
for i:=1 to 5 do writeln(a[i],' ');
close(f);
Trang 9Hướng dẫn giải
A sai Phải sử dụng lệnh Writeln(<biến tệp>,<danh sách kết quả>); để xuống dòng lệnh Write không thực hiện xuống dòng
B sai vì dùng sai lệnh
D sai vì lệnh writeln thiếu biến tệp f do dề bài yêu cầu ghi 5 số đó ra tệp văn bản
Đáp án C
Câu 18: Cho mảng A gồm 100 phần tử kiểu integer Đoạn lệnh nào ghi 100 số đó ra tệp văn bản tên là 'A
TXT' (ghi trên một dòng, các số này cách nhau đúng một dấu cách)?
A assign(f,'A.TXT');
reset(f);
for i:=1 to 100 do read(f,a[i],' ');
close(f);
B assign(f,'A.TXT');
reset(f);
for i:=1 to 100 do write(f,a[i],' ');
close(f);
C assign(f,'A.TXT');
rewrite(f);
for i:=1 to 100 do read(f,a[i],' ');
close(f);
D assign(f,'A.TXT');
rewrite(f);
for i:=1 to 100 do write(f,a[i],' ');
close(f);
Hướng dẫn giải
A reset(f); sai vì đề bài ghi 100 số đó ra tệp văn bản nên ta phải mở tệp để ghi không phải để đọc
B sai khi thủ tục mở tệp để đọc
C sai phải sử dụng lệnh Write(< biến tệp >,< danh sách các biến >); không phải lệnh read
Đáp án D
Trang 10Câu 19: Cho mảng A gồm n phần tử kiểu integer Đoạn lệnh nào ghi ra tệp văn bản tên là 'BTXT theo
dạng: dòng đầu tiên ghi số n, dòng thứ hai ghi n số là các phần tử của mảng A (các số này cách nhau
đúng một dấu cách)?
A assign(f,B.TXT);
rewrite(f);
writeln(f,n);
for i:=1 to n do write(f,a[i],' ');
close(f);
B assign(f,'B.TXT');
rewrite(f);
writeln(f,n);
for i:=1 to n do write(f,a[i],' ');
close(f);
C assign(f,B.TXT);
reset(f);
writeln(f,n);
for i:=1 to n do write(f,a[i],' ');
close(f);
D assign(f,'B.TXT');
reset(f);
writeln(f,n);
for i:=1 to n do write(f,a[i],' ');
close(f);
Hướng dẫn giải
A sai vì gắn tên tệp thiếu dấu nháy đơn
C sai gắn tên tệp thiếu dấu nháy đơn và lệnh thủ tục mở để ghi
D sai lệnh thủ tục mở để ghi
Đáp án B
Câu 20: Xét chương trình sau:
Trang 11Var f: text;
begin
Assign (f, 'ABC.txt');
Rewrite(f);
write (f, 105+304-234);
close(f);
end
Sau khi thực hiện chương trình, tệp ABC.txt có nội dung như thế nào?
A 105+304-234
B 105304234
C 105 304 234
D 175
Hướng dẫn giải
Vì câu lệnh write không có dấu nháy đơn nên sẽ ghi ra kết quả của biểu thức
Đáp án D
Trang 12Website HOC247 cung cấp một môi trường học trực tuyến sinh động, nhiều tiện ích thông minh, nội dung bài giảng được biên soạn công phu và giảng dạy bởi những giáo viên nhiều năm kinh nghiệm, giỏi
về kiến thức chuyên môn lẫn kỹ năng sư phạm đến từ các trường Đại học và các trường chuyên danh
tiếng
xây dựng các khóa luyện thi THPTQG các môn: Toán, Ngữ Văn, Tiếng Anh, Vật Lý, Hóa Học và
Sinh Học
trường PTNK, Chuyên HCM (LHP-TĐN-NTH-GĐ), Chuyên Phan Bội Châu Nghệ An và các trường Chuyên khác cùng TS.Trần Nam Dũng, TS Phạm Sỹ Nam, TS Trịnh Thanh Đèo và Thầy Nguyễn Đức
Tấn
THCS lớp 6, 7, 8, 9 yêu thích môn Toán phát triển tư duy, nâng cao thành tích học tập ở trường và đạt điểm tốt ở các kỳ thi HSG
dành cho học sinh các khối lớp 10, 11, 12 Đội ngũ Giảng Viên giàu kinh nghiệm: TS Lê Bá Khánh
Trình, TS Trần Nam Dũng, TS Phạm Sỹ Nam, TS Lưu Bá Thắng, Thầy Lê Phúc Lữ, Thầy Võ Quốc
Bá Cẩn cùng đôi HLV đạt thành tích cao HSG Quốc Gia
các môn học với nội dung bài giảng chi tiết, sửa bài tập SGK, luyện tập trắc nghiệm mễn phí, kho tư liệu tham khảo phong phú và cộng đồng hỏi đáp sôi động nhất
miễn phí từ lớp 1 đến lớp 12 tất cả các môn Toán- Lý - Hoá, Sinh- Sử - Địa, Ngữ Văn, Tin Học và Tiếng Anh
Vững vàng nền tảng, Khai sáng tương lai
Học mọi lúc, mọi nơi, mọi thiết bi – Tiết kiệm 90%
Học Toán Online cùng Chuyên Gia
HOC247 NET cộng đồng học tập miễn phí HOC247 TV kênh Video bài giảng miễn phí