ĐỀ KIỂM TRA THEO MA TRẬN BỘ GIỮA KÌ 2 TIN HỌC 11 Bám chuẩn ma trận của Bộ triển khai năm 2021. Có đáp án chính xác. File word, gồm 4 mã (trong đó có 2 mã gốc) trình bày chuẩn đẹp, thầy cô chỉ việc sử dụng.
Trang 1TRƯỜNG THPT …
Mã đề thi 132 Môn thi: Tin học 11 - Thời gian làm bài: 45 phút ĐỀ KIỂM TRA GIỮA KÌ II
Họ, tên học sinh: Lớp:
I PHẦN TRẮC NGHIỆM (7,0 ĐIỂM)
Câu 1: Khai báo biến xâu var s:tring[5] Phép gán giá trị nào sau là đúng?
A s := ‘toanhoc’; B s := ‘monsu’; C s := ‘monlytin’; D s := ‘monsinhhoc’; Câu 2: Để đếm các số từ 1 đến 1000 bằng while-do, đoạn chương trình nào dưới đây đúng?
A d:=0; i:=1; while i<=1000 do begin d:=1; i:=i+1; end;
B d:=0; i:=1; while i<1000 do begin d:=d+i; i:=i+1; end;
C d:=0; i:=1000; while i>=1 do begin d:=d+1; i:=i-1; end;
D d:=0; i:=1000; while i>1 do begin d:=d+i; i:=i-1; end;
Câu 3: Đoạn chương trình sau làm gì?
s:=0; for i:=1000 downto 1 do if (i mod 2 = 0) and (i mod 3 = 0) then s:=s+1;
A Tính tổng số chẵn và không chia hết cho 3 trong đoạn từ 1 đến 1000.
B Tính tổng số chẵn và chia hết cho 3 trong đoạn từ 1 đến 1000.
C Đếm số chẵn và không chia hết cho 3 trong đoạn từ 1 đến 1000.
D Đếm số chẵn và chia hết cho 3 trong đoạn từ 1 đến 1000
Câu 4: Trong cấu trúc lặp for-do dạng lùi, câu lệnh được thực hiện khi
A <giá trị đầu> <= <biến đếm> và <biến đếm> <= <giá trị cuối>
B <giá trị đầu> >= <biến đếm> và <biến đếm> >= <giá trị cuối>
C <giá trị đầu> < <biến đếm> và <biến đếm> < <giá trị cuối>
D <giá trị đầu> > <biến đếm> và <biến đếm> >= <giá trị cuối>
Câu 5: Cho xâu s1, s2 (tối đa 10 phần tử) Thủ tục xóa phần tử thứ 5 trong xâu s2 là
A delete(s1,5,1) B delete(s2,5,1) C delete(s1,5,5) D delete(s2,5,5)
Câu 6: Phát biểu nào sai?
A Các phần tử của xâu không được đánh chỉ số B Xâu có độ dài hữu hạn.
Câu 7: Hàm pos(s2,s1) trả ra kết quả là 4 Các xâu s1, s2 phải nhận giá trị nào dưới đây?
A s1 := ‘montinhoc’; s2 := ‘tinHoc’; B s1 := ‘montinhoc’; s2 := ‘tin’;
C s1 := ‘tinhoc’; s2 := ‘tin’; D s1 := ‘montoantin’; s2 := ‘tin’;
Câu 8: Đoạn lệnh tính tổng các số lẻ trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+a[i];
B x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+a[i];
C x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+1;
D x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+i;
Câu 9: Khai báo trực tiếp biến mảng 1 chiều:
A var <tên kiểu mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
B var <tên biến mảng>=array[kiểu chỉ số] of <kiểu phần tử>;
C var <tên biến mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
D var <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>;
Câu 10: Để đếm các số từ 1 đến 1000 bằng for-do dạng tiến, đoạn chương trình nào dưới đây đúng?
A d:=0; for i:=1 to 1000 do d:=d+1; B d:=0; for i:=1 downto 1000 do d:=d+i;
C d:=0; for i:=1 to 1000 do d:=1; D d:=0; for i:=1 downto 1000 do d:=d+1;
Câu 11: Trong Pascal, cấu trúc 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> 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ị cuối> to <giá trị đầu> do <câu lệnh>;
Câu 12: Cách tham chiếu đến phần tử trong mảng 1 chiều:
A <tên kiểu mảng>[<chỉ số>] B <tên kiểu mảng>[<kiểu chỉ số>]
C <tên biến mảng>[<kiểu chỉ số>] D <tên biến mảng>[<chỉ số>]
Câu 13: Đoạn lệnh đếm các số chẵn trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+1;
B x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+i;
C x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+a[i];
D x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+1;
Trang 1/14 - Mã đề thi 132
Trang 2Câu 14: Trong lệnh lặp while-do, biểu thức là
A biểu thức số học B biểu thức số học hoặc biểu thức quan hệ.
C biểu thức logic hoặc biểu thức số học D biểu thức quan hệ hoặc biểu thức logic
Câu 15: Đoạn lệnh tính tổng các số chẵn hoặc không chia hết cho 3 trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if (a[i] mod 2=0) or (a[i] mod 3<>0) then x:=x+i;
B x:=0; for i:=1 to n do if (a[i] mod 2=0) and (a[i] mod 3=0) then x:=x+a[i];
C x:=0; for i:=1 to n do if (a[i] mod 2=0) or (a[i] mod 3<>0) then x:=x+1;
D x:=0; for i:=1 to n do if (a[i] mod 2=0) or (a[i] mod 3<>0) then x:=x+a[i];
Câu 16: Phát biểu nào sau đây đúng về mảng 1 chiều?
A Là dãy hữu hạn các phần tử có cùng kiểu B Chỉ là các dãy số nguyên.
C Mảng không chứa kí tự là chữ cái D Là dãy vô hạn các phần tử có cùng kiểu.
Câu 17: Trong Pascal, cấu trúc lặp while-do là:
A while <điều kiện> to <câu lệnh>; B while <điều kiện> then <câu lệnh>;
C while <điều kiện> do <câu lệnh> D while <điều kiện> do <câu lệnh>;
Câu 18: Cho xâu s1, s2 (tối đa 10 phần tử) Thủ tục sao chép 3 phần tử trong xâu s1 là
A copy(s1,3,1) B copy (s2,3,1) C copy (s1,3,3) D copy (s2,3,3)
Câu 19: Phép gán s := ‘montoan’; Cách khai báo s nào dưới đây đúng?
A var s:string[6] B var s:tring[5]; C var s:string[9]; D var s:string[4];
Câu 20: Khai báo trực tiếp biến mảng 1 chiều tối đa 100 phần tử là các số nguyên:
A var a:array[1 100] of byte; B var a:array[1 100] of real;
C var a:array[1 101] of byte; D var a:array[1 100] of byte;
Câu 21: Phép ghép xâu kí hiệu gồm
Câu 22: Trong cấu trúc lặp for-do dạng lùi
A biến đếm tăng dần từ giá trị đầu đến giá trị cuối.
B câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp
tăng từ giá trị đầu đến giá trị cuối
C biến đếm giảm dần từ giá trị cuối đến giá trị đầu.
D câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu
Câu 23: Đoạn chương trình sau làm gì?
s:=0; for i:=1 to 1000 do if (i mod 2 = 0) and (i mod 3 <> 0) then s:=s+i;
A Tính tổng số chẵn hoặc không chia hết cho 3 trong đoạn từ 1 đến 1000.
B Tính tổng số chẵn và chia hết cho 3 trong đoạn từ 1 đến 1000.
C Tính tổng số chẵn và không chia hết cho 3 trong đoạn từ 1 đến 1000
D Tính tổng số chẵn hoặc chia hết cho 3 trong đoạn từ 1 đến 1000.
Câu 24: Trong Pascal, cấu trúc lặp với số lần chưa biết trước là
Câu 25: Thủ tục copy(s,4,3) tạo ra xâu kết quả là ‘dia’ Xâu s nhận giá trị nào dưới đây?
A s := ‘monlichsu’; B s := ‘mondialy’; C s := ‘montracdia’; D s := ‘dia’;
Câu 26: Cho 2 xâu s1 := ‘monlichsu’; s2 := ‘su’;Tạo s2 từ s1 bằng cách:
A copy(s1,8,2); B copy(s2,8,2); C copy(s1,2,8); D copy(s2,2,8);
Câu 27: Thủ tục delete(s,9,2) tạo ra xâu kết quả là ‘truongth’ Xâu s nhận giá trị nào dưới đây?
A s := ‘truongpt’; B s := ‘thpttruong’; C s := ‘truongthpt’; D s := ‘ptthtruong’;
Câu 28: Đoạn lệnh sau làm gì?
x:=0; for i:=1 to n do if (a[i] mod 3=0) and (a[i] mod 5<>0) then x:=x+a[i];
A Tính tổng các số chia hết cho 3 và không chia hết cho 5 trong mảng a
B Tính tổng các số không chia hết cho 3 và chia hết cho 5 trong mảng a.
C Tính tổng các số chia hết cho 3 hoặc không chia hết cho 5 trong mảng a.
D Tính tổng các số không chia hết cho 3 hoặc chia hết cho 5 trong mảng a.
II PHẦN TỰ LUẬN (3,0 ĐIỂM)
Câu 1: Dùng cấu trúc lặp for-do dạng tiến để viết chương trình đưa ra màn hình các số chẵn và không
chia hết cho 3 trong đoạn [1,100]
Câu 2: Viết chương trình nhập vào xâu s, đưa ra màn hình các chữ cái in thường trong xâu s.
Câu 3: Viết chương trình nhập vào mảng a gồm các số nguyên dương có n phần tử (n≤1000) Đếm các số
chẵn trong mảng a.
HẾT
Trang 3-TRƯỜNG THPT …
Mã đề thi 134 Môn thi: Tin học 11 - Thời gian làm bài: 45 phút ĐỀ KIỂM TRA GIỮA KÌ II
Họ, tên học sinh: Lớp:
I PHẦN TRẮC NGHIỆM (7,0 ĐIỂM)
Câu 1: Khai báo biến xâu var s:tring[7] Phép gán giá trị nào sau là đúng?
A s := ‘monsinhhoc’; B s := ‘tinhoc’; C s := ‘monvatly’; D s := ‘monlichsu’;
Câu 2: Để đếm các số từ 1 đến 1000 bằng while-do, đoạn chương trình nào dưới đây đúng?
A d:=0; i:=1; while i<=1000 do begin d:=d+i; i:=i+1; end;
B d:=0; i:=1; while i<=1000 do begin d:=d+1; i:=i+1; end;
C d:=0; i:=1000; while i>=1 do begin d:=1; i:=i-1; end;
D d:=0; i:=1000; while i>1 do begin d:=d+i; i:=i-1; end;
Câu 3: Đoạn chương trình sau làm gì?
s:=0; for i:=1000 downto 1 do if (i mod 2 = 0) or (i mod 3 <> 0) then s:=s+1;
A Đếm số chẵn hoặc không chia hết cho 3 trong đoạn từ 1 đến 1000
B Đếm số chẵn hoặc chia hết cho 3 trong đoạn từ 1 đến 1000.
C Tính tổng số chẵn hoặc chia hết cho 3 trong đoạn từ 1 đến 1000.
D Tính tổng số chẵn hoặc không chia hết cho 3 trong đoạn từ 1 đến 1000.
Câu 4: Trong cấu trúc lặp for-do dạng tiến, câu lệnh được thực hiện khi
A <giá trị đầu> >= <biến đếm> và <biến đếm> >= <giá trị cuối>
B <giá trị đầu> <= <biến đếm> và <biến đếm> <= <giá trị cuối>
C <giá trị đầu> < <biến đếm> và <biến đếm> < <giá trị cuối>
D <giá trị đầu> > <biến đếm> và <biến đếm> >= <giá trị cuối>
Câu 5: Cho xâu s1, s2 (tối đa 10 phần tử) Thủ tục xóa phần tử thứ 3 trong xâu s1 là
A delete(s1,3,1) B delete(s2,3,1) C delete(s1,3,3) D delete(s2,3,3)
Câu 6: Xâu là
A dãy kí tự gồm các chữ cái in hoa B dãy kí tự gồm các chữ cái in thường.
C dãy kí tự gồm các chữ số D dãy kí tự trong bảng mã ASCII
Câu 7: Hàm pos(s1,s2) trả ra kết quả là 0 Các xâu s1, s2 phải nhận giá trị nào dưới đây?
A s2 := ‘montinhoc’; s1:= ‘tinHoc’; B s2:= ‘montinhoc’; s1:= ‘tin’;
C s2:= ‘tinhoc’; s1:= ‘tin’; D s2:= ‘montoantin’; s1:= ‘tin’;
Câu 8: Đoạn lệnh tính tổng các số chẵn trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+a[i];
B x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+i;
C x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+1;
D x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+a[i];
Câu 9: Khai báo gián tiếp biến mảng 1 chiều:
A type <tên kiểu mảng>:array[kiểu chỉ số] of <kiểu phần tử>; var <tên biến mảng>=<tên kiểu mảng>;
B type <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử> var <tên biến mảng>:<tên kiểu mảng>;
C tupe <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>; var <tên biến mảng>:<tên kiểu mảng>;
D type <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>;var <tên biến mảng>:<tên kiểu mảng>;
Câu 10: Để đếm các số từ 1 đến 1000 bằng for-do dạng lùi, đoạn chương trình nào dưới đây đúng?
A d:=0; for i:=1 downto 1000 do d:=1; B d:=0; for i:=1 to 1000 do d:=1;
C d:=0; for i:=1 to 1000 do d:=d+i; D d:=0; for i:=1000 downto 1 do d:=d+1;
Câu 11: Trong Pascal, cấu trúc lặp for-do dạng tiến là:
A for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>
B for <biến đếm>:=<giá trị đầu> downto <giá trị cuối> do <câu lệnh>;
C for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
D for <biến đếm>=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Câu 12: Trong mảng 1 chiều, kiểu chỉ số thường là
A một đoạn số nguyên liên tục có dạng n1 n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1≤n2)
B một đoạn số nguyên liên tục có dạng n1 n2 với n1, n2 là các hằng hoặc biểu thức xác định chỉ số
đầu và chỉ số cuối (n1≤n2)
C một đoạn số nguyên liên tục có dạng n1…n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định
chỉ số đầu và chỉ số cuối (n1≤n2)
D một đoạn số nguyên liên tục có dạng n1…n2 với n1, n2 là các hằng hoặc biểu thức xác định chỉ số
đầu và chỉ số cuối (n1≤n2)
Trang 3/14 - Mã đề thi 132
Trang 4Câu 13: Đoạn lệnh đếm các số lẻ trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+1;
B x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+i;
C x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+a[i];
D x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+1;
Câu 14: Kiểu dữ liệu của biến đếm trong lệnh lặp for-do có điều kiện
A cùng kiểu với các biến trong câu lệnh B cùng kiểu với giá trị đầu và giá trị cuối
C không xác định kiểu dữ liệu D chỉ cần cùng kiểu với giá trị đầu.
Câu 15: Đoạn lệnh tính tổng các số lẻ hoặc chia hết cho 3 trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if (a[i] mod 2=0) and (a[i] mod 3=0) then x:=x+a[i];
B x:=0; for i:=1 to n do if (a[i] mod 2<>0) or (a[i] mod 3=0) then x:=x+i;
C x:=0; for i:=1 to n do if (a[i] mod 2<>0) or (a[i] mod 3=0) then x:=x+1;
D x:=0; for i:=1 to n do if (a[i] mod 2<>0) or (a[i] mod 3=0) then x:=x+a[i];
Câu 16: Để mô tả mảng 1 chiều cần xác định
A cách tham chiếu đến phần tử B kiểu của các phần tử và cách đánh số các phần tử của nó
C cách nhập mảng 1 chiều D kiểu dữ liệu của mảng.
Câu 17: Trong cấu trúc lặp while-do, câu lệnh được thực hiện khi
A không cần điều kiện B điều kiện sai C điều kiện đúng D điều kiện không xác định Câu 18: Cho xâu s1, s2 (tối đa 10 phần tử) Thủ tục sao chép 5 phần tử trong xâu s2 là
A copy(s1,5,1) B copy (s2,5,1) C copy (s2,5,5) D copy (s1,5,5)
Câu 19: Phép gán s := ‘monhoahoc’; Cách khai báo s nào dưới đây đúng?
A var s:string[7] B var s:tring[8]; C var s:string[10]; D var s:string[6];
Câu 20: Khai báo trực tiếp biến mảng 1 chiều tối đa 100 phần tử là các số thực:
A var a:array[1 100] of byte; B var a:array[1 101] of real;
C var a:array[1 100] of real; D var a:array[1…100] of real;
Câu 21: Phép so sánh xâu kí hiệu gồm
A <, >, >=, <=, =, <> B <, >, >=, <=, =, !=, C <, >, >=, <=, = =, <> D <, >, ≥, ≤, =, <> Câu 22: Trong cấu trúc lặp for-do dạng tiến
A biến đếm tăng dần từ giá trị đầu đến giá trị cuối.
B câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối
C câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp
giảm từ giá trị cuối đến giá trị đầu
D biến đếm giảm dần từ giá trị cuối đến giá trị đầu.
Câu 23: Đoạn chương trình sau làm gì?
s:=0; for i:=1000 downto 1 do if (i mod 2 <> 0) and (i mod 3 <> 0) then s:=s+i;
A Tính tổng số lẻ hoặc không chia hết cho 3 trong đoạn từ 1000 đến 1.
B Tính tổng số lẻ và chia hết cho 3 trong đoạn từ 1000 đến 1.
C Tính tổng số lẻ và không chia hết cho 3 trong đoạn từ 1000 đến 1
D Tính tổng số lẻ hoặc chia hết cho 3 trong đoạn từ 1000 đến 1.
Câu 24: Trong Pascal, cấu trúc lặp với số lần biết trước là cấu trúc
Câu 25: Thủ tục copy(s,1,3) tạo ra xâu kết quả là ‘dia’ Xâu s nhận giá trị nào dưới đây?
A s := ‘diavatly’; B s := ‘mondialy’; C s := ‘montracdia’; D s := ‘mondia’;
Câu 26: Cho 2 xâu s1 := ‘sinhh’; s2 := ‘monsinhhoc’;Tạo s1 từ s2 bằng cách:
A copy(s1,4,5); B copy(s2,4,5); C copy(s1,5,4); D copy(s2,5,4);
Câu 27: Thủ tục delete(s,7,4) tạo ra xâu kết quả là ‘monhoc’ Xâu s nhận giá trị nào dưới đây?
A s := ‘monsinhhoc’; B s := ‘monsuhoc’; C s := ‘montinhoc’; D s := ‘monhoctoan’;
Câu 28: Đoạn lệnh sau làm gì?
x:=0; for i:=1 to n do if (a[i] mod 3<>0) or (a[i] mod 5=0) then x:=x+a[i];
A Tính tổng các số chia hết cho 3 và không chia hết cho 5 trong mảng a.
B Tính tổng các số không chia hết cho 3 và chia hết cho 5 trong mảng a.
C Tính tổng các số chia hết cho 3 hoặc không chia hết cho 5 trong mảng a.
D Tính tổng các số không chia hết cho 3 hoặc chia hết cho 5 trong mảng a
II PHẦN TỰ LUẬN (3,0 ĐIỂM)
Câu 1: Dùng cấu trúc lặp for-do dạng lùi để viết chương trình đưa ra màn hình các số chia hết cho 3 và
không chia hết cho 5 trong đoạn [100,200]
Câu 2: Viết chương trình nhập vào xâu s, đưa ra màn hình các kí tự không phải là chữ số trong xâu s.
Trang 5Câu 3: Viết chương trình nhập vào mảng a gồm các số nguyên dương có n phần tử (n≤2000) Tính tổng
các số lẻ trong mảng a
- HẾT
Trang 5/14 - Mã đề thi 132
Trang 6TRƯỜNG THPT …
Mã đề thi 209
ĐỀ KIỂM TRA GIỮA KÌ II Môn thi: Tin học 11 - Thời gian làm bài: 45 phút
Họ, tên học sinh: Lớp:
I PHẦN TRẮC NGHIỆM (7,0 ĐIỂM)
Câu 1: Trong lệnh lặp while-do, biểu thức là
A biểu thức số học hoặc biểu thức quan hệ B biểu thức số học.
C biểu thức quan hệ hoặc biểu thức logic D biểu thức logic hoặc biểu thức số học.
Câu 2: Phát biểu nào sai?
A Xâu chứa các chữ cái B Các phần tử của xâu không được đánh chỉ số
Câu 3: Khai báo biến xâu var s:tring[5] Phép gán giá trị nào sau là đúng?
A s := ‘monsinhhoc’; B s := ‘monlytin’; C s := ‘monsu’; D s := ‘toanhoc’;
Câu 4: Khai báo trực tiếp biến mảng 1 chiều:
A var <tên biến mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
B var <tên biến mảng>=array[kiểu chỉ số] of <kiểu phần tử>;
C var <tên kiểu mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
D var <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>;
Câu 5: Đoạn lệnh tính tổng các số chẵn hoặc không chia hết cho 3 trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if (a[i] mod 2=0) and (a[i] mod 3=0) then x:=x+a[i];
B x:=0; for i:=1 to n do if (a[i] mod 2=0) or (a[i] mod 3<>0) then x:=x+1;
C x:=0; for i:=1 to n do if (a[i] mod 2=0) or (a[i] mod 3<>0) then x:=x+i;
D x:=0; for i:=1 to n do if (a[i] mod 2=0) or (a[i] mod 3<>0) then x:=x+a[i];
Câu 6: Thủ tục copy(s,4,3) tạo ra xâu kết quả là ‘dia’ Xâu s nhận giá trị nào dưới đây?
A s := ‘monlichsu’; B s := ‘mondialy’; C s := ‘montracdia’; D s := ‘dia’;
Câu 7: Trong Pascal, cấu trúc 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> 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ị cuối> to <giá trị đầu> do <câu lệnh>;
Câu 8: Đoạn lệnh tính tổng các số lẻ trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+i;
B x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+1;
C x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+a[i];
D x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+a[i];
Câu 9: Thủ tục delete(s,9,2) tạo ra xâu kết quả là ‘truongth’ Xâu s nhận giá trị nào dưới đây?
A s := ‘truongpt’; B s := ‘thpttruong’; C s := ‘truongthpt’; D s := ‘ptthtruong’;
Câu 10: Cách tham chiếu đến phần tử trong mảng 1 chiều:
A <tên kiểu mảng>[<chỉ số>] B <tên kiểu mảng>[<kiểu chỉ số>]
C <tên biến mảng>[<kiểu chỉ số>] D <tên biến mảng>[<chỉ số>]
Câu 11: Phát biểu nào sau đây đúng về mảng 1 chiều?
A Là dãy hữu hạn các phần tử có cùng kiểu B Chỉ là các dãy số nguyên.
C Mảng không chứa kí tự là chữ cái D Là dãy vô hạn các phần tử có cùng kiểu.
Câu 12: Đoạn lệnh đếm các số chẵn trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+1;
B x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+i;
C x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+a[i];
D x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+1;
Câu 13: Trong cấu trúc lặp for-do dạng lùi, câu lệnh được thực hiện khi
A <giá trị đầu> <= <biến đếm> và <biến đếm> <= <giá trị cuối>
B <giá trị đầu> > <biến đếm> và <biến đếm> >= <giá trị cuối>
C <giá trị đầu> < <biến đếm> và <biến đếm> < <giá trị cuối>
D <giá trị đầu> >= <biến đếm> và <biến đếm> >= <giá trị cuối>
Câu 14: Để đếm các số từ 1 đến 1000 bằng for-do dạng tiến, đoạn chương trình nào dưới đây đúng?
A d:=0; for i:=1 to 1000 do d:=d+1; B d:=0; for i:=1 downto 1000 do d:=d+1;
C d:=0; for i:=1 downto 1000 do d:=d+i; D d:=0; for i:=1 to 1000 do d:=1;
Trang 7Câu 15: Để đếm các số từ 1 đến 1000 bằng while-do, đoạn chương trình nào dưới đây đúng?
A d:=0; i:=1000; while i>1 do begin d:=d+i; i:=i-1; end;
B d:=0; i:=1; while i<=1000 do begin d:=1; i:=i+1; end;
C d:=0; i:=1000; while i>=1 do begin d:=d+1; i:=i-1; end;
D d:=0; i:=1; while i<1000 do begin d:=d+i; i:=i+1; end;
Câu 16: Trong Pascal, cấu trúc lặp while-do là:
A while <điều kiện> to <câu lệnh>; B while <điều kiện> then <câu lệnh>;
C while <điều kiện> do <câu lệnh> D while <điều kiện> do <câu lệnh>;
Câu 17: Phép gán s := ‘montoan’; Cách khai báo s nào dưới đây đúng?
A var s:string[4]; B var s:string[9]; C var s:string[6] D var s:tring[5];
Câu 18: Đoạn chương trình sau làm gì?
s:=0; for i:=1000 downto 1 do if (i mod 2 = 0) and (i mod 3 = 0) then s:=s+1;
A Tính tổng số chẵn và không chia hết cho 3 trong đoạn từ 1 đến 1000.
B Đếm số chẵn và chia hết cho 3 trong đoạn từ 1 đến 1000
C Đếm số chẵn và không chia hết cho 3 trong đoạn từ 1 đến 1000.
D Tính tổng số chẵn và chia hết cho 3 trong đoạn từ 1 đến 1000.
Câu 19: Khai báo trực tiếp biến mảng 1 chiều tối đa 100 phần tử là các số nguyên:
A var a:array[1 100] of byte; B var a:array[1 100] of real;
C var a:array[1 101] of byte; D var a:array[1 100] of byte;
Câu 20: Phép ghép xâu kí hiệu gồm
Câu 21: Cho xâu s1, s2 (tối đa 10 phần tử) Thủ tục sao chép 3 phần tử trong xâu s1 là
A copy(s1,3,1) B copy (s2,3,3) C copy (s1,3,3) D copy (s2,3,1)
Câu 22: Đoạn chương trình sau làm gì?
s:=0; for i:=1 to 1000 do if (i mod 2 = 0) and (i mod 3 <> 0) then s:=s+i;
A Tính tổng số chẵn hoặc không chia hết cho 3 trong đoạn từ 1 đến 1000.
B Tính tổng số chẵn và chia hết cho 3 trong đoạn từ 1 đến 1000.
C Tính tổng số chẵn và không chia hết cho 3 trong đoạn từ 1 đến 1000
D Tính tổng số chẵn hoặc chia hết cho 3 trong đoạn từ 1 đến 1000.
Câu 23: Trong Pascal, cấu trúc lặp với số lần chưa biết trước là
Câu 24: Hàm pos(s2,s1) trả ra kết quả là 4 Các xâu s1, s2 phải nhận giá trị nào dưới đây?
A s1 := ‘montinhoc’; s2 := ‘tinHoc’; B s1 := ‘montoantin’; s2 := ‘tin’;
C s1 := ‘tinhoc’; s2 := ‘tin’; D s1 := ‘montinhoc’; s2 := ‘tin’;
Câu 25: Cho 2 xâu s1 := ‘monlichsu’; s2 := ‘su’;Tạo s2 từ s1 bằng cách:
A copy(s1,8,2); B copy(s2,8,2); C copy(s1,2,8); D copy(s2,2,8);
Câu 26: Đoạn lệnh sau làm gì?
x:=0; for i:=1 to n do if (a[i] mod 3=0) and (a[i] mod 5<>0) then x:=x+a[i];
A Tính tổng các số chia hết cho 3 và không chia hết cho 5 trong mảng a
B Tính tổng các số không chia hết cho 3 và chia hết cho 5 trong mảng a.
C Tính tổng các số chia hết cho 3 hoặc không chia hết cho 5 trong mảng a.
D Tính tổng các số không chia hết cho 3 hoặc chia hết cho 5 trong mảng a.
Câu 27: Cho xâu s1, s2 (tối đa 10 phần tử) Thủ tục xóa phần tử thứ 5 trong xâu s2 là
A delete(s1,5,5) B delete(s2,5,1) C delete(s2,5,5) D delete(s1,5,1)
Câu 28: Trong cấu trúc lặp for-do dạng lùi
A biến đếm tăng dần từ giá trị đầu đến giá trị cuối.
B biến đếm giảm dần từ giá trị cuối đến giá trị đầu.
C câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp
tăng từ giá trị đầu đến giá trị cuối
D câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu
II PHẦN TỰ LUẬN (3,0 ĐIỂM)
Câu 1: Dùng cấu trúc lặp for-do dạng tiến để viết chương trình đưa ra màn hình các số lẻ hoặc chia hết
cho 5 trong đoạn [200,300]
Câu 2: Viết chương trình nhập vào xâu s, đưa ra màn hình các chữ cái in hoa trong xâu s.
Câu 3: Viết chương trình nhập vào mảng a gồm các số nguyên dương có n phần tử (n≤3000) Đếm các số
lẻ trong mảng a
Trang 7/14 - Mã đề thi 132
Trang 8-- HẾT
Trang 9-TRƯỜNG THPT …
Mã đề thi 210 Môn thi: Tin học 11 - Thời gian làm bài: 45 phút ĐỀ KIỂM TRA GIỮA KÌ II
Họ, tên học sinh: Lớp:
I PHẦN TRẮC NGHIỆM (7,0 ĐIỂM)
Câu 1: Kiểu dữ liệu của biến đếm trong lệnh lặp for-do có điều kiện
A cùng kiểu với giá trị đầu và giá trị cuối B cùng kiểu với các biến trong câu lệnh.
C không xác định kiểu dữ liệu D chỉ cần cùng kiểu với giá trị đầu.
Câu 2: Xâu là
A dãy kí tự trong bảng mã ASCII B dãy kí tự gồm các chữ cái in hoa.
C dãy kí tự gồm các chữ số D dãy kí tự gồm các chữ cái in thường.
Câu 3: Khai báo biến xâu var s:tring[7] Phép gán giá trị nào sau là đúng?
A s := ‘monlichsu’; B s := ‘monvatly’; C s := ‘tinhoc’; D s := ‘monsinhhoc’; Câu 4: Khai báo gián tiếp biến mảng 1 chiều:
A tupe <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>; var <tên biến mảng>:<tên kiểu mảng>;
B type <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử> var <tên biến mảng>:<tên kiểu mảng>;
C type <tên kiểu mảng>:array[kiểu chỉ số] of <kiểu phần tử>; var <tên biến mảng>=<tên kiểu mảng>;
D type <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>;var <tên biến mảng>:<tên kiểu mảng>;
Câu 5: Đoạn lệnh tính tổng các số lẻ hoặc chia hết cho 3 trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if (a[i] mod 2<>0) or (a[i] mod 3=0) then x:=x+i;
B x:=0; for i:=1 to n do if (a[i] mod 2<>0) or (a[i] mod 3=0) then x:=x+1;
C x:=0; for i:=1 to n do if (a[i] mod 2=0) and (a[i] mod 3=0) then x:=x+a[i];
D x:=0; for i:=1 to n do if (a[i] mod 2<>0) or (a[i] mod 3=0) then x:=x+a[i];
Câu 6: Thủ tục copy(s,1,3) tạo ra xâu kết quả là ‘dia’ Xâu s nhận giá trị nào dưới đây?
A s := ‘diavatly’; B s := ‘mondialy’; C s := ‘montracdia’; D s := ‘mondia’;
Câu 7: Trong Pascal, cấu trúc lặp for-do dạng tiến là:
A for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
B for <biến đếm>:=<giá trị đầu> downto <giá trị cuối> do <câu lệnh>;
C for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>
D for <biến đếm>=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Câu 8: Đoạn lệnh tính tổng các số chẵn trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+a[i];
B x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+1;
C x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+a[i];
D x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+i;
Câu 9: Thủ tục delete(s,7,4) tạo ra xâu kết quả là ‘monhoc’ Xâu s nhận giá trị nào dưới đây?
A s := ‘monsinhhoc’; B s := ‘monhoctoan’; C s := ‘montinhoc’; D s := ‘monsuhoc’;
Câu 10: Trong mảng 1 chiều, kiểu chỉ số thường là
A một đoạn số nguyên liên tục có dạng n1 n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1≤n2)
B một đoạn số nguyên liên tục có dạng n1 n2 với n1, n2 là các hằng hoặc biểu thức xác định chỉ số
đầu và chỉ số cuối (n1≤n2)
C một đoạn số nguyên liên tục có dạng n1…n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định
chỉ số đầu và chỉ số cuối (n1≤n2)
D một đoạn số nguyên liên tục có dạng n1…n2 với n1, n2 là các hằng hoặc biểu thức xác định chỉ số
đầu và chỉ số cuối (n1≤n2)
Câu 11: Để mô tả mảng 1 chiều cần xác định
A cách tham chiếu đến phần tử B kiểu của các phần tử và cách đánh số các phần tử của nó
C cách nhập mảng 1 chiều D kiểu dữ liệu của mảng.
Câu 12: Đoạn lệnh đếm các số lẻ trong mảng a nguyên có n phần tử là:
A x:=0; for i:=1 to n do if a[i] mod 2=0 then x:=x+1;
B x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+i;
C x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+a[i];
D x:=0; for i:=1 to n do if a[i] mod 2<>0 then x:=x+1;
Câu 13: Trong cấu trúc lặp for-do dạng tiến, câu lệnh được thực hiện khi
A <giá trị đầu> >= <biến đếm> và <biến đếm> >= <giá trị cuối>
B <giá trị đầu> > <biến đếm> và <biến đếm> >= <giá trị cuối>
C <giá trị đầu> < <biến đếm> và <biến đếm> < <giá trị cuối>
Trang 9/14 - Mã đề thi 132
Trang 10D <giá trị đầu> <= <biến đếm> và <biến đếm> <= <giá trị cuối>
Câu 14: Để đếm các số từ 1 đến 1000 bằng for-do dạng lùi, đoạn chương trình nào dưới đây đúng?
A d:=0; for i:=1 downto 1000 do d:=1; B d:=0; for i:=1000 downto 1 do d:=d+1;
C d:=0; for i:=1 to 1000 do d:=1; D d:=0; for i:=1 to 1000 do d:=d+i;
Câu 15: Để đếm các số từ 1 đến 1000 bằng while-do, đoạn chương trình nào dưới đây đúng?
A d:=0; i:=1000; while i>1 do begin d:=d+i; i:=i-1; end;
B d:=0; i:=1; while i<=1000 do begin d:=d+i; i:=i+1; end;
C d:=0; i:=1000; while i>=1 do begin d:=1; i:=i-1; end;
D d:=0; i:=1; while i<=1000 do begin d:=d+1; i:=i+1; end;
Câu 16: Trong cấu trúc lặp while-do, câu lệnh được thực hiện khi
A không cần điều kiện B điều kiện sai C điều kiện đúng D điều kiện không xác định Câu 17: Phép gán s := ‘monhoahoc’; Cách khai báo s nào dưới đây đúng?
A var s:string[6]; B var s:string[10]; C var s:string[7] D var s:tring[8];
Câu 18: Đoạn chương trình sau làm gì?
s:=0; for i:=1000 downto 1 do if (i mod 2 = 0) or (i mod 3 <> 0) then s:=s+1;
A Tính tổng số chẵn hoặc không chia hết cho 3 trong đoạn từ 1 đến 1000.
B Đếm số chẵn hoặc không chia hết cho 3 trong đoạn từ 1 đến 1000
C Tính tổng số chẵn hoặc chia hết cho 3 trong đoạn từ 1 đến 1000.
D Đếm số chẵn hoặc chia hết cho 3 trong đoạn từ 1 đến 1000.
Câu 19: Khai báo trực tiếp biến mảng 1 chiều tối đa 100 phần tử là các số thực:
A var a:array[1 100] of byte; B var a:array[1 101] of real;
C var a:array[1 100] of real; D var a:array[1…100] of real;
Câu 20: Phép so sánh xâu kí hiệu gồm
A <, >, >=, <=, =, <> B <, >, >=, <=, =, !=, C <, >, >=, <=, = =, <> D <, >, ≥, ≤, =, <> Câu 21: Cho xâu s1, s2 (tối đa 10 phần tử) Thủ tục sao chép 5 phần tử trong xâu s2 là
A copy(s1,5,1) B copy (s1,5,5) C copy (s2,5,5) D copy (s2,5,1)
Câu 22: Đoạn chương trình sau làm gì?
s:=0; for i:=1000 downto 1 do if (i mod 2 <> 0) and (i mod 3 <> 0) then s:=s+i;
A Tính tổng số lẻ hoặc không chia hết cho 3 trong đoạn từ 1000 đến 1.
B Tính tổng số lẻ và chia hết cho 3 trong đoạn từ 1000 đến 1.
C Tính tổng số lẻ và không chia hết cho 3 trong đoạn từ 1000 đến 1
D Tính tổng số lẻ hoặc chia hết cho 3 trong đoạn từ 1000 đến 1.
Câu 23: Trong Pascal, cấu trúc lặp với số lần biết trước là cấu trúc
Câu 24: Hàm pos(s1,s2) trả ra kết quả là 0 Các xâu s1, s2 phải nhận giá trị nào dưới đây?
A s2 := ‘montinhoc’; s1:= ‘tinHoc’; B s2:= ‘montoantin’; s1:= ‘tin’;
C s2:= ‘tinhoc’; s1:= ‘tin’; D s2:= ‘montinhoc’; s1:= ‘tin’;
Câu 25: Cho 2 xâu s1 := ‘sinhh’; s2 := ‘monsinhhoc’;Tạo s1 từ s2 bằng cách:
A copy(s1,4,5); B copy(s2,4,5); C copy(s1,5,4); D copy(s2,5,4);
Câu 26: Đoạn lệnh sau làm gì?
x:=0; for i:=1 to n do if (a[i] mod 3<>0) or (a[i] mod 5=0) then x:=x+a[i];
A Tính tổng các số chia hết cho 3 và không chia hết cho 5 trong mảng a.
B Tính tổng các số không chia hết cho 3 và chia hết cho 5 trong mảng a.
C Tính tổng các số chia hết cho 3 hoặc không chia hết cho 5 trong mảng a.
D Tính tổng các số không chia hết cho 3 hoặc chia hết cho 5 trong mảng a
Câu 27: Cho xâu s1, s2 (tối đa 10 phần tử) Thủ tục xóa phần tử thứ 3 trong xâu s1 là
A delete(s1,3,3) B delete(s2,3,1) C delete(s2,3,3) D delete(s1,3,1)
Câu 28: Trong cấu trúc lặp for-do dạng tiến
A biến đếm tăng dần từ giá trị đầu đến giá trị cuối.
B câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp
giảm từ giá trị cuối đến giá trị đầu
C câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối
D biến đếm giảm dần từ giá trị cuối đến giá trị đầu.
II PHẦN TỰ LUẬN (3,0 ĐIỂM)
Câu 1: Dùng cấu trúc lặp for-do dạng lùi để viết chương trình đưa ra màn hình các số không chia hết cho
3 hoặc chia hết cho 7 trong đoạn [300,400]
Câu 2: Viết chương trình nhập vào xâu s, đưa ra màn hình các kí tự không phải là chữ cái trong xâu s.