Ôn tập học kì II môn Tin học 11 - Năm học 2019-2020 - Trường THPT Mang Thít

pdf 8 trang quynhnhu 02/10/2025 3130
Bạn đang xem tài liệu "Ôn tập học kì II môn Tin học 11 - Năm học 2019-2020 - Trường THPT Mang Thít", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfon_tap_hoc_ki_ii_mon_tin_hoc_11_nam_hoc_2019_2020_truong_thp.pdf

Nội dung tài liệu: Ôn tập học kì II môn Tin học 11 - Năm học 2019-2020 - Trường THPT Mang Thít

  1. TRƯỜNG THPT MANG THÍT ÔN TẬP HỌC KÌ II TIN HỌC 11 NĂM HỌC 2019-2020 BÀI 11. KIỂU DỮ LIỆU MẢNG MỘT CHIỀU Câu: 1 Thế nào là khai báo biến mảng gián tiếp A) Khai báo mảng hai chiều B) Khai báo mảng xâu kí tự C) Khai báo mảng của các bản ghi D) Khai báo thông qua kiểu mảng đã có Câu: 2 Phát biểu nào dưới đây về kiểu mảng là phù hợp ? A) Độ dài tối đa của mảng là 255 B) Là một dãy hữu hạn các phần tử cùng kiểu C) Mảng không thể chứa kí tự D) Là một tập hợp các số nguyên Câu: 3 TP, khi nhập dữ liệu của cỏc phần tử của mảng A một chiều gồm n phần tử, ta chọn A) For i:=1 to n do Begin write('A[',i,']='); Readln; End; B) For i:=1 to n do Begin write('A[',i,']='); Readln(A[i]); End; C) For i:=1 to n do Begin write('A[',i,']='); Readln(A); End; D) For i:=1 to n do write('A[',i,']='); Readln(A[i]); Câu: 4 Chọn phát biểu đúng cho biến cou trong đoạn chương trỡnh sau: cou:=0; For i:=1 to N do if a[i] mod i =0 then cou:=cou+1; A) Tổng các phần tử chẳn. B) Đếm các phần tử là bội số của vị trí nó trong mảng a. C) Đếm các phần tử chẳn. D) Tổng các phần tử lẻ. Câu: 5 Cho khai báo sau: Var b: array[1..10] of integer; Chọn lệnh gán đúng sau đây: A) b[1]:= 15; B) b[5]:= 8.5; C) b:= 8; D) b[11]:= 10; Câu: 6 Chọn phát biểu đúng cho biến cou trong đoạn chương trỡnh sau: t:=0; For i:=1 to N do if a[i] mod 2 =0 then t:=t+a[i]; A) Tổng các phần tử chẳn. B) Tổng các phần tử trong mảng a C) Đếm các phần tử chẳn. D) Đếm các phần tử trong mảng a. Câu: 7 Trong ngôn lập trình Tp, với khai báo như sau : Type mang=array[1..100] of integer; Var a,b:mang; c:array[1..100] of integer; Câu lệnh nào dưới đây là hợp lệ? A) c:=b; B) b:=c; C) a:=c; D) a:=b; Câu: 8 Phát biểu nào sau đây về mảng là không chính xác A) Xâu kí tự cũng có thể xem như là một loại mảng B) Chỉ số của mảng không nhất thiết bắt đầu từ 1 C) Có thể xây dựng mảng nhiều chiều D) Độ dài tối đa của mảng là 255 Câu: 9 Trong ngôn ngữ lập trình TP, về mặt cú pháp câu lệnh nào sau đây là đúng ? A) Type one1=array[1..100] of integer; B) Type one=array[1-100] of char ; C) Type 1one=array[1..100] of real; D) Type one1=array(1..100) of integer; Câu: 10 Trong ngôn ngữ lập trình TP, trong quá trình nhập dữ liệu của mảng một chiều A, để các phần tử hiển thị như trong cửa sổ chương trình ta viết lệnh như sau : A) Write(‘A[i]=’);Readln(A[i]); B) Write(“A[“,i,”]=”);Readln(A[i]); C) Write(‘A[‘,i,’]=’);Readln(A[i]); D) Write(‘A[‘i’]=’);Readln(A[i]); Câu: 11 Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần A) khai báo chỉ số bắt đầu và kết thúc của mảng B) không cần khai báo rõ, hệ thống sẽ tự xác định C) khai báo một hằng số là số phần tử của mảng D) khai báo chỉ số kết thúc của mảng Câu: 12 TP, để đổi giá trị 2 phần tử mảng 1 chiều A tại vị trí i và j ta chọn như sau: A) A[i]:=Tag; A[i]:=A[j]; A[j]:=Tag; B) Tag:=A[i]; A[i]:=A[j]; A[j]:=Tag; C) Tag:=A[i]; A[j]:=A[i]; A[j]:=Tag; D) Tag:=A[i]; A[i]:=A[j]; Tag:=A[j]; Câu: 13 Xét trên biến k của đoạn chương trình sau? Với mảng A=2 4 5 1 9 k:=1; For i:=1 to 5 do if a[k]>=a[i] then k:=i; Kết thúc đoạn chương trình thì biến k mang giá trị là? A) K=1 B) K=4 C) K=2 D) K=9 Câu: 14 TP, khi sắp xếp giảm các phần tử của mảng A một chiều gồm n phần tử, ta chọn A) For i:=1 to N do For j:=I to n do begin if A[i]>A[j] then tag:=A[i]; A[i]:=A[j]; B) For i:=1 to N -1 do begin if A[i]<A[j] then Begin tag:=A[i]; A[i]:=A[j]; A[j]:=tag; end; end; C) For i:=1 to N -1 do For j:=I+1 to n do begin if A[i]<A[j] then Begin tag:=A[i]; A[i]:=A[j]; A[j]:=tag; end; end; D) For i:=1 to N -1 do For j:=I+1 to n do Begin tag:=A[i]; A[i]:=A[j]; A[j]:=tag; end; Câu: 15 TP, đoạn CT sau thực hiện việc nào trong các việc sau (A là mảng số có N ptử)? T:=0; For i:=1 to n do T:=T+A[i]; A) Tính tổng các phần tử của mảng A B) Không thực hiện việc cả C) In ra màn hình mảng A D) Đếm số phần tử của mảng A Câu: 16 Phương án nào dưới đây chỉ phần tử thứ 5 của mảng ? Var a : array[0..10] of integer ; A) a[4]; B) a(5); C) a(4); D) a[5]; 1
  2. TRƯỜNG THPT MANG THÍT Câu: 17 Đoạn chương trình sau thực hiện việc gì? Var a : array[0..50] of real ;k := 0 ;for i := 1 to 50 do if a[i] > a[k] then k := i ; A) Tìm phần tử nhỏ nhất trong mảng B) Tìm chỉ số của phần tử nhỏ nhất trong mảng C) Tìm chỉ số của phần tử lớn nhất trong mảng D) Tìm phần tử lớn nhất trong mảng Câu: 18 Xét trên biến t của đoạn chương trình sau? T:=1; For i:=1 to N do if a[t]<a[i] then t:=i; A) T là chỉ số phần tử lớn nhất trong mảng. B) T là chỉ số của phần tử nhỏ nhất mảng. C) T là giá trị phần tử lớn nhất trong mảng a. D) T là tổng các phần tử lớn hơn a[i]. Câu: 19 TP, khi xuất dữ liệu của cỏc phần tử của mảng A một chiều gồm n phần tử, ta chọn A) For i=1 to n do readln(A[i]); writeln; B) For i:=1 to n do write(A); writeln; C) For i=1 to n do write([i]:5); writeln; D) For i:=1 to n do write(A[i]:5); writeln; Câu: 20 TP, chọn khai báo mảng đúng trong các phương án sau: A) Type good1= array of integer; B) Type good1= array[1..5] of integer; var C: good1; C) Var C: good1; D) Type good1= array[1..5] of integer; C: good1; Câu: 21 Kiểu chỉ số của mảng một chiều không thể là kiểu nào? A) Real; B) Boolean. C) Integer D) Byte Câu: 22 Chọn phát biểu đúng cho biến t trong đoạn chương trỡnh sau: t:=0; For i:=1 to N do if (a[i] mod 2<>0) and (a[i]<25) then t:=t+1; A) Đếm các phần tử bé hơn 25 trong mảng a. B) Đếm các phần tử lẻ, bé hơn 25 trong mảng a. C) Tổng các phần tử bé hơn 25 trong mảng a. D) Tổng các phần tử có giá trị lẻ trong mảng a. Câu: 23 TP, khi tìm số lớn nhất của các phần tử của mảng A một chiều gồm n phần tử, ta chọn A) max:=1; For i:=1 to N do If A > max then max:=A[i]; write('so lon ',max); B) max:=A[2]; For i:=2 to N do If A[i] > max then max:=A; C) For i:=2 to N do If A[i] > max then max:=A[i]; D) max:=A[1]; For i:=2 to N do If A[i] > max then max:=A[i]; write('so lon ',max); Câu: 24 TP, mảng A có giá trị như sau: A[1], A[2], A[5] có giá trị lần lượt là 2, -3, 5, 7, -1 Tìm câu lệnh để in giá trị tất cả các phần tử trong mảng ra màn hình: A) for i:= 1 to 5 do write(A[2]); B) for i:= 1 to 5 do write(A[i]); C) for i:= 1 to 5 do write(A[1]); D) for i:= 1 to 5 do write(A[5]); Câu: 25 TP, Hàm random(10) có ý nghĩa : A) tạo ra các số ngâu nhiên khoảng từ 0 đến 10 B) tạo ra các số ngâu nhiên khoảng từ 0 đến 9 C) tạo ra các số ngâu nhiên khoảng từ 1 đến 9 D) tạo ra các số ngâu nhiên khoảng từ 1 đến 10 BÀI 12. KIỂU DỮ LIỆU XÂU: Câu: 26 Cho s1:=’PLEIKU’; s2:=’BienHo ’; Lệnh insert(s1,s2,3); cho kết qủa là: A) PLEIKUBienHo B) BiePLEIKUnHo C) BiPLEIKUenHo D) BienHoPLEIKU Câu: 27 Trong NNLT Tp, hàm length(s) cho kết quả là gì ? A) Số kí tự hiện có của xâu s không tính dấu cách; B) Số kí tự hiện có của xâu s; C) Độ dài xâu s khi khai báo D) Số kí tự của xâu không tính dấu cách cuối cùng; Câu: 28 Cho s:=’123456789’ hàm copy(s,2,3) cho giá trị bằng; A) 234 B) ‘234’ C) 34 D) ‘34’ Câu: 29 Trong ngôn ngữ lập trình TP, xâu kí tự không có kí tự nào gọi là xâu ? A) Xâu rỗng B) Xâu không C) Xâu trắng D) Không phải là xâu kí tự Câu: 30 Biểu thức quan hệ nào dưới đây cho giá trị FALSE ? A) ‘ABCDOR’ < ‘ABDOR’; B) ‘MOOR’ < ‘LOOK’; C) ‘ABCACD’ < ‘ABCDAB’; D) ‘MOOR’ < ‘MOORK’; Câu: 31 Đoạn chương trình sau thực hiện việc gì ? X :=length(s) ; For i :=x downto 1 do If s[i]=’ ‘ then delete(s,i,1) ; {‘ ‘ là một dấu cách} A) Xoá dấu cách tại vị trí cuối cùng của xâu s B) Xoá dấu cách đầu tiên trong xâu kí tự s C) Xoá dấu cách thừa trong xâu kí tự s D) Xoá mọi dấu cách của xâu s Câu: 32 Trong NNLT TP, thủ tục Insert(s1,s2,n) thực hiện công việc gì ? A) Không thực hiện việc nào trong ba việc trên B) Chèn xâu s2 vào xâu s1 bắt đầu từ vị trí n của xâu s1; C) Chèn thêm xâu s1 vào xâu s2 bắt đầu từ vị trí n của xâu s2; D) Chèn thêm xâu s1 vào xâu s2 bắt đầu từ vị trí n của xâu s1; Câu: 33 So sánh 2 xâu sau : xâu a = ‘THANH PHO‘ xâu b = ‘ THANH PHO HO CHI MINH‘ A) Xâu a >xâu b B) Xâu a < xâu b C) Xâu a =xâu b D) Một kết quả khác Câu: 34 Trong NNLT TP, đoạn chương sau thực hiện công việc gì ? d :=0 ; For i:=1 to length(S) do if (S[i]>=’0’) and (S[i]<=’9’) then d:=d+1; A) Xoá đi các chữ số có trong S; B) Đếm số kí tự là kí tự số trong xâu S; 2
  3. TRƯỜNG THPT MANG THÍT C) Đếm xem có bao nhiêu loại kí tự số trong xâu S; D) Xoá đi chữ số đầu tiên có trong S; Câu: 35 Cho xâu S1 = ‘ U ‘ và S2 = ‘ QUE HUONG ‘ Hàm Pos(S1, S2) cho kết quả là gì? A) 1 B) 6 C) 2 D) 5 Câu: 36 Trong NNLT Tp để xoá đi kí tự cuối cùng xâu kí tự S ta viết : A) Delete(S,i,1); {i là biến có giá trị bất kì} B) Delete(S,1,i); {i là biến có giá trị bất kì} C) Delete(S, length(S),1); D) Delete(S,1,1); Câu: 37 Trong NNLTTP đoạn chương trình sau thực hiện công việc gì ? S1:=’anh’;S2:=’em’;i:=pos(S1,S); While i<>0 do Begin Delete(S,i,3) ; Insert(S2,S,i) ; i :=pos(S1,S) ; End ; A) Thay toàn bộ cụm từ ‘anh’ trong xâu S bằng cụm từ ‘em’; B) Thay toàn bộ cụm từ ‘em’ trong xâu S bằng cụm từ ‘anh’; C) Thay cụm từ ‘anh’ đầu tiên trong xâu S bằng cụm từ ‘em’; D) Thay cụm từ ‘em’ đầu tiên trong xâu S bằng cụm từ ‘anh’; Câu: 38 Cho xâu a = ‘VUI DE HOC‘ . Hàm Length(a) cho kết quả bao nhiêu kí tự? A) 11 B) 10 C) 5 D) 8 Câu: 39 Trong NNLT TP, để tìm vị trí xuất hiện đầu tiên của xâu ‘LOVE’ trong S ta có thể viết bằng cách nào trong các cách sau ? A) X:=Pos(‘LOVE’,S); B) X:=Pos(S, ‘LOVE’); C) S1:= ‘LOVE’; I:=Pos(S1, ‘LOVE’); D) X:=Pos(‘LOVE’, ‘LOVE’); Câu: 40 Trong NNLT TP, hàm Upcase(ch) cho kết quả là : A) Chữ cái in hoa tương ứng với ch B) Biến ch thành chữ thường; C) Xâu ch gồm toàn chữ hoa; D) Xâu ch gồm toàn chữ thuờng; Câu: 41 Trong ngôn ngữ lập trình Tp thủ tụ Delete(S,a,b) thực hiện việc gì trong công việc sau ? A) Xoá trong xâu S, b kí tự bắt đầu từ vị trí a B) Xoa trong xâu a, b kí tự từ vị trí S C) Xoá trong xâu kí tự S, a kí tự bắt đầu từ vị trí b D) Xoá trong xâu b, S kí tự bắt đầu từ vị trí a Câu: 42 TP, để in một xâu ký tự ra mhỡnh theo thư từ ngược lại của các ký tự trong xõu (vd: abed thỡ in là deba), đoạn ctrỡnh nào sau đây thhiện việc này? A) For i := 1 To Length(S) Do Write(S[i]); B) For i := 1 To Length(S) Div 2 Do Write(S[iJ); C) For i := Length(S) Downto 1 Do Write(S); D) For i := Length(S) Downto 1 Do Write(S[i]); Câu: 43 Cho đoạn chương trình sau S :=’123456789’ ; Delete(S, 2,4) ; Kết quả S sau khi thực hiện đoạn chương trình trên là : A) ‘16789’ B) ‘2345’ C) ‘12’ D) ‘1234’ Câu: 44 Trong NNLT TP hai xâu kí tự được so sánh dựa trên : A) Mã của từng kí tự trong các xâu lần lượt từ trái sang phải; B) Độ dài thực sự của hai xâu C) Độ dài tối đa của hai xâu; D) Số lượng các kí tự khác nhau trong xâu; Câu: 45 Trong ngôn ngữ lập trình Tp, khai báo nào sai trong khai báo xâu sau ? A) X1:string[100]; B) X1:string[2]; C) S:string[256]; D) S: string; Câu: 46 Trong NNLT TP, đoạn chương trình sau thực hiện công việc gì ? d :=0 ; For i:=1 to length(S) do if S[i]=’ ‘ then d:=d+1; A) Xoá đi các kí tự số; B) Đếm số dấu cách có trong xâu; C) Đếm số kí tự có trong xâu; D) Xoá đi các dấu cách trong xâu; Câu: 47 Trong ngôn ngữ lập trình Tp xâu kí tự là : A) Tập hợp các chữ cái và các chữ số trong bảng chữ cái tiếng Anh B) Tập hợp các chữ cái trong bảng chữ cái tiếng Anh C) Dãy các kí tự trong bảng mã ASCII D) Mảng các kí tự Câu: 48 TP, xâu ký tự có tối đa? A) 16 ký tự; B) 255 ký tự. C) 256 ký tự; D) 8 ký tự; Câu: 49 Thủ tục insert(‘123’,’abc’,2) sẽ cho xâu kết quả nào sau đây? A) 12abc B) a123bc C) 1abc23 D) ab123 Câu: 50 Trong NNLT TP với xâu kí tự ta có thể : A) Gán một kí tự cho biến xâu; B) So sánh hai xâu kí tự; C) Gán biến xâu cho biến xâu; D) Cả 3 việc này; Câu: 51 Đoạn chương trình sau cho kết quả là gì? k : = length(a); b : = ‘ ‘ ; For i:=1 to k do if a[i] <> ‘ ‘ then b : = b + a[i]; A) Kiểm tra 2 xâu có trùng nhau không B) Xuất ra xâu ngược với xâu a C) Tạo xâu mới từ xâu cũ loại bỏ dấu cách D) Một kết quả khác 3
  4. TRƯỜNG THPT MANG THÍT Câu: 52 Sau khi thực hiện lệnh: Insert (‘ABCD’, ‘M_N’, 2); sẽ cho kết quả là: A) ‘MABCD_N’ B) ‘AM_NBCD’ C) ‘ABM_NCD’ D) ‘M_ABCDN’ Câu: 53 Cho A= ’abc’; B= ’ABC’; khi đó A+B cho kết quả nào? A) ‘abcABC’ B) ‘AaBbCc’ C) ‘aAbBcC’ D) ‘ABCabc’ Câu: 54 Cho s:=’500 ki tu’; hàm length(s) cho giá trị bằng. A) ‘500’ B) 9 C) ‘5’ D) 500 Câu: 55 Cho s=’Kon Tum VietNam’, hàm length(s) cho giá trị bằng: A. 16 B. 15 C. ‘16’ D. ‘15’ Câu: 56 Trong NNLT TP đoạn chương trình sau làm công việc gì ? I :=Pos(‘ ‘,X) ; While i<>0 do Begin Delete(X,i,1) ; I :=Pos(‘ ‘,X) ; End ; A) Xoá tất cả các dấu cách phía bên phải của xâu X; B) Xoá tất cả các dấu cách phía bên trái của xâu X; C) Xoá tất cả các dấu cách ở hai đầu của xâu X; D) Xoá tất cả các dấu cách trong xâu X; Câu: 57 Trong NNLT Tp đoạn chương trình sau thực hiện công việc gì ? (giá trị của biến dem) : Dem :=0 ; For ch :=’a’ to ‘z’ do If pos(ch, s)<>0 then dem :=dem +1 ; A) Đếm số lương kí tự khác dấu cách của xâu S B) Đếm số lượng kí tự chữ cái in hoa của xâu S C) Đếm số lượng kí tự chữ cái in thường trong xâu S D) Đếm số lượng chữ cái in thường khác nhau có trong xâu S Câu: 58 Trong ngôn ngữ lập trình TP phần tử đầu tiên của xâu kí tự mang chỉ số là ? A) Do người lập trình khai báo B) 1 C) Không có chỉ số D) 0 Câu: 59 Trong TP, sau khi thực hiện xong đoạn chương trình sau, biến found có giá trị là gì ?(S là biến xâu kí tự). Found := 0 ; x :=length(S) ; For i :=1 to x div 2 do If s[i]<>s[x-i+1] then found :=1 ; A) Found bằng 0 nếu s là xâu không đối xứng B) Found bằng 1 nếu s là xâu đối xứng C) Found bằng 0 nếu s là xâu đối xứng D) Không có kết quả nào trong ccá kq trên Câu: 60 Trong NNLT Tp để xoá đi kí tự đầu tiên của xâu kí tự S ta viết : A) Delete(S,1,1); B) Delete(S,1,i); {i là biến có giá trị bất kì} C) Delete(S,i,1); {i là biến có giá trị bất kì} D) Delete(S, length(S),1); Câu: 61 Với xâu kí tự có phép toán là : A) Phép ghép xâu và phép so sánh; B) Phép cộng và phép trừ; C) Phép cộng, trừ, nhân, chia; D) Chỉ có phép cộng BÀI 14 -15: KIỂU DỮ LIỆU TỆP VÀ THAO TÁC VỚI TỆP: Câu: 62 Để thao tác với tệp A) Ta nhất thiết phải gán tên tệp cho tên biến tệp. B) Ta có thể gần tên tệp cho tên biến tệp, hoặc sử dụng trực tiếp tên tệp cũng được. C) Ta nhất thiết phải sử dụng trực tiếp tên tệp trong chương trình. D) Ta nên sử dụng trêu tiếp tên tệp trong chương trình. Câu: 63 Rewrite( ) ;có ý nghĩa gì ? A) thủ tục đọc dữ liệu từ tệp. B) thủ tục mở tệp để ghi dữ liệu. C) thủ tục đóng tệp. D) thủ tục ghi dữ liệu vào tệp. Câu: 64 Đoạn chương trình sau thực hiện công việc gì? Assign(f,’D:\OUT.txt’); Rewrite(f); A) Mở tệp OUT.txt chuẩn bị đọc; B) Tạo/mở 1 tệp có tên là OUT.txt với nội dung rỗng ; C) Mở tệp OUT.txt; D) Viết dữ liệu vào tệp OUT.txt; Câu: 65 Nếu hàm eof( ) cho giá trị bằng true thì con trỏ tệp nằm ở vị trí A) đầu tệp. B) cuối dòng. C) đầu dòng. D) cuối tệp. Câu: 66 Assign( ,<tên tệp) ; có ý nghĩa gì ? A) Thủ tục đóng tệp. B) Khai báo biến tệp. C) Thủ tục mở tên để đọc dữ liệu. D) Thủ tục gán tên tệp cho tên tệp cho tên biến tệp. Câu: 67 Cho s1:=’MANG THIT’; s2:=’THPT ’; Sau khi thực hiện các lệnh Delete(s2,1,2); insert(s2,s1,1); cho xâu S1 kết quả là gì? A) TH MANG THIT B) PT MANG THIT C) MANG THIT TH D) THPT MANG THIT Câu: 68 Công thức nào sau đây là đúng? (st1, st2 các biến kiểu xâu và m, n các biến kiểu số nguyên). A) Delete(st1,m,n); B) Delete(m,st1,n) C) Delete(st1,st2,m); D) Delete(m,n,st1) Câu: 69 Cho chuỗi st:=’ BBBABBA’; Kết quả in ra là gì sau khi thực hiện 2 lệnh: While st [1 ]= ‘B’ do Delete(st,1,1); Write(st); A) ABBA B) BBB C) AA D) BBABBA Câu: 70 Đoạn chương trình sau, cho kết quả trên màn hình là gì? Var st:string; Begin 4
  5. TRƯỜNG THPT MANG THÍT St:=’Nguyen Van A’; Delete(st,pos(‘V‘,st)-1,6); Write(st); End. A) Van A B) Nguyen C) Nguyen Van A D) Cả 3 câu đều đúng. Câu: 71 Trong Pascal để khai báo hai biến tệp văn bản ta viết A) Var tep1, tep2:Text; B) Var tep1 tep2:Text; C) Var tep1: tep2:Text; D) Var tep1; tep2:Text; Câu: 72 Để ghi kết quả vào tệp văn bản ta có thể sử dụng thủ tục A) Write( , ); B) Read( , ); C) Write ( , ); D) Read( , ); Câu: 73 Nếu hàm eoln( ) cho giá trị bằng true thì con trỏ tệp nằm ở vị trí A) đầu dòng. B) cuối dòng. C) đầu tệp. D) cuối tệp. Câu: 74 Close( ) ; có ý nghĩa gì ? A) Khai báo biến tệp. B) Thủ tục mở tên để đọc dữ liệu. C) Thủ tục gán tên tệp cho tên tệp cho tên biến tệp. D) Thủ tục đóng tệp. Câu: 75 Để gắn tệp BT.DAT cho biến tệp f1 chúng ta sử dụng Câu lệnh A) assign (‘BT.DAT’, f1); B) assign(f1, 'BT.DAT'); C) f1:= 'BT.DAT'; D) BT.DAT:=f1; Câu: 76 Để gắn tên tệp cho tên biến tệp ta sử dụng Câu lệnh: A) assign( , ); B) assign( , ); C) := ; D) :- ; Câu: 77 Trong Pascal để khai báo biến tệp văn bản ta sử dụng cú pháp A) Var : String; B) Var : String; C) Var : Text; D) Var : Text; Câu: 78 Vị trí của con trò tệp sau lời gọi thủ tục Reset A) nằm ngẫu nhiên ở bất kỳ vị trí nào B) nằm ở cuối tệp. C) nằm ở đầu tệp D) nằm ở giữa tệp. Câu: 79 Cách thức truy cập tệp văn bản là A) truy cập ngẫu nhiên. B) vừa truy cập tuần tự vừa truy cập trực tiếp. C) truy cập tuần tự. D) truy cập trực tiếp. Câu: 80 TP, tệp mà dữ liệu được ghi dưới dạng các ký tự theo mã ASCII A) Tệp văn bản B) Tệp có cấu trúc C) Tệp truy cập tuần tự D) Tệp truy cập trực tiếp Câu: 81 Dữ liệu kiểu tệp A) sẽ bị mất hết khi tắt điện đột ngột. B) sẽ bị mất hết khi tắt máy. C) không bị mất khi tắt máy hoặc mất điện. D) Tất Cả các câu đều sai. Câu: 82 Cho mảng A gồm 5 phần tử kiểu integer. Đoạn lệnh nào đúng cho việc ghi 5 số đó ra tệp văn bản ‘SQ.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, SQ.TXT); Rewrite (f); For i:= 1 to 5 do write (f, a[i], ‘ ’); Close (f); B) assign (f, SQ.TXT); Rewrite (f); For i:= 1 to 5 do write ( a[i], ‘ ’); Close (f); C) assign (f, ‘SQ.TXT’); Rewrite (f); For i:= 1 to 5 do write (f, a[i], ‘ ’); Close (f); D) assign (f, ‘SQ.TXT’); Rewrite (f); For i:= 1 to 5 do write (a[i], ‘ ’); Close (f); Câu: 83 Chọn phát biểu đúng nhất về đoạn chương trình sau: Assign(t,’KQ.txt’); Reset(t); While not eof(t) do Begin Read(f,A); Write(A:9:2); End; Close(t); A) Đọc dữ liệu từ tệp ‘KQ.txt’ B) Đọc dữ liệu từ tệp ‘KQ.txt’ và viết lên màn hình C) Ghi giá trị của A vào tệp ‘KQ.txt’ D) Không có phát biểu đúng. Câu: 84 read( , ) ;có ý nghĩa gì ? A) thủ tục mở tệp để ghi dữ liệu. B) thủ tục ghi dữ liệu vào tệp C) thủ tục đọc dữ liệu từ tệp. D) thủ tục đóng tệp. Câu: 85 Reset( ) ; có ý nghĩa gì ? A) Thủ tục gán tên tệp cho tên tệp cho tên biến tệp. B) Khai báo biến tệp. C) Thủ tục mở tên để đọc dữ liệu. D) Thủ tục đóng tệp. BÀI 17 -18: CHƯƠNG TRÌNH CON: Câu: 86 Khẳng định nào sau đây là đúng? A) Biến cục bộ là biến được dùng trong chương trình còn chưa nó và trong chương trình chính. B) Biến cục bộ là biến chỉ được dùng trong chương trình chính. C) Biến cục bộ là biến chỉ được dùng trong chương trình còn chứa nó. D) Biến toàn bộ chỉ được sử dụng trong chương trình chính và không được sử dụng trong các chương trình con. Câu: 87 Nói về Câu trúc của một chương trình con, khẳng định nào sau đây là không đúng? A) Phần đầu và phần thân nhất thiết phải có, phần khai báo có thể có hoặc không. B) Phần khai báo có thể có hoặc không có tùy thuộc vào từng chương trình cụ thể. C) Phấn đấu có thể có hoặc không có cũng được. D) Phần đầu nhất thiết phải có để khai báo tên chương trình con. Câu: 88 Khẳng định nào sau đây là đúng? A) Cả thủ tục và hàm đều có thể có tham số hình thức. B) Chỉ có hàm mới có thể có tham số hình thức. 5
  6. TRƯỜNG THPT MANG THÍT C) Thủ tục và hàm nào cũng phải có tham số hình thức. D) Chỉ có thủ tục mới có thể có tham số hình thức. Câu: 89 Chọn cách khai đúng hàm tính n! A) Function GT(n:integer); B) Procedure GT(n:integer):Integer; C) Procedure GT(n:integer); D) Function GT(n:integer):Integer; Câu: 90 Chương trình con sau đây thực hiện công việc gì? Function PN(n:integer):integer; Var T,i:integer; Begin T:=1; For i:=1 to n do T:=T*i; Pn:=t; End; A) Tính N! B) Tính tổng 1+2+ ..+n C) Tính tổng các phần tử lẻ D) Tính N bình phương Câu: 91 Kiểu dữ liệu của hàm A) Chỉ có thể là kiểu real B) Có thể là các kiểu integer, real, char, boolean, string. C) Có thể là integer, real, char, boolean, string, record, kiểu mảng. D) Chỉ có thể là kiểu integer. Câu: 92 Chương trình con nằm ở vị trí nào trong 1 chương trình có chương trình con? A) Sau khai báo biến của chương trình chính B) Sau thân chương trình chính C) Sau Begin(bắt đầu chương trình chính) D) Sau Program Câu: 93 Giả sử ta có hàm max(A, B : integer) : integer; để tìm số lớn hơn trong hai số A và B. Cần sử dụng hàm max trên như thế nào để tìm được số lớn nhất trong ba số A, B, C? A) max(max(A, B), C); B) max(A; max(B, C)); C) max(A, B, C); D) max(A; B; C); Câu: 94 Tham số được đưa vào khi gọi chương trình con được gọi là? A) Biến cục bộ . B) Tham số thực sự. C) Tham số hình thức. D) Biến toàn cục. Câu: 95 Function F( k : Integer) : String ; Begin If k mod 2=0 then F:=’Chan’ else F:=’Le’; End; Muốn gán X:= F(5); thì biến X khai báo kiểu gì A) Var X: Integer; B) Var X: String; C) Var X: Real; D) Var X : Char; Câu: 96 Chương trình con là: A) Một dãy lệnh mô tả một số thao tác nhất định nhưng không trả về một giá trị qua tên của nó. B) Một dãy lệnh mô tả một số thao tác nhất định và trả về một giá trị qua tên của nó. C) Một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình D) Chương trình được xây dựng từ các chương trình con khác. Câu: 97 Khẳng định nào sau đây là đúng? A) Một chương trình con nhất thiết phải có tham số hình thức, không nhất thiết phải có biến cục bộ. B) Một chương trình con nhất thiết phải có biến cục bộ. C) Một chương trình còn có thể không có tham số hình thức và cũng có thế không có biến cục bộ. D) Một chương trình con nhất thiết phải có tham số hình thức. Câu: 98 Khẳng định nào sau đây là đúng? A) Cả lời gọi hàm và lời gọi thủ tục đều phải có tham số thực sự. B) Lời gọi thủ tục nhất thiết phải có tham số thực sự còn lời gọi hàm không nhất thiết phải có tham số thực sự. C) Lời gọi hàm và lời gọi thủ tục có thể có tham số thực sự hoặc không có tham số thực sự tùy thuộc vào từng thủ tục. D) Lời gọi hàm nhất định phải có tham số thực sự còn lời gọi thủ tục không nhất thiết phải có tham số thực sự. Câu: 99 Để khai báo thủ tục trong Pascal dung từ khóa A) Var. B) Procedure. C) Program. D) Function. Câu: 100 Cho thủ tục sau: Procedure Thutuc(x,y,z: integer); Các biến x,y,z được gọi là: A) Biến cục bộ. B) Tham số thực sự C) Biến toàn cục D) Tham số hình thức. Câu: 101 Cho chương trình sau Program VD; Var x, y : integer Procedure CT( Var m,n: integer); Var a, b: Integer; Begin ...... End; ...... Trong chương trình trên các biến cục bộ là A) x, y B) a, b, m, n C) a, b D) m,n Câu: 102 Tham số thực sự được khai báo ở: A) Phần đầu chương trình con. B) Phần khai báo chương trình con. C) Phần khai báo chương trình chính D) Trong lời gọi chương trình con. 6
  7. TRƯỜNG THPT MANG THÍT Câu: 103 Tham số hình thức được khai báo ở: A) Phần đầu chương trình con. B) Phần khai báo chương trình con. C) Phần khai báo chương trình chính. D) Trong lời gọi chương trình con. Câu: 104 Xét chươngtrình sau Var I, s:integer; BEGIN S:=1; For i:=1 to 5 do S:=S*I; Write(S); END; Kết quả của chương trình trên la? A) 120 B) 100 C) 5 D) 1 Câu: 105 TP, đoạn CT sau thực hiện công việc gì? i:=0; While i<>0 do write(i,' '); A) Đưa ra màn hình một chữ số 0 B) Đưa ra màn hình 10 chữ số 0; C) lặp vô hạn việc đưa ra màn hình số 0 D) Không đưa ra thông tin gì Câu: 106 Xét chươngtrình sau Var I:integer; BEGIN I:=5; while i>0 do i:=i-1; Write(i); END; Kết quả của chương trình trên là? A) 5 B) 10 C) 2 D) -1 Câu: 107 Cho s=’Kon Tum VietNam’, hàm length(s) cho giá trị bằng: A. 16 B. 15 C. ‘16’ D. ‘15’ II. CÂU HỎI ÔN TẬP TỰ LUẬN 1.Cấu trúc của chương trình con? Chương trình con có những loại nào? Nêu ý nghĩa của từng loại? 2. Cú pháp của cách khai báo mảng gián tiếp và trực tiếp? AD: khai báo một mảng gồm 10 phần tử kiểu số nguyên bằng cả hai cách. 3. Chương trình con là gì? Lợi ích của việc sử dụng chương trình con? 4.Trình bày các thao tác ghi dữ liệu vào tệp? 5.Trình bày các thao tác đọc dữ liệu từ tệp? 6. Trình bày cấu trúc của hàm? 7. Trình bày cấu trúc của thủ tục? 8. Vai trò của kiểu dữ liệu tệp? 9. Hãy trình bày các hàm và thủ tục xử lí xâu? 11.Viết chương trình nhập vào một xâu st, đếm số lượng kí tự số có trong xâu 12. Nhập vào một xậu. tạo ra một xâu là từ đầu tiên của xâu vừa nhập. 13. Cho các cặp số gồm 3 số nguyên a, b, c là 3 cạnh của tam giác nằm trên nhiều dòng, được lưu trong tệp TAMGIAC.TXT. Các số được viết cách nhau bởi 1 dấu cách , Viết chương trinh đọc vào 3 cạnh của tam giác, tính và GHI KẾT QUẢ diện tích của tam giác vào tệp TAMGIAC.OUT . Biết diện tích tam giác S= p( p a)( p b)( p c) với p=(a+b+c)/2 14. Viết chương trình nhập vào một số nguyên N. Kiểm tra N là số chẳn hay lẻ và ghi kết quả vào tệp OUTPUT.DAT 15. Viết hàm tìm UCLN(a,b) của hai số a và b. 16. Viết hàm KTRA(n:integer) . ; để kiểm tra N có phải là số chẳn hay không? (hàm trả về giá trị TRUE nếu N là số chẳn, hàm trả về giá trị FALSE nếu N là số lẻ). 17. yêu cầu: cho chương trình sau: 18. Hãy điền vào chỗ còn thiếu trong chương trình tìm Program timgiatri; số bé nhất trong dãy số? Var a,b,P : integer; Program timmin ; Procedure PLAM(m:integer; var n : integer) ; Uses crt ; Begin var a : array[1..250] of integer ; P:=0; m:=m+1; n:=n+1; n,i,min:........................; If m> n then P:=m+n; Begin Writeln(m,’ ‘,n,’ ‘, P); clrscr ; End; Write('Nhap n = ') ; Readln(n) ; Begin For i := 1 to n do Write(‘Ban nhap hai so a, b = ‘); Begin Readln(a,b); Write('nhap phan tu thu a[',i,'] = ') ; PLAM(a,b);  Writeln(a,’ ‘,b,’ ‘, P); End; Readln;  End. For i := 2 to n do 7
  8. TRƯỜNG THPT MANG THÍT a) Hãy xác định Biến toàn cục ..?; Biến cục If  ..then min := a[i] ; bộ ?; Tên thủ tục là ..? Tham số hình Writeln('Gia tri nho nhat : ',  .) ; thức là . ? Tham số thực sự .. .; Readln ; End 19) Cho tệp DATA.INP chứa các xâu văn bản có nhiều dòng. Hãy đếm số lượng dấu cách có trong xâu của và ghi ra tệp DATA.OUT. Hãy chương trình theo các bước thao tác: 1.Khai báo biến TEP1,TEP2: kiểu tệp văn bản ........................................................................................... 2.Biến DEM, i: kiểu nguyên dương; Biến ST kiểu ........................................................................................... xâu có 255 kí tự ........................................................................................... 3.Gán tệp DATA.INP cho TEP1 và mở tệp để đọc ........................................................................................... 4.Gán tệp DATA.OUT cho TEP2 và mở tệp để ghi ........................................................................................... 5.Trong khi chưa hết tệp TEP1 thì thực hiện: ........................................................................................... 5.1.Gán DEM = 0 ........................................................................................... 5.2.Đọc 1 dòng gán cho ST ........................................................................................... 5.3.Duyệt từ đầu xâu cho đến cuối xâu ........................................................................................... Nếu ST[i]=’ ‘ then Tăng biến DEM lên 1 ........................................................................................... 5.4. Ghi biến DEM vào tệp tep2 ........................................................................................... 6.Đóng 2 tệp tep1, tep2 ........................................................................................... 20) Điền vào chỗ còn thiếu của chương 21) Nhập một dãy A có N số nguyên từ tệp DATA.INP (N <= trình tính tính tổng N số tự nhiên đầu tiên 100). Tính tổng S các phần tử của dãy và ghi kết quả ra tệp (S=1+2+3+ N) và ghi kết quả vào tệp DATA.OUT. Tệp DATA.INP có cấu trúc như sau: SOLIEU.DAT . Dòng 1: Số phần tử của mảng. Prorgam baikt; Dòng 2: các phần tử của mảng. Var n,i,S :integer ; Tệp DATA.OUT chỉ chứa 1 số là tổng S T: ..; PROGRAM BAI_1; Begin CONST TEN1 = ‘DATA.INP’;  ..(T,’solieu.dat’); TEN2= ‘DATA.OUT’;  ..; VAR FI,FO: TEXT; A: ARRAY[1..100] OF INTEGER; S:=0; I, N: BYTE; S : LONGINT; Write(‘Nhap n =’);  ..; BEGIN For i:=1 to N do S:=S+i; ASSIGN( ); .. ..(FI); Write( ,’Tong=’, S); READLN(FI,N);  ; FOR I:= 1 TO N DO ..; End. S:= 0; FOR I:= 1 TO N DO S :=  ..; ASSIGN( ..................................); REWRITE(FO); WIRTE(FO,S); CLOSE(FI);  ..........................................; END. 21/Tính giá trị cho các xâu, các hàm và phép toán sau. Cho các xâu (0.5đ) S = 'Thpt Mang Thit'; T = '2020' Xử lý Kết quả 1 X:=COPY(S , 7 , 6); X= 2 INSERT(T , S , 6); T = 3 DELETE(S , 1 , 5); S= 4 A:=T + ' * ' + S; A= 8