SỞ GD & ĐT TỈNH ĐIỆN BIÊN
TRƯỜNG THPT NẬM PỒ
Đề gồm 04 trang
ĐỀ KIỂM TRA GIỮA KÌ II NĂM HỌC 2022-2023
Môn: TIN HỌC 11
Thời gian làm bài: 45 phút
không tính thời gian phát đề
Họ và tên :...........................................................Lớp:..................................
I. PHẦN TRẮC NGHIỆM (7,0 điểm)
Câu 1: 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 2: Trong vòng lặp While - do, câu lệnh được thực hiện khi:
A. Điều kiện sai B. Điều kiện còn đúng
C. Điều kiện không xác định D. Điều kiện không xác định
Câu 3: Câu lệnh while - do có cú pháp nào dưới đây?
A. white <điều kiện> do <câu lệnh>; B. while <điều kiện> do <câu lệnh>;
C. while <điều kiện> to <câu lệnh>; D. while <điều kiện> begin <câu lệnh>;end;
Câu 4: 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 giá trị đầu và giá trị cuối B. Chỉ cần khác kiểu với giá trị đầu
C. Cùng kiểu với các biến trong câu lệnh D. Không cần phải xác định kiểu dữ liệu
Câu 5: 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 hoặc bằng giá trị cuối. B. Giá trị đầu phải lớn hơn giá trị cuối
C. Giá trị đầu phải bằng giá trị cuối D. Giá trị đầu phải nhỏ hơn giá trị cuối
Câu 6: Cú pháp lệnh lặp For - do dạng lùi là:
A.for < biến đếm> = < Giá trị cuối > downto < Giá trị đầu > do < câu lệnh >;
B. for < biến đếm> = < Giá trị cuối > down < Giá trị đầu > do < câu lệnh >;
C. for < biến đếm> := < Giá trị đầu > downto < Giá trị cuối > do < câu lệnh>;
D.for < biến đếm> := < Giá trị cuối > downto < Giá trị đầu > do < câu lệnh >;
Câu 7: Cho đoạn chương trình:
S := 0; n := 1;
while ... do
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 while - do?
Page 1 of 4
Mã đề 001
A.n >= 100 B. n < 100 C. n < 100 D. n <= 100
Câu 8: Đ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 ước số chung 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 hiệu lớn nhất của M và N
Câu 9: Đ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 hoặc 5 trong phạm vi từ 1 đến M
B. Tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M
C. Tổng các số chia hết cho 3 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 10: 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 nhỏ hơn hoặc bằng 10000
B. Tính tổng các số tự nhiên chẵn nhỏ hơn 10000
C. Tính tổng các số tự nhiên chẵn nhỏ hơn hoặc bằng 10000
D.Tính tổng các số tự nhiên nhỏ hơn 10000
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. Chỉ là dãy các số nguyên
C. Mảng không chứa các kí tự là chữ cái D. Là dãy vô hạn các phần tử có
cùng kiểu dữ liệu
Câu 12: 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 13: 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[1..10] of integer; B. Var mang: array(1..10) of integer;
C. Var mang: array[1...10] of integer; D. Var mang: array[1..10] of integer
Câu 14: 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']);
Câu 15: 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)?
A.(A[i] > -5) or (A[i] < 10) B. (A[i] < -5) and (A[i] >10)
C. (-5 < A[i] < 10) D. (A[i] > -5) and (A[i] < 10
Câu 16: Cho khai báo mảng: Var a : array[0..50] of real ;
và đoạn chương trình như sau: k := 0 ; for i := 1 to 50 do
if a[i] > a[k] then k := i ;
Page 2 of 4
Đoạn chương trình trên thực hiện công việc?
A.Tìm phần tử nhỏ nhất trong mảng
B. Tìm phần tử lớn 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 chỉ số của phần tử nhỏ nhất trong mảng
Câu 17: 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 tích các phần tử trong mảng; B. Tính tổng các phần tử trong mảng;
C. Tính hiệu các phần tử trong mảng D. Tính thương các phần tử trong mảng
Câu 18: 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] ;
Đ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ử nhỏ 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 phần tử lớn nhất trong mảng
D. Tìm phần tử nhỏ nhất trong mảng;
Câu 19: Phát biểu nào ĐÚNG về kiểu dữ liệu xâu?
A.Là dãy các ký tự B. Là dãy các ký tự chữ
C. Là dãy các ký tự dấu D. Là dãy các ký tự số
Câu 20: Hãy chọn phương án ĐÚNG về các phép toán thao tác với xâu ?
A. Cộng, trừ, nhân, chia. B. Ghép và so sánh.
C. Tính toán và so sánh D. Cắt, dán, sao chép.
Câu 21: 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 22: 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[300]; B. Var St: String[10];
C. Var St: String; D. Var St: String[0];
Câu 23: Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả là:
A. Số ký tự của xâu không tính dấu cách cuối cùng.
B. Độ dài tối đa của xâu S khi khai báo.
C. Độ dài của xâu S.
D. Số ký tự của xâu S không tính các dấu cách.
Câu 24: 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 S1 vào S2 bắt đầu từ vị trí vt
B. Chèn xâu S2 vào S1 bắt đầu từ vị trí vt
C. Nối xâu S2 vào S1
Page 3 of 4
D. Sao chép vào cuối S1 một phần của S2 từ vị trí vt
Câu 25: 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. 'THa Noi' B. ' Ha Noi' C. 'Thu do' D. 'Ha Noi'
Câu 26: Đ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 hết dấu cách trong xâu S B. Xóa dấu cách đầu tiên trong xâu S
C. Xóa dấu cách cuối cùng trong xâu S D. Xóa dấu cách thừa trong xâu S
Câu 27: 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
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);
D.For i:= length(S) downto 1 do write(S[i]);
Câu 28: Đ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. Xóa các kí tự số B. Đếm các kí tự có trong xâu
C. Đếm số dấu cách có trong xâu D.Xóa đi các dấu cách trong xâu
II. PHẦN TỰ LUẬN
Câu 1: 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 màn hình 10
dòng của bảng cửu chương 3.
Câu 2: Viết chương trình đưa ra xâu S với các ký tự chữ cái trong xâu đã được chuyển
thành chữ cái in hoa.
Câu 3: Viết chương trình đếm các số chẵn trong dãy số nguyên A có N phần tử (N <= 103).
----------------Hết------------
Thí sinh không dược sử dụng tài liệu. Giám thị không giải thích gì thêm
Page 4 of 4