(1,0 đ) Hãy dùng các câu lệnh để viết thuật toán diễn đạt việc một bạn học thuộc lòng bài thơ cho tới khi bố mẹ kiểm tra là đã thuộc thì mới kết thúc, nếu không thì phải học lại... Giá t[r]
Trang 1TRƯỜNG THCS NGUYỄN DU
ĐỀ KIỂM TRA HỌC KỲ II NĂM HỌC 2019 - 2020
MÔN: TIN HỌC 8 Thời gian: 45 phút
MA TRẬN ĐỀ
Mức độ
Nội dung
số
Bài 7:
Lặp với
số lần
biết
trước
- Biết cú pháp câu lệnh lặp
for…to…do, sửa
được lỗi sai
Số câu 2
(C2,12)
1 (C1 4)
3
Số điểm
Tỉ lệ
0,5 5%
2,5 25%
3,0 30%
Bài 8:
Lặp với
số lần
chưa
biết
trước
- Biết cú pháp câu lệnh lặp
while…do, nêu
được hoạt động của câu lệnh lặp
- Phân tích và xác định được kết quả của sau khi thực hiện câu lệnh lặp
Sắp xếp được thuật toán
Số câu 3
(C3,9,11)
2 (C8,10 )
1
Số điểm
Tỉ lệ
0,75 7,5%
0,5 2,5%
1,0 10%
2,25 22,5
%
Bài 9:
Làm việc
với dãy
số
- Biết cú pháp và các thành phần
có trong biến mảng
- Biết khai báo và
sử dụng biến
chương trình
- Diễn đạt được hoạt động của các câu lệnh khi kết hợp với biến mảng để viết chương trình, xử lý được dãy số
Giải thích được câu lệnh
Số câu
5 (C1,4,5,6,7 )
1 (C16)
1 (C1 3)
7
Trang 2Tỉ lệ 12,5% 25% 10% 47,5
% Tổng số
Tổng số
%
Trang 3Trường: THCS Nguyễn Du
Họ và tên:
………
Lớp: ………
KIỂM TRA HỌC KỲ II Môn Tin học 8 - Năm học 2019-2020
Thời gian: 45 phút (không kể thời gian
giao đề)
ĐỀ CHÍNH THỨC
A - TRẮC NGHIỆM: Chọn đáp án trả lời đúng nhất và ghi vào giấy làm bài
(3,0 đ)
Câu 1 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;
Câu 2 Chỉ ra câu lệnh lặp với số lần lặp biết trước trong các câu lệnh rút gọn
sau đây?
A For…to…do
C If – then
B While…do
D If – then – else
Câu 3 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 4 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 Real; D Var mang = Array(1 5)
of Real;
Câu 5 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 chỉ số cuối
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 6 Trong cú pháp khai báo biến mảng, chỉ số đầu và chỉ số cuối có thể là
A số thực
C kí tự
B số nguyên
D xâu kí tự
Câu 7 Lần lượt thực hiện đoạn lệnh: A[1] := 5; A[2] := 4; A[3] := A[1] +
A[2]; Giá trị của A[3] là
A 1
C 3
B 4
D 9
Câu 8 Cho đoạn chương trình sau:
a:=15;
while a>=10 do write(‘a’);
Kết quả của đoạn lệnh trên là
Trang 4A trên màn hình xuất hiện một
chữ a
C trên màn hình xuất hiện một
số 10
B trên màn hình xuất hiện 10 chữ a
D chương trình bị lặp vô hạn lần
Câu 9 Trong câu lệnh While do… nếu điều kiện đúng thì
A tiếp tục vòng lặp
C vòng lặp vô tận
B lặp 10 lần
D thoát khỏi vòng lặp
Câu 10 Câu lệnh Pascal While (4*5<=15) do Writeln (4*5); sẽ
A in số 20 ra màn hình 4 lần
C không thực hiện lệnh Writeln
(4*5);
B in số 20 ra màn hình 5 lần
D lặp vô hạn lần lệnh Writeln (4*5);
Câu 11 Cho đoạn chương trình sau: a := 1; b: = 7; While a<b do
a:=a+2; Kết quả cuối cùng a bằng bao nhiêu?
A 1
C 7
B 3
D 8
Câu 12: Trong cú pháp câu lệnh lặp với số lần biết trước: Số lần lặp là
A Giá trị cuối – Giá trị đầu +1
B Giá trị cuối – Giá trị đầu –1
C Giá trị đầu – Giá trị cuối +1
D Giá trị đầu – Giá trị cuối –1
B – TỰ LUẬN (7,0 đ)
Câu 13 (1,0 đ) Câu lệnh khai báo biến mảng sau đây máy tính có thực hiện được không?
Giải thích
Var N : integer;
A : array[1 N] of real;
Câu 14 (2,5 đ) Sửa lỗi sai trong các câu lệnh sau:
a) X := 10; while X := 10 do X := X + 5;
b) for i=1 to 10 do writeln('A');
c) for i:=1.5 to 10.3 do writeln('A');
d) Var X = Array[5 .10] Of Real;
e) Var X: array[1,5 15,5] of Integer;
Câu 15 (1,0 đ) Hãy dùng các câu lệnh để viết thuật toán diễn đạt việc một bạn học thuộc
lòng bài thơ cho tới khi bố mẹ kiểm tra là đã thuộc thì mới kết thúc, nếu không thì phải học lại
Câu 16 (2,5 đ) Viết chương trình tính tổng dãy N số nguyên với N được nhập
từ bàn phím
Trang 5
-Hết -ĐÁP ÁN VÀ THANG ĐIỂM (Đề chính thức)
ĐÁP ÁN
THAN G ĐIỂM
Câu 1
Câu 2
Câu 3
Câu 4
Câu 5
Câu 6
Câu 7
Câu 8
Câu 9
Câu 10
Câu 11
Câu 12
Mỗi đáp án đúng được 0,25 đ
Câu
13
(1,0
đ)
Không
Giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải được xác định ngay khi
khai báo biến mảng (Cách khác: giá trị cuối phải là số cụ thể).
0,5 đ 0,5 đ
Câu
14
(2,5
đ)
a) X := 10; while X := 10 do X := X + 5;
→ X := 10; while X = 10 do X := X + 5;
hoặc các dấu (< , > , <= , >=, < >) đều đúng
b) for i=1 to 10 do writeln('A');
→ for i:=1 to 10 do writeln('A');
c) for i:=1.5 to 10.3 do writeln('A');
→ for i:=1 to 10 do writeln('A'); (hoặc các số nguyên khác đều đúng sao
cho giá trị đầu <= giá trị cuối)
d) Var X = Array[5 .10] Of Real;
→ Var X : Array[5 .10] Of Real;
e) Var X: array[1,5 15,5] of Integer;
→ Var X: array[1 15] of Integer; (hoặc các số nguyên khác đều
đúng sao cho giá trị đầu <= giá trị cuối)
0,5 đ 0,5 đ 0,5 đ
0,5 đ 0,5 đ
Câu
15
(1,0
đ)
Bước 1: Học thuộc lòng bài thơ
Bước 2: Đọc cho bố mẹ nghe
Bước 3: Nếu đã thuộc thì kết thúc thuật toán Ngược lại quay lại Bước 1
0,25đ 0,25đ 0,5đ
Câu
16
(2,5
đ)
- Học sinh viết đúng như chương trình dưới đây được
tối đa 2,5 đ
Program tinh_tong;
uses crt;
var i, T, N : integer;
A: array[1 100] of integer;
Begin
clrscr;
writeln(‘Nhap do dai mang A: ‘);
0,5 đ
0,5 đ
Trang 6writeln(‘Nhap gia tri cho cac phan tu trong mang: ‘);
for i := 1 to N do
begin
write(‘A[‘, i ,’]=’);
readln(A[i]);
end;
T:=0;
for i:=1 to N do
T := T + A[i];
write(‘Tong cac phan tu trong mang la: ‘,T);
readln;
end
0,5 đ
0,5 đ
0,5 đ
Trang 7Trường: THCS Nguyễn Du
Họ và tên:
………
Lớp: ………
KIỂM TRA HỌC KỲ II Môn Tin học 8 - Năm học 2019-2020
Thời gian: 45 phút (không kể thời gian
giao đề)
ĐỀ DỰ PHÒNG
A - TRẮC NGHIỆM: Chọn đáp án trả lời đúng nhất và ghi vào giấy làm bài
(3,0 đ)
Câu 1 Giả sử biến Tuoi gồm 20 phần tử, cách khai báo nào dưới đây là đúng?
A Var Tuoi : array[1 20] of real;
C Var Tuoi : array[1 20] of
string;
B Var Tuoi : array[1 20] of integer;
D Var Tuoi : array[1…20] of char;
Câu 2 Chỉ ra câu lệnh lặp với số lần lặp chưa biết trước trong các câu lệnh
rút gọn sau đây?
A For…to…do
C If – then
B While…do
D If – then – else
Câu 3 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 Nhặt từng cọng rau cho đến khi nào xong
D Rằm tháng Giêng là Tết Nguyên tiêu
Câu 4 Khai báo nào đúng: Khai báo mảng gồm 5 phần tử cùng kiểu số
nguyên?
A Var mang : Array[5 10] of Integer; B Var mang : Array[1 5]
of Real;
C Var mang : Array[0 5] of Real; D Var mang =
Array(1 5) of Real;
Câu 5 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 thực
B Chỉ số đầu chỉ số cuối
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 6 Trong cú pháp khai báo biến mảng, chỉ số đầu và chỉ số cuối có thể là
A số thực
C kí tự
B số nguyên
D xâu kí tự
Câu 7 Lần lượt thực hiện đoạn lệnh: A[1] := 1; A[2] := 3; A[3] := A[1] +
A[2]; Giá trị của A[3] là
A 1
C 3
B 4
D 9
Câu 8 Cho đoạn chương trình sau:
a:=15;
Trang 8while a>=10 do write(‘a’);
Kết quả của đoạn lệnh trên là
A trên màn hình xuất hiện một
chữ a
C trên màn hình xuất hiện một số
10
B trên màn hình xuất hiện 10 chữ a
D chương trình bị lặp vô hạn lần
Câu 9 Trong câu lệnh While do… nếu điều kiện đúng thì
A tiếp tục vòng lặp
C vòng lặp vô tận
B lặp 10 lần
D thoát khỏi vòng lặp
Câu 10 Câu lệnh Pascal : While (4*5<=15) do Writeln (4*5); sẽ
A in số 20 ra màn hình 4 lần
C không thực hiện lệnh Writeln
(4*5);
B in số 20 ra màn hình 5 lần
D lặp vô hạn lần lệnh Writeln (4*5);
Câu 11 Cho đoạn chương trình sau: a := 1; b: = 7; While a<b do
a:=a+3; Kết quả cuối cùng a bằng bao nhiêu?
A 1
C 7
B 3
D 4
Câu 12: Trong cú pháp câu lệnh lặp với số lần biết trước: Số lần lặp là
A Giá trị cuối – Giá trị đầu +1
B Giá trị cuối – Giá trị đầu –1
C Giá trị đầu – Giá trị cuối +1
D Giá trị đầu – Giá trị cuối –1
B – TỰ LUẬN (7,0 đ)
Câu 13 (1,0 đ) Câu lệnh khai báo biến mảng sau đây máy tính có thực hiện được không?
Giải thích
Var N : integer;
A : array[1 N] of real;
Câu 14 (2,5 đ) Sửa lỗi sai trong các câu lệnh sau:
a) X := 0; while X := 5 do X := X + 5;
b) for i=1 to 5 do writeln('A');
c) for i:=1.5 to 10.3 do writeln('A');
d) Var X = Array[1 .10] Of Real;
e) Var X: array[1,5 15,5] of Integer;
Câu 15 (1,0 đ) Hãy dùng các câu lệnh để viết thuật toán diễn đạt việc một bạn học thuộc
lòng bài thơ cho tới khi bố mẹ kiểm tra là đã thuộc thì mới kết thúc, nếu không thì phải học lại
Câu 16 (2,5 đ) Viết chương trình nhập vào một dãy gồm N số nguyên Sau
đó in ra màn hình số lớn nhất
-Hết -
Trang 9ĐÁP ÁN VÀ THANG ĐIỂM (Đề dự phòng)
ĐÁP ÁN
THAN G ĐIỂM
Câu 1
Câu 2
Câu 3
Câu 4
Câu 5
Câu 6
Câu 7
Câu 8
Câu 9
Câu 10
Câu 11
Câu 12
Mỗi đáp án đúng được 0,25 đ
Câu
13
(1,0
đ)
Không
Giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải được xác định ngay khi
khai báo biến mảng (Cách khác: giá trị cuối phải là số cụ thể).
0,5 đ 0,5 đ
Câu
14
(2,5
đ)
a) X := 10; while X := 10 do X := X + 5;
→ X := 10; while X = 10 do X := X + 5;
hoặc các dấu (< , > , <= , >=, < >) đều đúng
b) for i=1 to 10 do writeln('A');
→ for i:=1 to 10 do writeln('A');
c) for i:=1.5 to 10.3 do writeln('A');
→ for i:=1 to 10 do writeln('A'); (hoặc các số nguyên khác đều đúng sao
cho giá trị đầu <= giá trị cuối)
d) Var X = Array[5 .10] Of Real;
→ Var X : Array[5 .10] Of Real;
e) Var X: array[1,5 15,5] of Integer;
→ Var X: array[1 15] of Integer; (hoặc các số nguyên khác đều
đúng sao cho giá trị đầu <= giá trị cuối)
0,5 đ 0,5 đ 0,5 đ
0,5 đ 0,5 đ
Câu
15
Bước 1: Học thuộc lòng bài thơ
Bước 2: Đọc cho bố mẹ nghe
0,25đ 0,25đ
Trang 10đ)
Bước 3: Nếu đã thuộc thì kết thúc thuật toán Ngược lại quay lại Bước 1 0,5đ
Câu
16
(2,5
đ)
- Học sinh viết đúng như chương trình dưới đây được
tối đa 2,5 đ
Program tim_GTLN;
uses crt;
var i, Max, N : integer;
A: array[1 100] of integer;
Begin
clrscr;
writeln(‘Nhap do dai mang A: ‘);
readln(N);
writeln(‘Nhap gia tri cho cac phan tu trong mang: ‘);
for i := 1 to N do
begin
write(‘A[‘, i ,’]=’);
readln(A[i]);
end;
Max:=a[1];
for i:=2 to N do
if a[i] >=Max then Max := a[i];
write(‘Gia tri lon nhat la: ‘, Max);
readln;
end
0,5 đ
0,5 đ
0,5 đ
0,5 đ
0,5 đ
Nguyễn Thị Mỹ Quyên