You are on page 1of 14

MA TRẬN ĐỀ KIỂM TRA GIỮA HỌC KÌ II

MÔN: TIN HỌC 11 CS – THỜI GIAN LÀM BÀI: 45 PHÚT


Mức độ nhận thức
Nội dung
Đơn vị kiến thức/kĩ Vận dụng Tổng%
TT kiến thức/kĩ Nhận biết Thông hiểu Vận dụng
năng cao điểm
năng
TNKQ TL TNKQ TL TNKQ TL TNKQ TL
1.Kiểu mảng và cấu
40%
trúc mảng, mảng 2 8 4 1
CS
(4 điểm)
Chủ đề 6 : chiều, danh sách
Giải quyết 2. Đánh giá thuật 20%
2 2 1
vấn đề với toán (2 điểm)
1
sự trợ giúp 3. Kiểm thử và sửa 10%
2 2
của máy lỗi CT (1 điểm)
tính 4. LT giải bài toán
30%
sx, tìm kiếm, sx 4 4 1
(3 điểm)
nhanh
Tổng 16 12 2 1
Tỉ lệ % từng mức độ nhận thức 40 30 20 10 10
Tỉ lệ chung 70 30 100
Lưu ý:

1
– Các câu hỏi ở cấp độ nhận biết và thông hiểu là các câu hỏi trắc nghiệm khách quan 4 lựa chọn, trong đó có duy nhất 1 lựa
chọn đúng.
– Các câu hỏi ở cấp độ vận dụng và vận dụng cao là các câu hỏi tự luận.
– Số điểm tính cho 1 câu trắc nghiệm là 0,25 điểm/câu; số điểm của câu tự luận được quy định trong hướng dẫn chấm nhưng
phải tương ứng với tỉ lệ điểm được quy định trong ma trận.

2
BẢNG ĐẶC TẢ ĐỀ KIỂM TRA GIỮA HỌC KÌ II
MÔN: TIN HỌC 11 CS – THỜI GIAN LÀM BÀI: 45 PHÚT
Số câu hỏi theo các mức độ nhận
Nội dung
thức
T kiến Đơn vị kiến Mức độ kiến thức, kĩ năng
Vận
T thức/kĩ thức/kĩ năng cần kiểm tra, đánh giá Nhận Thông Vận
dụng
năng biết hiểu dụng
cao
1 Chủ đề F: Nhận biết:
Giải quyết - Biết được khái niệm mảng 1 chiều, 2
vấn đề với chiều, danh sách.
1. Tổ chức DL
sự trợ giúp Thông hiểu
trong chương
của máy - Giải thích được cấu trúc dữ liệu mảng
trình (mảng 1 8 (TN) 4 (TN) 1 (TL)
tính (một và hai chiều).
chiều, 2 chiều,
- Giải thích được danh sách.
danh sách),
Vận dụng
- Viết được một chương trình về mảng
1 chiều.
5. Đánh giá thuật Nhận biết 2 (TN) 2 (TN) 1(TL)
toán - Biết được sơ lược khái niệm độ phức
tạp thời gian của thuật toán
- Biết được kí phóa O lớn và các bậc độ
phức tạp thời gian

3
Thông hiểu
- Nêu được các ví dụ minh họa về độ
phức tạp thời gian của thuật toán.
Vận dụng
- Xác định được độ phức tạp thời gian
của thuật toán trên các bài toán cụ thể

6. Kiểm thử và Nhận biết 2 (TN) 2 (TN)


sửa lỗi CT - Biết được việc kiểm thử giúp lập trình
viên phát hiện lỗi, làm tăng độ tin cậy
của chương trình nhưng chưa chứng
minh được tính đúng của chương trình
- Trình bày được sơ lược khái niệm độ
phức tạp thời gian của thuật toán và
phép toán tích cực
Thông hiểu
- Nêu được ví dụ minh hoạ về độ phức
tạp thời gian của thuật toán và phép
toán tích cực.

4
Nhận biết
- Biết được đâu là bài toán tìm kiếm.
Thông hiểu
- Phát biểu được bài toán bài toán tìm
kiếm.
Vận dụng
7. LT giải bài
- Áp dụng thuật toán sắp xếp và tìm 4 (TN) 4 (TN) 1 (TL)
toán tìm kiếm
kiếm để giải quyết một bài toán đơn
giản
Vận dụng cao
- Áp dụng thuật toán sắp xếp và tìm
kiếm để giải quyết một bài toán mới

Tổng 16 12 2 1
Tỉ lệ % 40% 30% 20% 10%
Tỉ lệ chung 70% 30%

Lưu ý:
– Các câu hỏi ở cấp độ nhận biết và thông hiểu là các câu trắc nghiệm khách quan 4 lựa chọn, trong đó có duy nhất 1 lựa
chọn đúng.
– Các câu hỏi/bài tập ở cấp độ vận dụng và vận dụng cao là các câu hỏi/bài tập tự luận; có thể kiểm tra, đánh giá ở phòng
thực hành hành tùy thuộc vào điều kiện về phòng máy của từng trường (ưu tiên thực hành).

5
– Số điểm tính cho một câu trắc nghiệm là 0,25 điểm. Số điểm câu hỏi/bài tập tự luận, thực hành được quy định trong hướng
dẫn chấm nhưng phải tương ứng với tỉ lệ điểm trong ma trận.

6
ĐỀ THAM KHẢO ĐỀ KIỂM TRA ĐÁNH GIÁ GIỮA KÌ 2
NĂM HỌC2023 – 2024
MÔN:TIN HỌC 11 (CS)
(Đề có 3 trang)
Thời gian làm bài : 45Phút

I. TRẮC NGHIỆM (7đ)


Câu 1(NB 6.1): Để thiết lập mảng một chiều thông qua kiểu dữ liệu list, trong python ta viết:
A. A=[15, 20, 25, 30, 35];
B. int A[] = {15, 20, 25, 30, 35};
C. A[15, 20,25, 30, 35];
D. A=(15, 20,25, 30, 35);
Câu 2(NB 6.1): Phát biểu nào sau đây là đúng? Về truy cập mảng trong Python
A. Có thể truy cập từng phần tử của mảng một chiều theo chỉ số
B. Có thể truy cập 256 phần tử của mảng một chiều theo chỉ số
C. Có thể truy cập từng phần tử của mảng một chiều theo kiểu dữ liệu
D. Không thể truy cập từng phần tử của mảng một chiều theo chỉ số
Câu 3(NB 6.1): Câu lệnh sau sẽ thiết lập cấu trúc dữ liệu nào:
Temp = [2,4,6,8]
A. Kiểu nguyên.
B. Mảng 1 chiều.
C. Kiểu xâu.
D. Kiểu thực
Câu 4 (NB 6.1): Để khai báo một danh sách rỗng ta dùng cú pháp sau:
A. <tên danh sách> ==[]
B. <tên danh sách> = 0
C. <tên danh sách> = []
D. <tên danh sách> = [0]
7
Câu 5 (NB 6.1). Cho list:
>>>A=[[27,6,5,2],[3,9,4,8]]
Phần tử A[0][1] cho giá trị là:
A. 27
B. 6
C. 9
D. 8
Câu 6 (NB 6.1). Lệnh append() trong list dùng để làm gì?
A. Xóa 1 phần tử trong list
B. Xóa toàn bộ các phần tử trong list
C. Chèn thêm phần tử vào cuối list
D. Chèn thêm phần tử vào đầu list
Câu 7 (NB 6.1). Lệnh remove() trong list dùng để làm gì?
A. Xóa 1 phần tử trong list
B. Xóa toàn bộ các phần tử trong list
C. Chèn thêm phần tử vào cuối list
D. Chèn thêm phần tử vào đầu list
Câu 8 (NB 6.1) Cho A = [[10,15, 81],[15,27,35],[30,40,90]] phần tử A[2][1] ta có giá trị là?
A. 40
B. 30
C. 27
D. 35
Câu 9 (TH 6.1): Lệnh list(range(-3,3)) trả lại giá trị nào?
A. [-3,-2,-1,0,1,2]
B. [-3,-2,-1,0,1,2,3]
C. [-2,-1,0,1,2]
D.[-3,3]
8
Câu 10 (TH 6.1). Cho đoạn lệnh sau:
A=[2,3,4,”5”]
B=A[1] + A[3]
Kết quả của đoạn lệnh trên là:
A. 6
B. 7
C. 8
D. Báo lỗi
Câu 11 (TH 6.1) Cho danh sách B=[2, 4 , 6, 8, 10, 4.5]. Đoạn lệnh sau cho kết quả gì?
>>> for i in B
>>> print(i,end= “ ”)
A. 2,4,6,8,10,4.5
B. 2468104.5
C. 2 4 6 8 10 4.5
D. Báo lỗi.
Câu 12 (TH 6.1) Cho đoạn chương trình sau:
1 A=[]
2 n=5
3 while n>0:
4 m=input()
5 A.append(m)
6 n=n-1
7 print(A)
Đoạn chương trình trên thực hiện công việc gì?
A. Nhập danh sách phần tử là các số thực.
B. Nhập danh sách phần tử là các số nguyên.
C. Nhập danh sách phần tử là các xâu.
D. Nhập danh sách phần tử logic.
Câu 13. (NB 6.4) Phát biểu nào sau đây là bài toán tìm kiếm:
A. Cho dãy số nguyên A: [3,6,8,3,9,-31]. Hãy cho biết vị trí số lớn nhất trong dãy A.
9
B. Cho dãy số nguyên A: [3,6,8,3,9,-31]. Hãy cho biết dãy A có bao nhiêu phần tử.
C. Cho dãy số nguyên A: [3,6,8,3,9,-31]. Hãy cho biết tổng của dãy A.
D. Cho dãy số nguyên A: [3,6,8,3,9,-31]. Hãy cho phần tử thứ 3 của dãy A.
Câu 14. (NB 6.4) Cho phát biểu sau:
1. Cho i chạy từ phần tử thứ 2 đến cuối dãy.
2. Chèn phần tử thứ i (A[i]) vào vị trí sao A[i-1]<=A[i]<= A[i+1]
Phát biểu trên là các bước của thuật toán nào?
A. Thuật toán tìm kiếm tuần tự.
B. Thuật toán sắp xếp chèn.
C. Thuật toán sắp xếp chọn
D. Thuật toán sắp xếp nổi bọt.
Câu 15 (NB 6.4) Thuật toán tìm kiếm nhị phân thực hiện trên danh sách nào?
A. Đã được hoán đổi
B. Đã được sắp xếp
C. Đã được chỉnh sửa
D. Danh sách bất kỳ
Câu 16 (NB 6.4). Thuật toán tìm kiếm tuần tự bắt đầu thực hiện ở vị trí nào trong danh sách
A. Vị trí đầu tiên
B. Vị trí thứ 2
C. Vị trí ở giữa
D. Bất kỳ vị tí nào
Câu 17 (TH 6.4) cho chương trình sau
A=[1, 0, 9, 0, 7, 8]
k=0
for i in range(len(A)-1)
if A[i]==k
print(i)
break
Hãy cho biết chương trình trên cho kết quả bằng bao nhiêu?
A. 1
B. 2
10
C. 3
D. 4
Câu 18. (TH 6.4) Cho đoạn chương trình:

Đoạn chương trình trên thực hiện công việc gì?


A. Sắp xếp dãy A theo thứ tự không giảm
B. Sắp xếp dãy A theo thứ tự không tăng
C. Tìm vị trí phần tử K trong dãy A bằng thuật toán tìm kiếm tuần tự.
D. Tìm vị trí phần tử K trong dãy A bằng thuật toán tìm kiếm nhị phân.
Câu 19. (TH 6.4) Sau vòng lặp thứ nhất của thuật toán sắp xếp chọn, phương án nào ĐÚNG?
A. Phần tử có giá trị nhỏ nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.
B. Phần tử có giá trị lớn nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.
C. Các phần tử liền kề được hoán đổi.
D. Phần tử có giá trị nhỏ nhất sẽ đổi vị trí cho phần tử cuối dãy.
Câu 20 (TH 6.4) Cho dãy A=[1,3,5,7,9,12,16,18]. Với thuật toán tìm kiếm nhị phân, cần bao nhiêu phần tử để tìm ra phần tử có giá
trị 12
A. 1 phần tử
B. 2 phần tử
C. 3 phần tử
D. 4 phần tử
Câu 21(NB 6.2). Phát biểu nào sau đây không thuộc nguyên tắc đánh giá thời gian chạy chương trình:
A. Các phép toán đơn giản như phép toán số học, phép toán so sánh sẽ tính 1 đơn vị thời gian.
B. Các phép toán đơn giản như phép toán loogic cơ bản như AND,OR, NOT sẽ tính 1 đơn vị thời gian.
C. Các lệnh đơn giản như lệnh gán, lệnh in, đọc dữ liệu,… sẽ tính 1 đơn vị thời gian.
D. Vòng lặp for, while sẽ tính 1 đơn vị thời gian.
Câu 22 (NB 6.2) Hàm chuẩn dùng để đánh giá và phân loại độ phức tạp thời gian của phép bình phương là:
11
A. O(1)
B. O(logn)
C. O(n)
D. O(n2)
Câu 23 (TH 6.1) Cho đoạn chương trình:
1 m=5
2 n=11
3 S=0
4 for i in range(m,n):
5 S=S+i
6 print(S)
Số đơn vị thời gian thực hiện đoạn chương trình trên là:
A. 5
B. 7
C. 10
D. 12
Câu 24 (TH 6.1) Tính độ phức tạp của các hàm thời gian sau:
Tính = n3 + 5n - 3.
A. O(n) - tuyến tính
B. O(n^{3}) - lũy thừa
C. O(n^{1}) - lũy thừa
D. O(n^{5}) - lũy thừa
Câu 25 (NB 6.3) phát biểu nào sai trong các phát biểu sau?
A. Kiểm thử chương trình sẽ giúp tăng độ tin cậy của chương trình.
B. Kiểm thử chương trình giúp chứng minh được tính đúng của thuật toán.
C. Sử dụng bộ dữ liệu kiểm thử có thể làm tăng độ tin cậy của chương trình
D. Tính đúng của thuật toán cần được chứng minh bằng lập luận toán học.
Câu 26 (NB 6.3) Độ phức tạp thời gian (time complexity) được xác đinh là thời gian thực hiện chương trình/thuật toán. Thời gian này
phụ thuộc vào yếu tố nào?
12
A. tốc độ xử lý của máy tính
B. khả năng lưu trữ của máy tính
C. khối lượng của dữ liệu cần phải lưu trữ trong quá trình thực hiện chương trình/thuật toán
D. tài nguyên của máy tính trong đó có bộ nhớ được sử dụng để thực hiện chương trình
Câu 27 (TH 6.3) Để kiểm thử chương trình giải phương trình bậc 2: ax2 + bx + c = 0 (a<>0). Các bộ test (a,b,c) nào sau đây giúp ta
chứng minh tính đúng của chương trình?
A. (1;2;1); (1;4;-5)
B. (1;2;1); (1;4;-5); (2;3;10)
C. (1;2;3)
D. (1;-2;10); (1;2;3); (2;3;10)
Câu 28 (TH 6.3) Cho chương trình sau:

Cần sửa lỗi ở dòng nào để chương trình tính đúng tổng các số từ 1 đến n
A. 1
B. 2
C. 3
D. 4

II. TỰ LUẬN (3đ)


Cho dãy số nguyên A gồm các số a1,a2,...,an (1≤n≤1000). Hãy viết chương trình thực hiện các công việc sau
a) Nhập dãy A
b) in ra màn hình phần tử có giá trị lớn nhất và số lần xuất hiện của nó
c) Xác định độ phức tạp thời gian tính toán của chương trình.

13
----------Hết--------
Giải tự luận
Ý Nội dung trả lời Điểm
n=int(input("Moi nhap so n:"))
a=[]
for i in range(1,n+1):
A 1.0
x=int(input("nhap phan tu thu"+ str(i)
+":"))
a.append(x)
maxx=0
for i in range(len(a)):
if (a[i]>maxx):
maxx=a[i]
print(maxx)
B 1.0
d=0
for i in range(len(a)):
if (a[i]==maxx):
d=d+1
print(d)
C - Độ phức tạp: O(n) 1.0

14

You might also like