Chương VI CHƯƠNG TRÌNH CON và LẬP TRÌNH CÓ CẤU TRÚC Hãy chọn phương án ghép đúng . Kiểu của một hàm được xác định bởi Kiểu của các tham số Kiểu giá trị trả về (*) Tên hàm Địa chỉ mà hàm trả về Mô tả nào dưới đây về hàm là sai ? Phải trả lại kết quả Phải có tham số (*) Trong hàm có thể gọi lại chính hàm đó Có thể có các biến cục bộ Mô tả nào dưới đây về tham số là sai ? Một hàm có thể có cả tham số giá trị và tham số biến; Có thể truyền biến số cho tham số giá trị ; (*) Có thể truyền giá trị cho tham số biến; Có thể dùng tham số biến để nhận kết quả; Trong các cách sử dụng thủ tục sau, cách nào là phù hợp nhất ? Khai báo lại thủ tục và gọi nó mỗi khi cần sử dụng; Khai báo thủ tục duy nhất một lần và gọi nó một lần duy nhất; Chỉ cần khai báo; Khai báo thủ tục một lần và gọi nó trong thân chương trình mỗi khi muốn sử dụng; (*) Hàm chuẩn nào dưới đây biến giá trị thực 6.6 thành 7 ? Odd; Round; (*) Trunc; Abs; Trong các chương trình chuẩn sau đây, chương trình chuẩn nào là thủ tục chuẩn? Sin(x); Length(S); Sqrt(x); Delete(S,5,1); (*) Giả sử có hai biến xâu x và y ( y đã có giá trị ) câu lệnh nào sau đây là không hợp lệ? x := Copy(y,5,3); x := y; x := Delete(y,5,3); (*) Delete(y,5,3); 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? 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. 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ể. Phần đầu có thể có hoặc không có cũng được. (*) Phần đầu nhất thiết phải có để khai báo tên chương trình con. Khẳng định nào sau đây là đúng? Một chương trình con nhất thiết phải có tham số hình thức. Một chương trình con nhất thiết phải có biến cục bộ. 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ộ. Một chương trình con có thể không có tham số hình thức và cũng có thể không có biến cục bộ. (*) Kiểu dữ liệu của hàm Chỉ có thể là kiểu integer. Chỉ có thể là kiểu real. Có thể là các kiểu integer, real, char, boolean, string. (*) Có thể là integer, real, char, boolean, string, record, kiểu mảng. Khẳng định nào sau đây là đúng? Biến cục bộ là biến được dùng trong chương trình con chứa nó và trong chương trình chính. Biến cục bộ là biến chỉ được dùng trong chương trình chính. Biến cục bộ là biến chỉ được dùng trong chương trình con chứa nó. (*) 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. Phát biểu nào dưới đây về biến là sai ? Biến toàn cục có thể được sử dụng ở trong một thủ tục; Biến cục bộ phải có tên khác với tên của biến toàn cục; (*) Biến cục bộ có thể có kiểu khác với kiểu của biến toàn cục có cùng tên; Một hàm có thể có nhiều tham số biến; Mô tả nào dưới đây về chương trình có cấu trúc là phù hợp nhất ? Chương trình có sử dụng cấu trúc mảng và bản ghi; Sử dụng các hàm và thủ tục thư viện chuẩn; Được chia thành nhiều chương trình con; (*) Cả A_ và B_ Khẳng định nào sau đây là đúng? Cả thủ tục và hàm đều có thể có tham số hình thức. (*) Chỉ có thủ tục mới có thể có tham số hình thức. Chỉ có hàm mới có thể có tham số hình thức. Thủ tục và hàm nào cũng phải có tham số hình thức. Khẳng định nào sau đây là đúng? 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ự. 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 đều phải có tham số thực sự. 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. (*) Để khai báo hàm trong Pascal bắt đầu bằng từ khóa Program. Procedure. Function. (*) Var. Để khai báo thủ tục trong Pascal bắt đầu bằng từ khóa Program. Procedure. (*) Function. Var. Muốn khai báo x là tham số giá trị và y, z là tham số biến (x, y, z thuộc kiểu Byte) trong thủ tục “ViduTT” thì khai báo nào sau đây là sai? Procedure ViduTT( x : Byte ; Var y, z : Byte) ; Procedure ViduTT( x : Byte ; Var y : Byte ; Var z : Byte) ; Procedure ViduTT( x : Byte ; Var y : Byte ; z : Byte) ; (*) Procedure ViduTT( Var y : Byte ; x : Byte ; Var z : Byte) ; Hãy chọn phương án ghép đúng. Cho thủ tục sau : Procedure p ; Var n : integer ; Begin End ; Phạm vi của biến n là : Trong toàn bộ chương trình; Trong nội bộ thủ tục p; (*) Trong toàn bộ tệp chương trình nguồn; Tùy thuộc vào vị trí sử dụng thủ tục p; Cho hàm sau : Function foo(n : integer) : boolean ; Var i : integer ; Begin Foo := false ; If n > 2 then for i := 2 to n-1 do If (n mod i = 0) then foo := true ; End ; Hàm trên thực hiện công việc gì ? Kiểm tra n có phải là hợp cố hay không; (*) In ra các ước số của n; Câu A_, B_ đều sai; Câu A_, B_ đều đúng; Cho chương trình sau : Program Thidu ; Var s : string[50] ; Procedure foo(s : string); Var i : integer; Begin i := 1 ; while ( i <= length(S) ) do begin writeln( s[ i ] ) ; i := i + 1 ; end ; end; Begin s := ‘tinhoc’ ; foo(s) ; End . Số dòng chương trình in ra màn hình là bao nhiêu ? 50 dòng; 6 dòng; (*) 7 dòng; Vô số dòng; Program Thi_du ; Var Mess : string ; Procedure StopHere; Var Mess : string ; Begin Mess := ‘StopHere’ ; Write(Mess) ; End ; Begin Mess := ‘StartHere’ ; StopHere ; Write(Mess) ; End. Cho chương trình sau : Phương án nào dưới đây là kết quả thực hiện chương trình trên ? StopHere StartHere; (*) StartHere StopHere; StartHere StopHere StartHere; StopHere StopHere; Cho chương trình sau : Program Vi_du ; Var x, y : integer ; Procedure godoit( x, y : integer ) ; Begin x := y ; y := 0 ; Write( x, y ) ; End ; Begin x := 1 ; y := 2 ; godoit( x, y ) ; writeln( x, y ) ; End. Chương trình trên in ra dãy số nào ? 2001 1020 2012 (*) 1234 Chương trình sau sẽ in ra kết quả nào ? Program ViDu ; Var x, y : integer ; Procedure thaydoi(x, y : integer) ; Begin x := y ; y := 0 ; writeln( x, y ) ; End ; Begin x := 1 ; y := 2 ; writeln( x, y ) ; thaydoi( x, y ) ; writeln( x, y) End. Hãy chọn câu trả lời đúng . 1 2 2 0 1 2 1 2 2 0 1 2 (*) 1 2 1 2 1 2 Đoạn chương trình sau có lỗi gì ? Procedure End ( key : char ) ; Begin If key = ‘ q ’ then writeln( ‘ Ket thuc ’ ) End; Thiếu dấu “ ; ” sau từ khóa Begin ; Không thể dùng câu lệnh if trong thủ tục; Thiếu dấu “ ; ” sau lệnh writeln ; End không thể dùng làm tên của thủ tục ; (*) Cho chương trình sau: Program Chuong_Trinh; Var a, b, S : byte; Procedure TD(Var x : byte ; y : byte); Var i : byte; Begin i := 5; writeln(x,‘ ’, y); x := x + i ; y := y + i ; S := x + y ; Writeln(x,‘ ’, y); End; Begin Write(‘nhập a và b : ’); Readln(a, b); TD(a,b); Writeln(a,‘ ’, b, ‘ ’, S); Readln; End. Trong chương trình trên có các biến cục bộ là: x và y. i. (*) a và b. S. Cho chương trình sau: Program Chuong_Trinh; Var a, b, S : byte; Procedure TD(Var x : byte ; y : byte); Var i : byte; Begin i := 5; writeln(x,‘ ’, y); x := x + i ; y := y + i ; S := x + y ; Writeln(x,‘ ’, y); End; Begin Write(‘nhập a và b : ’); Readln(a, b); TD(a,b); Writeln(a,‘ ’, b, ‘ ’, S); Readln; End. Trong chương trình trên có các biến toàn bộ là: x và y. i. a và b. a, b, S. (*) Cho chương trình sau: Program Chuong_Trinh; Var a, b, S : byte; Procedure TD(Var x : byte ; y : byte); Var i : byte; Begin i := 5; writeln(x,‘ ’, y); x := x + i ; y := y + i ; S := x + y ; Writeln(x,‘ ’, y); End; Begin Write(‘nhập a và b : ’); Readln(a, b); TD(a,b); Writeln(a,‘ ’, b, ‘ ’, S); Readln; End. Trong chương trình trên có các tham số thực sự là: x và y. i. a và b. (*) a, b, S. Cho chương trình sau: Program Chuong_Trinh; Var a, b, S : byte; Procedure TD(Var x : byte ; y : byte); Var i : byte; Begin i := 5; writeln(x,‘ ’, y); x := x + i ; y := y + i ; S := x + y ; Writeln(x,‘ ’, y); End; Begin Write(‘nhập a và b : ’); Readln(a, b); TD(a,b); Writeln(a,‘ ’, b, ‘ ’, S); Readln; End. Trong chương trình trên có các tham số hình thức là: x và y. (*) i. a và b. a, b, S.
Tài liệu đính kèm: