ĐỀ 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: X16, n 2. Bước 2: Nếu X <= 6.5, chuyển tới bước 4. Bước 3: XX-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: XX-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: a48, b30 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 bb-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: a48, b30 Bước 2: ra mod b Bước 3: Nếu r=0 chuyển tới bước 5 Bước 4: ab, br,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:s1,i1. Bước 2: Nếu i>5, chuyển tới bước 4. Bước 3: ss*i, ii+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:s0,i0. Bước 2: Nếu i>5, chuyển tới bước 4. Bước 3: ii+1, ss+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; . ĐỀ KIỂM TRA HK2 (ĐỀ A) Năm học: 2009 -2 010 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. (2đ) ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ____________________________________________________________________________ ĐỀ KIỂM TRA HK2 (ĐỀ B) Năm học: 2009 -2 010 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: Để. đây: Bước 1: a48, b30 Bước 2: Nếu a=b chuyển tới bước 4. Bước 3: Nếu a>b thi a a-b ngược lại bb-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.