Thao tác đóng tệp thực hiện khi kết thúc chương trình hoặc không cần làm việc với tập tin đó nữa, Nếu không đóng tệp chương trình không báo lỗi nhưng sẽ xảy ra một số rủi ro:... Các lệnh[r]
Violet.vn/hailan2008 ĐỀ CƯƠNG ÔN TẬP HỌC KỲ II A-NỘI DUNG LÍ THUYẾT CẦN NHỚ TRONG CÁC BÀI SAU: Xem kỹ phần sau: Bài 11: Kiểu mảng Cú pháp khai báo mảng chiều trực tiếp gián tiếp Cú pháp khai báo mãng chiều: Trực tiếp: Var A : array[1 100] of integer; Var A : array[–100 0] of real; sai A[10] Var A : array[–100 100] of byte; Var A : array[–100 100] of char ; Var A : array[–20 –10] of word; sai A[-10] := -9 Khai báo gián tiếp: Type MangInt = array[1 100] of integer; Var A : MangInt; Tham chiếu tới phần tử mảng Có thể gọi trực tiếp thơng qua tên mảng số phần tử: A[10]; A[–10]; A[0]; A[10]; Var A : array[1 100] of integer; Tham chiếu đến phần tử mảng: A: 66 22 A[1]:=5; A[2]:=66; A[3]:=22; A[4]:=8; A[5]:=1; In giá trị phần tử A[3]: Writeln( A[3] ); >> kết quả: 22 Gán số 59 cho phần tử A[-1] A[-1] := 59 ; Cho mảng X có khai báo Var X : Array[1 10] of Byte; Phép gán sau đúng? A X[-10]:=-10; B X[10]:=10; C X[1]:=-256; D X[1]:=256; Bài 12 Kiểu xâu: Khái niệm xâu Là dãy ký tự Chú ý: ký tự xâu có số Ví dụ St1:= 'Truong THPT Binh Chanh' ; >> St1[10] chữ gì? Khai báo xâu Var St1 : string[50]; Xâu St1 chứa tối đa 50 ký tự Var St2 : string; Xâu St2 chứa tối đa 255 ký tự Var st3 : string[1000]; báo lỗi Ghép xâu St1 := ‘Tin hoc 11'; St2 := ‘Lap trinh Pascal’; St := St1 + st2; >> St có giá trị? ‘Tin hoc 11Lap trinh Pascal’ St := St1 + ' ' + st2; >> St có giá trị? ‘Tin hoc 11 Lap trinh Pascal’ So sánh xâu St1 > St2; kết trả phép so sánh TRUE hay FALSE? TRUE vì… Cách sử dụng thủ tục hàm: delete(); insert(); copy(); length(); pos() Pos(’n’,’bai tap on tap hoc ky II’)>> bai tap on tap hoc ky II Delete (’bai tap on tap hoc ky II’,9, 7) >> bai tap hoc ky II St1 := ‘aaaaaaaa’; St2 := ‘xxx’; aaaaaxxxaaa Insert(ST2,ST1,5);//? Hàm copy tự xem Bài 14: Kiểu liệu tệp: Phân loại tệp (2 cách phân loại) Bài 15: Thao tác tệp: Không khai thác liệu trực tiếp tập tin đĩa mà khai thác thông qua biến tệp, biến tệp đại diện cho tập tin có thật ổ đĩa Khai báo tệp Var taptin1, taptin2 : text; Gắn tên tệp Assign(taptin1, 'input.txt'); khơng có đường dẫn tập tin input.txt đặt thư mục với chương trình Assign(taptin2, 'C:\output.txt'); Mở tệp ghi Rewrite(taptin2); //chú ý tập tin 'C:\output.txt' có liệu sử dụng lệnh liệu cũ hoàn toàn để ghi liệu Mở tệp để đọc Reset(taptin1); Ghi tệp write(taptin2, 5, 6, 7); output.txt có 567 write(taptin2, 'A', 'B', 'C'); output.txt có chữ ABC write (taptin2, x, y, z); output.txt có giá trị biến x,y,z write(taptin2, 5, 6, 7); Đọc tệp Nếu tập tin input.txt có chữ số (viết cách dấu khoảng cách) : 22 99 Lệnh lấy liệu số gán cho biến x, y, z read(taptin1, x, y, z); Sau câu lệnh biến y có giá trị bao nhiêu? Chú ý: Kết thúc tập tin có ký hiệu: eof Một số chương trình dùng vịng lặp để đọc liệu tập tin Đóng tệp Thao tác đóng tệp thực kết thúc chương trình khơng cần làm việc với tập tin nữa, Nếu khơng đóng tệp chương trình khơng báo lỗi xảy số rủi ro: Các lệnh ghi liệu vào tập tin không thực Tập tin ổ đĩa bị hỏng liệu Lệnh đóng tệp: close(); VD: Close( taptin1 ); Close( taptin2 ); Bài 18: Ví dụ cách viết sử dụng chương trình Cách viết sử dụng thủ tục, khai báo phần đầu thủ tục (trang97) Cách viết sử dụng hàm,khai báo phần đầu hàm (trang 101) Hàm (function) Thủ tục (procedure) Thực số thao tác trả giá trị thơng qua tên gọi Thực số thao tác không trả giá trị Vì hàm có giá trị trả nên cần xác định kiểu giá trị trả giá trị cần trả về: nên có khai báo Thủ tục số thao tác function tenham(ds tham so): kieutrave; Ví dụ: procedure tenthutuc(danh sách tham so); function LuyThua(a, b :integer): integer; var i, gt : integer; begin gt:=1; for i:= to b gt:= gt*a; LuyThua := gt; end; Ví dụ: Chú ý: hàm có giá trị trả nên cần có biến để nhận giá trị giá trị phải biểu thức VD:Lt1 := LuyThua(4, 5); TongLt := LuyThua(3,2) + LuyThua(4,5); procedure InSoLe(N :integer); i : integer; begin for i:= to N if A[i] mod then writeln(A[i]); end; B- HỌC SINH VỀ NHÀ TỰ ÔN TÂP 60 CÂU TRẮC NGHIỆM Câu 1: Với khai báo: var A:Array[1 100] of Byte; nhóm lệnh dùng để in giá trị A hình? A for i:=1 to 100 readln(A[i]); C for i:=1 to 100 writeln(i:5); B for i:=1 to 100 writeln(A[i]:5); D for i:=1 to 100 readln(A[1]); Câu 2: Khai báo mảng chiều số nguyên sau đúng? A var A : array[1 100] of real; C var A = array[1 100] of word; B var A : array[1 100] of word; D var A = array[1 100] of real; Câu 3: Câu lệnh đúng(Với A mảng chiều gồm N phần tử số nguyên)? A write(A); B readln(A[i] :5); C readln(A); D writeln(A[i] :5); Câu 4: : Các khẳng định không mảng chiều? A Các phần tử mảng phân biệt số B Mảng có số phần tử đếm C Các phần tử mảng khác kiểu D Mảng có tên tên mảng Câu 5: Khai báo sau cú pháp A Type 1mang = array [1 100] of byte; B Type mang1c = array [1-100] of byte; Câu 6: Đoạn chương trình sau thực cho kết Var a:array[1 3] of byte; i:byte; Begin For i:=1 to a[i]:=i; For i:=1 to If a[i] mod = then Write(a[i]); End A B Câu 7: Trong Pascal, để xuất phần tử mảng A B Câu 8: Trong Pascal, để xuất phần tử mảng A B Câu 9: Đoạn chương trình sau làm gi? S:=0; For i:=1 to n S:=S+a[i]; A Đếm số phần tử mảng A B In mảng A Câu 10: C Type mang1c = array (1 100) of byte; D Type mang1c = array [1 100] of byte; gì: C D chiều ta dùng vòng For? C D chiều ta dùng vòng For? C D C Tính tổng phần tử mảng A D Nhập mảng A Cho khai báo mảng sau : Var A : array[0 10] of integer ; Phương án phần tử thứ 10 mảng ? A a(10); B a(9); C a[10]; D a[9]; Câu 11: Điền nội dung thiếu đoạn sau: for i:= to n begin write(‘a[’ ,i, ‘]=’); ……………….; end; A readln(a[i]) B readln(a[i]:5) C write(a[i]) D write(a[i]:5) Câu 12: Chương trình sau viết gì? For i:=1 to n If a[i] mod =1 then Write(a[i]); A Viết tổng mảng a C Viết tất số mảng a B Viết số lẻ mảng a D Viết số chẳn mảng a Câu 13: Cho mảng chiều A gồm n phần tử, muốn xuất giá trị mảng A hình ta dùng lệnh nào? A For i := to n read(A[i]:5); C For i := to n write(A[i]:5); B For i := to n write(A(i):5); D write(A[i]:5); Câu 14: Mảng A gồm N = phần tử: Các lệnh sau: T := 0; For i := to N T := T + A[i]; cho kết là: A T = C T = 20 B T = D T = 28 Câu 15: Đoạn chương trình sau làm gì? k:=0; For i:=1 to length(a) If a[i]='a' then k:=k+1; A Đếm số kí tự a xâu a C Đếm số kí tự trắng xâu a B Đếm số kí tự số xâu a D Đếm số kí tự xâu a Câu 16: Trong ngơn ngữ lập trình Pascal, xâu kí tự là? A Tập hợp chữ chữ số bảng chữ tiếng Anh; B Mảng kí tự; C Tập hợp chữ bảng chữ tiếng Anh; D Dãy kí tự bảng mã ASCII; Câu 17: Trong ngôn ngữ lập trình Pascal, với xâu kí tự có phép tốn là? A Phép cộng phép trừ B Phép ghép xâu phép so sánh C Phép cộng, trừ, nhân, chia D Chỉ có phép cộng Câu 18: Đoạn chương trình sau làm gì? For i:=length(a) downto write(a[i]); A Viết kí tự đầu a C Viết xâu a theo thứ tự ngược B Viết kí tự cuối a D Viết xâu a theo thứ tự Câu 19: Cho xâu S1:= ‘abcd’ S2:= ‘ABC’; S1 + S2 cho kế nào? A 'ABC abcd' B 'abcd ABC' C 'ABCabcd' D 'abcdABC' Câu 20: Cho xâu S= ‘tien hoc le’ hàm length(S) kết : A 11 B C 13 D 15 Câu 21: In xâu đảo ngược xâu a, ta viết x:= length(a); for i:= x downto ……… ; A Readln(a[i]) B Readln(a) C Write(a) D Write(a[i]) Câu 22: Cho xâu S=‘tien hoc le hau hoc van’ hàm Pos(‘hoc’,S) kết : A B C D 17 Câu 23: Cho xâu S:= ‘tien hoc le hau hoc van’ hàm Copy(S,6,3) kết : A 'hoc' B 'en ho' C 'hoc le' D 'van' Câu 24: Cho a:='tan ke' Khi tham chiếu đến ký tự 'k' ta viết nào? A a[4] B a(4) C a(5) D a[5] Câu 25: cho xâu: a:='anh hai' xâu b:='hoc tot' , thủ tục insert(a,b,1) cho kết quả: A 'anh haihoc tot' B 'hoc totanh hai' C 'anh hai hoc tot' D 'hoc tot anh hai' Câu 26: Trong ngôn ngữ Pascal, xâu là: A Mảng kí tự B Tập hợp chữ chữ số Câu 27: Cách khai báo xâu đúng? A s : array[1 255] of char; B s : File of String; Câu 28: Một xâu có tối đa kí tự? A 64 B 255 Câu 29: Xâu khơng có kí tự gọi là: A Xâu không B Xâu chứa khoảng trắng Câu 30: Phần tử xâu phần tử thứ: A B Do người lập trình khai báo Câu 31: C Tập hợp chữ từ A đến Z D Dãy kí tự bảng mã ASCII C s : char[256]; D s : string[30]; C 128 D 256 C Xâu rỗng D Khơng có loại xâu C D Khơng có số Khi khai báo tệp ta khai báo sau: A.Var tep1 : string; B.Var tep1 : integer C.Var tep1: string[30]; D Var tep1 : text; Câu 32: Giả sử tệp F1 gán tên ‘VD.DAT’ Dùng thủ tục sau để mở tệp F1 để đọc? A Reset(‘VD.DAT’); B Rewwrite(‘VD.DAT’); C Reset(F1); D Rewwrite(F1); Câu 33: Tệp mà liệu ghi dạng kí tự theo mã ASCII gọi tệp gì? A Tệp truy cập trực tiếp B Tệp có cấu trúc C Tệp văn D Tệp truy cập Câu 34: Nếu hàm EOLN() cho giá trị TRUE trỏ tệp nằm vị trí: A Đầu dịng B Cuối tệp C Cuối dòng D Đầu tệp Câu 35: Khai báo sau đúng: A CLOSE (biến tệp, tên tệp); C CLOSE (tên tệp; biến tệp); B CLOSE (biến tệp); D CLOSE (biến tệp 1, biến tệp 2, …, biến tệp n); Câu 36: Số lượng phần tử tệp A Không bị giới hạn mà phụ thuộc vào dung lượng đĩa C Không lớn 255 B Không lớn 128 D Phải khai báo trước Câu 37: Biến cục gì? A Biến khai báo CTC sử dụng chương trình B Biến khai báo chương trình sử dụng cho CTC C Biến khai báo chương trình D Biến tự không cần khai báo Câu 38: Để gán tệp có tên HOCKY2.INT cho biến tệp K2, ta phải gõ lệnh: A Assign(K2, HOCKY2.INT); C Assign(K2, ‘HOCKY2.INT’); B Assign(HOCKY2.INT, K2); D Assign(‘HOCKY2.INT’, K2); Câu 39: Dữ liệu kiểu tệp: A lưu trữ RAM C lưu trữ đĩa cứng B lưu trữ ROM D lưu trữ nhớ Câu 40: Trong khai báo sau khai báo sai: A Procedure P (n:integer ; k:real); C Procedure M (n:integer ; k:real); B Procedure P (h:char ; n:integer); D Procedure KT (M: Array[1 10] of Byte); Câu 41: Muốn khai báo x, y tham trị, z tham biến Khai báo sau ? A Procedure thamso (x : byte ; var y : byte; var z : byte ); B Procedure thamso (x : byte ; var z , y : byte); C Procedure thamso (x : byte ; y : byte; var z : byte ); D Procedure thamso (var x : byte ; var y : byte; var z : byte ); Câu 42: Chỉ câu phần đầu thủ tục : A Procedure :; B Procedure[]:; C Procedure []:; D Procedure[] ; Câu 43: Phần khơng có chương trình con? Chọn câu trả lời đúng: A Phần thân B Phần khai báo C Phần đầu D Phải có đủ phần Câu 44: Tham số hình thức Hàm có loại: A Không phân loại B loại C loại D loại Câu 45: Sự khác tham trị tham biến khai báo chương trình là: A Tham trị phải định nghĩa sau từ khóa Type B Tham trị phải khai báo sau từ khóa Var C Khơng khác D Tham biến phải có từ khóa Var đứng trước Cho đoạn chương trình sau: (Áp dụng cho câu 46->52) Program thi_hk_2; Var a,b,c : real; Procedure vidu (Var x: integer; y,z: real ):real; Var tong: real; Begin x:= x+1; y:=y - x; z:=z + y; tong:=x+y+z; Writeln(x,’ ‘,y,’ ‘,z,’ ‘,tong); End; BEGIN a:=3; b:=4; c:=5; vidu(a,b,c); Writeln(a,’ ‘,b,’ ‘,c); Readln END Câu 46: Chương trình có lỗi là: A Biến “tong” khai báo sai kiểu B Thủ tục kiểu liệu C Khơng xuất kết hình D Khơng có lệnh gọi chương trình Câu 47: Tham số hình thức chương trình là: A tong B a, b, c C.x, y, z D 3, 4, Câu 48: : Trong chương trình A x tham trị, y, z tham biến B x tham biến, y, z tham trị C x, y tham trị, z tham biến D x, y tham biến, z tham trị Câu 49: Biến tồn cục chương trình là: A Readln B Writeln(a,’ ‘,b,’ ‘,c); C a:=3; b:=4; c:=5; D Vidu(a,b,c); Câu 50: Lời gọi chương trình chương trình là: A tong B a, b, c C.x, y, z D vidu Câu 51: Nếu bỏ qua lỗi chương trình kết xuất hình là: A (4, 0, 5, 9) B (4, 4, 5, 13) C.(4, 4, 5, 9) D (4, 0, 5, 13) Câu 52: Nếu nhập a:= 6, b:= 9, c:= 10 kết xuất hình là: A (7, 9, 10, 21) B (7, 2, 12, 21) C.(7, 2, 10, 19) D (6, 2, 12, 20) C- TỰ LUẬN Nội dung thực hành số 4, ,6,7 skg HẾT ... Pos(’n’,’bai tap on tap hoc ky II’)>> bai tap on tap hoc ky II Delete (’bai tap on tap hoc ky II’,9, 7) >> bai tap hoc ky II St1 := ‘aaaaaaaa’; St2 := ‘xxx’; aaaaaxxxaaa Insert(ST2,ST1,5);//?... 38: Để gán tệp có tên HOCKY2.INT cho biến tệp K2, ta phải gõ lệnh: A Assign(K2, HOCKY2.INT); C Assign(K2, ‘HOCKY2.INT’); B Assign(HOCKY2.INT, K2); D Assign(‘HOCKY2.INT’, K2); Câu 39: Dữ liệu kiểu... Câu 22 : Cho xâu S=‘tien hoc le hau hoc van’ hàm Pos(? ?hoc? ??,S) kết : A B C D 17 Câu 23 : Cho xâu S:= ‘tien hoc le hau hoc van’ hàm Copy(S,6,3) kết : A ''hoc'' B ''en ho'' C ''hoc le'' D ''van'' Câu 24 :