Tải bản đầy đủ (.docx) (8 trang)

Tài liệu ôn tập trong thời gian nghỉ do dịch COVID-19 - Môn Tin 8 - ÔN TẬP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (201.22 KB, 8 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>ÔN TẬP MÔN TIN LỚP 8 </b>
<b>I/ Khoanh tròn chữ cái đứng trước phương án em cho là đúng: </b>
<b>Câu 1:</b> 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>;
<b>Câu 2:</b> 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
<b>Câu 3:</b> 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:


<b>s:=1;</b>


<b> for i:=1 to 5 do s := s*i;</b>


A.120 B. 55 C. 121 D. 151


<b>Câu 4: Phần thân chương trình bắt đầu bằng từ khóa:</b>


A.End. B.Begin. C.Uses. D.Var.


<b>Câu 5:</b> Cú pháp khai báo biến <b>mảng</b> trong Pascal là:


A.<b>var</b> <Tên mảng> ;<b> array </b>[<chỉ số đầu>..<chỉ số cuối>] <b>of</b> <kiểu dữ liệu >;
B.<b>var</b> <Tên mảng> : <b>aray</b> [<chỉ số đầu>…<chỉ số cuối>] <b>of</b> <kiểu dữ liệu >;
C.<b>var</b> <Tên mảng> : <b>array</b> [<chỉ số đầu>..<chỉ số cuối>] <b>of</b> <kiểu dữ liệu >;
D.<b>var </b> <Tên mảng> : <b>array</b> [<chỉ số đầu>…<chỉ số cuối>] <b>for</b> <kiểu dữ liệu >;


<b>Câu 6</b>: 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.5 to 10.5 do writeln(‘A’);


C. For i= 1 to 10 do writeln(‘A’); D. For i:= 1 to 10 do writeln(‘A’);


<b>Câu 7:</b> 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;
<b>Câu 9</b>: Trong lệnh lặp for…do của Pascal, trong mỗi vòng lặp, biến đếm thay đổi như thế nào?


A. +1 B. +1 hoặc -1 C. Một giá trị bất kì D. Một giá trị khác 0


<i><b>Câu 10: Cú pháp của câu lệnh While…do là:</b></i>
a.<b> While</b> <điều kiện> <b>to</b> <câu lệnh>;


c.<b> While</b> <điều kiện> <b>do</b> <câu lệnh>;


b.<b> While</b> <điều kiện> <b>to</b> <câu lệnh1> <b>do</b> <câu lệnh 2>;
d.<b> While</b> <điều kiện>; <b>do</b> <câu lệnh>;


<b>Câu 11: </b>Đâu là công việc phải thực hiện nhiều lần với số lần biết trước?
A. Hàng ngày em đi học.


B. Em bị ốm vào một dịp có dịch cúm


C. Đến nhà bà ngoại chơi vào một hôm cả bố và mẹ đi vắng
D. Ngày đánh răng ba lần



<b>Câu 12:</b> Lệnh lặp nào sau đây là đúng?


E. For <biến đếm>= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
F. For <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
G. For <biến đếm>:= <giá trị cuối> to <giá trị đầu> do <câu lệnh>;
H. For <biến đếm>: <giá trị đầu> to <câu lệnh> do <giá trị cuối>;
<b>Câu1 3:</b> Sau khi thực hiện đoạn chương trình sau:


S:=0; For i:=1 to 5 do S:=S+i;
Giá trị của biến S bằng bao nhiêu?


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>Câu 14:Pascal sử dụng câu lệnh lặp nào sau đây để lặp với số lần chưa biết trước?</b>
<b>a/ For…do</b>; <b>b/While…do</b>; <b>c/ If..then</b>; <b>d/ If…then…else</b>;
<b>Câu 15:Em được học vẽ hình với phần mềm nào?</b>


a/ Pascal; b/ Geogebra; c/ Mario; d/ Finger Break out;
<b>Câu 16: </b>Câu lệnh gotoXY(a,b) có tác dụng gì?


A. Đưa con trỏ về hàng a cột b B. Đưa con trỏ về cột a hàng b
C. Cho biết thứ tự của hàng con trỏ đang đứng. D. Đưa con trỏ về cuối dòng


<b>Câu 17:</b><i> Biến a được nhận các giá trị là 0 ; -1 ; 1 ; 2,3 . Ta có thể khai báo a thuộc kiểu dữ liệu</i>
<i><b>nào?</b></i>


a. Integer b. Char


c. Real d. Integer và Longint


<b>Câu 18: Cấu trúc chung hợp lý của một chương trình Pascal là:</b>
A. Begin -> Program -> End. B. Program -> End -> Begin.



C. End -> Program -> Begin. D. Program -> Begin -> End.
<b>Câu 19: Cho các câu lệnh sau hay chỉ ra câu lệnh đúng:</b>


a. for i:=1 to 10; do x:=x+1 c. for i:=1 to 10 do x:=x+1


b. for i:=10 to 1 do x:=x+1. d. for i:= 1 to 10 for j:=1 to 10 do x:=x+1
<b>Câu 20: Cho S và i là biến nguyên. Khi chạy đoạn chương trình :</b>


s:=1;


for i:=1 to 5 do s := s *i;
writeln(s);


Kết quả in lên màn hình là :


a. s = 72 b. s = 101 c. s = 55 d. s = 120


<b>II/ BÀI TẬP TỰ LUẬN:</b>


<b>Câu 1: Điền X vào các ơ sao cho phù hợp và giải thích vì sao?</b>


<b>Câu 2:</b> (2,0 điểm) Hãy nêu sự khác nhau giữa câu lệnh lặp với số lần chưa biết trước và câu lệnh lặp với
số lần biết trước.


<b>Câu 3: </b>(2,0 điểm) Đánh dấu [x] vào ô đúng hoặc sai tương ứng trong các câu lệnh Pascal trong chương
trình tính tổng 10 số tự nhiên đầu tiên, nếu sai sửa lại?


Câu lệnh Đúng Sai Sửa lại



<b>Program Chuong trinh</b>
<b>Var i,s : real; </b>


<b>Const n:=10;</b>
<b>Begin</b>


<b>Wile i <=n do;</b>
<b>Begin</b>


<b>S:=s+i</b>
<b>i =i+1</b>
<b>End.</b>
<b>Writeln(s)</b>
<b>Readln</b>
<b>End;</b>


<b>Câu</b> <b>Đúng</b> <b>Sai</b> <b>Giải thích</b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>Câu 4:Nêu vài ví dụ về hoạt động lặp với số lần biết trước và chưa biết trước</b>
<b>Câu5 :Dữ liệu kiểu mảng là gì?</b>


<b>Câu 6 :</b> Viết chương trình tính tổng: <b>S = 1+2+3+…+n</b> . Trong đó n là số nguyên nhập từ bàn phím.
<b>Câu 7 :</b> Viết chương trình tính tổng 200 số nguyên đầu tiên


<b>Câu 8 :</b> Viết chương trình tính tich 30 số nguyên đầu tiên
<b>Câu 9 :</b> Viết chương trình tính n!


<b>Câu 10 :</b> Viết chương trình tính xn
<b>III/ BÀI TOÁN THAM KHẢO</b>



Bài 1:Viết chương trình đếm số lần xuất hiện của các kí tự thuộc bảng chữ cái trong 50 lần gõ kí
tự bằng bàn phím (không phân biệt a với A, b với B …, dùng hàm Upcase để chuyển đổi chữ
thường với chữ hoa) .


GIẢI


Uses Crt ; Var a : Array[ 'A'..'Z' ] of integer; (* mảng bộ đếm *)
ch : char ; (* biến nhập kí tựù *)


i : byte ; (* chỉ số của lần gõ phím *)
BEGIN


Clrscr ;


For ch :='A' to 'Z' Do a[ch] := 0 ; (* xả bộ đếm *)
Writeln (' Go phim 50 lan ') ;


For i := 1 To 50 Do (* thực hiện 100 lần *)
Begin


ch :=Readkey ; (* nhập kí tự vào Ch không cần gõ Enter *)
ch := Upcase(ch) ; (* Đỗi chữ thường thành chữ hoa *)
a[ch] := a[ch] + 1 ;


End;


Writeln (' So lan xuat hien cac ki tu la :') ;


For ch :='A' to 'Z' do (* Kiểm tra bộ đếm từ 'A' tới 'Z' *)
If a[ch] > 0 Then (* Nếu Ch có xuất hiện *)



Writeln (ch , a[ch] : 4 , ' lan . ') ; (* Viết ra màn hình kí tự và
số lần xuất hiện *)


Readln ; END .


* Bài 2 :Cho số tự nhiên n , hãy lập trình để tính các tổng sau :
<b>a.</b> a. 1 + 1/22<sub> + 1/3</sub>2<sub> + … + 1/n</sub>2


<b>b.</b> b. 1 + 1/2! + 1/3! + … + 1/n!
GIẢI


a)


Var n , i : Word ;
S : Real ;
BEGIN


Write (' Nhap n : ') ; Readln (n) ;
S := 0 ;


For i := 1 To n Do
S := S + 1 / sqr(i) ;
Writeln (' S = ', S:0:2) ;
Readln ;


END .
b)


Var n , i , j , p : Word ;


S : Real ;


BEGIN


Write (' Nhap n : ') ; Readln(n) ;
p := 1 ;


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

For i :=1 To n Do
Begin


p := p * i ; (* tính i *)
S := S + 1 / p ;


End ;


Writeln (' S = ', S:0:2) ;
Readln ; END .


* Bài 3 :


Lập trình tính tổng :


A = 1 + 1/2 + 1/3 + … + 1/n


ở đây n là số tự nhiên được nhập vào từ bàn phím .
GIẢI


Uses Crt ;


Var i , n : Integer ;


tong: Real ;
BEGIN


Clrscr ;


Write (' Cho so tu nhien n : ') ; Readln (n) ;
tong :=0 ;


i :=1 ;


While i <= n Do
Begin


tong := tong + 1/i ;
i := i + 1 ;


End ;


Writeln (' Tong can tim la : ', tong:12:6 ) ;
Readln ; END .


* Bài 4 :


Tính hàm lũy thừa an <sub>, ở đây a thực và n tự nhiên được nhập vào từ bàn phím .</sub>
GIẢI


Uses Crt ;


Var i , n : Integer ;
a , giatri : Real ;


BEGIN


Clrscr ;


Write (' Cho so a : ') ; Readln(a) ;
Write (' Cho so mu n : ') ; Readln(n) ;
i := 1 ;


giatri := 1 ;
While i <= n Do
Begin


giatri := giatri * a ;
i:= i+1 ;


End ;


Writeln(' a mu n bang : ', giatri ) ;
Readln ; END .


* Bài 5:


Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình các số khác nhau .
GIẢI


Uses Crt;


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

BEGIN
Clrscr ;



Write(' Do dai cua day so N = ') ; Readln (N) ;
For I := 1 To N Do


Begin


Write ('A[', i , ']= ') ; Readln ( A[i] ) ;
End ;


Writeln (' Cac so khac nhau la : ') ; Writeln ( A[1] ) ;
i := 2 ;


While i <= N Do
Begin


j := 1 ;


While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ;
If j = i Then Writeln( A[i] ) ;


i :=i + 1 ;


End ; Readln ; END .
* Bài 6:


Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo thứ tự tăng dần .
GIẢI


Uses Crt;


Var A : Array [1..100] Of Integer ;


i , j , n , T : Integer ;


BEGIN
Clrscr ;


Write(' Do dai cua day so N = ') ; Readln (N) ;
Writeln (' Nhap day so : ') ;


For i := 1 To N Do
Begin


Write('A[', i ,'] = ') ; Readln ( A[i] ) ;
End ;


i := 1 ;


While (i <= n-1) Do
Begin


j := i+1;
While j<=n do
Begin


If A[j] < A[i] then
Begin


T := A[j];
A[j ] := A[i];
A[i] := T ;
End ;


j := j + 1;
End ;
i := i + 1;
End ;


Writeln(' Day sau khi sap xep : ') ;
For i := 1 To N Do Write(A[i] : 4) ;
Readln ; END .


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Viết chương trình nhập n số nguyên. Đếm các số vừa chia hết cho 2 vừa chia hết 3. Xuất kết quả ra màn
hình.


Program bai19;
Uses crt;


Var i,n,dem:integer;
X;real;
Begin


Clrscr;


Write(‘nhap so luong so’); readln(n);
Dem:=0;


For i:=1 to n do
Begin


Write(‘nhap so thu tu’,i);readln(x);
If (x mod 2=0) and(x mod 3=0) then
Dem:=dem+1;



End;


Writeln(‘so luong cac so chia het cho 2 va 3 la:’dem);
Readln;


End.
* Bài 8:


Viết chương trình tính tích của 10 số tự nhiên đầu tiên.
{ Dùng while...do…..}


Program tich;
Uses crt;
Const n=10;
Var i, tich:integer;
Begin


Clrscr;
Tich:=1;
i:=1;


while i<=n do
begin


tich:=tich*i;
end;


writeln(‘tich cua 10 so tu nhien dau tien la=’,tich);
readln;



End.


{ Dùng For...do…..}
Program tich;


Uses crt;
Var i,n:integer;
Begin


Clrscr;
Tich:=1;


For i:=1 to 10 do
begin


tich:=tich*i;
i:=i+1;
end;


writeln(‘tich cua 10 so tu nhien dau tien la=’,tich);
readln;


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<i><b>I/ PHẦN TRẮC NGHIỆM (6.0 điểm)</b></i>


<i><b>Học sinh khoanh tròn câu trả lời đúng nhất (A, B, C hoặc D). (Mỗi câu 0.5 điểm)</b></i>
<b>Câu 1. </b><i><b>Trong Pascal, câu lệnh nào sau đây được viết đúng?</b></i>


A. for i:= 10 to 1 do writeln(‘i’); B. for i:=1 to 10 writeln(‘i’);



C. for i= 1 to 10 do writeln(‘i’); D. for i to 10 do writeln(‘i’);


<b>Câu 2. </b><i><b>Hãy cho biết giá trị của biến X bằng bao nhiêu sau khi thực hiện các câu lệnh:</b></i>


<b>while (i <10 ) do X :=X+3; i:=i+1;</b><i><b>(Biết rằng trước đó giá trị của biến X là 0, i là 5)</b></i>


A.15 B. 4 C. 7 D.6


<b>Câu 3. </b><i><b>Cho đoạn chương trình:</b></i> <b>j:= 0; For i:= 1 to 4 do j:= j + i;</b>
<i><b>Sau khi thực hiện đoạn chương trình trên, giá trị của biến j bằng bao nhiêu?</b></i>


A. 12 B. 22 C. 10 D. 42.


<b>Câu 4.</b><i><b>Trong Pascal, câu lệnh nào sau đây là đúng?</b></i>


A. S:=1; While S<10 do write(S);S:=S+1; B. i:=0; S=1; while S<10 do S:=S+i; i:=i+1;


C. n:2; while n<5 do write(‘A’); D. Cả A và B.


<b>Câu 5. </b><i><b>Tính giá trị cuối cùng của b, biết rằng</b></i><b>: a:= 3; b:= 5; </b>
<b> while (a<0) do b:= a + b; a:=a+1; </b>


A. b= 8; B. b=3; C. b= 5; D. b= 0;


<b>Câu 6. </b><i><b>Khai báo biến mảng</b></i><b>: A : array[1..50] of real;</b><i><b>. Sử dụng câu lệnh</b></i>
<b>For i:= 1 to 15 do readln(A[i]);</b><i><b> </b></i>


<i><b>để 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ị? </b></i>


A. 4 B. 15 C. 6 D. 7



<b>Câu 7. </b><i><b>Cho câu lệnh sau: S:=S+1/I; Cho biết kiểu dữ liệu cần khai báo cho biến S là:</b></i>


A.integer B. byte C. longint D. real


<b>Câu 8.</b><i><b> 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à </b></i><b>1, 4, 7, 2, 6.</b><i><b> Khi thực </b></i>
<i><b>hiện câu lệnh sau: </b></i><b>tb:= 0; For i:= 1 to 5 do tb := tb + A[i];</b><i><b> Giá trị của biến tb là bao nhiêu?</b></i>


A. 20 B. 18 C. 21 D. 22


<b>Câu 9</b><i><b>: Ta có 2 lệnh sau : </b></i><b>x :=0; For i :=1 to 5 do x :=x+1; </b><i><b>Giá trị của x là bao nhiêu:</b></i>


A. 5 B. 10 C. 8 D. 12


<b>Câu 10: </b><i><b>Trong Pascal, cách khai báo mảng đúng là:</b></i>


A. Tên mảng : array[<chỉ số đầu>.. <chỉ số cuối>] of <kiểu dữ liệu>;


B. Tên mảng : array[<chỉ số đầu>: <chỉ số cuối>] of <kiểu dữ liệu>;
C. Tên mảng : array[<chỉ số đầu>.. <chỉ số cuối>] : <kiểu dữ liệu>;
D. Tên mảng : array[<chỉ số đầu>, <chỉ số cuối>] of <kiểu dữ liệu>;


<b>Câu 11: </b><i><b>Chọn khai báo hợp lệ:</b></i>


A. Var a,b: array[1 .. n] of real; C. Var a,b: array[1 : n] of real;


B. Var a,b: array[1 .. 100] of real; D. Var a,b: array[1 … 100] of real;


<b>Câu 12: </b><i><b>Câu lệnh nào sau đây là câu lệnh nhập cho phần tử thứ i của biến mảng A?</b></i>



A. Readln(A[i]); B. Readln(A); C. Readln(i); D. Readln(Ai);


<i><b>II/ PHẦN TỰ LUẬN (4.0 điểm).</b></i>


<b>Câu 1:</b> (2.0đ) <i><b>Viết chương trình tính tổng sau:</b></i>


<i><b>S=2+4+6+8+…+n; với n nhập từ bàn phím.</b></i>


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8></div>

<!--links-->

×