Hãy cho biết, khi thực hiện thuật toán trên, máy tính sẽ thực hiện bao nhiêu vòng lặp và giá trị của T và j là bao nhiêu?. ...[r]
Trang 1ĐỀ KIỂM TRA HỌC KÌ II - NĂM HỌC 2011 - 2012
MÔN : TIN HỌC 8
Thời gian 45 phút
Họ & tên: Điểm Giám khảo Giám thị 1: Giám thị 2:
A/ LÝ THUYẾT: (6 điểm )Hãy chọn một đáp án đúng nhất rồi điền vào bảng dưới đây:
Đáp án
Câu 1 Trong Pascal, câu lệnh nào sau đây được viết đúng?
A for i := 4 to 1 do writeln(‘A’);
B for i := 1 to 10 writeln(‘A’);
C for i := 1 to 100 do writeln(‘A’);
D for i to 10 do writeln(‘A’);
Câu 2 Trong câu lệnh lặp: for n:= 1 to 6 do begin end;
Câu lệnh ghép được thực hiện bao nhiêu lần?
A 7 lần;
B 6 lần;
C 5 lần;
D Không lần nào;
Câu 3 Câu lệnh lặp For to do có:
A Số lần lặp là vô hạn.
B Số lần lặp biết trước.
C Số vòng lặp phải nhỏ hơn 100.
D Số vòng lặp không biết trước.
Câu 4 Sau khi thực hiện chương trình dưới đây, giá trị của biến j bằng bao nhiêu?
j:= 1;
for i:= 0 to 10 do j:= j+1;
Câu 5 Trong Pascal, câu lệnh nào sau đây là đúng?
A i:=0; S:=1; While S<10 do S=S+i; i=i+1;
B i:=1; S:=0; while s<10 do begin S:=S+i; i:=i+1; end;
C n:=2; while n<5; do write(‘A’);
D Cả A và B đều đúng
Câu 6 Cú pháp đầy đủ của câu lệnh While … do là:
A While <câu lệnh> do <điều kiện>;
B While <điều kiện>; <câu lệnh>;
C While <điều kiện> to <câu lênh> do;
D While <điều kiện> do <câu lệnh>;
Câu 7 Hãy cho biết chương trình dưới đây sẽ thực hiện bao nhiêu vòng lặp khi thực hiện đoạn chương trình ?
Mã đề Chẵn
Trang 2While so <10 writeln(so); so := so + 1;
A In ra các số từ 1 đến 10;
B Chương trình báo lỗi;
C In ra vô hạn số 1 trên một cột;
D In ra vô hạn số 1 trên một dòng ; Câu 9 Trong Pascal, câu lệnh khai báo biến mảng nào sau đây đúng?
A var a : array[10 1] of integer;
B var b : array(1 100) of real;
C var c : array[1 15] of integer;
D var d : array[-2 -5] of real;
Câu 10 Khai báo biến mảng: A : array[1 7] of real; Sử dụng câu lệnh For i:= 1 to 5 do readln(A[i]); để gán giá
trị cho các phần tử trong biến A từ bàn phím, ta sẽ nhập được bao nhiêu giá trị?
Câu 11 Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây đúng:
A Chỉ số đầu > chỉ số cuối;
B Chỉ số đầu chỉ số cuối;
C Kiểu dữ liệu chỉ có thể là real;
D Cả ba ý trên đều đúng;
Câu 12 Giả sử biến mảng A có 5 phần tử và giá trị của các phần tử lần lượt là 1, 4, 7, 2, 6 Khi thực hiện câu lệnh
dưới đây giá trị của biến tb là bao nhiêu?
tb:= 0; For i:= 1 to 5 do tb := tb + A[i];
B/ BÀI TẬP (4 điểm)
Câu 1 (2 điểm) Cho thuật toán sau:
B1: j 0; T 105;
B2: Nếu T< 20 thì chuyển qua B4;
B3: j j + 5; T T – j;
B4: In ra kết quả T và j;
a Hãy cho biết, khi thực hiện thuật toán trên, máy tính sẽ thực hiện bao nhiêu vòng lặp và giá trị của T và
j là bao nhiêu
b Viết câu lệnh pascal thể hiện hai thuật toán trên.
Câu 2 (2 điểm) Viết chương trình nhập vào 8 số nguyên rồi xuất ra: Số số chẵn Yêu cầu : Khai tên báo biến mảng dayso, với chỉ số đầu là 1, chỉ số cuối là 20, kiểu dữ liệu số nguyên.
Trang 3
ĐỀ KIỂM TRA HỌC KÌ II - NĂM HỌC 2011 - 2012
MÔN : TIN HỌC 8
Thời gian 45 phút
Họ & tên: Điểm Giám khảo Giám thị 1: Giám thị 2:
A/ LÝ THUYẾT: (6 điểm )Hãy chọn một đáp án đúng nhất rồi điền vào bảng dưới đây:
Đáp án
Câu 1 Hãy cho biết chương trình dưới đây sẽ thực hiện bao nhiêu vòng lặp khi thực hiện đoạn chương trình ?
n:=10; T:=100;
While n>10 do n:=n+5; T:=T - n;
Câu 2 Đoạn lệnh dưới đây sẽ cho kết quả là gì?
so := 1;
While so <10 writeln(so); so := so + 1;
A In ra các số từ 1 đến 10;
B Chương trình báo lỗi;
C In ra vô hạn số 1 trên một cột;
D In ra vô hạn số 1 trên một dòng ; Câu 3 Trong Pascal, câu lệnh khai báo biến mảng nào sau đây đúng?
A var a : array[10 1] of integer;
B var b : array(1 100) of real;
C var c : array[1 15] of integer;
D var d : array[-2 -5] of real;
Câu 4 Khai báo biến mảng: A : array[1 7] of real; Sử dụng câu lệnh For i:= 1 to 5 do readln(A[i]); để gán giá
trị cho các phần tử trong biến A từ bàn phím, ta sẽ nhập được bao nhiêu giá trị?
Câu 5 Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây đúng:
A Chỉ số đầu > chỉ số cuối;
B Chỉ số đầu chỉ số cuối;
C Kiểu dữ liệu chỉ có thể là real;
D Cả ba ý trên đều đúng;
Câu 6 Giả sử biến mảng A có 5 phần tử và giá trị của các phần tử lần lượt là 1, 4, 7, 2, 6 Khi thực hiện câu lệnh
dưới đây giá trị của biến tb là bao nhiêu?
tb:= 0; For i:= 1 to 5 do tb := tb + A[i];
Câu 7 Trong Pascal, câu lệnh nào sau đây được viết đúng?
Mã đề Lẻ
TRƯỜ
NG
THCS
Trang 4B 6 lần; D Không lần nào;
Câu 9 Câu lệnh lặp For to do có:
A Số lần lặp là vô hạn.
B Số lần lặp biết trước.
C Số vòng lặp phải nhỏ hơn 100.
D Số vòng lặp không biết trước.
Câu 10 Sau khi thực hiện chương trình dưới đây, giá trị của biến j bằng bao nhiêu?
j:= 1;
for i:= 0 to 10 do j:= j+1;
Câu 11 Trong Pascal, câu lệnh nào sau đây là đúng?
A i:=0; S:=1; While S<10 do S=S+i; i=i+1;
B i:=1; S:=0; while s<10 do begin S:=S+i; i:=i+1; end;
C n:=2; while n<5; do write(‘A’);
D Cả A và B đều đúng
Câu 12 Cú pháp đầy đủ của câu lệnh While … do là:
A While <câu lệnh> do <điều kiện>;
B While <điều kiện>; <câu lệnh>;
C While <điều kiện> to <câu lênh> do;
D While <điều kiện> do <câu lệnh>;
B/ BÀI TẬP (4 điểm)
Câu 1 (2 điểm) Viết chương trình nhập vào 8 số nguyên rồi xuất ra: Số số chẵn
Yêu cầu : Khai tên báo biến mảng dayso, với chỉ số đầu là 1, chỉ số cuối là 20, kiểu dữ liệu số nguyên.
Câu 2 (2 điểm) Cho thuật toán sau: B1: j 0; T 105; B2: Nếu T< 20 thì chuyển qua B4; B3: j j + 5; T T – j; B4: In ra kết quả T và j; a Hãy cho biết, khi thực hiện thuật toán trên, máy tính sẽ thực hiện bao nhiêu vòng lặp và giá trị của T và j là bao nhiêu
b Viết câu lệnh pascal thể hiện hai thuật toán trên.
Trang 5
Mức độ
Nội dung
Bài 8: Lặp với số lần chưa biết trước 2
1
2
1
1
2
5
4
II/ ĐÁP ÁN VÀ BIỂU ĐIỂM – ĐỀ CHẴN A/ LÝ THUYẾT: (6 điểm – mỗi câu đúng 0,5 điểm)
B/ BÀI TẬP (4 điểm)
Câu 1
a
- Khi thực hiện thuật toán trên, máy tính sẽ thực hiện 06 vòng
b
Đoạn chương trình thể hiện thuật toán:
While T >= 20 do begin j := j + 5; T := T - j; end; 0.25
Uses crt;
Var so_chan, i : integer;
dayso : array[1 20] of integer;
0.25
Begin Clrscr;
so_chan:=0;
0.5
For i := 1 to 8 do Begin Write(‘phan tu thu ‘,i,’ la = ‘);
readln(dayso[i]);
End;
0.5 For i := 1 to 8 do
Begin
Trang 6III/ ĐÁP ÁN VÀ BIỂU ĐIỂM – ĐỀ LẺ A/ LÝ THUYẾT: (6 điểm – mỗi câu đúng 0,5 điểm)
B/ BÀI TẬP (4 điểm)
Câu 1
Program cau_2;
Uses crt;
Var so_chan, i : integer;
dayso : array[1 20] of integer;
0.25
Begin Clrscr;
For i := 1 to 8 do Begin Write(‘phan tu thu ‘,i,’ la = ‘);
readln(dayso[i]);
End;
0.5
For i := 1 to 8 do Begin
If dayso[i] mod 2 =0 then so_chan := so_chan+1;
End;
0.5
Writeln(‘so so chan la: ‘,so_chan);
Readln;
End
0.25
Câu 2
a
- Khi thực hiện thuật toán trên, máy tính sẽ thực hiện 06 vòng
b
Đoạn chương trình thể hiện thuật toán:
While T >= 20 do begin j := j + 5; T := T - j; end; 0.25