Tải bản đầy đủ (.doc) (7 trang)

de thi HK2 nam hoc 2009 - 2010 (Khoi 8)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (100.07 KB, 7 trang )

ĐỀ KIỂM TRA HK2 (ĐỀ A)
Năm học: 2009 -2010
Môn: Tin học 8
Thời gian: 45 phút
Điểm Lời phê
I. TRẮC NGHIỆM (6đ)
Câu 1: 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. 1 b. 2 c. 3 d. 6
Câu 2: Sau khi thực hiện đoạn chương trình sau, giá trị của biến a bằng bao nhiêu?
a:=2 ;
For i:= 0 to 3 do a:= a+3;
a. 5 b. 8 c. 11 d. 14
Câu 3 : Cho S và i là biến nguyên. Khi chạy đoạn chương trình :
s:=1;
for i:=1 to 5 do s := s *i;
writeln(s);
Kết quả in lên màn hình là :
a. 2 b. 6 c. 24 d. 120
Câu 4: Xem ví dụ sau trong Pascal:
Var i:integer;
Begin
I:=1
While i<15 do
Begin
Writeln(‘0’);
i:=i+1;
End;
End.
Ví dụ trên ghi ra màn hình bao nhiêu chữ số 0?
a. 1 b. 13 c. 14 d. 15
Câu 5: Chọn khai báo hơp lệ


a. Const n=5;
Var a,b: array[1 n] of real;
b. Var n: Integer;
a,b: array[1:n] of real;
c. Var a,b: array[1 n] of real; d. Var a,b: array[1 5 10] of real;
Câu 6: Tham chiếu tới các phần tử của mảng được xác định bằng cách:
a. <tên biến mảng>[chỉ số] b. [chỉ số] <tên biến mảng>
c. <tên biến mảng><chỉ số> d. [tên biến mảng][chỉ số]
Trường THCS Hoa Lư
Họ và tên:………………………………………… STT: ……

Lớp: 8……
Câu 7: Hãy chỉ ra lỗi trong các câu lệnh sau và viết lại cho đúng
a. For i=1 to 10 do x:=x+1;
______________________________________________________________________
b. For i:=1 to 10; do x:=x+1;
______________________________________________________________________
c. x:= 8; while x = 8 do x = x+3;
______________________________________________________________________
d. s:=0; n:=0; while s <=10 do n:=n+1; s:=s+n;
______________________________________________________________________
e. Var x: Array[1,20] Of Real;
______________________________________________________________________
f. Var x: Array[20 1] Of Integer;
II. TỰ LUẬN
Câu 8: Cho biết tác dụng của câu lệnh lặp với số lần biết trước (1đ)
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________

Câu 9: Hãy tìm hiểu thuật toán sau đây:
Bước 1: X16, n 2.
Bước 2: Nếu X <= 6.5, chuyển tới bước 4.
Bước 3: XX-n và quay lại bước 2.
Bước 4: Thông báo X và kết thúc thuật toán
Hãy cho biết:
a. Khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của X
bằng bao nhiêu? (1đ)
b. Viết chương trình Pascal thể hiện thuật toán đó? (2đ)
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
ĐỀ KIỂM TRA HK2 (ĐỀ B)
Năm học: 2009 -2010
Môn: Tin học 8
Thời gian: 45 phút
Điểm Lời phê
I. TRẮC NGHIỆM (6đ)
Câu 1: Để khai báo biến mảng kiểu số nguyên trong Pascal có dạng:
Var <tên biến mảng>:array [<chỉ số đầu> <chỉ số cuối>] of integer;
Trong đó:
a. Chỉ số đầu = chỉ số cuối b. Chỉ số đầu > chỉ số cuối
c. Chỉ số đầu < chỉ số cuối d. Chỉ số đầu <> chỉ số cuối

Câu 2: Đoạn chương trình sau có bao nhiêu vòng lặp?
a:=2 ;
for i:= 0 to 3 do a:= a+3;
a. 0 b. 3 c. 4 d. 5
Câu 3: Hãy đọc đoạn chương trình sau, sau khi thực hiện xong, kết quả s bằng:
s:=0;
For i:= 1 to 5 do s:= s * i;
a. 0 b. 15 c. 120 d. Kết quả khác
Câu 4: Xem ví dụ sau trong Pascal:
Var i:integer;
Begin
i:=1;
While i<15 do
Begin
Writeln(‘0’);
i:=i+1;
End;
End.
Ví dụ trên lặp bao nhiêu vòng lặp?
a. 1 b. 13 c. 14 d. 15
Câu 5: Chọn khai báo hơp lệ
a. Var a,b: array[1 n] of real; b. Var a,b: array[1:n] of real;
c. Var a,b: array[1 100] of real; d. Var a,b: array[1…n] of real;
Câu 6: Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây là đúng.
Với câu lệnh While…Do Nếu sau do muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa
a. hai dấu ngoặc đơn. b. Begin và End;
c. Begin và End d. Begin và End.
Trường THCS Hoa Lư
Họ và tên:………………………………………… STT: ……


Lớp: 8……
Câu 7: Hãy chỉ ra lỗi trong các câu lệnh sau và viết lại cho đúng
a. For i:=10 to 1 do x:= x + 1;
______________________________________________________________________
b. For i:=1.5 to 5.2 do x:= x + 1;
______________________________________________________________________
c. While i:= 1 do t:=10;
______________________________________________________________________
d. While 1 = 1 do Writeln (‘Dung’) ;
______________________________________________________________________
e. Var X: array[3.7 7.8] of integer;
______________________________________________________________________
f. Var x: array [1 :100] of real;
______________________________________________________________________
II. TỰ LUẬN
Câu 8: Hãy cho biết sự khác nhau giữa câu lệnh lặp với số lần biết trước và câu lệnh lặp
với số lần chưa biết trước (1đ)
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
Câu 9: Hãy tìm hiểu thuật toán sau đây:
Bước 1: X 15, n 3.
Bước 2: Nếu X <= 4.5, chuyển tới bước 4.
Bước 3: XX-n và quay lại bước 2.
Bước 4: Thông báo X và kết thúc thuật toán
Hãy cho biết:
a. Khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của X
bằng bao nhiêu? (1đ)
b. Viết chương trình Pascal thể hiện thuật toán đó? (2đ)

____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
Câu 9: Hãy tìm hiểu thuật toán sau đây:
Bước 1: a48, b30
Bước 2: Nếu a=b chuyển tới bước 4.
Bước 3: Nếu a>b thì a a-b ngược lại bb-a và quay lại bước 2.
Bước 4: Thông báo a và kết thúc thuật toán
Hãy cho biết:
a. Khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của a
bằng bao nhiêu? (1đ)
b. Viết chương trình Pascal thể hiện thuật toán đó? (2đ)
Vòng lặp thực hiện 4 vòng lặp 0.25
giá trị của a khi kết thúc là 6 0.25
Var a,b:integer; 0.5
Begin
a:=48; 0.25
b:=30; 0.25
While a<>b do if a>b then a:=a-b else b:=b-a; 0.75
Write(a); 0.25
End. 0.25
Câu 9: Hãy tìm hiểu thuật toán sau đây:
Bước 1: a48, b30

Bước 2: ra mod b
Bước 3: Nếu r=0 chuyển tới bước 5
Bước 4: ab, br,r a mod b
Bước 5: Thông báo b và kết thúc thuật toán
Hãy cho biết:
c. Khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của b
bằng bao nhiêu? (1đ)
d. Viết chương trình Pascal thể hiện thuật toán đó? (2đ)
Vòng lặp thực hiện 4 vòng lặp 0.25
giá trị của b khi kết thúc là 6 0.25
Var a,b,r:integer; 0.75
Begin
a:=48; 0.25
b:=30; 0.25
r:=a mod b; 0.25
While r>0 do 0.75
Begin
a:=b; b:=r; r:=a mod b;
End;
Write(b); 0.25
End.
Câu 9: Hãy tìm hiểu thuật toán sau đây:
Bước 1:s1,i1.
Bước 2: Nếu i>5, chuyển tới bước 4.
Bước 3: ss*i, ii+1 và quay lại bước 2.
Bước 4: Thông báo s và kết thúc thuật toán
Hãy cho biết:
a. Khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S
bằng bao nhiêu? (0.5đ)
b. Viết chương trình Pascal thể hiện thuật toán đó? (2.5đ)

Vòng lặp thực hiện 5 vòng lặp 0.25
giá trị của s khi kết thúc là 120 0.25
Var s,i: integer; 0.5
Begin 0.25
s:=1; 0.25
i:=1; 0.25
While i<=5 do 0.25
Begin 0.25
s:=s*i; 0.25
i:=i+1; 0.25
End;
Write(s); 0.25
End.
Câu 9: Hãy tìm hiểu thuật toán sau đây:
Bước 1:s0,i0.
Bước 2: Nếu i>5, chuyển tới bước 4.
Bước 3: ii+1, ss+i và quay lại bước 2.
Bước 4: Thông báo s và kết thúc thuật toán
Hãy cho biết:
a. Khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S
bằng bao nhiêu? (1đ)
b. Viết chương trình Pascal thể hiện thuật toán đó? (2đ)
Vòng lặp thực hiện 6 vòng lặp 0.25
giá trị của s khi kết thúc là 21 0.25
Var s,i: integer; 0.5
Begin 0.25
s:=0; 0.25
i:=0; 0.25
While i<=5 do 0.25
Begin 0.25

i:=i+1; 0.25
s:=s+i; 0.25
End;
Write(s); 0.25
End.
Câu 9: Sắp xếp các dòng sau thành một chương trình tính tổng 100 số tự nhiên đầu tiên khác 0
hoàn chỉnh (3đ)
var i: integer; s: longint;
writeln('Tong cua 100 so tu nhien dau tien khac 0 S = ', S);
program Tinh_tong;
s:= 0;
i := 1;
end.
begin
while i <=100 do
i:= i+1;
s:= s+i;
begin
end;
Câu 9: Sắp xếp các dòng sau thành một chương trình tính tích 100 số tự nhiên đầu tiên khác 0
hoàn chỉnh (3đ)
var i: integer; p: longint;
writeln('Tich cua 100 so tu nhien dau tien khac 0 p = ', p);
program Tinh_tong;
p:= 1;
i := 1;
end.
begin
while i <=100 do
i:= i+1;

p:= p*i;
begin
end;

×