PHÒNG GIÁO DỤC VÀ ĐÀO TẠO YEUL ĐỀ THI HỌC KÌ II NĂM HỌC 2010 - 2011 TRƯỜNG THCS COOC Moân: TIN HỌC - Lớp 8 Thời gian làm bài: 45 phút, không kể thời gian phát đề. I. TRẮC NGHIỆM: (2đ) Câu 1: Trong ngôn ngữ lập trình Pascal, tên nào là hợp lệ? a) Tam giac; b) Tamgiac; c) Begin; d) End. Câu 2: Trong Pascal, khai báo nào sau đây sai? a) Var a = integer; b) Const b:=3; c) a: array[1 5,5] of integer; d) Tất cả đều sai. Câu 3. Trong ngôn ngữ lập trình, phép gán nào là hợp lệ? a) a ← 3; b) a:=3; c) a = 3; d) a: 3. Câu 4: Câu lệnh lặp For i:=3 to 10 do Begin end; vòng lặp thực hiện bao nhiêu lần a) Không lần nào; b) 7 lần; c) 8 lần; d) 10 lần. II. TỰ LUẬN: (8đ) Câu 1: Viết và giải thích cú pháp của câu lệnh lặp với số lần chưa biết trước trong Pascal. (2đ) Câu 2. Các câu lệnh Pascal sau có hợp lệ không? Nếu không sửa lại cho đúng? (2đ) a) if a>b then max:=a; else max:=b; b) for i:=10 to 2 do write(‘A’); c) for i:= 1.5 to 5.5 do write(‘A’); d) While x:=y do x:=x+1; Câu 3. Sửa lỗi chương trình sau: (1đ) Program Tinhtong; Var N, i: integer; S: Longint; Begin Write(‘Nhap so N = ’); Readln(N); S:=0; For i = 1 to N do S:=S+i; Writeln(‘Tong cua ‘,N,’ so tu nhien dau tien S = ‘,S); Readln End Giả sử nhập N =5, máy sẽ thông báo kết quả S bằng bao nhiêu? (1đ) Câu 4. Viết thuật toán giải phương trình ax + b = 0 (2đ) Hết ĐÁP ÁN TIN 8 I. Phần trắc nghiệm: Mỗi câu trả lời đúng được 0,5đ (2 đ) Câu 1 2 3 4 Đáp án B D A C II. Phần tự luận: 8đ Câu 1. Cú pháp của câu lệnh lặp với số lần chưa biết trước trong ngôn ngữ lập trình Pascal: While <điều kiện> do <câu lệnh>; (1đ) Câu lệnh lặp được thực hiện: (1đ) Bước 1. Kiểm tra điều kiện. Bước 2. Nếu điều kiện không được thoả mãn (sai), câu lệnh sẽ bị bỏ qua và lệnh lặp kết thúc. Nếu điều kiện được thoả mãn (đúng), thực hiện câu lệnh và quay lại bước 1. Câu 2. Mỗi câu đúng được 0,5 đ a) Trước else không có dấu chấm phẩy, sửa lại: if a>b then max:=a else max:=b; b) Giá trị cuối phải lớn hơn hoặc bắng giá trị đâu, sửa lại: for i:=2 to 10 do write(‘A’); c) Giá trị đầu và cuối phải là số nguyên: for i:=1 to 5 do write(‘A’); d) Điều kiện là phép so sánh, không là phép gán while x>y do x:=x+1; Câu 3. Sửa lỗi chương trình sau: (1đ) Program Tinhtong; Var N, i: integer; S: Longint; Begin Write(‘Nhap so N = ’); Readln(N); S:=0; For i := 1 to N do S:=S+i; { Sai phép gán} Writeln(‘Tong cua ‘,N,’ so tu nhien dau tien S = ‘,S); Readln End. { thiếu dấu chấm sau end} Giả sử nhập N =5, máy sẽ thông báo kết quả S bằng 15 (1đ) Lần lặp S 1 1 2 3 3 6 4 10 5 15 Câu 4. Viết thuật toán giải phương trình ax + b = 0 (2đ) Input: Nhập các số a, b. (0,25đ) Output: Nghiệm của phương trình bậc nhất. (0,25đ) B1. Nếu a=0 chuyển tới bước 3 B2. Tính nghiệm của phương trình x = - b/a và chuyển tới bước 4. B3. Nếu b ≠ 0, thông báo phương trình vô nghiệm. ngược lại thông báo phương trình có vô số nghiệm. B4. Kết thúc. . PHÒNG GIÁO DỤC VÀ ĐÀO TẠO YEUL ĐỀ THI HỌC KÌ II NĂM HỌC 2010 - 2011 TRƯỜNG THCS COOC Moân: TIN HỌC - Lớp 8 Thời gian làm bài: 45 phút, không kể thời gian phát đề. I. TRẮC NGHIỆM: (2đ) Câu. 1.5 to 5.5 do write(‘A’); d) While x:=y do x:=x+1; Câu 3. Sửa lỗi chương trình sau: (1đ) Program Tinhtong; Var N, i: integer; S: Longint; Begin Write(‘Nhap so N = ’); Readln(N); S:=0; For i = 1. quả S bằng bao nhiêu? (1đ) Câu 4. Viết thuật toán giải phương trình ax + b = 0 (2đ) Hết ĐÁP ÁN TIN 8 I. Phần trắc nghiệm: Mỗi câu trả lời đúng được 0,5đ (2 đ) Câu 1 2 3 4 Đáp án B D A C II. Phần