Do, cách khai báo và sử dụng biến mảng, nhập và in các phần tử của dãy số.. - Vận dụng những kiến thức đã học để hoàn thành bài kiểm tra.. Cấu trúc lặp được sử dụng để chỉ thị cho máy tí
Trang 1Tuần: 25 Ngày soạn: 05/02/2011 Tiết: 48
I MỤC ĐÍCH YÊU CẦU:
- Kiểm tra kiến thức về: lệnh lặp For Do và While Do, cách khai báo và sử dụng biến mảng, nhập và in các phần tử của dãy số.
- Vận dụng những kiến thức đã học để hoàn thành bài kiểm tra.
- Nghiêm túc trong giờ kiểm tra.
II MA TRẬN ĐỀ:
NỘI DUNG
CÁC MỨC ĐỘ CẦN ĐẠT
TỔNG
Lặp với số lần biết trước
(For … Do)
2
Lặp với số lần chưa biết
trước (While … Do)
2
0.75
3
1.0
1
0.5
1
2.0
7
4.25
III ĐỀ BÀI:
A TRẮC NGHIỆM: (5 điểm)
Khoanh tròn vào chữ cái đứng trước câu trả lời đúng: (Từ câu 1 đến câu 6) (3 điểm)
Câu 1: Phát biểu nào sau đây là đúng ?
A Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thoả mãn
B Chỉ ngôn ngữ lập trình Pascal mới có các câu lệnh lặp để thể hiện cấu trúc lặp
C Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh while…do
D Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp chưa biết trước bằng câu lệnh For…do
Câu 2: Lệnh lặp nào sau đây là đúng?
A For <biến đếm>= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>;
B For <biến đếm>:= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>;
C For <biến đếm>:= <giá trị cuôí> to <giá trị đầu> do <câu lệnh>;
D For <biến đếm>: <giá trị đầu> to <câu lệnh> do <giá trị cuối>;
Câu 3: Câu lệnh lặp while…do có dạng đúng là:
A While <điều kiện> do; <câu lệnh>; B While <điều kiện> <câu lệnh> do;
C While <câu lệnh> do <điều kiện>; D While <điều kiện> do <câu lệnh>;
C
âu 4: Để tính tổng S=1+2+3+ 4+ 5 + … + n; em chọn đoạn lệnh:
A s:=0; i:=0;
While i<=n do
S:=S + 1;
B s:=0; i:=0;
While i<=n do
If (I mod 2)= 1 Then S:=S + i;
C s:=0; i:=0;
While i<=n do
D s:=0; i:=0;
While i<=n do
KIỂM TRA 01 TIẾT
Trang 2begin
S:=S + i;
I:=i+1;
End;
begin
if (i mod2)=1 Then S:=S + i;
Else i:=i+1;
End;
Câu 5: Chọn cách khai báo biến mảng đúng:
A Var a: array[1…100] of integer; B Var a: array[1 n] of integer;
C Var a: array[1 50] of integer; D Var a: array[1 24.5] of integer;
Câu 6: Cho S và i là biến nguyên Khi chạy đoạn chương trình: Kết quả in lên màn hình là của s là :
s:=0; i:=1 while i<=5 do i:=i+1; s := s+i; writeln(s);
Câu 7 : (1 điểm) Điền các cụm từ thích hợp vào những chỗ trống ( ) để được câu hoàn chỉnh:
a) là câu lệnh lặp với số lần chưa biết trước.
b) Khi khai báo một biến có kiểu dữ liệu là , biến đó được gọi là biến mảng c) Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên không bao giờ
kết thúc
d) Khi nhập và in các phần tử của mảng cần kết hợp lệnh lặp ……… ….và lệnh If…then
Câu 8: (1 điểm) Các phát biểu sau đúng hay sai? Hãy đánh dấu (x) vào ô Đúng hay sai tương ứng.
a Trong nhiều trường hợp, việc thực hiện câu lệnh lặp While … do tốn ít thời gian so với
câu lệnh lặp For … Do
b Khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng
c Để gọi đích danh từng phần tử cụ thể Pascal sử dụng cách: <Tên biến mảng>[<chỉ số
phần tử>]
d Mọi câu lệnh For …do đều có thể thay thế một cách thích hợp bởi câu lệnh lặp While …
do
B TỰ LUẬN: (5 điểm)
Câu 1: (2 điểm) Viết chương trình tính tổng các số từ 1 đến n, với n nhập từ bàn phím? (Sử dụng While
Do)
Câu 2: (3 điểm) Viết chương trình thực hiện các công việc sau:
a Cho phép nhập vào 1 dãy số gồm n số (với n>1 và nhập từ bàn phím)
b In ra màn hình số lớn nhất
c In ra màn hình những số lớn hơn 5 và không chia hết cho 2
IV ĐÁP ÁN
A Trắc nghiệm: (5 điểm) * Mỗi câu đúng đạt 0,5 điểm (3 điểm)
* Mỗi phương án đúng được 0,25 điểm (2 điểm)
B Tự luận (5 Điểm)
Trang 3Program bai1;
Var i : integer; s:longint;
Begin
s:= 0; i:= 1;
Write(‘Nhap n = ‘); Readln(n);
While i<=n do
Begin
s:=s+i;
i:=i+1;
end;
Writeln(‘Tổng cần tìm là:’,s:5);
Readln;
End.
0.25
0.25 0.25 0.25
0.25 0.25 0.5
2
a Cho phép nhập vào 1 dãy số gồm n số (với n>1 và nhập từ bàn phím)
Program bai2;
Uses crt;
Var A : array[1 100] of integer ;
Max, i, n: integer;
Begin
Write(‘Nhập số phần tử của dãy n = ‘); Readln(n);
Writeln(‘Nhập các giá trị phần tử ‘);
For i:= 1 to n do
Begin
Write(‘A[‘, i,’]=’);
Readln(A[i]);
End;
0.5 0.25 0.25
0.25
b In ra màn hình số lớn nhất.
Max:=A[1];
For i:= 2 to n Do
If Max < A[i] then Max:=A[i];
Writeln(‘So lon nhat la Max = ‘, Max);
0.25
0.25 0.25
c In ra màn hình những số lớn hơn 5 và không chia hết cho 2.
For i:= 1 to n DO
If (A[i] > 5) and (A[i] mod 2 <> 0) then
Write(‘ ‘ , A[i])
Readln;
End.
0.25 0.5 0.25
Tổng
V THỐNG KÊ KẾT QUẢ:
Lớp Sĩ số
Giỏi
(8-10) (6.5-7.9) Khá (5-6.4) TB (3.5-4.9) Yếu (0-3.4) Kém
8A1
8A2
8A3
VI NHẬN XÉT, BỔ SUNG.
Trang 4