MA TRẬN ĐỀ THI TIN HỌC_HỌC KỲ II LỚP 8
Năm học 2016-2017
Cấp độ
Chủ đề |
Nhận biết |
Thông hiểu |
Vận dụng |
Cộng |
Cấp độ thấp |
Cấp độ cao |
TN |
TL |
TN |
TL |
TN |
TL |
TN |
TL |
Câu lệnh lặp |
cú pháp, kiểu dữ liệu của biến đếm trong vòng lặp For..do, biết các hoạt động lặp với số lần biết trước trong thực tế. |
Hiểu cách dùng vòng lặp for..do
Tính được số lần lặp |
|
|
|
Số câu
Số điểm
Tỉ lệ % |
4
1đ |
1
2 đ |
2
0,5 |
1
1 |
|
|
|
|
8
4,5đ
=45% |
Lặp với số lần chưa biết trước |
Biết từ khóa trong vòng lặp
Nhận biết từ khóa bắt đầu phần thân chương trình
|
-Nêu được sự khác nhau giữa câu lệnh lặp biết trước và chưa biết trước
- Hiểu về câu lệnh lặp chưa biết trước và lỗi lặp vô hạn lần có thể xảy ra.
|
Áp dụng kiến thức tìm lỗi và sửa lỗi cho chương trình |
Áp dụng vòng lặp while..do để viết chương trình tính tích 20 số nguyên đầu tiên. |
|
Số câu
Số điểm
Tỉ lệ % |
2
0,5
|
|
2
0,5 |
1
1
10% |
|
1
1,5
15% |
|
1
1,5
15% |
7
5đ
=50% |
Làm việc với dãy số |
Cú pháp khai báo biến mảng.
Cách khai báo hợp lệ |
|
|
|
|
Số câu
Số điểm
Tỉ lệ % |
2
0.5
5% |
|
|
|
|
|
|
|
2
0.5đ
=5% |
Tổng số câu
Tổng số điểm
% |
9
4
40% |
6
3
30% |
1
1,5
15% |
1
1,5
15% |
17
10
=100% |
NGƯỜI RA ĐỀ
Trường PTDTBT THCS Trà Nú KIỂM TRA HỌC KÌ II (Năm học 2016-2017)
Môn: Tin Học. Lớp 8
Họ và tên:..................................................
(Thời gian:90 phút không kể thời gian giao đề)
A/ PHẦN TRẮC NGHIỆM:(4điểm)
I/ Khoanh tròn vào chữ cái đứng đầu mỗi ý mà em cho là đúng: (3 điểm)
Câu 1: Vòng lặp sau thực hiện bao nhiêu lần lặp:
For i := 2 to 6 do a := a + 1;
A. 3 lần. B. 4 lần. C. 5 lần. D. 6 lần.
Câu 2: Số lần lặp được tính như thế nào?
A. Giá trị đầu – giá trị cuối B. Giá trị đầu – giá trị cuối + 1
C. Giá trị cuối – giá trị đầu D. Giá trị cuối – giá trị đầu + 1
Câu 3: Trong câu lệnh lặp, kiểu dữ liệu của biến đếm là:
A. Real B. String C. Integer D. Char
Câu 4: Câu lệnh lặp với số lần chưa biết trước bắt đầu bằng từ khóa:
A. For B. While C. If D. Var
Câu 5: Cú pháp câu lệnh lặp với số lần biết trước:
- For <biến đếm>= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
- For <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
- For <biến đếm>:= <giá trị cuối> to <giá trị đầu> do <câu lệnh>;
- For <biến đếm>: <giá trị đầu> to <câu lệnh> do <giá trị cuối>;
Câu 6: Phần thân chương trình bắt đầu bằng từ khóa:
A. End. B. Begin. C. Uses. D. Var.
Câu 7: Giá trị đầu và cuối của câu lệnh lặp For...do có kiểu dữ liệu:
A. Số thực B. Số nguyên C. Kí tự D. Số chẵn
Câu 8: Cho biết cú pháp khai báo biến mảng
A. <tên mảng>:array [<chỉ số đầu> …. <chỉ số cuối>] of <kiểu dữ liệu>;
B. <tên mảng>:array [<chỉ số đầu> .. <chỉ số cuối>] for <kiểu dữ liệu>;
C. <tên mảng>:array [<chỉ số đầu>.. <chỉ số cuối>] of <kiểu dữ liệu>;
D. <tên mảng>:array [<chỉ số đầu> ... <chỉ số cuối>] of <kiểu dữ liệu>;
Câu 9: Nấu cơm ngày 3 lần là:
A. Lặp với số lần chưa biết trước B. Lặp vô số lần
C. Lặp 10 lần D. Lặp với số lần biết trước
Câu 10: Sau khi thực hiện đoạn chương trình sau, giá trị của biến S bằng bao nhiêu:
s:=2;
for i:=1 to 5 do s := s*i;
A.120 B. 240. C. 121 D.241
Câu 11: Chọn câu lệnh đúng:
A. x:=1; while x<10 do x:=x+5; B. x =1; while x:= 10 do x=x+5;
C. x:=2; while x= 10 do x:=x+5; D. x:=10; while x< 10 do x=x+5;
Câu 12: Chọn phát biểu đúng:
A. Lặp vô hạn lần có thể xảy ra ở câu lệnh lặp với số lần biết trước
B. Lặp vô hạn lần là lặp 1000 lần
C. Lặp vô hạn lần có thể xảy ra ở câu lệnh điều kiện
D. Lặp vô hạn lần có thể xảy ra ở câu lệnh lặp với số lần chưa biết trước
E. Lặp vô hạn lần là vòng lặp vĩnh viễn.
II/ Hãy đánh dấu X vào ô trống mà em chọn:(1điểm)
TT |
Nội dung các câu lệnh |
Đúng |
Sai |
1 |
for i:=10 to 1 do writeln('b'); |
|
|
2 |
Var x: integer; begin for x := 1 to 10 do writeln('b'); end. |
|
|
3 |
c) X:=10; while X=10 do X := X+5; |
|
|
4 |
d) if x>5 then a:=b; else m := n; |
|
|
B/ PHẦN TỰ LUẬN: (6 điểm)
Câu 1. Nêu 2 ví dụ về hoạt động lặp với số lần biết trước ? (2 điểm)
Câu 2. Hãy nêu sự khác nhau giữa câu lệnh lặp với số lần chưa biết trước và câu lệnh lặp với số lần biết trước. (1 điểm)
Câu 3: Đánh dấu [x] vào ô đúng hoặc sai tương ứng trong các câu lệnh Pascal trong chương trình tính tổng (1,5 điểm)
A = 1 + 1/2 + 1/3 + … + 1/n
n là số tự nhiên được nhập vào từ bàn phím, nếu sai sửa lại?
Câu lệnh |
Đúng |
Sai |
Sửa lại |
Program Chuong trinh |
|
|
|
Var i , n = Integer ; |
|
|
|
Tong = Real ; |
|
|
|
BEGIN |
|
|
|
Wite (' Cho so tu nhien n : ') ; |
|
|
|
Readln (n) ; |
|
|
|
tong :=0 ; |
|
|
|
i :=1 ; |
|
|
|
While i <= n Do; |
|
|
|
Begin |
|
|
|
tong := tong + 1/i |
|
|
|
i := i + 1 ; |
|
|
|
End ; |
|
|
|
Writeln (' Tong can tim: ', Tong ) ; |
|
|
|
Readln |
|
|
|
END. |
|
|
|
|
|
|
|
|
Câu 4. Viết chương trình tính tích 20 số nguyên đầu tiên (Sử dụng vòng lặp while...do)
(1,5 điểm)
------HẾT-----
ĐÁP ÁN ĐỀ KIỂM TRA HỌC KÌ II- MÔN TIN HỌC LỚP 8
NĂM HỌC 2016-2017
A/ PHẦN TRẮC NGIỆM: (4đ)
I/ Khoanh tròn vào chữ cái đứng đầu mỗi ý mà em cho là đúng:(3đ)
Mỗi câu đúng 0.25 đ.
ĐỀ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
ĐÁP ÁN |
C |
D |
C |
B |
B |
B |
B |
C |
D |
B |
A,C |
D,E |
II/ Đánh dấu X đúng vào một ô trống đạt 0.25đ :
TT |
Nội dung các câu lệnh |
Đúng |
Sai |
1 |
for i:=10 to 1 do writeln('b'); |
|
X |
2 |
Var x: integer; begin for x := 1 to 10 do writeln('b'); end. |
X |
|
3 |
c) X:=10; while X=10 do X := X+5; |
X |
|
4 |
d) if x>5 then a:=b; else m := n; |
|
X |
B/ PHẦN TỰ LUẬN: (6 điểm)
CÂU |
ĐÁP ÁN |
Đ |
Câu 1 |
- Tuần em đi học 5 buổi.
- Ngày em đánh răng ba lần. |
0,5
0,5 |
Câu2.
|
Câu lệnh lặp với số lần chưa biết trước |
Câu lệnh lặp với số lần biết trước |
-Chỉ thị cho máy tính thực hiện 1 hay 1 nhóm lệnh với số lần lặp chưa biết trước |
-Chỉ thị cho máy tính thực hiện 1 hay 1 nhóm lệnh với số lần lặp xác định trước |
-Điều kiện tổng quát hơn, có thể là kt của giá trị có thực, cũng có thể là 1 đk tổng quát khác |
-Điều kiện là 1 giá trị của 1 biến đếm có giá trị nguyên |
|
0,5
0,5 |
Câu 3 |
Sai - Program Chuong trinh;
Sai -Tong : Real ;
Sai - Write (' Cho so tu nhien n : ') ;
Sai - i: =1 ;
Sai - tong := tong + 1/i;
Sai - Readln |
0,25
0,25
0,25
0,25
0,25
0,25 |
Câu 4 |
Program tich;
Uses crt;
Const n=20;
Var i, tich:integer;
Begin
Clrscr;
Tich:=1;
i:=1;
while i<=n do
begin
tich:=tich*i;
end;
writeln(‘tich cua 10 so tu nhien dau tien la=’,tich);
readln;
End.
|
0,25
0,25
0,25
0,25
0,25
0,25
|