TRƯỜNG TRUNG HỌC CƠ SỞ
HÒA TÂN
KIỂM TRA CHẤT LƯỢNG HỌC KỲ II
Năm học: 20192020
Môn thi: Tin học – Lớp 8
Th
ời gian làm bài: 45 phút (không kể phát đề)
ĐỀ CHÍNH THỨC
Ngày thi: / /2020
(Đề có 01 trang)
I. Đề thi:
CÂU 1: (1,5 điểm) Trình bày cú pháp lệnh lặp với số lần chưa biết. Giải thích?
CÂU 2: (1,5 điểm) Trình bày cú pháp lệnh lặp với số lần đã biết trước. Giải thích?
CÂU 3: (3 điểm)
3.1 Trình bày ý tưởng thuật toán, tìm giá trị nhỏ nhất và giá trị lớn nhất trong dãy số
có giá trị luôn dương (2 điểm).
3.2 Áp dụng ý tưởng thuật toán giải thích việc tìm giá trị lớn nhất? (1 điểm)
A: Array
15
10
44
5
55
Phần tử
thứ
1
2
3
4
5
CÂU 4: (3 điểm)
4.1 Trình bày ý tưởng thuật toán, để sắp xếp dãy số có giá trị dương theo chiều
tăng/giảm dần giá trị các phần tử dãy số. (2 điểm).
4.2 Áp dụng ý tưởng thuật toán giải thích việc sắp xếp dãy số theo chiều tăng dần?
(1điểm).
A: Array
12
15
7
25
40
Phần tử
thứ
1
2
3
4
5
CÂU 5: (1 điểm) Viết đoạn chương trình để tìm giá trị lớn nhất và giá trị nhỏ nhất
của dãy số dương được nhập từ bàn phím.
II. Matrận đề:
Mưc đô
́ ̣
Nôi dung
̣
1. Lệnh While
Nhân biêt
̣
́
Thông hiêủ
T
TL
T
TL
N
N
Biết được
cú pháp,
giải thích
được
Vân dung
̣
̣
Thấp
Cao
Tông
̉
Số câu
Điểm
Tỷ lệ
2. Lệnh For.
Số câu
Điểm
Tỷ lệ
3. Thuật toán
Số câu
Điểm
Tỷ lệ
4. Áp dụng
thuật toán và
bài toán.
5. Viết Đoạn
chương trình
Số câu
Lệnh
While
1
2
20%
Biết được
cú pháp,
giải thích
lệnh For
1
1
10%
1
2
20%
1
1
10%
Thông hiểu
thuật toán
tìm giái trị
lớn nhất,
nhỏ nhất,
sắp xếp
dãy số
2 (3.1& 4.1)
4
40%
2
4
40%
Vận dụng
thuật toán
giải thích
việc tìm
phần tử
lớn nhất,
nhỏ nhất
và sắp
xếp của
dãy số
2 (3.2&
4.2)
2
20%
2
2
20%
T ạ o
thêm
Work
Sheet
mớ i
1
1
Điểm
Tỷ lệ
Tổng Số câu
Tổng Điểm
Tỷ lệ
2
3
30%
2
4
40%
2
2
20%
1
10%
1
1
10%
1
10%
7
10
100%
III. GỢI MỞ ĐÁP ÁN
CÂU 1: (2 điểm) Trình bày cú pháp lệnh lặp với số lần chưa biết. Giải thích?
+ Cú pháp: While <điều kiện> do <câu lênh>;
+ Giải thích:
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 câu 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 B1
CÂU 2: (2 điểm) Trình bày cú pháp lệnh lặp với số lần đã biết trước. Giải thích?
+ Cú pháp: For<biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>
+ Giải thích:
Trong đó:
+ for, to, do là các từ khóa
+ biến đếm là biến đơn có kiểu nguyên;
+ giá trị đầu và giá trị cuối là các biểu thức có cùng kiểu với biến đếm và giá trị cuối
phải lớn hơn giá trị đầu;
+ câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép.
CÂU 3: (2,5 điểm)
3.1 Trình bày ý tưởng thuật toán, tìm giá trị nhỏ nhất và giá trị lớn nhất trong dãy số
có giá trị luôn dương (1,5 điểm).
3.2 Áp dụng ý tưởng thuật toán giải thích việc tìm giá trị lớn nhất? (1 điểm)
A: Array
15
10
44
5
55
Phần tử
thứ
1
2
3
4
5
3.1
Gán giá trị Lớn nhất (Max), nhỏ nhất (Min) bằng giá trị phần tử thứ nhất A[1].
+ Max:=A[1]; Min:=A[1];
Lần lượt đi từ phần tử thứ 2 đến phần tử cuối cùng của dãy số (i chạy từ 2 đến N)
+ So sánh Max với A[i], nếu Max
+ So sánh Min với A[i], nếu Min >A[i] thì Min :=A[i];
3.2 Áp dụng:
Max:=A[1]=15; Min:=A[1]=15;
Chạy biến đếm I từ 2 đến 5 như sau:
Bước i=2:
Hỏi Max=15
Hỏi Min=15>A[2]=10, vậy Min:=10;
Kết quả bước i=2 là Max=15; Min=10
Bước i=3:
Hỏi Max=15
Hỏi Min=10>A[3]=44, Không, bỏ qua
Kết quả bước i=3 là Max=44; Min=10
Bước i=4:
Hỏi Max=44
Hỏi Min=10>A[4]=5, vậy Min:=5;
Kết quả bước i=4 là Max=44; Min=5
Bước i=5:
Hỏi Max=44
Hỏi Min=5>A[5]=55, Không, bỏ qua
Kết quả bước i=5 là Max=55; Min=5
Đã đến phần tử cuối cùng kết thúc, kết quả Max=55; Min=5
Câu 4: 2,5 điểm
4.1 Trình bày ý tưởng thuật toán, để sắp xếp dãy số có giá trị dương theo chiều
tăng/giảm dần giá trị các phần tử dãy số. (1,5 điểm).
4.2 Áp dụng ý tưởng thuật toán giải thích việc sắp xếp dãy số theo chiều tăng dần?
(1điểm).
A: Array
12
15
7
25
40
Phần tử
thứ
1
2
3
4
5
4.1 Ý tưởng thuật toán: (tăng dần, giảm dần đổi dấu > thành dấu <)
Trường hợp 2 số, lấy giá trị A[1] so sánh với A[2], nếu A[1]>A[2] thì đổi chổ cho nhau,
để thực hiện cho cả dãy số (có số phần tử lớn hơn 2), Ta cho biến i chạy từ 1 đến N1,
đồng thời cho biến j chạy từ i+1 đến N: Nếu A[i]>A[j] thì đổi chổ A[i], A[j].
For i:=1 to N1 do
For j:=i+1 to N do
If A[i]>A[j] then
Begin
Tam:=A[i]; A[i]:=A[j]; A[j]:=Tam;
End;
4.2 Áp dụng:
Bước i=1:
+ J=2:
12
+ J=3:
7
+ J=4:
7
+ J=5
Hỏi A[1]=12 >A[2]= 15, Không bỏ qua
15
7
25
40
Hỏi A[1]=12 >A[3]= 7, Vậy A[1]=7 & A[3]=12 {Hoán đổi}
15
12
25
40
Hỏi A[1]=7>A[4]=25, Không bỏ qua
15
12
25
40
Hỏi a[1]=7>A[5]=40, Không bỏ qua.
Bước i=2:
+ J=3
7
+ J=4
7
+ J=5:
Hỏi A[2]=15>A[3]=12, Vậy A[2]=12 & A[3]=15
12
15
25
40
Hỏi A[2]=12>A[4]=25, Không bỏ qua
12
15
25
Hỏi A[2]=12>A[5]=40, không bỏ qua.
40
Bước i=3:
+ J=4:
Hỏi A[3]=15>A[4]=25, Không bỏ qua
+ J=5:
Hỏi A[3]=15>A[5]=40, Không bỏ qua
7
12
15
25
40
Bước i=4
+ J=5
Hỏi A[4]=25>A[5]=40, không bỏ qua.
Kết thúc:
Kết quả:
7
12
15
25
40
Câu 5: (1 điểm) Viết đoạn chương trình để tìm giá trị lớn nhất và giá trị nhỏ nhất
của dãy số dương được nhập từ bàn phím.
Gợi ý:
Uses Crt;
Var A: ARRAY[1..50] Of Integer;
N,i,Max:Integer;
Begin
Write('Nhap N='); Readln(N);
For i:=1 To N Do
Begin
Write('A[',i,']='); Readln(A[i]);
End;
Max:=A[1];
For i:=2 To N Do
If Max
Writeln('Phan tu lon nhat cua mang:', Max);
Readln;
End.
oOo