Trường: THCS Lý Tự Trọng
Lớp:........................................
Họ, tên:...................................
KIỂM TRA HỌC KỲ II
NĂM HỌC 2008 - 2009
Môn: TIN - Lớp 8
(Thời gian làm bài: 45 phút)
...............................................................................................................................................................................................
Điểm
Giáo viên chấm
A. Trắc nghiệm: ( 5 điểm )
Khoanh tròn vào trước những chữ cái A ( hoặc B hoặc C hoặc D) trước câu trả lời đúng nhất
Câu 1: Câu lệnh Pascal nào sau đây là hợp lệ?
A) For i:=100 to 1 do writeln(‘PASCAL); B) For i:=1.5 to 10.5 do writeln(‘PASCAL’);
C) For i= 1 to 10 do writeln(‘PASCAL’); D) For i:= 1 to 10 do writeln(‘PASCAL’);
Câu 2: Cho S và i là biến nguyên. Khi chạy đoạn chương trình :
s:=0;
for i:=1 to 5 do s := s+i;
writeln(s);
Kết quả in lên màn hình là của s là :
A) 11
B) 55
C) 101
D)15
Câu 3: Để tính tổng S=1 + 2 +3 +4 … + n; em chọn đoạn lệnh:
A) for i:=1 to n do
if ( i mod 2)=0 then S:=S + i;
B) for i:=1 to n do
S:= S + i ;
C) for i:=1 to n do
if ( i mod 2)=1 then S:=S + i;
D) for i:=1 to n do
if ( i mod 2)<>0 then S:=S + i
Câu 4: 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) Interger;
B) real;
C) string
D) tất cả các kiểu trên đều được
Câu 5: Sau khi thực hiện đoạn chương trình j:= 0; for i:= 1 to 3 do j:=j+2; thì giá trị in ra màn hình là?
A) 4
B) 6
C) 8
D)10
Câu 6: Để tính tổng S=1+2+3+ 4+ 5 + … + n; em chọn đoạn lệnh:
a) s:=0; i:=0;
a) s:=0; i:=0;
While i<=n do
While i<=n do
S:=S + 1;
If (I mod 2)= 1 Then S:=S + i;
b) s:=0; i:=0;
d) s:=0; i:=0;
While i<=n do
While i<=n do
begin
begin
S:=S + i;
if (i mod2)=1 Then S:=S + i;
i:=i+1;
Else i:=i+1;
End;
End;
Câu 7: Chọn khai báo hơp lệ
a) Var a,b: array[1..n] of real;
b) Var a,b: array[1..100] of real;
c) Var a,b: array[1:n] of real;
d) Var a,b: array[1…n] of real;
Câu 8: Lần lượt thực hiện đoạn lệnh: a[1]:=2; a[2]:=3; t:=a[1]+a[2]+1;
Giá trị của t là
A) t=1
B) t=3
C) t=2
D) t=6
Câu 9: Vòng lặp while ..do là vòng lặp:
A) Biết trước số lần lặp
B) Chưa biết trước số lần lặp
C) Biết trước số lần lặp nhưng giới hạn là <=100
D) Biết trước số lần lặp nhưng giới hạn là >=100
Câu 10: Cho chương trình sau:
Var a,b : integer ;
Begin
A:=16 ; b:=8 ;
If a< b then a:= a + b else
Begin a:= a- b; b:= b + a end;
Writeln( ‘ a= ‘, a , ‘ b = ‘, b);
End.
Biến a và b có giá trị là mấy:
A) a=16 ;b = 8;
B) a= 24 ; b= 8;
C) a = 8 ; b =16;
D) a =24 ; b =16;
B. Tự luận ( 5 điểm )
Câu 1: ( 3 điểm ) Phát hiện lỗi sai trong đoạn chương trình sau và sửa lỗi. Ghi lại thành đoạn chương trình đúng.
..................................................................................
Program chuong trinh3;
.................................................................................
Var N, i: integer;
.................................................................................
S: longint;
..................................................................................
Begin
..................................................................................
Write(‘ Nhap so N=’); Readln(N)
..................................................................................
..................................................................................
S:=0; n=1;
..................................................................................
While n<=100 do
..................................................................................
s:=s+1/i;
..................................................................................
n:=n+1;
..................................................................................
Writeln(‘ Tong la:’, S);
..................................................................................
End;
..................................................................................
Câu 2: ( 2 điểm ): Giải thích ý nghĩa của các đoạn lệnh sau:
Đoạn 1:
Max:=a[1];
For i:= 2 to n do
If Max < a[i] then Max:= a[i];
Ý nghĩa:.....................................................................................................................................................................................
Đoạn 2:
Min:=a[1];
For i:= 2 to n do
If Min > a[i] then Min:= a[i];
Ý nghĩa:.....................................................................................................................................................................................
* Hãy sử dụng câu lệnh điều kiện dạng đủ để kết hợp hai đoạn lệnh trên thành một:
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
ĐÁP ÁN CHẤM ĐỀ KIỂM TRA HỌC KỲ II, NĂM HỌC 2008 - 2009
MÔN TIN - LỚP 8
A) Trắc nghiệm. Mỗi câu đúng được 0,5 đ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
D
D
B
A
B
B
B
D
B
B) Tự luận
Câu 1: 3 điểm
Đoạn chương trình có 6 lỗi. Mỗi lỗi được phát hiện và sửa đúng được 0,5 điểm
Chương trình đúng là:
Chương trình lỗi:
Program chuong trinh3;
Var N, i: integer;
S: longint;
Begin
Write(‘ Nhap so N=’); Readln(N)
S:=0; n=1;
While n<=100 do
s:=s+1/i;
n:=n+1;
Writeln(‘ Tong la:’, S);
End;
Chương trình đúng
Program chuongtrinh3;
Var N, i: integer;
S: Real;
Begin
Write(‘ Nhap so N=’); Readln(N);
S:=0; n=1;
While n<=100 do
Begin
s:=s+1/i;
n:=n+1;
End;
Writeln(‘ Tong la:’, S);
End.
Câu 2: ( 2 điểm)
Đoạn 1: Ý nghĩa: Đoạn lệnh dùng để tìm giá trị lớn nhất của dãy số a.
Đoạn 1: Ý nghĩa: Đoạn lệnh dùng để tìm giá trị nhỏ nhất của dãy số a.
Kết hợp 2 đoạn lệnh trên: ( 1 điểm )
Max:= a[1]; Min:=a[1];
For i:= 2 to n do
If Max < a[i] then Max:= a[i] else Min:= a[i];
-------------------------------------
0,5 điểm
0,5 điểm
Câu 10
C