I. Phần trắc nghiệm (5 điểm) Câu 1: Muốn khai báo x, y là tham trị, z là tham biến. Khai báo nào sau đây đúng ? 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 2: Biến cục bộ là gì? A. Biến được khai báo trong CTC nhưng được sử dụng trong chương trình chính B. Biến được khai báo trong chương trình chính nhưng chỉ được sử dụng cho CTC C. Biến được khai báo trong chương trình con D. Biến tự do không cần khai báo Cho đoạn chương trình sau: (Áp dụng cho các câu 3, 4, 5, 6) Program thi_hk_2; Var a,b,c : real; Procedure vidu (Var x: real; 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 3: Chương trình trên có 1 lỗi là: A. Biến “tong” khai báo sai kiểu B. Thủ tục không có kiểu dữ liệu C. Không xuất kết quả ra màn hình D. Không có lệnh gọi chương trình con Câu 4: Tham số hình thức của chương trình trên là: A. tong B. a, b, c C.x, y, z D. 3, 4, 5 Câu 5: Trong chương trình trên A. x là tham trị, y, z là tham biến B. x là tham biến, y, z là tham trị C. x, y là tham trị, z là tham biến D. x, y là tham biến, z là tham trị Câu 6: Biến toàn cục của chương trình trên là: A. Readln B. Writeln(a,’ ‘,b,’ ‘,c); C. a:=3; b:=4; c:=5; D. a, b, c Câu 7. Các biến của chương trình con là: A. Biến toàn cục B. Biến cục bộ. C. Tham số hình thức. D. Tham số thực sự Câu 8. Cho CTC sau: Procedure thutuc(a,b: integer); Begin ...... End; Trong chương trình chính có thể gọi lại chương trình con như thế nào là hợp lệ: A. thutuc; B. thutuc(5,10); C. thutuc(1,2,3); D. thutuc(5); Câu 9. Khi viết một chương trình muốn trả về một giá trị duy nhất ta nên dùng : A. Hàm. B. Thủ tục. C. Chương trình con. D. Thủ tục hoặc hàm Câu 10. Cách khai báo nào sau đây là hợp lệ: A. Function Ham(x,y: integer): integer; B. Function Ham(x,y: integer); C. Function Ham(x,y: real): integer; D. Function Ham(x,y: real): Longint; Câu 11. Trong lời gọi thủ tục, các tham số hình thức được thay bằng các giá trị cụ thể gọi là: A. Tham số giá trị B. Tham số hình thức C. Tham số biến D. Tham số thực sự. Câu 12. Cho thủ tục sau: Procedure Thutuc(x,y,z: integer); Các biến x,y,z được gọi là: A. Tham số hình thức. B. Tham số thực sự. C. Biến toàn cục D. Biến cục bộ. Câu 13. Trong chương trình chính, khi gọi một thủ tục các tham số biến phải: A. Khác kiểu, khác số lượng biến. B. Khác kiểu, cùng số lượng biến C. Cùng kiểu, khác số lượng biến. D. Cùng kiểu, cùng số lượng biến. Câu 14. Cấu trúc của một chương trình con gồm mấy phần: A. 4 B. 3 C. 5 D. 2 Câu 15. Cho biết biến cục bộ được dùng trong chương trình nào: A. Trong chương trình con. B. Trong chương trình chính. C. Trong chương trình con và chương trình chính. D. Không dùng trong chương trình nào cả. Câu 16. Function tinh(a: byte): Integer; Var i: byte; tam: word; Begin Tam:=1; For i:= 1 to a do Tam:=tam* i; Tinh:= tam; End; Kết quả trả về của hàm thuộc kiểu dữ liệu nào? A. byte B. word C. integer D. real Câu 17. Khi viết chương trình con, không cần trả về giá trị qua tên của nó ta dùng : A. Hàm. B. Thủ tục. C. Chương trình con. D. Chương trình chính Câu 18: Trong NNLT Pascal, khai báo nào sau đây là đúng khi khai báo tệp văn bản? A. Var f: String; B. Var f: byte; C. Var f = record D. Var f: Text; Câu 19: Câu lệnh dùng thủ tục đọc có dạng: A. Read(<biến tệp>); B. Read(<biến tệp>,); C. Read(, <biến tệp>); D. Read(); Câu 20: Tệp f có dữ liệu 5 9 15 để đọc 3 giá trị trên từ tệp f và ghi các giá trị này vào 3 biến x, y, z ta sử dụng câu lệnh: A. Read(f, x, y, z); B. Read(f, ‘x’, ‘y’, ‘z’); C. Read(x, y, z); D. Read(‘x’, ‘y’, ‘z’);
2 câu trả lời
Câu 1: Muốn khai báo x, y là tham trị, z là tham biến. Khai báo nào sau đây đúng ?
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 2: Biến cục bộ là gì?
A. Biến được khai báo trong CTC nhưng được sử dụng trong chương trình chính
B. Biến được khai báo trong chương trình chính nhưng chỉ được sử dụng cho CTC
C. Biến được khai báo trong chương trình con
D. Biến tự do không cần khai báo
*Cho đoạn chương trình sau: (Áp dụng cho các câu 3, 4, 5, 6)
Program thi_hk_2;
Var a,b,c : real;
Procedure vidu (Var x: real; 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 3: Chương trình trên có 1 lỗi là:
A. Biến “tong” khai báo sai kiểu
B. Thủ tục không có kiểu dữ liệu
C. Không xuất kết quả ra màn hình
D. Không có lệnh gọi chương trình con
Câu 4: Tham số hình thức của chương trình trên là:
A. tong
B. a, b, c
C.x, y, z
D. 3, 4, 5
Câu 5: Trong chương trình trên
A. x là tham trị, y, z là tham biến
B. x là tham biến, y, z là tham trị
C. x, y là tham trị, z là tham biến
D. x, y là tham biến, z là tham trị
Câu 6: Biến toàn cục của chương trình trên là:
A. Readln
B. Writeln(a,’ ‘,b,’ ‘,c);
C. a:=3; b:=4; c:=5;
D. a, b, c
Câu 7. Các biến của chương trình con là:
A. Biến toàn cục
B. Biến cục bộ.
C. Tham số hình thức.
D. Tham số thực sự
Câu 8. Cho CTC sau:
Procedure thutuc(a,b: integer);
Begin
......
End;
Trong chương trình chính có thể gọi lại chương trình con như thế nào là hợp lệ:
A. thutuc;
B. thutuc(5,10);
C. thutuc(1,2,3);
D. thutuc(5);
Câu 9. Khi viết một chương trình muốn trả về một giá trị duy nhất ta nên dùng :
A. Hàm.
B. Thủ tục.
C. Chương trình con.
D. Thủ tục hoặc hàm
Câu 10. Cách khai báo nào sau đây là hợp lệ:
A. Function Ham(x,y: integer): integer;
B. Function Ham(x,y: integer);
C. Function Ham(x,y: real): integer;
D. Function Ham(x,y: real): Longint;
Câu 11. Trong lời gọi thủ tục, các tham số hình thức được thay bằng các giá trị cụ thể gọi là:
A. Tham số giá trị
B. Tham số hình thức
C. Tham số biến
D. Tham số thực sự.
Câu 12. Cho thủ tục sau: Procedure Thutuc(x,y,z: integer); Các biến x,y,z được gọi là:
A. Tham số hình thức.
B. Tham số thực sự.
C. Biến toàn cục
D. Biến cục bộ.
Câu 13. Trong chương trình chính, khi gọi một thủ tục các tham số biến phải:
A. Khác kiểu, khác số lượng biến.
B. Khác kiểu, cùng số lượng biến
C. Cùng kiểu, khác số lượng biến.
D. Cùng kiểu, cùng số lượng biến.
Câu 14. Cấu trúc của một chương trình con gồm mấy phần:
A. 4
B. 3
C. 5
D. 2
Câu 15. Cho biết biến cục bộ được dùng trong chương trình nào:
A. Trong chương trình con.
B. Trong chương trình chính.
C. Trong chương trình con và chương trình chính.
D. Không dùng trong chương trình nào cả.
Câu 16. Function tinh(a: byte): Integer;
Var i: byte; tam: word;
Begin
Tam:=1;
For i:= 1 to a do Tam:=tam* i;
Tinh:= tam;
End;
Kết quả trả về của hàm thuộc kiểu dữ liệu nào?
A. byte
B. word
C. integer
D. real
Câu 17. Khi viết chương trình con, không cần trả về giá trị qua tên của nó ta dùng :
A. Hàm. B. Thủ tục. C. Chương trình
Câu 18: Trong NNLT Pascal, khai báo nào sau đây là đúng khi khai báo tệp văn bản?
A. Var f: String;
B. Var f: byte;
C. Var f = record
D. Var f: Text;
Câu 19: Câu lệnh dùng thủ tục đọc có dạng:
A. Read(<biến tệp>);
B. Read(<biến tệp>,);
C. Read(, <biến tệp>);
D. Read();
Câu 20: Tệp f có dữ liệu
5 9 15
để đọc 3 giá trị trên từ tệp f và ghi các giá trị này vào 3 biến x, y, z ta sử dụng câu lệnh:
A. Read(f, x, y, z);
B. Read(f, ‘x’, ‘y’, ‘z’);
C. Read(x, y, z);
D. Read(‘x’, ‘y’, ‘z’);
Câu 1 : C. Procedure thamso (x : byte ; y : byte; var z : byte );
Câu 2 : C. Biến được khai báo trong chương trình con
Câu 3 : B. Thủ tục không có kiểu dữ liệu
Câu 4 : C.x, y, z
Câu 5 : B. x là tham biến, y, z là tham trị
Câu 6 : D. a, b, c
Câu 7 : B. Biến cục bộ.
Câu 8 : B. thutuc(5,10);
Câu 9 : A. Hàm.
Câu 10 : Function Ham(x,y: integer): integer;
Câu 11 : A. Tham số giá trị
Câu 12 : A. Tham số hình thức.
Câu 13 : D. Cùng kiểu, cùng số lượng biến.
Câu 14 : B. 3.
Câu 15 : A. Trong chương trình con.
Câu 16 : C. integer
Câu 17 : B. Thủ tục.
Câu 18 : D. Var f: Text;
Câu 19 : A. Read(<biến tệp>);
Câu 20 : A. Read(f, x, y, z);