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êuA. ...[r]
Trang 1PHÒNG GD & ĐT ĐỨC HÒA KIỂM TRA HỌC KÌ II - NĂM HỌC 2011-2012
TRƯỜNG THCS ĐỨC LẬP MÔN: Tin học 8
Thời gian: 45 phút (Không kể thời gian phát đề)
Họ và tên :
Lớp : 8/
Ngày thi:
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 ?
n:=10; T:=100;
While n>10 do n:=n+5; T:=T - n;
Trang 2Câu 8 Đ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 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 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 tìm max day so đó. 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
I/ MA TRẬN ĐỀ
Mức độ
II/ ĐÁP ÁN VÀ BIỂU ĐIỂM 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:
Câu 2
Program cau_2;
Uses crt;
Var max, 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
Max:=dayso[1];
For i := 2 to 8 do Begin
If max<dayso[i] then max:=dayso[i];
End;
0.5
Writeln(‘So lon nhat day so ‘,max);