PHẦN TỰ LUẬN 6 điểm: Caâu1 2 ñ: Lợi ích của việc sử dụng biến mảng là rút gọn việc viết chương trình, có thể sử dụng câu lệnh lặp để thay nhiều câu lệnh.. Thông báo S kết thúc thuật toán[r]
Trang 1Họ và tên: ĐỀ THI HỌC KÌ II - NĂM HỌC: 2009 - 2010
Lớp: 8 Môn: TIN HỌC - Thời gian 45 phút
I PHẦN THI TRẮC NGHIỆM ( 4 điểm):
* Khoanh tròn vào câu trả lời đúng nhất.
1/ Trong câu lệnh lặp: For i:=1 to 10 do begin … end;
Có bao nhiêu vòng lặp được thực hiện?
A Không lần nào B 1 lần C 10 lần D 2 lần
2/ 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>;
3/ Các câu lệnh Pascal sau đây được viết đúng hay sai( khoanh vào câu đúng):
a if x:=7 then a=b; c if x>5 then a:=b; m:= n;
b, if x>5; then a:=b; d if x> 5 then a:= b; else m:=n;
4/ Trong các hoạt động dưới đây, hoạt động nào sẽ được thực hiện lặp lại với số lần chưa biết trước?
a Tính tổng của 20 số tự nhiên đầu tiên.
b Nhập các số nguyên từ bàn phím cho đến khi đủ 50 số.
c.Trừ một số nguyên dương a nhiều lần cho một số nguyên dương b (tức tính các hiệu a – b, a – 2b, a – 3b, …, a b > 0) cho đến khi hiệu thu được nhỏ hơn b.
d Nhập các số từ bàn phím và tính tổng cho đến khi lần đầu tiên nhận được tổng lớn hơn 1000 thì kết thúc.
5/ Đoạn lệnh sau đây sẽ cho kết quả gì?
so:=1;
While so < 10 do writeln(so);
so:=so + 1;
A In ra các số từ 1 đến 9; B In ra các số từ 1 đến 10;
C In ra vô hạn các số 1, mỗi số trên một dòng; D Không phương án nào đúng
6/ 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+2;
writeln(s);
Kết quả in lên màn hình là của s là :
7/ Điền vào chỗ trông sao cho đúng nhất ( trong chương trình Pascal):
- Để lưu tệp ta bấm(1) , dịch lỗi cú pháp bấm (2) thực hiện chương trình bấm tổ hợp phím(3) ., trở về màn hình soạn thảo bấm (4)
Điểm Lời nhận xét của GV
Trang 2II PHẦN TỰ LUẬN: (6 ĐIỂM) Câu 1: Hãy nêu các lợi ích của việc sử dụng biến mảng trong chương trình?
Câu 2: Hãy mô tả thuật toán tính tổng các số dương trong dãy số
A= {a1, a2, ,,,,,, an} cho trước.
Câu 3: Sửa lỗi đoạn chương trình sau sao cho đúng:
Var i: real;
Begin
Clrscr;
For i:= 1 to 20 do;
Begin writeln( ‘0’); delay (100);
Readln
End.
Bài làm
Trang 3
ĐÁP ÁN + BIỂU ĐIỂM
(Môn tin lớp 8)
I PHẦN TRẮC NGHIỆM (4 điểm):
Câu 7: Mỗi ý đúng 0.25đ
(1)- F2, (2)- Alt - F9, (3) - Ctrl - F9, (4) Enter
1điểm
II PHẦN TỰ LUẬN (6 điểm):
Câu1( 2 đ): Lợi ích của việc sử dụng biến mảng là rút gọn việc viết chương trình, cĩ thể
sử dụng câu lệnh lặp để thay nhiều câu lệnh Ngồi ra chúng ta cịn cĩ thể lưu trữ và xữ lí nhiều dữ liệu cĩ nội dung liên quan đến nhau một cách hiệu quả
Câu2: (2.25 đ) Input: n và dãy n số a1, a2, ,,,,,, an 0.5 đ
Output: S =Tổng các số ai >0 trong dãy a1, a2, ,,,,,, an 0.5 đ
Câu 3:( 0.75 đ- mỗi ý đúng 0.25 đ) i: integer;
sau do không có dấu ( ; ), thiếu end;
Ngày 27 tháng 04 năm 2010
GVBM
Nguyễn Thị Thu Hằng
Trang 4ĐÁP ÁN KIỂM TRA – HKII
I PHẦN TRẮC NGHIỆM:
Mỗi ý đúng 0.5đ
1.C 2.D 3.C 4.D 5.C
6 a- S, b- S, c- S, d- Đ
7/ mỗi ý đúng 0.25đ
(1)- F2, (2)- Alt - F9,
(3) - Ctrl - F9, (4) Enter
II PHẦN TỰ LUẬN:
Bài 4: mỗi ý đúng 0.5đ
1 S, dư dấu hai chấm đầu tiên tại i:=1
2 Đ
3 S, dư dấu chấm phẩy trước từ khóa do
4 S, vòng lặp vô tận do không có câu
lệnh ghép làm thay đổi biến i(lỗi về ngữ
nghĩa)
I PHẦN TRẮC NGHIỆM:
Bài 1: mỗi ý đúng 0.5đ
1.B 2.A 3 a- S, b- S, c- S, d- Đ
4.B 5.B 6.C 7/ mỗi ý đúng 0.25đ 1.Đ 2 Đ 3.S 4.Đ
II PHẦN TỰ LUẬN
Bài 4: mỗi ý đúng 0.5đ
1 S, giá trị đầu phải nhỏ hơn giá trị cuối
2 S, vòng lặp vô tận do không có câu lệnh ghép làm thay đổi biến i(lỗi về ngữ nghĩa)
3 S, dư dấu chấm phẩy trước từ khóa
do
Trang 5Bài 5:
* Thuật tốn for do
B1: nhập n.
B2: s:=0; i:=0;
B3: nếu i > n – 1, chuyển đến B6
B4: Nếu n mod i = 0, s:=s + i, i:=i +
1.
B5: nếu i < n, quay lại B4.
B5: In ra s và kết thúc.
* Chương trình:
Var n,i,s: integer;
Begin
Write(‘Cho so tu nhien n = ‘);
readln(n);
s:=0;
for i:=2 to n - 1 do
If n mod i=0 then s:=s + i;
Write(‘Tong cac uoc thuc su
cua’,n,’la ‘,s);
(Mỗi ý đúng 0.25đ, thiếu ý -0.25đ/ý)
4 Đ
Bài 5:
* Thuật tốn while do
B1: nhập n.
B2: s:=0; i:=0;
B3: nếu i> n – 1, chuyển đến B5
B4: Nếu n mod i: = 0, s:=s + i, i:=i + 1và quay lại B3.
B5: In ra s và kết thúc.
* Chương trình:
Var n,i,s: integer;
Begin Write(‘Cho so tu nhien n = ‘);
readln(n);
i:=2; s:=0;
While i <= n – 1 do
Begin
If n mod i=0 then s:=s + i;
i:=i + 1;
End;
Write(‘Tong cac uoc thuc su cua’,n,’la ‘,s);
(Mỗi ý đúng 0.25đ, thiếu ý -0.25đ/ý)