Đây là đề kiểm tra tin học lớp 8 học kỳ II mình đã làm có ma trận và 2 đề riêng biệt. Mỗi đề có đáp án riêng, mong các bạn xem tham khảo và cho ý kiến để mình có thể làm thêm. Trân trọng cảm ơn các bạn đã ủng hộ mình nha
Trang 1Ngày soạn: 15/4/2018
8A 8B
I MỤC TIÊU BÀI HỌC :
Kiến thức : Kiểm tra kiến thức của học sinh về cấu trúc và cách sử dụng các câu lệnh điều
kiện, câu lệnh lặp, làm việc với dãy số trong chương trình Pascal
Kĩ năng: Viết và sử dụng đúng, có hiệu quả câu lệnh lặp với số lần biết trước For do, câu lệnh
lặp với số lần chưa biết trước While do, khai báo và sử dụng biến mảng
Thái độ: Giáo dục ý thức tự giác, nghiêm túc trong học tập và thi cử.
Năng lực hướng tới: Năng lực tự đánh giá bản thân
II TÀI LIỆU VÀ PHƯƠNG TIỆN:
1 Chuẩn bị của GV: Đề kiểm tra, đáp án chấm, thang điểm.
2 Chuẩn bị của HS: Các kiến thức đã học, đồ dùng học tập.
III TIẾN TRÌNH DẠY HỌC:
1 Giới thiệu bài học:
2 Dạy học bài mới: (45’)
Mức độ
Nội dung
Tống số
Bài 7: Câu
lệnh lặp
Biết cú pháp câu lệnh lặp với số lần chưa biết trước
Sử dung được câu lệnh lặp để áp dụng tính một số phép toán đơn giản
Sử dụng câu lệnh lặp
để viết
Trang 2Trường THCS Phượng Lâu Giáo án Tin học 8
chương trình
Bài 8: Lặp với
số lần chưa
biết trước
Biết và viết đúng
cú pháp câu lệnh
lặp while…do
Hiểu phép toán chua lấy phần nguyên, chia lấy phần dư
Sử dụng được câu lệnh lặp với
số lần chưa biết trước phù hợp cho từng trường hợp cụ thể
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
Hiểu hoạt động của các câu lệnh khi kết hợp với biến mảng
Thực hiện được việc khai báo biến mảng Viết được các câu lệnh nhập giá trị
và tính toán với các biến mảng
ĐỀ BÀI :
ĐỀ SỐ 1
A Phần trắc nghiệm khách quan: Hãy khoanh tròn vào chữ cái trước phương án trả lời đúng nhất.
Câu 1: Để tính tổng S=2 + 4 + 6 … + n; em chọn đoạn lệnh:
A For i:=1 to n do If ( i mod 2)=0 then S:=S
C For i:= 1 to n do S:= S + i ; D For i:=1 to n do If ( i mod 2)<>0 then S:=S
+ i;
Câu 2: Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do x:=x+1; thì biến đếm i
phải được khai báo là kiểu dữ liệu
A Integer; B Real; C String D Tất cả các kiểu trên đều được
Câu 3: Câu lệnh ghép là câu lệnh:
A Từ 2 câu lệnh đơn trở lên B Chỉ có một câu lệnh đơn
C Gồm 2 câu lệnh đơn ghép
lại
D Từ 2 câu lệnh đơn trở lên và được đặt trong từ khoá Begin và end;
Câu 4: Vòng lặp While <điều kiện> do <câu lệnh>; là vòng lặp:
A Biết trước số lần lặp B Biết trước số lần lặp nhưng giới hạn là <=100
C Chưa biết trước số lần lặp D Biết trước số lần lặp nhưng giới hạn là >=100
Câu 5: Khi khai báo biến mảng, trong mọi ngôn ngữ lập trình ít nhất cần chỉ rõ:
GV: Trần Văn Duy Năm học 2017- 201883
Trang 3C Tên biến mảng, số lượng phần tử, kiểu dữ liệu chung của các phần
tử
D Tất cả đều sai
Câu 6: Trong Pascal hàm WhereX cho biết:
A Số thứ tự của cột đang có con trỏ B Số thứ tự của hàng đang có con trỏ
Câu 7: Trong Pascal, để di chuyển con trỏ đến cột 15, hàng 15, ta dùng câu lệnh:
A GotoXY(15); B GotoXY(15,15); C Goto(15); D Goto(15,15);
Câu 8: Cho đoạn chương trình sau : for i:=1 to 10 do Writeln(A[i]);
A Nhập 10 phần tử cho mảng A B In ra màn hình 1 phần tử của mảng A
C In ra màn hình 10 phần tử của mảng D Tất cả các câu đều sai
Câu 9: Cho khai báo: Var A: array [1 5] of integer; Chọn lệnh đúng
Câu 10: : Khai báo nào sau đây là khai báo của biến mảng?
A A: array [1 50] of integer; B A: array [1.5 50] of integer;
C A: array [10 50] of integer; D Câu a và c đúng
Câu 11: Câu lệnh nào sau đây là câu lệnh nhập cho phần tử thứ 5 của biến mảng A?
A Readln(A[5]); B Readln(A[i]); C Readln(A[a]); D Readln(A5);
Câu 12: Câu lệnh nào sau đây là câu lệnh xuất cho phần tử thứ i của biến mảng A?
A Write(A[5]); B Write(A[i]); C Write(A[a]); D Write(Ai);
B PHẦN TỰ LUẬN:
Câu 1 : Viết cấu trúc câu lệnh khai báo biến mảng trong pascal ? Giải thích ý nghĩa câu lệnh ?
Cho VD?
Câu 2 : Trong các câu lệnh lặp Pascal sau đây, câu lệnh nào sai và sai ở đâu ?
a, While i :=1 do t :=10 ;
b, While a<=b ; do write(‘b khong nho hon a’) ;
c, while i=1 do write(‘Toi lap trinh gioi ’)
d, i :=1 ; while i<10 do sum :=sum+i ; i :=i+1 ;
e, i :=1 ; x :=5 ;
While i<x do i :=i+1 ; write(‘gia tri cua i la ’,i) ;
Câu 3: Em hãy viết chương trình tìm số nhỏ nhất trong N số được nhập vào từ bàn phím.
ĐỀ SỐ 2
A Phần trắc nghiệm khách quan: Hãy khoanh tròn vào chữ cái trước phương án trả lời đúng nhất.
Câu 1 Trong Pascal, câu lệnh nào sau đây được viết đúng?
A for i := 4 to 1 do writeln(‘A’);
B for i := 1 to 10 writeln(‘A’);
C for i := 1 to 100 do writeln(‘A’);
D for i to 10 do writeln(‘A’);
Câu 2 Trong câu lệnh lặp: for n:= 1 to 6 do begin end;
Câu lệnh ghép được thực hiện bao nhiêu lần?
A 7 lần;
B 6 lần;
C 5 lần;
D Không lần nào;
Câu 3 Câu lệnh lặp For to do có:
Trang 4Trường THCS Phượng Lâu Giáo án Tin học 8
A Số lần lặp là vô hạn.
B Số lần lặp biết trước.
C Số vòng lặp phải nhỏ hơn 100.
D Số vòng lặp không biết trước.
Câu 4 Sau khi thực hiện chương trình dưới đây, giá trị của biến j bằng bao nhiêu?
j:= 1;
for i:= 0 to 10 do j:= j+1;
Câu 5 Trong Pascal, câu lệnh nào sau đây là đúng?
A i:=0; S:=1; While S<10 do S=S+i; i=i+1;
B i:=1; S:=0; while s<10 do begin S:=S+i; i:=i+1; end;
C n:=2; while n<5; do write(‘A’);
D Cả A và B đều đúng
Câu 6 Cú pháp đầy đủ của câu lệnh While … do là:
A While <câu lệnh> do <điều kiện>;
B While <điều kiện>; <câu lệnh>;
C While <điều kiện> to <câu lênh> do;
D While <điều kiện> do <câu lệnh>; Câu 7 Hãy cho biết chương trình dưới đây sẽ thực hiện bao nhiêu vòng lặp khi thực hiện đoạn
chương trình ? n:=10; T:=100;
While n>10 do n:=n+5; T:=T - n;
Câu 8 Đoạn lệnh dưới đây sẽ cho kết quả là gì?
so := 1;
While so <10 writeln(so); so := so + 1;
A In ra các số từ 1 đến 10;
B Chương trình báo lỗi;
C In ra vô hạn số 1 trên một cột;
D In ra vô hạn số 1 trên một dòng ; Câu 9 Trong Pascal, câu lệnh khai báo biến mảng nào sau đây đúng?
A var a : array[10 1] of integer;
B var b : array(1 100) of real;
C var c : array[1 15] of integer;
D var d : array[-2 -5] of real;
Câu 10 Khai báo biến mảng: A : array[1 7] of real; Sử dụng câu lệnh For i:= 1 to 5 do
readln(A[i]); để gán giá trị cho các phần tử trong biến A từ bàn phím, ta sẽ nhập được bao
nhiêu giá trị?
Câu 11 Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây đúng:
A Chỉ số đầu > chỉ số cuối;
B Chỉ số đầu chỉ số cuối;
C Kiểu dữ liệu chỉ có thể là real;
D Cả ba ý trên đều đúng;
GV: Trần Văn Duy Năm học 2017- 201885
Trang 56 Khi thực hiện câu lệnh dưới đây giá trị của biến tb là bao nhiêu?
tb:= 0; For i:= 1 to 5 do tb := tb + A[i];
D 20;
B PHẦN TỰ LUẬN:
Câu 1 : Viết cấu trúc câu lệnh khai báo biến mảng trong pascal ? Giải thích ý
nghĩa câu lệnh ? Cho VD?
Câu 2 : Trong các câu lệnh lặp Pascal sau đây, câu lệnh nào sai và sai ở đâu ?
a, While i :=1 do t :=10 ;
b, While a<=b ; do write(‘b khong nho hon a’) ;
c, while i=1 do write(‘Toi lap trinh gioi ’)
d, i :=1 ; while i<10 do sum :=sum+i ; i :=i+1 ;
e, i :=1 ; x :=5 ;
While i<x do i :=i+1 ; write(‘gia tri cua i la ’,i) ;
Câu 3: Em hãy viết chương trình tìm số nhỏ nhất trong N số được nhập vào từ bàn
phím
ĐÁP ÁN CHẤM VÀ THANG ĐIỂM
A Phần trắc nghiệm khách quan: (3.0 điểm - mỗi câu đúng 0,25 điểm)
ĐỀ1
ĐỀ 2
B. Phần tự luận: (7.0 điểm)
Câu 1 : (1.5 điểm)
* Cách khai báo biến mảng trong Pascal:
var <tên mảng> : array [<chỉ sốđầu> <chỉ số cuối>] of <kiểu dữ liệu>;
Trong đó: - Chỉ số đầu và chỉ số cuối là hai số nguyên thoả mãn chỉ số đầu chỉ
số cuối.
- Kiểu dữ liệu có thể là integer hoặc real.
Trang 6Ví dụ: Var Diem:array[1 50] of real;
Var DiemToan, Diemvan, DiemLi: array[1 50] of real;
Câu 2 : (2.5 điểm- Mỗi câu đúng 0.5 điểm):
a, Sai, thừa dấu hai chấm đầu tiên
b, Thừa dấu chấm phẩy trước từ khoá do
c, Sai, thiếu dấu chấm phẩy sau câu lệnh
d, Sai, vòng lặp vô hạn do không có câu lệnh làm thay đổi biến i (lỗi ngữ nghĩa)
e, Sai, vòng lặp được thực hiện nhưng chỉ có giá trị cuối cùng của i được in ra (lỗi
ngữ nghĩa) ; Nếu muốn in ra các giá trị của i thì thiếu hai từ khoá begin và end để
gộp hai câu lệnh cuối thành câu lệnh ghép
Câu 3: (3 điểm)
Program P_Min;
Var i, n, Min : integer;
A: array[1 100] of integer;
Begin
write('Hay nhap do dai cua day so, N = '); readln(n);
writeln('Nhap cac phan tu cua day so:');
For i:=1 to n do
Begin
write('a[',i,']='); readln(a[i]);
End;
Min:=a[1];
for i:=2 to n do if Min>a[i] then Min:=a[i];
write('So nho nhat la Min = ',Min);
readln;
End.
3 Luyện tập củng cố:
4 Hoạt động tiếp nối:
5 Dự kiến kiểm tra đánh giá:
Trang 7Ngày dạy Lớp Sĩ số Tên HS vắng
8A 8B
I MỤC TIÊU BÀI HỌC :
Kiến thức : Kiểm tra kiến thức của học sinh về cấu trúc và cách sử dụng các câu
lệnh điều kiện, câu lệnh lặp, làm việc với dãy số trong chương trình Pascal
Kĩ năng: Viết và sử dụng đúng, có hiệu quả câu lệnh lặp với số lần biết trước
For do, câu lệnh lặp với số lần chưa biết trước While do, khai báo và sử dụng biến mảng
Thái độ: Giáo dục ý thức tự giác, nghiêm túc trong học tập và thi cử.
Năng lực hướng tới: Năng lực tự đánh giá bản thân
II TÀI LIỆU VÀ PHƯƠNG TIỆN:
1 Chuẩn bị của GV: Đề kiểm tra, đáp án chấm, thang điểm.
2 Chuẩn bị của HS: Các kiến thức đã học, đồ dùng học tập.
III TIẾN TRÌNH DẠY HỌC:
1 Giới thiệu bài học:
2 Dạy học bài mới: (45’)
ĐỀ BÀI:
Câu 1: Viết chương trình Pacscal sử dụng biến mảng để nhập từ bàn phím các phần tử
của một dãy số Độ dài dãy số được nhập từ bàn phím In ra màn hình số lớn nhất của dãy
số.
Câu 2 Viết chương trình nhập điểm kiểm tra học kỳ môn tin cho N học sinh và in ra màn
hình Với N và điểm kiểm tra được nhập từ bàn phím (sử dụng biến mảng)
ĐÁP ÁN:
Câu 1:
Program sonlonnhat ;
Uses crt ;
Var i, n, max : Integer ;
A : array[1 200] of integer ;
Begin
Clrscr ;
Write(‘nhap n’) ; Readln(n) ;
Trang 8For 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] < min then max :=a[i] ;
Writeln(‘So lon nhat la :’,max) ;
Readln ;
End
Câu 2:
Program trung_binh;
Uses crt;
Var n, i: integer;
Diem: array[1 50] of real;
Begin
Clrscr;
Write(‘Nhap so luong hoc sinh N = ‘); Readln(n);
Writeln(‘Nhap diem cho tung hoc sinh’);
For i := 1 to n do
Begin Write(‘Diem HS ‘,i,’ = ‘); readln(Diem[i]);
End;
For i : = 1 to n do
Writeln(‘Diem cua HS ‘,i, ‘ = ‘,diem[i]);
Readln;
End.
3 Luyện tập củng cố:
4 Hoạt động tiếp nối:
5 Dự kiến kiểm tra đánh giá:
Duyệt của tổ chuyên môn
Ngày tháng năm 2018