ĐỀ KIỂM TRA GIỮA KỲ II-NĂM HỌC 2020 - 2021 MÔN TIN HỌC- LỚP 8
Thời gian làm bài : 45 Phút; (Đề có 15 câu) A. MA TRÂN ĐỀ:
Cấp độ
Chủ đề Nhận biết Thông hiểu Vận dụng
cấp độ thấp
Vận dụng
cấp độ cao Cộng
Câu lệnh lặp
- Bài 7: Câu lệnh lặp
- Bài TH5: Bài thực hành: Sử dụng lệnh lặp For...do
- Nhận biết hoạt động lặp với một số lần nhất định và biết trước.
- Cú pháp câu lệnh lặp For...do.
- Câu lệnh ghép.
- Số lần thực hiện câu lệnh trong câu lệnh lặp For...do.
- Biến đếm trong câu lệnh lặp For...do.
- Biết sửa lỗi chương trình.
- Viết chương trình Pascal.
TN TL TN TL TN TL TN TL
Số câu:
Số điểm: 3
1,5 1
0,5 2
1 1
1 1
1 Số điểm: 5 Tỉ lệ: 50%
- Bài 8: Lặp với số lần chưa biết trước.
- Bài TH6: Sử dụng lệnh lặp While...do
- Nhận biết hoạt động lặp với số lần chưa biết trước.
- Cú pháp câu lệnh lặp While...do.
- Nhận biết được điều kiện trong câu lệnh lặp While...do thường là phép so sánh.
- Hiểu hoạt động của câu lệnh While…do - Xác định số lần thực hiện trong câu lệnh While..do.
- Đọc hiểu chương trình.
TN TL TN TL TN TL TN TL
Số câu:
Số điểm: 5
2,5 1
0,5 2
1 1
1 Số điểm: 5
Tỉ lệ: 50%
ĐỀ KIỂM TRA GIỮA KỲ II-NĂM HỌC 2020 - 2021 MÔN TIN HỌC- LỚP 8
Thời gian làm bài : 45 Phút; (Đề có 15 câu)
A/ BẢNG ĐẶC TẢ ĐỀ :
I/ PHẦN TRẮC NGHIỆM (5 điểm):
Câu 1: Nhận biết hoạt động lặp với một số lần nhất định và biết trước.
Câu 2: Nhận biết hoạt động lặp với số lần chưa biết trước.
Câu 3: Biết được cú pháp câu lệnh lặp For...do.
Câu 4: Biết được câu lệnh ghép trong ngôn ngữ lập trình Pascal:
Câu 5: Biết được cú pháp câu lệnh lặp While...do.
Câu 6: Biết được cú pháp câu lệnh lặp While...do.
Câu 7: Hiểu hoạt động của câu lệnh While…do
Câu 8: Biết được điều kiện trong câu lệnh lặp While...do thường là phép so sánh..
Câu 9: Biết biết số lần lặp của câu lệnh for cụ thể nào đó.
Câu 10: Hiểu hoạt động của câu lệnh While…do II/ PHẦN TỰ LUẬN (5 điểm):
Câu 11: Hiểu được biến đếm và số lần lặp thực hiện câu lệnh trong câu lệnh lặp For...do.
Câu 12: Biết hoạt động của câu lệnh While…do .
Câu 13: Biết liệt kê các lỗi trong câu lệnh của chương trình và viết lại cho đúng.
Câu 14: Đọc hiểu chương trình cho biết ý nghĩa câu lệnh, cách thực hiện chương trình.
Câu 15: Viết được chương trình nhập từ bàn phím số nguyên n và tính tổng hoặc tích các số tự nhiên từ 1 đến n.
B. NỘI DUNG ĐỀ:
I-Trắc nghiệm: (5 điểm)
Câu 1. Hoạt động nào sau đây lặp với số lần nhất định và biết trước:
A. Ngày ăn cơm ba bữa B. Mỗi tuần đi tập đàn một lần C. Học cho tới khi thuộc bài D. Cả a và b đều đúng.
Câu 2. Các hoạt động nào dưới đây lặp với số lần chưa biết trước số lần lặp:
A. Ngày đánh răng ba lần B. Gọi điện cho tới khi có người nhấc máy C. Chạy quanh sân trường 3 vòng D. Cả b và c đều đúng.
Câu 3: Lệnh lặp nào sau đây là đúng?
A. For <biến đếm>= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>;
B. For <biến đếm>:= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>;
C. For <biến đếm>:= <giá trị cuôí> down to <giá trị đầu> do <câu lệnh>;
D. For <biến đếm>:= <giá trị đầu> to <câu lệnh> do <giá trị cuối>;
Câu 4: Câu lệnh ghép thường đặt trong từ khóa nào?
A. Var... B. Program....
C. Begin, End; D. Tất cả đều sai.
Câu 5: Cú pháp câu lệnh lặp while ...do có dạng đúng là:
A. While < điều kiện> do; <câu lệnh >; B. While < điều kiện> <câu lệnh > do;
C. While <câu lệnh > do < điều kiện>; D. While < điều kiện> do <câu lệnh >;
Câu 6: <Câu lệnh> sau từ khóa While..do là :
A. Câu lệnh đơn giản hoặc câu lệnh ghép. B. Câu lệnh ghép hay câu lệnh gán giá trị.
C. Câu lệnh gán giá trị hay lệnh tính toán. D. lệnh writeln và lệnh read.
Câu 7: Phát biểu sau đây Đúng hay Sai?
While..do là câu lệnh lặp với số lần lặp chưa biết trước số lần lặp bởi vì chưa biết điều kiện điều khiển vòng lặp sẽ có giá trị “Sai” sau bao nhiêu vòng lặp.
A. Đúng B. Sai
Câu 8:While <điều kiện> do <câu lệnh>. Đâu là biểu thức <điều kiện> hợp lý?
A. a := 1 B. a – 1 C. a := True D. a > 10.
Câu 9: Hãy cho biết số lần lặp của câu lệnh for sau đây: for i:=2 to 5 do … A. 6 lần B. 5 lần C. 4 lần D. 3 lần Câu 10: Trong câu lệnh lặp while ...do nếu điều kiện đúng thì:
A. Tiếp tục vòng lặp B. Thoát vòng lặp
C. Lặp 10 lần D. Vòng lặp vô tận.
II – Phần tự luận. ( 5 điểm )
Câu 11. (1.0 đ) Biến đếm trong câu lệnh dùng để làm gì? Số lần lặp trong câu lệnh lặp For...do được tính như thế nào?
Câu 12. (1.0 đ) Nêu hoạt động của câu lệnh lặp While…do?
Câu 13: (1.0đ) Các câu lệnh lặp trong Pascal sau có sai không? Nếu sai hãy sửa lại cho đúng?
a) For i:= 100 to 1 do writeln(‘A’); ...
b) For i:= 1.5 to 10.5 do Writeln(‘A’); ...
c) X: = 10; while X: =10 do X: = X + 5; ...
d) X: = 10; while X =10 do X = X + 5; ...
Câu 14. (1.0 đ) Em hãy tìm hiểu đoạn chương trình sau đây:
S:=0; i:=1;
while (i<=5) do begin
S := S + i*i;
i:=i+1;
end;
Writeln(‘S = ‘,S);
Hãy viết điều kiện lặp, câu lệnh lặp sau Do , chương trình tính tổng gì và giá trị của S bằng bao nhiêu?
Câu 15. (1.0 đ) Viết chương trình tính Tích các số tự nhiên từ 1 đến n, n nhập từ bàn phím?
(Sử dụng cú pháp while..do).
--- HẾT ---
C. ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM I. Phần đáp án câu trắc nghiệm:
Câu 1 2 3 4 5 6 7 8 9 10
ĐÁP ÁN D B B C D A B D C A
II. Phần đáp án câu tự luận:
Câu NỘI DUNG ĐIỂM
11 * Gợi ý làm bài:
- Biến đếm trong câu lệnh dùng để đếm số lần lặp trong câu lệnh lặp.
- Số lần lặp trong câu lệnh lặp For...do được tính theo công thức:
Giá trị cuối – giá trị đầu + 1
0.5 đ 0.5 đ 12 * Gợi ý làm bài:
Các bước thực hiện như sau:
- B1: kiểm tra điều kiện
- B2: nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc.
Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1..
0.5đ
13
* Gợi ý làm bài:
a) For i:= 100 to 1 do writeln(‘A’); Sai, vì giá trị đầu lớn hơn giá trị cuối
b) For i:= 1.5 to 10.5 do Writeln(‘A’); Sai, vì giá trị đầu và giá trị cuối phải thuộc kiểu số nguyên
c) X: = 10; while X: =10 do X: = X + 5; Sai. Điều kiện phải x=10 d) X: = 10; while X =10 do X = X + 5; Lệnh gán X = X + 5 thiếu dấu ‘:’
0.25đ 0.25đ 0.25đ 0.25đ
14 * Gợi ý làm bài: 0.25 đ
+ Điều kiện lặp: i<=5
+ Câu lệnh lặp: S := S + i*i;
i:=i+1;
+ Chương trình tính tổng bình phương các số tự nhiên n + Giá trị của S bằng : 45
0.25 đ 0.25 đ 0.25 đ
15
* Gợi ý làm bài:
Program Tinhtich;
var n,i,P:integer;
begin
write('nhap so tu nhien n:'); readln(n);
P:=1;
For i:=1 to n do P:=P*i;
writeln(‘ Tích các số tự nhiên từ 1 đến n la:',P);
End.
0.5đ
0.5đ
_________________________________________________