ĐỀ KIỂM TRA HỌC KỲ II MÔN: TIN HỌC 8 NĂM HỌC: 2022 – 2023
- Biết cú pháp và hiểu được hoạt động của câu lệnh lặp For .. do và While .. do - Biết được dữ liệu kiểu mảng, khai báo mảng, nhập, in và truy cập các phần tử của biến
- Nhận biết được hoạt động lặp với số lần biết trước và chưa biết trước - Vận dụng kiến thức của lệnh lặp For..do, while..do và câu lệnh ghép để viết chương
- Rèn kỹ năng đọc và tìm hiểu ý nghĩa các câu lệnh trong chương trình - Viết được chương trình Pascal có sử dụng biến mảng để giải quyết bài toán đơn giản
- Yêu thích môn học; - Say mê học hỏi, tìm tòi và sáng tạo. - Nghiêm túc trong quá trình làm bài
I. Mục tiêu: 1. Kiến thức: mảng. trình. 2. Kỹ năng: 3. Thái độ: II. Ma trận đề:
Vận dụng Tổng Nhận biết Thông hiểu Vận dụng cao Vận dụng thấp
TN TL TN TL TN TL TN TL Cấp độ Chủ đề
Câu lệnh lặp với số lần biết trước
- Biết cú pháp của câu lệnh lặp For..do - Biết các thành phần và hoạt động và với số lần biết trước. 1 2.0 Số câu: Số điểm:
1 2 .0
- Hiểu hoạt động của câu lệnh While…do
- Biết hoạt động lặp với số lần chưa biết trước. - Biết cú pháp của câu lệnh lặp While..do. Câu lệnh lặp với số lần chưa biết trước
1
Số câu: Số điểm: 2 1.0 2.0
3 3.0
Làm việc với dãy số
Số câu: Số điểm: - Biết Cú pháp khai báo biến mảng - Biết các thành phần khai báo biến mảng 2 1.0 Hiểu được cách truy xuất và làm việc với các phần tử của biến mảng. 2 1.0 Vận dụng biến mảng để viết được chương trình thực hiện yêu cầu cụ thể. Vận dụng lồng ghép được kiểm tra điều kiện vào cấu trúc lặp 1 1.0
1 2.0 6 4.0
câu:
Số câu: 1TL Số điểm: 1.0
Số câu: 5TN Số điểm: 40 Tỉ lệ: 40% Số câu: 2TN + 1TL Số điểm: 3.0 Tỉ lệ: 30% Số câu: 1TL Số điểm: 2.0 Tỉ lệ: 20% Tỉ lệ: 10% Tổng
Số 7TN+3TL Số điểm: 10 Tỉ lệ: 100%
BẢNG MÔ TẢ CHI TIẾT
Nội dung cần kiểm tra Câu
I. Trắc nghiệm
Biết hoạt động lặp với số lần chưa biết trước. 1
Biết cú pháp của câu lệnh lặp While..do. 2
Biết cú pháp khai báo biến mảng. 3
Biết các thành phần trong khai báo biến mảng. 4
Hiểu được cách truy xuất phần tử của biến mảng 5
Hiểu được cách làm việc với các phần tử của biến mảng 6
a) Biết được cấu trúc lặp
b) Biết được cú pháp câu lệnh lặp For...do 7 c) Biết các thành phần của câu lệnh lặp For...do
d) Biết hoạt động của câu lệnh lặp For...do
II. Tự luận
Vận dụng cao lồng ghép được kiểm tra điều kiện vào cấu trúc lặp. 1
Hiểu hoạt động của câu lệnh While…do 2
Vận dụng biến mảng để viết được chương trình thực hiện yêu cầu cụ thể. 3
TRƯỜNG THCS NGUYỄN HIỀN Họ và tên:…………………………… Lớp 8/…… KIỂM TRA HỌC KỲ II NĂM HỌC 2022 – 2023 MÔN: TIN HỌC 8 Thời gian: 45 phút
Đề 1
I. Trắc nghiệm: (5.0đ)
Chọn câu trả lời đúng nhất và ghi vào bảng sau:
1 2 3 4 5 6 7 Câu
a b c d Đáp án
B. Học bài đến khi thuộc; D. Quét lớp cho tới khi lớp sạch.
Câu 1. Hoạt động nào sau đây không phải là hoạt động lặp với số lần chưa biết trước? A. Mỗi tuần đi nhà sách một lần; C. Múc từng gáo nước đến khi đầy bể; Câu 2. Trong câu lệnh lặp While..do, sau từ khóa do có từ hai câu lệnh trở lên thì ta gọi là: B. Câu lệnh điều kiện; D. Câu lệnh tính toán. A. Câu lệnh ghép; C. Câu lệnh đơn;
Câu 3. Giả sử biến Chieucao gồm 20 phần tử, cách khai báo nào dưới đây là đúng?
A. Var Chieucao: array[1..20] of real; C. Var Chieucao: array[1..20] of string; B. Var Chieucao : array[1..20] of integer; D. Var Chieucao : array[1…20] of char.
chỉ số cuối;
Câu 4. Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây không đúng? A. Chỉ số đầu và chỉ số cuối là hai số nguyên; B. Chỉ số đầu C. Kiểu dữ liệu có thể là integer hoặc real; D. Dấu ba chấm (...) nằm giữa chỉ số đầu và chỉ số cuối. Câu 5. Để truy cập vào phần tử thứ n của mảng X, ta viết: B. N[x]; A. X(n); C. X[n]; D. Xn.
Câu 6. Cho khai báo mảng như sau: Var A : array[1..30] of Real;
Để in giá trị phần tử thứ 20 của mảng A ra màn hình, ta viết: B. Write(A(20)); A. Readln(A[20]); D. Write(20). C. Write(A[20]); Câu 7. Hãy xác định đúng/sai (Đ/S) cho mỗi phát biểu dưới đây:
Đúng Sai
Phát biểu a) Cấu trúc lặp trong thuật toán được dùng để mô tả việc thực hiện lặp lại nhiều lần một hoặc một nhóm các hoạt động b) Câu lệnh lặp với số lần biết trước là For .. do c) Câu lệnh thành phần trong câu lệnh For .. do chỉ có thể là một câu lệnh đơn (như lệnh gán, lệnh tính toán, lệnh điều kiện, lệnh write, lệnh readln, …) d) Câu lệnh lặp For .. do sẽ thực hiện câu lệnh nhiều lần, mỗi lần là một vòng lặp. Số vòng lặp là biết trước và bằng: Giá trị đầu – giá trị cuối. II. Tự luận: (5.0đ) Câu 1. (1.0đ) Để tính S = 1+3+5 + …+ n (n lẻ). Bạn Lan đã viết đoạn chương trình sau, nhưng lại không đạt kết quả mong muốn.
S:=0; For i := 1 to n do begin i:=i+2; S := S*i; end; Em hãy giúp bạn Lan sửa lại cho đúng.
Câu 2. (2.0đ) Hãy tìm hiểu đoạn chương trình pascal sau đây và cho biết đoạn lệnh đó máy tính thực hiện bao nhiêu vòng lặp. Khi kết thúc, giá trị của s bằng bao nhiêu? s:=0; n:=0; while s<=10 do
Begin n:=n+1;s:=s+n;end; Câu 3. (2.0đ) Viết chương trình nhập vào điểm kiểm tra cuối học kỳ 2 môn Tin của các bạn trong lớp em. Sau đó in ra màn hình điểm Tin cao nhất. ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………..... …………………………………………………………………………………………………
TRƯỜNG THCS NGUYỄN HIỀN Họ và tên:………………………….. Lớp 8/…… KIỂM TRA HỌC KỲ II NĂM HỌC 2022 – 2023 MÔN: TIN HỌC 8 Thời gian: 45 phút
Đề 2
I. Trắc nghiệm: (5.0đ)
Chọn câu trả lời đúng nhất và ghi vào bảng sau:
Câu 1 2 3 4 5 6 7
Đáp án a b c d
Câu 1. Trong các hoạt động dưới đây, đâu là hoạt động lặp với số lần chưa biết trước? A. Mỗi buổi học đúng 5 tiết; B. Mỗi ngày ăn cơm 3 buổi;
C. Mỗi ngày phải học bài cho đến khi thuộc; D. Rằm tháng Giêng là Tết Nguyên tiêu.
Câu 2. Trong câu lệnh lặp While..do, sau từ khóa do có từ hai câu lệnh trở lên thì ta gọi là: A. Câu lệnh xuất; C. Câu lệnh nhập; B. Câu lệnh ghép; D. Câu lệnh gán.
Câu 3. Khai báo nào đúng: Khai báo mảng gồm 5 phần tử cùng kiểu số thực?
A. Var mang : Array[5..10] of Integer; B. Var mang : Array[1..5] of Real; C. Var mang : Array[0..5] of string; D. Var mang = Array(1..5) of Real.
Câu 4. Trong cú pháp khai báo biến mảng, chỉ số đầu và chỉ số cuối có thể là:
A. Số nguyên và kí tự; C. Kí tự và số thực; B. Số thực và xâu kí tự; D. Xâu kí tự, số nguyên, số thực.
Câu 5. Để truy cập vào phần tử thứ i của mảng A, ta viết: B. A[n]; A. A(i); C. X[i]; D. A[i].
Câu 6. Cho mảng A có 5 phần tử với các số liệu như hình sau:
A 1 10 2 12 3 20 4 8 5 9
Hãy chỉ ra đâu là biểu diễn phần tử của mảng A và giá trị tương ứng A. A[3]=20; C. A[10]=1; D. A[9]=5.
B. A[2]=20; Câu 7. Hãy xác định đúng/sai (Đ/S) cho mỗi phát biểu dưới đây.
Phát biểu
Đúng Sai
a) Mọi ngôn ngữ lập trình đều có câu lệnh lặp để thể hiện cấu trúc lặp
b) Câu lệnh lặp với số lần biết trước For .. do có cú pháp như sau:
for
II. Tự luận: (5.0đ) Câu 1. (1.0đ) Để tính P = 2*4*6* …*n (n chẵn). Bạn Nam đã viết đoạn chương trình sau, nhưng lại không đạt kết quả mong muốn.
P := 1; For i := 1 to n do begin i:=i+2; P := P*i ; end;
Em hãy giúp bạn Nam sửa lại cho đúng. Câu 2. (2.0đ) Hãy tìm hiểu đoạn chương trình pascal sau đây và cho biết đoạn lệnh đó máy tính thực hiện bao nhiêu vòng lặp. Khi kết thúc, giá trị của s bằng bao nhiêu?
s:=10; n:=0; while s>0 do Begin n:=n+1;s:=s-n;end;
Câu 3. (2.0đ) Viết chương trình nhập vào điểm kiểm tra cuối học kỳ 2 môn Toán của các bạn trong lớp em. Sau đó in ra màn hình điểm Toán thấp nhất.
Bài làm: ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………..... …………………………………………………………………………………………………
ĐÁP ÁN VÀ BIỂU ĐIỂM ĐỀ 1:
I. Trắc nghiệm: Trả lời đúng mỗi câu được 0.5 điểm
Câu 1 2 3 4 6 5 7
Đáp án A A A D C a Đ b Đ c S d S
C
II. Tự luận: (5.0đ) Câu 1. Không thể thay đổi giá trị của biến đếm i trong câu lệnh for .. do (0.5đ)
Câu lệnh đúng là :
S := 0; For i := 1 to n do if i mod 2 <> 0 then S := S+i; (0.5đ)
Câu 2.
Số lần lặp n s 1 1 1 2 2 3 3 3 6 4 4 10 5 5 15
Đoạn lệnh trên máy tính thực hiện 5 vòng lặp. (1.0đ) Khi kết thúc, giá trị của s bằng 15.(1.0đ)
0.25 đ
0.25 đ
0.5 đ Write(‘nhap diem tin cua ban thu’,i); Readln(diemtin[i]);
End; 0.25 đ
Câu 3. Var diemtin : array[1..100] of Integer; n,i:integer; Begin Write(‘Nhap n=’); Readln(n); For i:=1 to n do begin Max:= diemtin[1]; For i:=2 to n do 0.5 đ If max < diemtin[i] then max := diemtin[i];
write(‘diem tin cao nhat la ‘,max:4:2); 0.25 đ
Readln End.
* Lưu ý: HS viết đúng theo cách khác vẫn cho điểm tối đa
ĐÁP ÁN VÀ BIỂU ĐIỂM ĐỀ 2:
I. Trắc nghiệm: Trả lời đúng mỗi câu được 0.5 điểm
2 3 4 5 6 7 Câu 1
B B A D A a Đ b Đ c S d Đ Đáp án
C II. Tự luận: (5.0đ) Câu 1. -
Không thể thay đổi giá trị của biến đếm i trong câu lệnh for .. do (0.5đ) Câu lệnh đúng là :
P := 1; For i := 1 to n do if i mod 2 = 0 then P := P*i; (0.5đ)
Câu 2.
Số lần lặp n s 1 1 9 2 2 7 3 3 4 4 4 0
Đoạn lệnh trên máy tính thực hiện 4 vòng lặp. (1.0đ) Khi kết thúc, giá trị của s bằng 0.(1.0đ)
0.25 đ
0.25 đ
0.5 đ Write(‘nhap diem toan cua ban thu’,i); Readln(diemtoan[i]);
End; 0.25 đ
Câu 3. Var diemtoan : array[1..100] of Integer; n,i:integer; min:real; Begin Write(‘Nhap n=’); Readln(n); For i:=1 to n do begin min:= diemtoan[1]; For i:=2 to n do 0.5 đ If min > diemtoan[i] then min := diemtoan[i];
write(‘diem toan thap nhat la ‘,min:4:2); 0.25 đ
Readln End.
* Lưu ý: HS viết đúng theo cách khác vẫn cho điểm tối đa