Sử dung được câu lệnh lặp để áp dụng tính một số phép toán đơn giản.. 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 được hoạt động của câu l
Trang 1PHÒNG GD & ĐT HUYỆN KBANG KIỂM TRA HỌC KỲ 2
TRƯỜNG PTDT BT TH & THCS LƠ KU Năm học 2019 - 2020
Thời gian 45 phút (Không kể thời gian phát đề)
A TRẬN ĐỀ
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 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
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 được hoạt động của câu lệnh
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
Trang 2TRƯỜNG PTDT BT TH & THCS LƠ KU Năm học 2019 - 2020
Thời gian 45 phút (Không kể thời gian phát đề)
A Phần trắc nghiệm: (2,0 điểm) Hãy chọn một đáp án đúng nhất.
Câu 1 Trong Pascal, câu lệnh nào sau đây được viết5 đúng?
A for i:= 4 to 1 do writeln(‘A’); B for i= 1 to 10 writeln(‘A’);
C for i:= 1 to 10 do writeln(‘A’); D for i to 10 do writeln(‘A’);
Câu 2 Trong câu lệnh lặp: For i := 1 to 10 do j:= j + 2; write( j );
Khi kết thúc câu lệnh lặp trên, câu lệnh write( j ); được thực hiện bao nhiêu lần?
Câu 3 Cho đoạn chương trình: J:= 0;
For i:= 1 to 5 do J:= j + i;
Sau khi thực hiện đoạn chương trình trên, giá trị của biến j bằng bao nhiêu?
Câu 4 Trong Pascal, câu lệnh nào sau đây là đúng?
While S<10 do write(S); while s<10 do S:=S+i; i:=i+1;
C n:=2; while n<5 do write(‘A’); D Cả A và B
Câu 5 Khi thực hiện đoạn chương trình sau: n:=1; T:=50;
While n>20 do begin n:=n+5; T:=T - n end;
Hãy cho biết giá trị của biến T bằng bao nhiêu?
Câu 6 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 7 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 và chỉ số cuối là 2 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 Cả ba ý trên
Câu 8 Giả sử biến mảng A có 5 phần tử và giá trị của các phần tử lần lượt là 1, 4, 7, 2, 6 Khi thực
hiện câu lệnh sau: tb:= 0; For i:= 1 to 5 do tb := tb + A[i]; Giá trị của biến tb là bao nhiêu?
B Phần tự luận: ( 8,0 điểm)
Câu 1 (2 điểm) Viết cú pháp câu lệnh lặp với số lần chưa biết trước Nêu hoạt động của câu lệnh Câu 2 (6 điểm) Viết chương trình nhập dãy số gồm N số nguyên và in ra màn hình giá trị lớn
nhất, giá trị nhỏ nhất trong dãy số Với N được nhập từ bàn phím (sử dụng biến mảng)
ĐÁP ÁN, BIỂU ĐIỂM CHẤM
Trang 3ĐỀ CHÍNH THỨC
A Phần trắc nghiệm: (2 điểm – mỗi câu đúng 0,25 điểm).
B Phần tự luận: (8 điểm)
Câu 1
- Cú pháp câu lệnh: while <điều kiện> do <câu lệnh>;
- Hoạt động: Khi thực hiện câu lệnh chương trình kiểm tra điều kiện Nếu điều kiện đúng thực hiện câu lệnh sau từ khóa
do và quay lại kiểm tra điều kiện Nếu điều kiện sai bỏ qua
câu lệnh sau từ khóa do và kết thúc.
1 1
Câu 2
Program Max_min;
Uses crt;
Var n, i, min, max: integer;
A: array[1 100] of real;
Begin Clrscr;
Write(‘Nhap so nguyen n = ‘); Readln(n);
For i := 1 to n do Begin
Writeln(‘Nhap phan tu thu’,i,’ A[‘,i,’]=’);
readln(Diem[i]);
End;
Max:= A[1];
Min:= A[1];
For i : = 1 to n do Begin
If Max< A[i] then Max:=A[i];
If Min > A[i[ then Min:=A[i];
End;
Writeln(‘gia trị lon nhat la’,Max);
Writeln(‘gia trị nho nhat la’,Min);
Readln;
End.
1 1 1
2
1
DUYỆT CỦA TỔ CHUYÊN MÔN TRƯỜNG
Trang 4A Phần trắc nghiệm: (2,0 điểm) Hãy chọn một đáp án đú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 10 do writeln(‘A’); D for i to 10 do writeln(‘A’);
Câu 2 Trong câu lệnh lặp: For i := 1 to 10 do j:= j + 2; write( j );
Khi kết thúc câu lệnh lặp trên, câu lệnh write( j ); được thực hiện bao nhiêu lần?
Câu 3 Cho đoạn chương trình: J:= 0;
For i:= 1 to 5 do J:= j + i;
Sau khi thực hiện đoạn chương trình trên, giá trị của biến j bằng bao nhiêu?
Câu 4 Trong Pascal, câu lệnh nào sau đây là đúng?
While S<10 do write(S); while s<10 do S:=S+i; i:=i+1;
C n:=2; while n<5 do write(‘A’); D Cả A và B
Câu 5 Khi thực hiện đoạn chương trình sau: n:=1; T:=50;
While n>20 do begin n:=n+5; T:=T - n end;
Hãy cho biết giá trị của biến T bằng bao nhiêu?
Câu 6: Giá trị của các mảng được cho như sau: A[1]:=4; A[2]:=7; A[3]:=1; A[4]:=9; A[5]:=2;
Kết quả của T:= A[3]+A[5]+A[2]+10; bằng bao nhiêu?
A 10; B 15; C 20; D 23.
Câu 7: Với câu lệnh for i:=1 to 10 do x:=x+1; biến i được khai báo thuộc kiểu dữ liệu nào?
A Real; B Integer;
Câu 8: Trong các câu lệnh lặp Pascal sau đây, câu nào chương trình không báo lỗi?
A While i:= 1 do t:=10
B While x<=y to Writeln (‘y khong nho hon x’);
C While 1:= 1 do Writeln (‘Dung’);
D While (n mod i<> 0) do i:= i+ 1;
B Phần tự luận: ( 8,0 điểm)
Câu 1 (2 điểm) Các câu lệnh Pascal sau có đúng không? Hãy sửa lại cho đúng nếu sai?
Câu 2 (6 điểm) Viết chương trình nhập dãy số gồm N số nguyên và in ra màn hình giá trị lớn
nhất, giá trị nhỏ nhất trong dãy số Với N được nhập từ bàn phím (sử dụng biến mảng)
ĐÁP ÁN, BIỂU ĐIỂM CHẤM
a) for i:=1 to 10 do writeln('A');
b) var X; Array[5…10] Of Char;
c) X:=10; while X=10 do X := X+5;
d) for i=1.5 to 10.3 do writeln('A');
Trang 5ĐỀ DỰ BỊ
A Phần trắc nghiệm: (2 điểm – mỗi câu đúng 0,25 điểm).
B Phần tự luận: (8 điểm)
Câu 1
0.5đ 0.5đ 0.5đ 0.5đ
Câu 2
Program Max_min;
Uses crt;
Var n, i, min, max: integer;
A: array[1 100] of real;
Begin Clrscr;
Write(‘Nhap so nguyen n = ‘); Readln(n);
For i := 1 to n do Begin
Writeln(‘Nhap phan tu thu’,i,’ A[‘,i,’]=’);
readln(Diem[i]);
End;
Max:= A[1];
Min:= A[1];
For i : = 1 to n do Begin
If Max< A[i] then Max:=A[i];
If Min > A[i[ then Min:=A[i];
End;
Writeln(‘gia trị lon nhat la’,Max);
Writeln(‘gia trị nho nhat la’,Min);
Readln;
End.
1 1 1
2
1
Câu Đúng Sai Sửa lại cho đúng nếu sai
a) for i:=1 to 10 do
b) var X; Array[5…10] Of
Char; X var X: Array[5 10] Of Integer (Real);
c) X:=10; while X=10 do X :=
d) for i=1.5 to 10.3 do
for i:=1 to 10 do writeln('A');