Các câu lệnh được viết lặp đi lặp lai nhiều lần.. Vì câu lệnh đã có tên là lệnh lặp d.. Câu 2: Cách viết câu lệnh lặp với số lần biết trước như sau: a.. 3 điểm Viết chương trình nhập vào
Trang 1Thời gian : 45 phút (không kể thời gian giao đề) (Đề 1)
I -
PHẦN TRẮC NGHIỆM KHÁCH QUAN : hảy chọn đáp án đúng (2 điểm)
Câu 1: Em hiểu câu lệnh lặp theo nghĩa nào dưới đây?
a Một lệnh thay cho nhiều lệnh
b Các câu lệnh được viết lặp đi lặp lai nhiều lần
c Vì câu lệnh đã có tên là lệnh lặp
d Cả a, b, c đều sai
Câu 2: Cách viết câu lệnh lặp với số lần biết trước như sau:
a For <biến đếm> = <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
b For <biến đếm>: = <gía trị cuối> to <giá trị đầu> do <câu lệnh>;
c For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
d For <biến đếm> = <giá trị cuối> to <giá trị đầu> do <câu lệnh>
Câu 3: cho đoạn chương trình sau:
I:=1;
While i<=5 do
Begin tong:= tong + I; I:= I + 1; End;
Sau đoạn chương trình trên em hãy cho biết biến “tong” có giá trị bằng bao nhiêu?
Câu 4.Để khai báo biến mảng a gồm 10 phần tử , mỗi phần tử có kiểu dữ liệu là real ta khai báo:
A var a: array[10] of real; B var a: array[1;10] of real;
C var a: array[1:10]: of real; D var a: array[1 10] of real;
II - PHẦN TỰ LUẬN ( 8 điểm)
Câu 1: (2 điểm)
Viết cú pháp câu lệnh lặp biết trước số lần lặp và câu lệnh lặp chưa biết trước số lần lặp Giải thích các thành phần trong câu lệnh
Bài 2 (3 điểm)
Tìm lỗi trong chương trình và sửa lỗi chương trình cho đúng:
Tính Tổng Các Số Tự Nhiên Từ 100 Đến 1000 (Vòng lặp với số lần lặp chưa biết)
Program tinh_tong;
Var i S: Integer;
Begin
i: 100;
S = 0;
While i > 1000 do
S:= S + i i:= i + 1;
Writeln(‘ Tong cac so tu nhien tu 100 den 1000 la:’,S); Readln; End
Bài 3 (3 điểm)
Viết chương trình nhập vào một mảng các số nguyên.Ghi ra màn hình giá trị trung bình cộng của mảng đó và các phần tử nhỏ hơn giá trị trung bình cộng của mảng
Trang 2TRƯỜNG THCS qu¶ng v¨n ĐÁP ÁN HỌC KÌ II NĂM HỌC :2010-2011
Môn : Tin 8 Thời gian : 45 phút (không kể thời gian giao đề) (Đề 1)
I -
PHẦN TRẮC NGHIỆM KHÁCH QUAN : (2 điểm)
II - PHẦN TỰ LUẬN : ( 8 đ)
Câu 1: (2 điểm)
- Cú pháp câu lệnh lặp biết trước số lần lặp: (0,5đ)
For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
- Giải thích:(0,5đ) for, to, do là các từ khóa.
biến đếm là biến kiểu nguyên.
câu lệnh có thể là đơn hoặc ghép.
giá trị đầu, giá trị cuối là những giá trị nguyên.
(giá trị đầu không lớn hơn giá trị cuối)
- Cú pháp câu lệnh lặp chưa biết trước số: (0,5đ)
While <điều kiện> do <câu lệnh>;
- Giải thích:(0,5đ) while, do là các từ khóa.
điều kiện thường là một phép so sánh.
câu lệnh có thể là đơn hoặc ghép.
Câu 1: ( 3 điểm)
Program tinh_tong;
Var i, S: Integer; {0,5điểm}
Begin
While i <=1000 do {1 điểm}
i:= i + 1;
Writeln(‘ Tong cac so tu nhien tu 100 den 1000 la:’,S); Readln;
End.
Câu 2: ( 3 đ)
Chương trình có thể được viết như sau:
Program tbc;
Var a: array[1 100] of integer;
i, n, tong: integer; Phần khai báo( 0,75điểm)
tbc: real;
Begin
Write(‘Nhap vao so phan tu cua mang n= (<=100) :’); readln(n);
Write(‘Nhap so nguyen:’); Phần nhập số nguyên: 1 điểm For i:=1 to n do
Begin write(‘a[‘,i,’]:’); readln(a[i]); end;
Tong:=0;
For i:=1 to n do tong:=tong+a[i]; Phần tính tổng các phần tử của mảng: 1 điểm tbc:=tong/n;
Writeln(‘Trung binh cong cua mang la:’, tbc:10:2);
Writeln(‘ cac phan tu nho hon tbc la:’); Phần in ra các phần tử nhỏ hơn tbc:1điểm For i:=1 to n do
If a[i]<tbc then write(a[i]:5);
Readln;
End.
Trang 3Thời gian : 45 phút (không kể thời gian giao đề) (Đề 2)
I -
PHẦN TRẮC NGHIỆM KHÁCH QUAN : hảy chọn đáp án đúng (2 điểm)
Câu 1: Em hiểu câu lệnh lặp theo nghĩa nào dưới đây?
e Một lệnh thay cho nhiều lệnh
f Các câu lệnh được viết lặp đi lặp lai nhiều lần
g Vì câu lệnh đã có tên là lệnh lặp
h Cả a, b, c đều sai
Câu 2: Cách viết câu lệnh lặp với số lần biết trước như sau:
e For <biến đếm> = <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
f For <biến đếm>: = <gía trị cuối> to <giá trị đầu> do <câu lệnh>;
g For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
h For <biến đếm> = <giá trị cuối> to <giá trị đầu> do <câu lệnh>
Câu 3: cho đoạn chương trình sau:
I:=1;
While i<=5 do
Begin tong:= tong + I; I:= I + 1; End;
Sau đoạn chương trình trên em hãy cho biết biến “tong” có giá trị bằng bao nhiêu?
Câu 4.Để khai báo biến mảng a gồm 10 phần tử , mỗi phần tử có kiểu dữ liệu là real ta khai báo:
A var a: array[10] of real; B var a: array[1;10] of real;
C var a: array[1:10]: of real; D var a: array[1 10] of real;
II - PHẦN TỰ LUẬN ( 8 điểm)
Câu 1: (2 điểm)
Viết cú pháp câu lệnh lặp biết trước số lần lặp và câu lệnh lặp chưa biết trước số lần lặp Giải thích các thành phần trong câu lệnh
Câu 2: (3 điểm)
Các lệnh khai báo biến mảng trong Pascal sau đây đúng hay sai (Đ/S)? Nếu sai hãy sửa lại cho đúng
a
)
Var x: array[1, 5] of integer;
b
)
Var x: array[1…7] of byte;
c) Var x: array[-5 5] of byte;
d
) Var x: array[3 3.5] of real;
e) Var x: array[1:10] of integer;
f) Var do: array[1 10] of byte;
Bài 3 (3 điểm)
Viết chương trình nhập vào một mảng các số nguyên.Ghi ra màn hình giá trị trung bình cộng của mảng đó và các phần tử nhỏ hơn giá trị trung bình cộng của mảng
Trang 4TRƯỜNG THCS qu¶ng v¨n ĐÁP ÁN HỌC KÌ II NĂM HỌC :2010-2011
Môn : Tin 8 Thời gian : 45 phút (không kể thời gian giao đề) (Đề 2)
I -
PHẦN TRẮC NGHIỆM KHÁCH QUAN : (2 điểm)
II - PHẦN TỰ LUẬN : ( 8 đ)
Câu 1: (2 điểm)
- Cú pháp câu lệnh lặp biết trước số lần lặp: (0,5đ)
For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
- Giải thích:(0,5đ) for, to, do là các từ khóa.
biến đếm là biến kiểu nguyên.
câu lệnh có thể là đơn hoặc ghép.
giá trị đầu, giá trị cuối là những giá trị nguyên.
(giá trị đầu không lớn hơn giá trị cuối)
- Cú pháp câu lệnh lặp chưa biết trước số: (0,5đ)
While <điều kiện> do <câu lệnh>;
- Giải thích:(0,5đ) while, do là các từ khóa.
điều kiện thường là một phép so sánh.
câu lệnh có thể là đơn hoặc ghép.
Câu 2: (3 điểm) Mỗi câu trả lời đúng được 0,5đ.
Câu 2: ( 3 đ)
Chương trình có thể được viết như sau:
Program tbc;
Var a: array[1 100] of integer;
i, n, tong: integer; Phần khai báo( 0,75điểm)
tbc: real;
Begin
Write(‘Nhap vao so phan tu cua mang n= (<=100) :’); readln(n);
Write(‘Nhap so nguyen:’); Phần nhập số nguyên: 1 điểm For i:=1 to n do
Begin write(‘a[‘,i,’]:’); readln(a[i]); end;
Tong:=0;
For i:=1 to n do tong:=tong+a[i]; Phần tính tổng các phần tử của mảng: 1 điểm tbc:=tong/n;
Writeln(‘Trung binh cong cua mang la:’, tbc:10:2);
Writeln(‘ cac phan tu nho hon tbc la:’); Phần in ra các phần tử nhỏ hơn tbc:1điểm For i:=1 to n do
If a[i]<tbc then write(a[i]:5);
Readln;