Sách Giải

https://sachgiai.com

Đề thi học kỳ 2 môn Tin học lớp 8 năm 2022 - 2023

Đề thi học kỳ 2 môn Tin học lớp 8 năm 2022 - 2023, có đáp án kèm theo. Mời các bạn cùng tham khảo.

I. TRẮC NGHIỆM: ( 5.0 điểm)

Hãy  khoanh tròn vào chữ cái đứng đầu cho đáp án đúng nhất. Mỗi câu trả lời đúng được 0.25 điểm:
Câu 1. Trong câu lệnh lặp For i:=1 to -19 do begin...end; câu lệnh ghép được thực hiện bao nhiêu lần?
A. Không lần nào    
B. 1 lần    
C. 2 lần    
D. 10 lần

Câu 2. Đoạn lệnh sau đây: s:=10; while s>10 do writeln(s); s:=s+1; sẽ cho kết quả là gì?
A. In ra các số từ 1 đến 9     
B. In ra các số từ 1 đến 10    
C. In ra vô hạn các số 1, mỗi số trên một dòng
D. In ra tổng từ 1 đến 10.

Câu 3:  Số vòng lặp trong câu lệnh:
For (Biến đếm):=(Giá trị đầu) to (Giá trị cuối) do (câu lệnh); được xác định:
A. Giá trị đầu - Giá trị cuối + 1    
B. Giá trị đầu - Biến đếm + 1  
C. Giá trị cuối - Giá trị đầu + 1
D. Giá trị cuối  - Biến đếm + 1

Câu 4: Trong câu lệnh lặp: For (Biến đếm):=(Giá trị đầu) to (Giá trị cuối) do (câu lệnh); Khi thực hiện ban đầu Biến đếm nhận giá trị = Giá trị đầu, sau mỗi vòng lặp biến đếm tăng thêm:
A. 1 đơn vị     
B. 2 đơn vị    
C. 3 đơn vị     
D. 4 đơn vị 

Câu 5: Trong câu lệnh lặp với số lần xác định trước, lệnh lặp sẽ dừng lại khi nào?
A. Khi điều kiện đúng    
B. Khi điều kiện sai    
C. Khi chạy hết vòng lặp
D. Khi có lệnh end;

Câu 6: Tìm giá trị S khi thực hiện đoạn chương trình sau đây
S:=0; For i:=1 to 5 do S:= S+i;
A. S=0    
B. S= 1    
C. S=10    
D. S=15.

Câu 7: Hãy cho biết kết quả của b trong đoạn chương trình sau đây.
a:=1; b:=5; while a>=10 do   begin b:=b-a; a:=a-1; end;
A. b=5.    
B. b=4.     
C. b=15.    
D. b=20.

Câu 8: Lúc nào thì câu lệnh lặp While..Do sẽ dừng lại?
A. <Điều kiện> có giá trị đúng.    
B. < Điều kiện> có giá trị sai.    
C. Câu lệnh bên trong < câu lệnh> thực hiện.
D. không thực hiện

Câu 9:  Bạn Ngọc muốn in ra màn hình 5 chữ B và 5 chữ C trên màn hình bằng đoạn chương trình sau:    For i:=1 to 5 do   Writeln(‘B’); writeln(‘C’);
Theo em bạn Ngọc viết như thế nào
A. Đúng rồi
B. Phải đưa Writeln(‘B’); writeln(‘C’) vào trong cặp từ khóa Begin và End;
C. Phải đổi Writeln thành Write.
D. Phải đặt Writeln(‘B’); writeln(‘C’); trên hai dòng riêng biệt.

Câu 10: Việc đầu tiên câu lệnh While cần thực hiện là gì?
A. Thực hiện <câu lệnh> sau từ khóa DO.    
B. Kiểm tra giá trị của <điều kiện>.    
C. Thực hiện < câu lệnh > sau từ khóa Then.
D. Kiểm tra <câu lệnh>.

Câu 11: Kết quả của < điều kiện> trong câu lệnh While ..Do có giá trị gì?
A. Là 1 số nguyên.    
B. Là 1 số thực.    
C. Đúng hoặc sai.    
D. Là 1 dãy kí tự.

Câu 12: Câu lệnh sau từ khóa Do trong câu lệnh While sẽ được thực hiện bao nhiêu lần?
A. 0 lần.        
B. 1 lần     
C. 2 lần     
D. Tùy thuộc bài toán.

Câu 13. Trong câu lệnh For ... do… sau từ khóa “do” có hai câu lệnh trở lên ta “gói” chúng trong:
A. Begin...readln;        
B. Begin...and;    
C. End...Begin    
D. Begin... end;

Câu 14. Trong câu lệnh while..do nếu điều kiện sai thì:
A. Tiếp tục vòng lặp    
B. Thoát khỏi vòng lặp    
C. Lặp vô hạn lần    
D. Lặp 1 lần

Câu 15. Trong câu lệnh While...do, nếu điều kiện đúng thì:
A. Tiếp tục vòng lặp    
B. Thoát khỏi vòng lặp    
C. Lặp vô hạn lần    
D. Lặp 1 lần

Câu 16:  Trong câu lệnh lặp for i:=0 to 100 do begin … end; câu lệnh ghép được thực hiện bao nhiêu lần ( hay bao nhiêu vòng lặp được thực hiện?
A. 100 lần.                
B. 101 lần.      
C. Không lần nào.        
D. 99 lần.

Câu 17. Hoạt động nào sau đây có thể tính toán được số lần làm việc:
A. Múc từng gáo nước đến đầy bể        
B. Đi lên tầng, đến tầng 10 thì dừng
C. Học cho tới khi thuộc bài        
D. Nhặt từng cọng rau cho tới khi xong

Câu 18. Vòng lặp sau cho kết quả S bằng bao nhiêu:
S := 1;   For i := 1 to 3 do S := S * 2;
A. S = 6    
B. S = 8    
C. S = 10                                
D. S = 12

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

Câu 20. Pascal sử dụng từ khóa nào cho câu lệnh lặp nào sau đây để lặp với số lần chưa biết trước?
a. For…do;                     
b. While…do;                  
c. If..then;               
d. If…then…else;
 

II. TỰ LUẬN

Câu 1: (1đ)Lựa chọn đáp án Đ ( Đúng)  hoặc S ( Sai). Mỗi đáp án đúng được 0.25 điểm.
  Đ S
a. Trong nhiều trường hợp, việc thực hiện câu lệnh lặp while...do tốn ít thời gian hơn so với câu lệnh lặp for...do    
b. Câu lệnh sau do trong lệnh lặp while...do có thể không được thực hiện một lần nào nếu ngay từ đầu, <điều kiện> điều khiển vòng lặp có giá trị sai.    
c. Trong vòng lặp While...Do <câu lệnh> chỉ là câu lệnh đơn giản.    
d. Trong vòng lặp While...Do < điều kiện> thông thường là phép so sánh.    

2. (1đ) Hãy xác định đúng sai cho các phát biểu dưới đây: Mỗi đáp án đúng được 0.25 điểm.
  Đ S
a. Để tính S là tổng của các bình phương của n số tự nhiên đầu tiên, đoạn chương trình Pascal sau đây tuy không hề bị lỗi cú pháp, nhưng lại không đạt được mục đích cần tính toán: S:=0; for a:=1 to n do; S:=S+a*a    
b. 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;    
c. Mọi NNLT đều có các cách để chỉ thị cho máy tính thực hiện cấu trúc với một câu lệnh. Đó là câu lệnh lặp.    
d. Câu lệnh lặp sẽ thực hiện câu lệnh nhiều lần, mỗi lần là hai vòng.    

3. (3đ) Dùng ngôn ngữ lập trình Pascal, viết chương trình tính tổng 50 số tự nhiên đầu tiên. (dùng While..do, hoặc For..do)
 

ĐÁP ÁN VÀ THANG ĐIỂM

I. Trắc nghiệm: 5đ (Mỗi câu trả lời đúng được 0.25 điểm:)
CÂU 1 2 3 4 5 6 7 8 9 10
ĐÁP ÁN A C C A B D B B B B
CÂU 11 12 13 14 15 16 17 18 19 20
ĐÁP ÁN C D D B A A B D D B

II. Tự luận.  
Câu 1 (1 điểm):   a. Đ            b. Đ                 c. S.                 d. Đ
Câu 2 (1 điểm):      a. Đ        b. Đ                 c. Đ.                d. Đ
Câu 3.(3đ) Dùng ngôn ngữ lập trình Pascal, viết chương trình tính tổng 50 số tự nhiên đầu tiên. (dùng While..do, hoặc For..do)
HS có thể dùng While..do, hoặc For..do để viết chương trình.
Code mẫu:
Program tinh_tong;
  uses crt;
     var i,n:integer;
          S:longint;
          begin
            n:=50; S:=1;
               for i:=1 to 50 do S:= S+i;
                 write(' tong cua ',n,' so tu nhien dau tien la ',S);
            readln
        end. ​​​​

Tác giả: Sách Giải

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây