Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thoả mãn.. Chỉ ngôn ngữ lập trình Pascal mới có các câu
Trang 1ĐỀ CƯƠNG ÔN TẬP HỌC KỲ 2
MÔN: TIN HỌC 8 (Năm học 2010 – 2011)
I PHẦN TRẮC NGHIỆM.
Câu 1: Phát biểu nào sau đây là đúng ?
A Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thoả mãn
B Chỉ ngôn ngữ lập trình Pascal mới có các câu lệnh lặp để thể hiện cấu trúc lặp
C Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh while…do
D Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp chưa biết trước bằng câu lệnh For…do
Câu 2: Lệnh lặp nào sau đây là đúng?
A For <biến đếm>= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>;
B For <biến đếm>:= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>;
C For <biến đếm>:= <giá trị cuôí> 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 3: 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>;
Câu 4: Để tính tổng S=1+2+3+ 4+ 5 + … + n; em chọn đoạn lệnh:
A s:=0; i:=0;
While i<=n do
S:=S + 1;
B s:=0; i:=0;
While i<=n do
If (I mod 2)= 1 Then S:=S + i;
C s:=0; i:=0;
While i<=n do
begin
S:=S + i;
I:=i+1;
End;
D s:=0; i:=0;
While i<=n do begin
if (i mod2)=1 Then S:=S + i;
Else i:=i+1;
End;
Câu 5: Chọn cách khai báo biến mảng đúng:
Câu 6: Cho S và i là biến nguyên Khi chạy đoạn chương trình:
s:=0; i:=1 while i<=5 do begin i:=i+1; s := s+i; end;
writeln(s);
Kết quả in lên màn hình là của s là :
Câu 7: Trong vòng lặp For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh> củaPascal, trong mỗi vòng
lặp, biến đếm thay đổi như thế nào
Câu 8: Câu lệnh lặp while…do có dạng đúng là:
Câu 9: Câu lệnh Pascal nào sau đây là hợp lệ?
A For i:=100 to 1 do writeln(‘A’); B For i:= 1 to 10 do writeln(‘A’);
C For i:=1.5 to 10.5 do writeln(‘A’); D For i= 1 to 10 do writeln(‘A’);
Câu 10:Cho S và i là biến nguyên Khi chạy đoạn chương trình:
Trang 2For i:=1 to 5 do s:=s+1;
Writeln(s);
Kết quả in lên màn hình của s là :
Câu 11: Lần lượt thực hiện câu lệnh for i:= 1 to 3.5 do writeln(i:3:1); sẽ viết ra màn hình?
A Thứ tự của biến đếm, chiếm 3 chỗ và lấy 1 chữ số sau phần thập phân B Viết số 1 rồi viết số 3.5
C Chỉ viết số 3.5 mà thôi D Không thực hiện được vì giá trị của biến đếm có kiểu thứ tự là Real
Câu 12 : Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp
S:=0; n:=0;
While S< =10 do
Begin
n:=n+1;
s:=s+n;
end;
Câu 13 : Câu lệnh nào sau đây lặp vô hạn lần
A s:=5; i:=0;
While i<=s do s:=s + 1; B s:=5; i:=1;While i<=s do i:=i + 1;
C s:=5; i:=1;
While i> s do i:=i + 1; D s:=0; i:=0;While i<=n do
if (i mod2)=1 then S:=S + I else i:=i+1;
Câu 14: Để tính tổng S=1 + 2 +3 +4 … + n; em chọn đoạn lệnh:
A for i:=1 to n do
if ( i mod 2)=0 then S:=S + i; B for i:=1 to n doif ( i mod 2)=1 then S:=S + i;
C for i:=1 to n do
S:= S + i ; D for i:=1 to n do if ( i mod 2)<>0 then S:=S + i;
Câu 15: Để 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;
B For i:=1 to n do
S:= S + i ;
C 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 16: Để tính tổng S=1/2+1/4 + 1/6 + … +1/ n; em chọn đoạn lệnh:
A for i:=1 to n do
if ( i mod 2)=0 then S:=S + 1/i;
B for i:=1 to n do
if ( i mod 2) < > 0 then S:=S + i;
C for i:=1 to n do
if ( i mod 2)=0 then S:=S – 1/i else S:= S + 1/i;
D for i:=1 to n do
if ( i mod 2)=0 then S:=S +1/ i else S:=S-1/i;
Câu 17: Để đếm có bao nhiêu số lẻ nhỏ hơn hay bằng n ; em chọn đoạn lệnh:
A for i:=1 to n do
if ( I mod 2)< >0 then S:=S + 1;
B for i:=1 to n do
if ( I mod 2) =0 then S:=S + 1;
C for i:=1 to n do
if ( I mod 2)=0 then S:=S + I ;
D for i:=1 to n do
if ( I mod 2)=0 then S:=S + I;
Câu 18: Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do x:=x+1; thì biến đếm i phải được khai báo là kiểu dữ liệu
Câu 19: Sau khi thực hiện đoạn chương trình j:= 0; for i:= 1 to 3 do j:=j+2; thì giá trị in ra màn hình là?
Câu 2 0 : Đoạn lệnh sau đây So:=1; While so<10 do writeln(so); So:=so+1; Sẽ cho kết quả gì?
C Không phương án nào đúng D In vô hạn các số 1, mỗi số trên một dòng
Câu 21: Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp
Trang 3S:=0; n:=0;
While S< =10 do n:=n+1; s:=s+n;
Câu 22: Hãy tìm hiểu đoạn chương trình sau đây Sau khi đoạn chương trình này được thực hiện, giá trị của x bằng
bao nhiêu?
X:=0; Tong:=0;
While tong<=20 do
Begin
Writeln(tong); Tong:=tong+1;
End
X:=tong;
Câu 23: 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 24: 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;
Câu 25: Trong phần mềm Finger Break Out mức chơi Advanced là mức chơi:
Câu 26: Trong phần mềm Sun Times để biết thời gian giữa trưa, ta chọn mục nào
Câu 27: Để cố định vị trí và thời gian quan sát ta vào:
Câu 28: Để xem chi tiết thời gian mặt trời mọc, lặn trong suốt 365 ngày của một năm của một địa điểm, vị trí trên
trái đất, ta vào
C View \ Currenttly Sunset / Sunrise D View \ Sunset / Sunrise for the year
Câu 29: Phần mở rộng của tệp hình trong phần mềm Geogebra là gì:
Câu 30: Trong phần mềm Geogebra, công cụ tạo trung điểm đoạn thẳng là :
Câu 31: Phần mềm nào sau đây xem được hiện tượng nhật thực và nguyệt thực?
Câu 32: Phần mềm Finger Break Out dùng để làm gì?
A Xem thông tin thời gian ngày và đêm B Xem thông tin nhật thực, nguyệt thực
C Luyện gõ bàn phím nhanh, chính xác D Không có đáp án đúng
Câu 33 : Phần mềm học vẽ hình là :
Câu 34: Ghép nội dung ở cột A sao cho phù hợp ở cột B
1 Fi nger Bre ck out là pm
2 Quan sát toàn cảnh thế giới
3 Geogebra là phần mềm
4 Tạo hình không gian
a Phần mềm Sun ti mes
b Vẽ biểu đồ toán học
c Phần m ềm Yen ka
d Vẽ hình h ọc đơn giản
e Luyện gõ phím nhanh băn g 10 ngón tay
1
2
3
4
Trang 4Câu 3 5 : Điền X vào các ô sao cho phù hợp và giải thích vì sao
a) for i=1 to 10 do writeln('A');
b) var X: Array[5 10] Of Real;
c) X:=10; while X<30 do X: = X+5;
d) if x>5 then a:=b; else m := n;
Câu 36 : Nhận xét nội dung và đánh dấu “X” vào cột ĐÚNG hoặc SAI.
g Sai
1 Không nên thay đổi giá trị của biến đếm trong câu lệnh lặp For … do, ví dụ câu lệnh lặp sau
đây là không nên sử dụng For i:=1 to n do i:=i+2;
2 Trong câu lệnh lặp for biến đếm:=giá trị đầu to giá trị cuối do câu lệnh;
Nếu giá trị đầu < giá trị cuối thì chương trình dịch sẽ báo lỗi để ta chỉnh sữa lại
3 Câu lệnh lặp For… do rất thuận tiện và hữu ích trong việc tránh phải viết lặp đi lặp lại nhiều
lần một câu lệnh nào đó Chẳng hạn để in ra các số nguyên hơn kém nhau 1 đơn vị từ 1 đến 15
ta chỉ viết 1 câu lệnh sau For i:=1 to 15 do writeln(i:3:1);
4 Mọi câu lệnh lặp While…do đều có thể thay thế một cách thích hợp bởi câu lệnh For do
5 Câu lệnh sau do trong câu lệnh lặp while … do có thể không được thực hiện lần nào nếu ngay
từ đầu điềukiện điều khiển vòng lặp có giá trị “sai”
II PHẦN T Ự LUẬN:
Câu 1: Viết đoạn chương trình tính tổng các số từ 10 đến 100 (sử dụng For do và While … do) Câu 2: Viết chương trình nhập vào điểm toán và ngữ văn của các bạn, gồm n bạn nhập từ bàn phím,
sau đó in ra điểm trung bình mỗi bạn theo công thức (điểm trung bình = (điểm toán + điểm ngữ văn)/2)
Câu 3 : Viết chương trình tính trung bình cộng các số của dãy số gồm n số nhập từ bàn phím?
Câu 4 : Viết chương trình tính tổng:
2 3 4
S
n
Trong đó n là số nguyên nhập từ bàn phím
Câu 5: Viết chương trình thực hiện các công việc sau:
a Cho phép nhập vào 1 dãy số gồm n số (với n>1 và nhập từ bàn phím)
b In ra màn hình số lớn nhất.
c In ra màn hình những số lớn hơn 5 và không chia hết cho 2.
Câu 6: Vẽ hình: (Sử dụng phần mềm Geogebra)
a) Trình bày các bước vẽ hình tròn nội tiệp tam giác ABC (ΔABCABC cho trước)
b) Trình bày các bước vè hình vuông cạnh 4 Cm.
Nguyễn Văn Phong
Trang 5HƯỚNG DẪN
Câu 1: Viết đoạn chương trình tính tổng các số từ
10 đến 100 (sử dụng For do và While … do).
* Sử dụng For … Do
Var s, i : integer;
Begin
s:=0;
For i:=10 to 100 do
s:=s+i;
Writeln(‘Tổng cần tìm là ‘, s);
Readln;
End
* Sử dụng While … DO
Var s, i : integer;
Begin
s:=0; i:=10;
While i<=100 do Begin
s:=s+i;
i:=i+1;
end;
Writeln(‘Tổng cần tìm là:’,s);
Readln;
End
Câu 2: Viết chương trình nhập vào điểm toán và ngữ văn của các bạn, gồm n bạn nhập từ bàn phím, sau đó in
ra điểm trung bình mỗi bạn theo công thức (điểm trung bình = (điểm toán + điểm ngữ văn)/2)
Program bai2;
Uses crt;
Var DT, DV:array[1 100] of real;
i, n: integer; TB:real;
Begin
Write(‘Nhập số bạn trong lớp, n=’);
Readln(n);
Writeln(‘Nhập điểm Toán và Văn ‘);
For i:=1 to n do
Begin
Write(‘DT[‘, i,’]=’);
Readln(DT[i]);
Write(‘DV[‘, i,’]=’);
Readln(DV[i]);
End;
Writeln(‘ĐIỂM TB CỦA CÁC BẠN LÀ’);
For i:= 1 to n do
Begin
TB:=(DT[i]+DV[i])/2;
Writeln(‘Bạn sô’,i,’là’,TB:3:2);
End;
Readln;
END
{ -}
Câu 3 : Viết chương trình tính trung bình cộng các số của dãy số gồm n số nhập từ bàn phím?
Program bai3;
Uses crt;
Var A : array[1 100] of integer ;
i, n, t: integer; tb: real;
Begin
Write(‘Nhập số phần tử của dãy n = ‘);
Readln(n);
Writeln(‘Nhập các giá trị phần tử ‘);
For i:= 1 to n do
Begin
Write(‘A[‘, i,’]=’);
Trang 6Readln(A[i]);
End;
t:=0;
For i:=1 to n do
t:= t + A[i];
tb:=t/n;
Write(‘Trung bình các số của dãy số là: ‘, tb);
Readln;
End
{ -}
Câu 4: Viết chương trình tính tổng:
2 3 4
S
n
Trong đó n là số nguyên nhập từ bàn phím
Giải:
Program Tong_Nghich_Dao;
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 + 1/i;
Writeln(‘Tong can tim la: ‘, S:6:2);
Readln;
End
{ -}
Câu 5: Một số ngôn ngữ lập trình, ví dụ Pascal, không có sẵn hàm tính lũy thừa Hãy mô tả thuật toán và sử
dụng câu lệnh lặp với số lần xác định trước để viết chương trình Pascal tính lũy thừa bậc n của số nguyên X.
Giải:
Program bai5;
Var n,i,x: integer; a: longint;
Begin
Write('Nhap x='); readln(x);
Write('Nhap n='); readln(n);
A:=1;
For i:=1 to n do A:=A*X;
Writeln(x,' mu ',n,' bang ',A);
End
Câu 31: