Tham biến dùng để lưu dữ liệu ra, còn tham trị dùng để đưa dữ liệu vào.. Không cho kết quả, bị lỗi..[r]
Trang 1NGÂN HÀNG CÂU HỎI ÔN THI HỌC KÌ 2 NĂM 2020 MÔN TIN HỌC 11 TRƯỜNG THPT
NÚI THÀNH
I KIỂU XÂU
1 Nhận biết
Câu 1: Độ dài lớn nhất của một xâu có giá trị là bao nhiêu?
Câu 2: Thủ tục Delete(m, n, p); thực hiện việc gì?
A Xóa m ký tự của xâu n kể từ vị trí p
B Xóa p ký tự của xâu m kể từ vị trí n
C Xóa n ký tự của xâu m kể từ vị trí p
D Xóa p ký tự của xâu S kể từ vị trí n
Câu 3: Cho xâu S có giá trị là: ‘Tinhoc11’ thì cách khai báo biến S nào sau đây là không đúng?
A var S: string [20]; B var S: string; C var S: string[10]; D var S = string [10];
Câu 4: Cho câu lệnh gán m := copy(n, 3, 1); với n đã có giá trị thì biến m phải khai báo kiểu gì?
Câu 5: Cho hai biến S, P kiểu string, câu lệnh gán nào sau đây không hợp lệ ? (P đã có giá trị)
A S := P ; B S := copy(P, 1, 1) ;
C S := Delete(P, 1, 1); D S := P + ‘anh’;
Câu 6: Hàm length(P) cho kết quả là gì?
A Độ dài của xâu P khi khai báo B Số ký tự hiện có của xâu P
C Độ dài xâu P, không tính dấu cách D Số lượng dấu cách trong xâu P
Câu 7: Trong các khai báo sau, khai báo nào sai?
A var S: string; B var P: string[111];
C var Q: string[256]; D var T: string[1];
Câu 8: Trong NNLT Pascal, xâu ký tự không có ký tự nào được gọi là:
A Xâu không B Xâu trắng
C Xâu rỗng D Không phải là xâu ký tự
Câu 9: Để xóa đi 2 ký tự cuối cùng của xâu Q, ta viết:
A Delete(Q, 1, 1); B Delete(Q, length(Q)-1, 2);
C Delete(Q, 2, length(Q)); D Delete(Q, n, 2);
Câu 10: Thủ tục Delete(S,1, 5); có ý nghĩa gì?
A Xóa 1 ký tự trong xâu S kể từ vị trí thứ 5
B Xóa 5 ký tự trong xâu S kể từ vị trí đầu tiên
C Xóa xâu 1 ký tự trong xâu S kể từ vị trí đầu tiên
D Xóa xâu S 5 ký tự kể từ vị trí thứ thứ 5
2 Thông hiểu
Câu 1: Hàm pos(‘em’, S) cho kết quả bao nhiêu với S = ‘Emyeutruongem’?
Câu 2: Để xóa đi ký tự đầu tiên của xâu Q, ta viết:
A Delete(Q, 1, 1); B Delete(Q, length(Q), 1);
Trang 2C Delete(Q, 1, length(Q)); D Delete(Q, n, 1);
Câu 3: Hàm upcase(‘ab’) cho kết quả là gì?
A Xâu ‘AB’ B Xâu ‘ab’
C Xâu ‘Ab’ D Không cho kết quả, bị lỗi
Câu 4: P có giá trị bằng bao nhiêu trong câu lệnh gán sau:
P := copy(‘Kiemtra15phut’, 6, 4);
A ‘mtra’ B ‘tra’ C ‘15ph’ D ‘tra’
Câu 5 Biến Q có giá trị bao nhiêu trong câu lệnh: Q := pos(‘xuan’, ‘XuanMauTuat’); A 0
3 Vận dụng
Câu 1: Kết quả của X, Y sau khi thực hiện đoạn chương trình sau là bao nhiêu?
X := ‘LichSuVietNam’;
Y := pos(‘i’, X) + 5; Delete(X, 1, 8);
A X = ‘LichSu’, Y = 2 B X = ‘LichSu’, Y = 7
C X = ‘VietNam’, Y = 7 D X = ‘VietNam’, Y = 15
Câu 2: Cho xâu A = ‘XuanMauTuat’, để có xâu B = ‘uan’, ta thực hiện ntn?
A copy(A, 3, 2); B B := Pos(A, 2, 3);
C B := copy(A, 3, 2); D B := copy(A, 2, 3);
Câu 3: Cho S = ‘NgonHaiDang’, để có xâu P = ‘Hai’, ta thực hiện lệnh nào?
A Delete(S, 1, 5); Delete(S, 4, 5); B S := Delete(S, 6, 3);
C P := pos(‘Hai’, S); D P := copy(S, 6, 3);
Câu 4: Để tìm vị trí đầu tiên xuất hiện xâu ‘tin’ trong xâu P, ta viết:
A copy(P, 1, 3) B pos(‘tin’, P) := m;
C m := pos(‘tin’, P); D n := pos(P, ‘tin’) ;
4 Vận dụng nâng cao
Câu 1: Đoạn chương trình sau thực hiện việc gì?
S := 0;
For i := 1 to length(Q) do
if (Q[i] = ‘b’) or (Q[i] = ‘B’) then S := S + 1;
A Đếm các ký tự b trong xâu Q
B Đếm các ký tự B trong xâu Q
C Tạo ta xâu S chứa các ký tự b và B
D Đếm các ký tự b và B trong xâu Q
Câu 2: Đoạn chương trình sau thực hiện việc gì?
m := ‘’;
For i := 1 to length(P) do if P[i] = ‘a’ then m := m + P[i];
A Đếm các ký tự a trong xâu P
B Tạo xâu m bằng cách loại bỏ các ký tự a trong xâu P
C Tạo xâu P bằng cách lấy các ký tự a trong xâu m
D Tạo xâu m bằng cách lấy các ký tự a trong xâu P
Câu 3: Đoạn chương trình sau thực hiện việc gì?
Trang 3m := 0;
For i := 1 to length(P) do
if (P[i] < ‘0’) or (P[i] > ‘9’) then m := m + 1;
A Đếm các ký tự là ký tự số trong xâu P
B Đếm các ký tự không phải là ký tự số trong xâu P
C Tạo xâu m chứa các ký tự số có trong xâu P
D Tạo xâu m không chứa các ký tự số từ xâu P
Câu 4: Đoạn chương trình sau thực hiện việc gì?
m := ‘’;
For i := 1 to length(P) do
if (P[i] >= ‘0’) and (P[i] <= ‘9’) then m := m + P[i];
A Đếm các ký tự là ký tự số trong xâu P
B Đếm các ký tự không phải là ký tự số trong xâu P
C Tạo xâu m chứa các ký tự số có trong xâu P
D Tạo xâu m không chứa các ký tự số từ xâu P
II CHƯƠNG TRÌNH CON
1 Nhận biết
Câu 1: Phát biểu nào sau đây là sai khi nói về biến cục bộ?
A Biến cục bộ là biến được khai báo trong chương trình chính
B Trong một chương trình con có thể có hoặc không có biến cục bộ
C Biến cục bộ là biến được khai báo trong chương trình con
D Biến cục bộ chỉ được dùng trong chương trình con khai báo nó
Câu 2: Cấu trúc của chương trình con bao gồm mấy phần?
Câu 3: Chọn phương án đúng:
A Chương trình con không thể sử dụng được biến của chương trình chính
B Thủ tục trả về giá trị qua tên của nó
C Hàm không trả về giá trị nào qua tên của nó
D Lời gọi thủ tục không thể tham gia vào biểu thức tính toán
Câu 4: Trong phần thân của hàm bắt buộc phải có câu lệnh nào?
A <biểu thức> := <tên hàm>; B <tên hàm> := <câu lệnh>;
C <câu lệnh> := <tên hàm>; D <tên hàm> := <biểu thức>;
Câu 5: Chương trình con nằm ở vị trí nào trong chương trình chính?
A Sau khi khai báo biến cho chương trình chính
B Trước khi khai báo biến cho chương trình chính
C Phần thân của chương trình chính
D Nằm bất kỳ vị trí nào trong chương trình
Câu 6: Chọn phát biểu sai khi nói về tham trị và tham biến
A Tham trị khai báo không có VAR, còn tham biến khai báo có VAR
B Tham trị dùng để lưu dữ liệu ra, còn tham biến dùng để đưa dữ liệu vào
C Tham số thực sự (TSTS) thay cho tham biến chỉ là biến, còn TSTS thay cho tham trị là một giá trị cụ
Trang 4thể
D Tham biến dùng để lưu dữ liệu ra, còn tham trị dùng để đưa dữ liệu vào
Câu 7 Chỉ ra biến cục bộ trong thủ tục sau:
Procedure Tinh (m: Byte; Var P: Word);
Var i: Byte;
Begin P:=0;
For i:= 1 to m do P:=P+i;
End;
Câu 8: Kiểu dữ liệu nào sau đây không phải là kiểu dữ liệu trả về của hàm?
A Kiểu mảng B Kiểu thực C Kiểu nguyên D Kiểu xâu
Câu 9 Hãy chỉ ra tham số hình thức trong phần đầu của thủ tục như sau:
Procedure BP(a,b: integer; Var P:longint);
2 Thông hiểu
Câu 1: Phần đầu của hàm tính diện tích hình tròn, bán kính R được viết là:
A Function dien tich (R: integer): integer; B Function dientich (R: integer; var S: real): real;
C Function dientich (R: real): integer; D Function dientich (R: integer): real;
Câu 2: Câu lệnh gán giá trị cho tên hàm được đặt ở phần nào của hàm?
A Phần đầu B Phần khai báo C Phần thân D Sau khi khai báo biến
Câu 3: Phần đầu của thủ tục tính tổng của 2 số a và b được viết là:
A Procedure TONG (a, b: integer); B Procedure TONG (a, b: integer; var S: integer);
C Function TONG (a, b: byte; var T: word); D Procedure TONG (a, b: integer): integer;
Câu 4: Cho phần đầu: Function KT(a, b: Integer): Boolean; Lời gọi nào sau đây đúng? (Var ok:
Boolean; x: Byte;)
C ok:= KT(10); D If KT(x, 20) then KT(5, 25);
Câu 5: Cho phần đầu Procedure Nhap (var a, b: integer); Lời gọi nào là Đúng với tham số thực sự là M và
N?
B C Nhap (a, b, M, N); D Nhap (M=a,N=b);
3 Vận dụng
Câu 1 CTC sau dùng để làm gì?
Procedure BP(a,b: integer; Var P:longint);
Begin
P := sqr(a+b);
End;
A Tính a2 + b2 B Tính (a + b)2 C Tính Tổng a + b D Tính P2
Câu 2: Muốn khai báo a là tham biến, b là tham trị trong thủ tục có tên là TINH thì khai báo nào
là đúng?
A procedure TINH (var a, b: integer);
Trang 5B procedure TINH (a, b: integer);
C procedure TINH (a: integer; var b: integer);
D procedure TINH (b: integer; var a: integer);
Câu 3 Phần đầu của hàm Function Tong (a, b: integer): integer; được viết lại thành thủ tục như
thế nào?
A Procedure TTT (a, b: Integer): Integer;
B Procedure TTT (T: Integer; var a, b: Integer);
C Procedure TTT (a, b, Tong: Integer): Integer;
D Procedure TTT (a, b: Integer; var Tong: Integer);
Câu 4 Phần đầu của thủ tục Procedure Tinh (x, y: byte; var M: word); được viết lại hàm như thế
nào?
A Function Tinh (x, y: byte): word; B Function Tinh (var x, y, M: byte): Word;
C Function Tinh (x, y, M: byte); D Function Tinh (x, y: byte; var M: word): Word;
4 Vận dụng nâng cao
Câu 1 Cho hàm sau:
Function Tinh (m: byte): word;
var j: byte; N: word;
begin
N := 0; For j:= 1 to m do if j mod 2 = 0 then N := N + j;
………
end;
Câu lệnh còn thiếu trong phần là gì?
A Tinh (m) := N; B Tinh := N; C N := Tinh; D Tinh(10) := N;
Câu 2: Nếu trong chương trình chính có lời gọi hàm ở câu 1 thì lời gọi nào đúng?
A S := Tinh (1,30); B S := Tinh (30); C Tinh := N; D Tinh (20,
T);
Câu 3 Thủ tục sau thực hiện việc gì?
Procedure Tinh (x, y: byte; var M: word);
var j: byte;
begin
M := 0; For j:= 1 to y do M := M * x;
end;
A Đếm các số từ 1 đến M B Tính tổng giá trị các số từ 1 đến y
C Tính lũy thừa xy D Tính tổng giá trị các số từ x đến y
Câu 4 Cách nào đúng khi chuyển thủ tục sau thành hàm?
Procedure CAN (a,b: real; Var P: real);
Begin
P := sqrt(a*a*a + b*b*b);
End;
Trang 6A Function CAN (a, b: real);
Begin
CAN := sqrt(sqr(a)*a + sqr(b)*b);
End;
B Function CAN (a, b: real): real;
Begin CAN := sqrt(sqr(a)*a + sqr(b)*b);
End;
C Function CAN (a, b: real; var P: real);
Begin
CAN := sqrt(sqr(a)*a + sqr(b)*b);
End;
D Function CAN (a, b: real; var P: real):real;
Begin CAN := sqrt(sqr(a)*a + sqr(b)*b);
End;
Câu 5 Thủ tục sau thực hiện việc gì?
Procedure Tinh (m: Byte; Var P: Word);
Var i: Byte;
Begin P:=0;
For i:= 1 to m do P:=P+i;
End;
A Tính giá trị của m số chẵn B Hiển thị giá trị m số tự nhiên
C Tính tổng của m số tự nhiên đầu tiên D Tính tổng của P số tự nhiên đầu tiên
III KIỂU DỮ LIỆU TỆP
Câu 1: Thủ tục Reset(<biến tệp>); có tác dụng gì?
A Mở tệp để ghi dữ liệu B Đọc DL từ tệp
C Mở tệp để đọc dữ liệu D Ghi DL vào tệp
Câu 2: 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 trong tệp?
A Một vị trí bất kỳ trong tệp B Cuối dòng
Câu 3: Giả sử đã gắn tên tệp cho biến tệp f và mở để ghi Cần ghi giá trị: TIN11 vào tệp này thì viết lệnh như thế nào?
A writeln (‘TIN 11’, f); B readln (f, ‘TIN 11’);
C write (f, ‘TIN 11’); D writeln (f, TIN 11);
Câu 4: Khi tiến hành mở tệp để ghi và tìm thấy tệp đó thì:
A Báo lỗi vì không thực hiện được
B Dữ liệu mới sẽ được ghi vào sau DL cũ
C Nội dung cũ của tệp sẽ bị xóa để chuẩn bị ghi nội dung mới
D Nội dung mới sẽ được ghi vào trước nội dung cũ
Câu 5: Cho tệp có cấu trúc như sau
SN.TXT
12 5 8
6
Giả sử đã gắn tên tệp trên cho biến tệp h Cần đọc giá trị 5 trong tệp trên gán cho biến a thì dùng những
lệnh nào?
Trang 7A Readln(h, a);
Read(h);
B Readln(h);
Read(h, a);
C Read(h);
Read(h, a);
D Read(h);
Read(h); readln(h, 5);
Câu 6: Vị trí con trỏ tệp nằm ở đâu sau lời gọi thủ tục reset(<biến tệp>);
A Giữa tệp B Cuối tệp C Đầu tệp D Bất kỳ vị trí nào
trong tệp
Cho tệp SN.TXT gồm hai dòng chứa các số nguyên sau và đoạn CT sau:
(a, b có kiểu nguyên)
Assign(f, ‘SN.TXT’); (1)
Readln (f, a); (3)
Read (f, b); (4)
(Trả lời cho các câu 7, 8, 9)
Câu 7: Thủ tục đọc DL từ tệp là:
A (2) và (3) B (4) C (2) D (3) và (4)
Câu 8: Sau khi thực hiện đoạn CT trên, kết quả a, b lần lượt là:
A 20, 8 B 20, 15 C 6, 0 D 15, 0
Câu 9: Câu lệnh ở dòng (1) trong CT trên dùng để:
A Gắn biến tệp f cho tệp SN.TXT B Đọc DL từ tệp SN.TXT
C Gắn tệp SN.TXT cho biến tệp f D Mở tệp SN.TXT để đọc
Câu 10: Thủ tục ghi dữ liệu vào tệp là:
A rewrite(<biến tệp>); B write(<biến tệp>, <DS kết quả>);
C writeln(<biến tệp>); D readln(<biến tệp>,<DS biến>);
Cho đoạn lệnh sau: {Trả lời cho câu 11 và câu 12}
Assign(f, ‘baitap.txt’); (1)
rewrite(f); (2)
a := 10; b := a mod 3; (3)
writeln(f, ‘b = ’, b); (4)
close(f); (5)
Câu 12: Tệp baitap.txt chứa dữ liệu nào?
Câu 13: Nếu hàm eoln(<biến tệp>) cho giá trị bằng true thì con trỏ tệp nằm ở:
A Cuối dòng B Cuối tệp C Đầu dòng D Đầu tệp
Câu 14: Cho tệp có cấu trúc như sau
20 8 6
15 0
Câu 11: Thủ tục ở dòng (2) có tác dụng gì?
A Mở tệp để ghi B Mở tệp để
đọc
C Ghi dữ liệu vào tệp
D Gắn tên tệp
Trang 8SN.TXT
12 5 8
6
Giả sử đã gắn tên tệp trên cho biến tệp f Cần đọc giá trị 5 và 8 trong tệp trên gán cho biến x và y thì dùng những lệnh nào?
A Readln(f, x, y);
Read(f);
B Readln(f, x);
Read(f, y);
C Read(f);
Read(f,5); read(f, 8);
D Read(f);
Readln(f, x, y);
Cho đoạn lệnh sau: {Trả lời cho câu 15, câu 16, câu 17 và câu 18}
Assign(t, ‘songuyen.dat’); (1)
x := 5; y := x * 5; (3)
writeln(t, y); (4)
Câu 15: Biến t và biến x khai báo tương ứng kiểu gì?
A text – text B byte – text C text - byte D byte – byte
Câu 16: Thủ tục mở tệp để ghi nằm ở dòng nào?
A (1) B (2) C (4) và (5) D (4)
Câu 17: Sau khi thực hiện đoạn CT trên, kết quả của tệp songuyen.dat là:
Câu 18: Câu lệnh ở dòng (1) trong CT trên dùng để:
A Gắn tên tệp cho biến tệp B Ghi dữ liệu vào tệp songuyen.dat
C Gắn biến tệp cho tên tệp D Đóng tệp
-o0o -
TỔNG HỢP CÁC ĐỀ KIỂM TRA
Khoanh tròn một ý đúng nhất ở mỗi câu sau đây
ĐỀ 1
Câu 1: Độ dài lớn nhất của một xâu có giá trị là bao nhiêu?
Câu 2: Cho xâu S có giá trị là: ‘Kiemtra15phut’ thì khai báo biến S như thế nào là đúng?
5
25
25
5
Trang 9A var S: char; B var S: string[15];
C var S = string[16]; D var S: string;
Câu 3: Thủ tục Delete(m, n, p); thực hiện việc gì?
A Xóa m ký tự của xâu n kể từ vị trí p
B Xóa p ký tự của xâu m kể từ vị trí n
C Xóa n ký tự của xâu m kể từ vị trí p
D Xóa p ký tự của xâu S kể từ vị trí n
Câu 4: Hàm pos(‘em’, S) cho kết quả bao nhiêu với
S = ‘Emyeutruongem’
Câu 5: Đoạn chương trình sau thực hiện việc gì?
S := 0;
For i := 1 to length(P) do if P[i] = ‘b’ then S := S + 1;
A Tạo xâu S chứa các ký tự ‘b’ của xâu P
B Đếm các ký tự loại trừ ký tự ‘b’ của xâu P
C Tạo xâu S từ xâu P bằng cách lấy các ký tự ‘b’ của xâu P
D Đếm các ký tự ‘b’ trong xâu P
ĐỀ 2
Cho đoạn chương trình sau:
M := ‘QuangNam’;
N := copy(M, 3, 2);
P := pos(‘a’, M);
(Trả lời cho 3 câu đầu)
Câu 1: Kết quả của P sau khi thực hiện xong đoạn CT trên là:
Câu 2: Biến N và biến P được khai báo tương ứng kiểu gì?
A byte – string B byte – byte
C string – byte D string – string
Câu 3: Giá trị của N bằng bao nhiêu?
A ‘an’ B ‘uan’ C 3 D 2
Câu 4: Thủ tục chèn xâu b vào xâu a kể từ vị trí c được viết như thế nào?
A Insert(a, b, c); B Insert(c, b, a);
C Insert(b, c, a); A Insert(b, a, c);
Câu 5: Đoạn chương trình sau thực hiện việc gì?
a := ‘’;
For i := length(b) downto 1 do a := a + b[i];
A Đưa các ký tự trong xâu a vào xâu b
B Tạo xâu b là xâu ngược của xâu a
C Tạo xâu a là xâu ngược của xâu b
D Đếm các ký tự trong xâu b
ĐỀ 3
Trang 10Câu 1: Lệnh (thủ tục) xóa N kí tự của xâu S kể từ vị trí K là:
A Delete(S, N, K); B Delete(N, S, K); C Insert(S, K,N); D
Delete(S, K, N);
Câu 2: Cho phần đầu Procedure Nhap (var a, b : integer); Lời gọi nào là Đúng với tham số thực sự là M và
N?
C Nhap(a,b); B Nhap(M, N); C Nhap (a, b, M, N); D Nhap (M=a,N=b);
Câu 3: Phát biểu nào là Sai về cấu trúc của CTC?
A Phần đầu có thể có hoặc không C Phần đầu của CTC dùng để khai báo tên
và phân loại CTC
B Phần đầu và phần thân nhất định phải có D Phần khai báo có thể có hoặc không
Câu 4: Hàm length(P) cho kết quả là gì?
A Độ dài của xâu P khi khai báo B Số ký tự hiện có của xâu P
C Độ dài xâu P, không tính dấu cách D Số lượng dấu cách trong xâu P
Câu 5: Để khai báo Hàm, ta dùng từ khóa:
A Program B Procedure C Function D Array
Câu 6: Khai báo biến xâu St có độ dài 80 thế nào là Đúng?
A Var s: string[80]; B Var St: string; C Var st: string[80]; D Var t: string;
Câu 7: Để xóa đi ký tự đầu tiên của xâu Q, ta viết:
A Delete(Q, 1, 1); B Delete(Q, length(Q), 1); C Delete(Q, 1, length(Q)); D
Delete(Q, n, 1);
Câu 8: Đoạn chương trình sau thực hiện việc gì?
S := 0;
For i := 1 to length(Q) do if (Q[i] = ‘b’) or (Q[i] = ‘B’) then S := S + 1;
A Đếm các ký tự b trong xâu Q B Đếm các ký tự B trong xâu Q
C Tạo ta xâu S chứa các ký tự b và B D Đếm các ký tự b và B trong xâu Q
Câu 9: Cho S = ‘NgonHaiDang’, để có xâu P = ‘Hai’, ta thực hiện lệnh nào?
A Delete(S, 1, 5); Delete(S, 4, 5); B S := Delete(S, 6, 3); C P := pos(‘Hai’, S); D P := copy(S, 6, 3);
Cho chương trình: {Trả lời cho câu 10, 11 và 12}
Var m, n, i : integer;
Procedure TINH (b, c : integer);
var j : integer;
begin
j := 5; b := b + j; c := c+ b;
end;
Begin
m : = 0; n := 2; i := m + n; TINH (m, i-7);
Writeln ( m: 3, n: 3); Readln;
End
Câu 10 Biến cục bộ trong CT bên là:
A m, n, i B b, c
Câu 11 TSTS trong CT bên là:
A b, c
C m, i-7
B TINH
D TINH(m, i-7)
Câu 12 Tham trị là:
A b và c
B m
C Không có
D m và n
Câu 13: Phần đầu của hàm tính diện tích hình tròn, bán kính R được viết là:
A Function dien tich (R: integer): integer; B Function dientich (R: integer; var S: real): real;