SỞ GD & ĐT TỈNH ĐIỆN BIÊN
TRƯỜNG THCS VÀ THPT QUÀI TỞ
ĐỀ KIỂM TRA GIỮA KỲ
MÔN TIN HỌC 11 HỌC KỲ II
NĂM HỌC 2021 – 2022
Thời gian làm bài : 45 Phút
(Đề có 04 trang)
Họ tên : ............................................................... Lớp : ...........
Mã đề 112
PHẦN CÂU HỎI TRẮC NGHIỆM
Câu 1: Cú pháp lệnh lặp For – do dạng lùi là:
A. for < biến đếm> = < Giá trị cuối > down < Giá trị đầu > do < câu lệnh >;
B. for < biến đếm> = < Giá trị cuối > downto < Giá trị đầu > do < câu lệnh >;
C. for < biến đếm>:= < Giá trị cuối > downto < Giá trị đầu > do < câu lệnh >;
D. for < biến đếm>:= < Giá trị đầu > downto < Giá trị cuối > do < câu lệnh>;
Câu 2: Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả là:
A. Độ dài của xâu S.
B. Độ dài tối đa của xâu S khi khai báo.
C. Số ký tự của xâu không tính dấu cách cuối cùng.
D. Số ký tự của xâu S không tính các dấu cách.
Câu 3: Cách viết nào sau đây tham chiếu đúng phần tử thứ i của xâu S?
A. S['i'] B. S(i) C. S[',i',] D. S[i]
Câu 4: Chọn phát biểu sai trong các phát biểu sau đây:
A. Có thể dùng cấu trúc lặp để thay cho cấu trúc rẽ nhánh trong mô tả thuật toán.
B. Để mô tả việc lặp đi lặp lại một số thao tác (hoặc câu lệnh) trong một thuật toán ta có
thể dùng cấu trúc lặp.
C. Tùy từng trường hợp cụ thể (khi mô tả một thuật toán), khi thì ta biết trước số lần lặp,
khi thì ta không cần hoặc không xác định được trước số lần lặp các thao tác nào đó.
D. Không thể mô tả được mọi thuật toán bằng ngôn ngữ lập trình bậc cao nếu không
dùng cấu trúc lặp.
Câu 5: Đoạn chương trình sau thực hiện công việc?
X:= length(S);
For i:= X downto 1 do
If S[i] = ' ' then Delete(S,i,1);
A. Xóa dấu cách thừa trong xâu S
B. Xóa hết dấu cách trong xâu S
C. Xóa dấu cách đầu tiên trong xâu S
D. Xóa dấu cách đầu tiên trong xâu S
Câu 6: Đoạn chương trình sau thực hiện công việc?
For i:= 1 to M do
If (i mod 3 = 0) and (i mod 5 = 0) then t:= t + i;
A. Tổng các số chia hết cho 3 trong phạm vi từ 1 đến M
B. Tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến M
C. Tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M
D. Tổng các số chia hết cho 5 trong phạm vi từ 1 đến M
Câu 7: Cho khai báo mảng: Var a: array[0..50] of real;
và đoạn chương trình như sau:
m:= a[0] ; for i:= 1 to 50 do if a[i] > m then m:= a[i] ;
Trang 1/4 - Mã đề 112
Đoạn chương trình trên thực hiện công việc?
A. Tìm chỉ số của phần tử lớn nhất trong mảng
B. Tìm chỉ số của phần tử nhỏ nhất trong mảng
C. Tìm phần tử nhỏ nhất trong mảng;
D. Tìm phần tử lớn nhất trong mảng
Câu 8: Cho xâu S= 'Thu do Ha Noi', khi thực hiện thủ tục Delete(S,1,6) kết quả là:
A. ' Ha Noi' B. 'Thu do' C. 'Ha Noi' D. 'THa Noi'
Câu 9: Kiểu dữ liệu của biến đếm trong lệnh lặp For – do là:
A. Cùng kiểu với các biến trong câu lệnh
B. Chỉ cần khác kiểu với giá trị đầu
C. Cùng kiểu với giá trị đầu và giá trị cuối
D. Không cần phải xác định kiểu dữ liệu
Câu 10: Hãy chọn phương án ĐÚNG khi thực hiện thủ tục chuẩn Insert(S1,S2,vt) ?
A. Chèn xâu S2 vào S1 bắt đầu từ vị trí vt
B. Nối xâu S2 vào S1
C. Chèn xâu S1 vào S2 bắt đầu từ vị trí vt
D. Sao chép vào cuối S1 mt phần của S2 từ v t vt
Câu 11: Phát biểu nào sau đây ĐÚNG về mảng một chiều?
A. Là dãy hữu hạn các phần tử có cùng kiểu dữ liệu
B. Mảng không chứa các kí tự là chữ cái
C. Chỉ là dãy các số nguyên
D. Là dãy vô hạn các phần tử có cùng kiểu dữ liệu
Câu 12: Cho đoạn chương trình: S:= 0; n:= 1; whiledo Begin S:= S + n; n:= n + 1;
end;
Tính tổng S = 1 + 2 + 3 + … + 100, điều kiện nào sau đây cần điền vào chỗ ba chấm (…)
giữa câu lệnh whiledo?
A. n <= 100 B. n >= 100 C. n < 100 D. n < 100
Câu 13: Hãy cho biết đoạn chương trình sau thực hiện công việc?
i: = 0; t:= 0; while i < 10000 do
Begin t:= t + i; i:= i + 2; end;
A. Tính tổng các số tự nhiên chẵn nhỏ hơn hoặc bằng 10000
B. Tính tổng các số tự nhiên nhỏ hơn hoặc bằng 10000
C. Tính tổng các số tự nhiên nhỏ hơn 10000
D. Tính tổng các số tự nhiên chẵn nhỏ hơn 10000
Câu 14: Câu lệnh while – do có cú pháp nào dưới đây?
A. while <điều kiện> do <câu lệnh>:
B. while <điều kiện> begin <câu lệnh>;end;
C. white <điều kiện> do <câu lệnh>;
D. while <điều kiện> to <câu lệnh>;
Câu 15: Trong vòng lặp While – do, câu lệnh được thực hiện khi:
A. Điều kiện không xác định B. Điều kiện sai
C. Điều kiện còn đúng D. Không cần điều kiện
Câu 16: Trong ngôn ngữ lập trình Pascal, khai báo nào dưới đây SAI về biến kiểu xâu?
A. Var St: String[5]; B. Var St: String[300];
Trang 2/4 - Mã đề 112
C. Var St: String; D. Var St: String[10];
Câu 17: Đoạn chương trình dưới đây thực hiện công việc? d:= 0; for i:= 1 to length(S) do
if S[i] = ' ' then d:= d + 1;
A. Đếm số dấu cách có trong xâu B. Xóa các kí tự số
C. Xóa đi các dấu cách trong xâu D. Đếm các kí tự có trong xâu
Câu 18: Hãy chọn phương án ĐÚNG về các phép toán thao tác với xâu ?
A. Tính toán và so sánh B. Cộng, trừ, nhân, chia.
C. Ghép và so sánh. D. Cắt, dán, sao chép.
Câu 19: Đoạn chương trình sau thực hiện công việc?
While M <> N do
If M > N then M:=M - N else N:=N - M;
A. Tìm hiệu lớn nhất của M và N
B. Tìm bội số chung nhỏ nhất của M và N
C. Tìm hiệu nhỏ nhất của M và N
D. Tìm ước số chung lớn nhất của M và N
Câu 20: Cho khai báo mảng:
Var a: array[0..50] of real ;
và đoạn chương trình như sau:
s:= 0 ; for i:= 0 to 50 do s:= s + a[i];
Đoạn chương trình trên thực hiện công việc?
A. Tính thương các phần tử trong mảng
B. Tính hiệu các phần tử trong mảng
C. Tính tích các phần tử trong mảng;
D. Tính tổng các phần tử trong mảng;
Câu 21: Cách viết nào sau đây tham chiếu đúng phần tử thứ i của mảng D?
A. D(i) B. D['i'] C. D[i] D. D[',i',]
Câu 22: Cho khai báo mảng:
Var a: array[0..50] of real ; và đoạn chương trình như sau:
k:= 1 ; for i:= 2 to 50 do if a[i] > a[k] then k:= i ;
Đoạn chương trình trên thực hiện công việc?
A. Tìm phần tử lớn nhất trong mảng
B. Tìm chỉ số của phần tử lớn nhất trong mảng
C. Tìm chỉ số của phần tử nhỏ nhất trong mảng
D. Tìm phần tử nhỏ nhất trong mảng
Câu 23: Hãy chọn phương án ĐÚNG ở dạng lặp tiến For – do ?
A. Giá trị đầu phải nhỏ hơn giá trị cuối
B. Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
C. Giá trị đầu phải lớn hơn giá trị cuối
D. Giá trị đầu phải bằng giá trị cuối
Câu 24: Phát biểu nào ĐÚNG về kiểu dữ liệu xâu?
A. Là dãy các ký tự số B. Là dãy các ký tự dấu
C. Là dãy các ký tự chữ D. Là dãy các ký tự
Câu 25: Hãy chọn phương án ĐÚNG về biểu thức điều kiện khi kiểm tra một phần tử thứ i
của mảng A có nằm trong khoảng (-5; 10)?
Trang 3/4 - Mã đề 112
A. (A[i] > -5) and (A[i] < 10) B. (-5 < A[i] < 10)
C. (A[i] > -5) or (A[i] < 10) D. (A[i] < -5) and (A[i] >10)
Câu 26: Câu lệnh nào thực hiện đưa ra xâu S theo thứ tự đảo ngược (ví dụ: xâu dcba là xâu
đảo ngược của xâu abcd)
A. For i:= 1 to length(S) do write(S[i]);
B. For i:= 1 to length(S) do writeln(S);
C. For i:= length(S) downto 1 do write(S[i]);
D. For i:= length(S) downto 1 do write(S);
Câu 27: Khai báo nào dưới đây ĐÚNG về biến kiểu mảng một chiều gồm 10 phần tử số
nguyên?
A. Var mang: array[0..10] of integer
B. Var mang: array[0...10] of integer;
C. Var mang: array[0..10] of integer;
D. Var mang: array(0..10) of integer;
Câu 28: Cách viết nào sau đây đưa ra màn hình giá trị các phần tử của mảng A?
A. Write(A[i]); B. Write(A(i)); C. Write(A[i]); D. Write(A{i});
PHẦN CÂU HỎI TỰ LUẬN
Câu 29: Viết chương trình đưa ra xâu S. Đếm trong xâu S có bao nhiêu chữ số.
Câu 30: Dùng cấu trúc lặp với số lần biết trước để viết chương trình đưa ra n hình 10
dòng của bảng cửu chương 3.
Câu 31: Viết chương trình đếm các số chẵn trong dãy số nguyên A N phần tử (N <=
103).
Trang 4/4 - Mã đề 112
BÀI KIỂM TRA GIỮA KỲ
MÔN TIN HỌC 11 HỌC KỲ II
NĂM HỌC 2021 – 2022
Thời gian làm bài : 45 Phút
Họ tên : ............................................................... Lớp : ...........
Mã đề 112
Điểm Lời phê của thầy giáo, cô giáo
1 2 3 4 5 6 7 8 9 10 11 12 13 14
ⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶ
ⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷ
ⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸ
ⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹ
15 16 17 18 19 20 21 22 23 24 25 26 27 28
ⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶⒶ
ⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷⒷ
ⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸⒸ
ⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹⒹ
Trang 5/4 - Mã đề 112