Chưa biết trước số lần lặp B.. Biết trước số lần lặp C.. Biết trước số lần lặp nhưng giới hạn là =100 Câu 3: Hãy tìm hiểu đoạn chương trình sau đây... Giáo viên ra đề Phạm Thị Tuyết Gi
Trang 1PHÒNG GD – ĐT HƯNG HÀ
TRƯỜNG THCS CHÍ HOÀ ĐỀ KIÊM TRA CHẤT LƯỢNG HỌC KÌ IINăm học 2010 – 2011
Môn: tin học 8 (thời gian: 45 phút)
I/ Khoanh tròn chữ cái đứng trước phương án em cho là đúng: (4 điểm)
Câu 1: Lệnh lặp nào sau đây là đúng?
A For <biến đếm>= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
B For <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
C For <biến đếm>:= <giá trị cuối> to <giá trị đầu> do <câu lệnh>;
D For <biến đếm>: <giá trị đầu> to <câu lệnh> do <giá trị cuối>;
Câu 2: Vòng lặp While <Điều kiện> do <Câu lệnh>; là vòng lặp:
A Chưa biết trước số lần lặp B Biết trước số lần lặp
C Biết trước số lần lặp nhưng giới hạn là <=100 D Biết trước số lần lặp nhưng giới hạn là >=100
Câu 3: Hãy tìm hiểu đoạn chương trình sau đây
i:=1; j:=2; k:=3;
While i<=6 do i:=i+1; j:=j+1; k:=k+j;
Space:=’ ’;
Write(I,space,j,space,k);
Sau khi thực hiện đoạn chương trình trên, lệnh Writeln in ra màn hình giá trị của
i, j, k lần lượt là bao nhiêu?
Câu 4: Sau khi thực hiện đoạn chương trình sau, giá trị của biến S bằng bao nhiêu:
s:=1;
for i:=1 to 5 do s := s*i;
Câu 5: Phần thân chương trình bắt đầu bằng từ khóa::
Câu 6: Cú pháp khai báo biến mảng trong Pascal là:
A var <Tên mảng> ; array [<chỉ số đầu> <chỉ số cuối>] of <kiểu dữ liệu >;
B var <Tên mảng> : array [<chỉ số đầu>…<chỉ số cuối>] of <kiểu dữ liệu >;
C var <Tên mảng> : array [<chỉ số đầu> <chỉ số cuối>] of <kiểu dữ liệu >;
D.var <Tên mảng> : array [<chỉ số đầu>…<chỉ số cuối>] for <kiểu dữ liệu >; Câu 7: Để tính tổng S=2 + 4 + 6 … + n; em chọn đoạn lệnh:
A.For i:=1 to n do
if ( i mod 2)=0 then S:=S + i;
C.For i:=1 to n do
S:= S + i ;
B For i:=1 to n do
if ( i mod 2)=1 then S:=S + i; D.for i:=1 to n doif ( i mod 2)<>0 then S:=S + i;
Câu 8: Chọn khai báo hợp lệ:
A Var a,b: array[1 n] of real; C Var a,b: array[1 : n] of Integer;
B Var a,b: array[1 100] of real; D Var a,b: array[1 … 100] of real;
II/ Điền X vào các ô sao cho phù hợp và giải thích vì sao? (2 điểm)
a) for i=1 to 10 do writeln('A');
b) var X: Array[5…10] Of Char;
c) X:=10; while X=10 do X := X+5;
d) if x>5 then a:=b; else m := n;
Trang 2III/ Gạch chân dưới những câu lệnh em cho là sai rồi viết lại câu lệnh đó cho đúng: (2
điểm)
Program Tinhtong;
………
………
Uses crt ………
………
Var N i: Integer; ………
………
S: Longint; Begin Clrscr; ………
………
Write(‘Nhap vao so N =’ ); Readln(N); S:=0; For i:=1 to N do S=S*1/i ; ………
………
Writeln(‘Tong cua’,N,’so dau tien s = ‘, s) Readln ………
………
End .
IV/ Viết chương trình giải quyết bài toán: (2 điểm)
Viết chương trình tính tổng:
S = 1+2+3+…+n Trong đó n là số nguyên nhập từ bàn phím
Trang 3Đáp án
I/ Khoanh tròn chữ cái đứng trước phương án em cho là đúng: (4 điểm)
II/ Điền X vào các ô sao cho phù hợp và giải thích vì sao? (1 điểm)
III/ Gạch chân dưới những câu lệnh em cho là sai rồi viết lại câu lệnh đó cho đúng: (2
điểm)
Program Tinhtong;
………
………
Uses crt
………
………
Var N i: Integer; ………
………
S: Longint; Begin Clrscr; ………
………
Write(‘Nhap vao so N =’ ); Readln(N); S:=0; For i:=1 to N do S=S*1/i ;
………
………
Writeln(‘Tong cua’,N,’so dau tien s = ‘, s) Readln ………
………
Uses crt; Var N, i: Integer;
For i:=1 to N do S:=S*1/i;
Writeln(‘Tong cua’,N,’so dau tien s = ‘, s); End.
IV/ Viết chương trình giải quyết bài toán: (2 điểm)
Program Tong;
Uses crt;
Var S: real;
n, i: integer;
Begin
Clrscr;
Write(‘Nhap so n = ‘); Readln(n);
S:= 0;
For i:= 1 to n do S: = S + i;
a) for i=1 to 10 do writeln('A'); X Thiếu dấu : sau biến i
b) var X: Array[5 10] Of Char; X Kiểu dữ liệu sai.
c) X:=10; while X=10 do X := X+5; X
d) if x>5 then a:=b; else m := n; X Thừa dấu ; trước else
Trang 4Writeln(‘Tong can tim la: ‘, S:6:2);
Readln
End
Giáo viên ra đề
Phạm Thị Tuyết
Giáo viên phản biện Trần Thị Loan