Đề thi học kì 2 môn Tin học Lớp 8 - Năm học 2021-2022 - Trường THCS Trần Hưng Đạo (Có đá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 10 do writeln(‘A’);                           D. for i  to 10 do writeln(‘A’);   
Câu 2. Trong câu lệnh lặp: For i := 1 to 10 do j:= j + 2; write( j ); 
Khi kết thúc câu lệnh lặp trên, câu lệnh write( j ); được thực hiện bao nhiêu lần? 
A. 10 lần               B. 5 lần                 C. 1 lần                D. Không thực hiện. 
Câu 3. Cho đoạn chương trình: J:= 0; 
                          For i:= 1 to 5 do J:= j + i; 
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? 
A. 12                     B. 22                  C. 15               D. 42. 
Câu 4. Trong Pascal, câu lệnh nào sau đây là đúng? 
A. S:=1; B. i:=0; S:=1; 
While S<10 do write(S); while s<10 do S:=S+i; i:=i+1; 
C. n:=2; 
D. Cả A và B. 
while n<5 do write(‘A’); 
Câu 5. Khi thực hiện đoạn chương trình sau:  n:=1; T:=50; 
       While n>20 do begin n:=n+5; T:=T - n end; 
Hãy cho biết giá trị của biến T  bằng bao nhiêu?
pdf 19 trang Ánh Mai 15/03/2023 3240
Bạn đang xem tài liệu "Đề thi học kì 2 môn Tin học Lớp 8 - Năm học 2021-2022 - Trường THCS Trần Hưng Đạo (Có đáp án)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfde_thi_hoc_ki_2_mon_tin_hoc_lop_8_nam_hoc_2021_2022_truong_t.pdf

Nội dung text: Đề thi học kì 2 môn Tin học Lớp 8 - Năm học 2021-2022 - Trường THCS Trần Hưng Đạo (Có đáp án)

  1. ĐỀ THI HỌC KÌ 2 NĂM HỌC 2021 - 2022 TRƯỜNG THCS TRẦN HƯNG ĐẠO MÔN TIN HỌC 8 Thời gian làm bài : 45 phút (Không kể thời gian phát đề) 1. ĐỀ SỐ 1 I. Phần trắc nghiệm: Khoanh tròn vào chữ cái trước câu trả lời đúng nhất trong các câu hỏi sau. 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 10 do writeln(‘A’); D. for i to 10 do writeln(‘A’); Câu 2. Trong câu lệnh lặp: For i := 1 to 10 do j:= j + 2; write( j ); Khi kết thúc câu lệnh lặp trên, câu lệnh write( j ); được thực hiện bao nhiêu lần? A. 10 lần B. 5 lần C. 1 lần D. Không thực hiện. Câu 3. Cho đoạn chương trình: J:= 0; For i:= 1 to 5 do J:= j + i; 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? A. 12 B. 22 C. 15 D. 42. Câu 4. Trong Pascal, câu lệnh nào sau đây là đúng? A. S:=1; B. i:=0; S:=1; While S 20 do begin n:=n+5; T:=T - n end; Hãy cho biết giá trị của biến T bằng bao nhiêu?
  2. A. 14 B. 15 C. 16 D. 17 Câu 6. 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ị? A. 4 B. 5 C. 6 D. 7 Câu 7. 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 và chỉ số cuối là 2 số nguyên. B. Chỉ số đầu chỉ số cuối. C. Kiểu dữ liệu có thể là integer hoặc real. D. Cả ba ý trên. Câu 8. 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 sau: tb:= 0; For i:= 1 to 5 do tb := tb + A[i]; Giá trị của biến tb là bao nhiêu? A. 20 B. 18 C. 21 D. 22 II. Phần tự luận: Câu 1. Viết chương trình tính tổng 10 số tự nhiên đầu tiên. Câu 2. Viết chương trình tính tổng các số tự nhiên đầu tiên cho đến khi tổng đó bằng 100 thì dừng lại. Câu 3. Viết chương trình tìm phần tử nhỏ nhất và lớn nhất của dãy n số nhập vào từ bàn phím. ĐÁP ÁN I. Phần trắc nghiệm: Câu 1 2 3 4 5 6 7 8 Đáp án B C C A D B D A II. Phần tự luận: Câu 1: Program Tong; Var s,i:integer; begin S:= 0; For i:= 1 to 10 do s:=s+1;
  3. Writeln (‘tong cua 10 so tu nhien dau tien la:’,s); Readln End. Câu 2: Program Tinh_Tong; Var s,n:integer; Begin S:=0; n:=1; While (s<=100) do Begin S:=s+n; n:=n+1; End; Writen(‘tong cac so tu nhien dau tien:’,s); Readln End. Câu 3: Program Pt_minmax; Var n,i: integer; S,ptmax, ptmin: real; A: array [1 100] of real; Begin Write (‘nhap so phan tu cua day:’); readln(n); Writeln (‘hay nhap’,n,’ phan tu cua day:’); For i:=1 to n do readln(a[i]);
  4. Ptmax:=a[i]; ptmin:=a[i]; For i:=2 to n do Begin If a[i] > ptmax then ptmax:=a[i]; If a[i] < ptmin then ptmin:=a[i]; End; Writeln (‘phan tu max cua day la: ‘,ptmax:0:2); Writeln(‘phan tu min cua day la: ‘,ptmin:0:2); Readln End. 2. ĐỀ SỐ 2 I. Phần trắc nghiệm: Khoanh tròn vào chữ cái trước câu trả lời đúng nhất trong các câu hỏi sau. Câu 1: Số lần lặp trong câu lệnh lặp với số lần biết trước được xác định bằng? A. Giá trị cuối - giá trị đầu -1 B. Giá trị cuối + giá trị đầu +1 C. Giá trị cuối - giá trị đầu +1 D. Giá trị cuối + giá trị đầu -1 Câu 2: Trong ngôn ngữ lập trình Pascal, cấu trúc câu lệnh lặp nào sau đây đúng? A. For i:=1 to 38 do writeln(‘A’); B. For i:=38 to 1 do writeln(‘A’); C. For i:1 to 38 do writeln(‘A’); D. For i=1 to 38 do writeln(‘A’); Câu 3: 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. Vòng lặp vô tận C. Lặp 10 lần D. Thoát khỏi vòng lặp 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ị? A. 7 B. 6
  5. C. 5 D. 4 Câu 5: Trong cú pháp khai báo biến mảng, chỉ số đầu và chỉ số cuối là hai số A. số nguyên B. số thực C. kí tự D. xâu kí tự Câu 6: 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 7: Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây không đúng? A. Chỉ số đầu và chỉ số cuối là hai số nguyên; B. Chỉ số đầu chỉ số cuối; C. Kiểu dữ liệu có thể là integer hoặc real; D. Dấu ba chấm ( ) nằm giữa chỉ số đầu và chỉ số cuối Câu 8: Cú pháp câu lệnh lặp nào sau đây là đúng? A. For := down to do ; B. For := to do ; C. For := to do ; D. For = to do ; II. Phần tự luận: Câu 1: Viết chương trình nhập vào điểm của 50 học sinh rooid xuất ra màn hình điểm của từng học sinh. Câu 2: Viết cú pháp, vẽ sơ đồ và nêu hoạt động câu lệnh lặp với số lần chưa biết trước? ĐÁP ÁN I. Phần trắc nghiệm: Câu 1. 1. 1. 1. 1. 1. 1. 1. Đáp án C A A C A D D B
  6. II. Phần tự luận: Câu 1: Program Xuat_diem; Var n, i: integer; Diem: array[1 50] of real; Begin Write(‘Nhap so luong hoc sinh N = ‘); Readln(n); Writeln(‘Nhap diem cho tung hoc sinh’); For i := 1 to n do Begin Write(‘Diem HS ‘,i,’ = ‘); readln(Diem[i]); End; For i : = 1 to n do Writeln(‘Diem cua HS ‘,i, ‘ = ‘,diem[i]); Readln; End. Câu 2: - Cú pháp lệnh lặp với số lần chưa biết trước: While (điều kiện) Do (câu lệnh); Trong đó: + Điều kiện: là phép so sánh + Câu lệnh : có thể là câu lệnh đơn hoặc câu lệnh ghép - Sơ đồ hoạt động câu lệnh:
  7. - Hoạt động: + B1. Kiểm tra điều kiện. + B2. Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện câu lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại B1. 3. ĐỀ SỐ 3 I. Phần trắc nghiệm: Khoanh tròn vào chữ cái trước câu trả lời đúng nhất trong các câu hỏi sau. Câu 1: Trong các hoạt động dưới đây, đâu là hoạt động lặp với số lần chưa biết trước: A. Mỗi buổi học đúng 5 tiết. B. Mỗi ngày ăn cơm 3 buổi. C. Mỗi ngày phải học bài cho đến khi thuộc. D. Rằm tháng Giêng là Tết Nguyên tiêu. Câu 2: 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 sau: tb:= 0; For i:= 1 to 5 do tb := tb + A[i]; Giá trị của biến tb là bao nhiêu? A. 18 B. 22 C. 21 D. 20 Câu 3: Hãy cho biết kết quả của đoạn chương trình dưới đây: a:=10; white a>=10 do write(A); A. Trên màn hình xuất hiện một chữ a; B. Trên màn hình xuất hiện 10 chữ a; C. Trên màn hình xuất hiện một số 10; D. Chương trình bị lặp vô tận
  8. Câu 4: 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 5: Câu lệnh lặp while do nào dưới đây là đúng: A. While i 1 do S = S+1/i; D. While i := 10 do S = S+1/i; Câu 6: Các khai báo biến mảng sau khai báo biến mảng nào đúng: A. Var x: array[1 100] of integer; C. Var x: array[1.5 10.5] of integer; B. Var x: array[1 100] of integer; D. Var x: array[1 100] integer ; Câu 7: 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 và chỉ số cuối là 2 số nguyên. B. Chỉ số đầu nhỏ hơn chỉ số cuối. C. Kiểu dữ liệu có thể là integer hoặc real. D. Cả ba ý trên. Câu 8: Cho đoạn chương trình sau: S:=0; For i:=1 to 5 do S:=S+i; Sau khi thực hiện lệnh trên giá trị của biến S và i là: A. S=10; i=5 B. S=5; i= 10 C. S=15; i= 5 D. S=15; i=10 II. Phần tự luận: Câu 1. Cho đoạn chương trình: Đoạn 1:
  9. S: =0 ; n:= 0; While S < = 6 do Begin n:= n+1; S:= S+ n ; End; Đoạn 2: S: =0 ; n:= 0; While n< = 6 do Begin n:= n+1; S:= S+ n ; End; Cho biết giá trị của biến S và n sau khi thực hiện các đoạn chương trình trên Câu 2. Em hãy viết câu lệnh lặp hiển thị lên màn hình 10 dòng chữ “HI”. a. Em hãy viết câu lệnh lặp hiển thị lên màn hình 10 chữ “HI” cách nhau bởi dấu cách trên cùng 1 dòng. Câu 3. a. Vẽ hình minh họa của mỗi nút lệnh có trong công cụ tạo mối liên hệ hình học trong chương trình Geogebra b. Gọi đúng tên tương ứng của mỗi nút lệnh (ứng với hình minh họa) có trong chương trình Geogebra ĐÁP ÁN I. Phần trắc nghiệm: Câu 1 2 3 4 5 6 7 8 Đ.án C D D B A B D C
  10. II. Phần tự luận: Câu 1: Sau khi thực hiện đoạn chương trình trên, giá trị của các biến là: Đoạn 1: S= 10 n=4 Đoạn 2: n=6 S=21 Câu 2: a.Lệnh in ra màn hình 10 dòng chữ “HI” For i:=1 to 10 do Writeln(‘HI’); b.Lệnh in ra màn hình 10 chữ “HI” cách nhau bởi dấu cách trên cùng 1 dòng. For i:=1 to 10 do Write(‘HI’,’ ‘); Câu 3: - Minh họa đúng hình của mỗi nút lệnh có trong công cụ tạo mối liên hệ hình học trong chương trình Geogebra
  11. - Nêu đúng tên gọi tương ứng của mỗi nút lệnh (ứng với hình minh họa) có trong chương trình Geogebra 4. ĐỀ SỐ 4 I. Phần trắc nghiệm: Khoanh tròn vào chữ cái trước câu trả lời đúng nhất trong các câu hỏi sau. Câu 1:Câu lệnh viết đúng cú pháp là: A. While to ; B. While do ; C. While to do; D. While ; do ; Câu 2:Bạn Lan ăn sáng mỗi ngày? A. Lặp với số lần biết trước. B. Lặp với số lần chưa biết trước. C. Không có hoạt động lặp. D. Đáp án khác. Câu 3: Câu lệnh Pascal : While (4*5>=20) do Writeln (4*5); sẽ : A. In số 20 ra màn hình 4 lần. B. In số 20 ra màn hình 5 lần. C. Không thực hiện lệnh Writeln (4*5); D. Lặp vô hạn lần lệnh Writeln (4*5); Câu 4: Cho câu lệnh Pascal sau: For i:=5 to 20 do writeln(‘Y’); Số vòng lặp của câu lệnh này là bao nhiêu? A. 14 B. 17 C. 15 D. 16 Câu 5: Cho đoạn chương trình:
  12. j:=0; For i:=0 to 5 do j:=j+2; Sau khi thực hiện đoạn chương trình trên, thì giá trị của biến j bằng bao nhiêu: A. 12 B. 20 C. 15 D. 18 Câu 6: Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây sai: A. Chỉ số đầu và chỉ số cuối là hai số nguyên B. Chỉ số đầu chỉ số cuối C. Kiểu dữ liệu có thể là integer hoặc real D. Chỉ số cuối phải nhỏ hơn hoặc bằng 100 Câu 7:Nhặt thóc ra khỏi gạo đến khi trong gạo không còn thóc: A. Lặp với số lần biết trước B. Lặp vô số lần C. Lặp với số lần chưa biết trước D. Lặp 10 lần Câu 8: Kết quả của phép so sánh: A. Có thể có giá trị đúng hoặc giá trị sai B. Chỉ có giá trị đúng C. Đồng thời nhận giá trị đúng và giá trị sai D. Chỉ có giá trị sai II. Phần tự luận: Câu 1: Chương trình sau. Hãy tìm những lỗi sai và sửa lại cho đúng. Program H C_N; Uses Crt;
  13. Var a,b,s,cv:= real; Begin While('Nhap chieu dai='); readln(a); Write('Nhap chieu rong=');readln(); s=axb; cv:(a+b):2; Writeln('Dien tich hinh chu nhat la:’,s:6:2); Writeln('Chu vi hinh chu nhat:',cv:6:2); Readln; End. Câu 2: Cho chương trình sau (bằng Turbo Pascal): Begin Write(‘Tong cac so chan nho hon 100 la:’,t ); While i<100 do Begin If i mod 2 =0 then t:=t + i; i:=i+1; end; Uses crt; Var i, t:integer; i:=1; t:=0; Clrscr; Readln;
  14. End. a/ Chương trình trên bị sai về vị trí các dòng , , , , , hãy sắp xếp lại vị trí của các dòng này để được chương trình đúng b/ Hãy cho biết công dụng của chương trình trên Câu 3: Đối với từng đoạn chương trình Pascal sau đây, hãy cho biết có bao nhiêu vòng lặp và lệnh writeln (s) in ra màn hình giá trị của s là bao nhiêu? S:=20; n:=0; While S > 5 do Begin n:=n+3; S:=S -n; End; writeln(S); ĐÁP ÁN I. Phần trắc nghiệm: Câu 1 2 3 4 5 6 7 8 Đáp án B B D D A D C A II. Phần tự luận: Câu 1: Lỗi sai Sửa lại Program H C_N; Program H_C_N; Var a,b,s,cv:= real; Var a,b,s,cv:real; While('Nhap chieu dai='); Write('Nhap chieu dai='); readln(); readln(b);
  15. s=axb; S:=a*b; cv:(a+b):2; cv:=(a+b)*2; Câu 2: a, Chương trình được sắp xếp lại Uses crt; Var i, t:integer; Begin Clrscr; i:=1; t:=0; While i<100 do Begin If i mod 2 =0 then t:=t + i; i:=i+1; end; Write(‘Tong cac so chan nho hon 100 la:’,t ); Readln; End. b/ Công dụng: Dùng để tính tổng các số chẵn có trong dãy số từ 1 đến 100 Câu 3: Đoạn lệnh sau khi thực hiện 3 vòng lặp và s= 2 5. ĐỀ SỐ 5 I. Phần trắc nghiệm Câu 1: Trong các cách khai báo biến mảng dưới đây, cách khai báo nào là đúng: A. Var A: array[1 5.5] of integer; B. Var A:array(1 100) of integer;
  16. C. Var A: array[1.5 100] of integer; D. Var A: array[1 100] of integer; Câu 2: Cho đoạn chương trình Pascal sau đây: tong:= 20; While tong>= 10 do tong:=tong - 1; Sau khi đoạn chương trình trên được thực hiện, giá trị của tổng bằng bao nhiêu: A. 19 B. 9 C. 21 D. 10 Câu 3: Sau khi đoạn chương trình sau được thực hiện, giá trị của biến S bằng bao nhiêu: S:= 0; for i:= 1 to 5 do S:= S + 1; A. 5 B. 10 C. 15 D. 20 Câu 4: Khi thực hiện đoạn chương trình sau: n:= 1; T:= 50; While n>20 do begin n:=n+5; T:=T - n end; Hãy cho biết giá trị của biến T bằng bao nhiêu? A. 14 B. 17 C. 16 D. 50 Câu 5: 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ị? A. 4 B. 5 C. 6 D. 7
  17. 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 sau: tb := 0; For i := 1 to 5 do tb := tb + A[i]; Giá trị của biến tb là bao nhiêu? A. 20 B. 18 C. 21 D. 22 Câu 7: Em hiểu câu lệnh lặp theo nghĩa nào dưới đây? A. Một lệnh thay cho nhiều lệnh. B. Các câu lệnh được viết lặp đi lặp lại nhiều lần. C. Vì câu lệnh đã có tên là lệnh lặp. D. Cả a, b, c đều sai. Câu 8: Cho đoạn chương trình sau: n:=1; While n = to do ; B. For : = to do ; C. For := to do ; D. For = to do Câu 10: Cho đoạn chương trình: j := 0; k := 2; For i := 1 to 5 do j := j + 2; k := k + j;
  18. Sau khi thực hiện đoạn chương trình trên, giá trị của biến k bằng bao nhiêu? A. 12; B. 22; C. 32; D. 42. II. Phần tự luận Viết chương trình sử dụng biến mảng để nhập từ bàn phím các phần tử của một dãy số nguyên. Độ dài của dãy cũng được nhập từ bàn phím. In ra màn hình tổng các giá trị là số chẵn. ĐÁP ÁN I. Phần trắc nghiệm Câu 1 2 3 4 5 6 7 8 9 10 Đáp án D B A D B A B C C A II. Phần tự luận Program Tong_Chan; uses crt; var i, n, Tong: integer; A : array[1 100] of integer; Begin clrscr; writeln(‘Nhap do dai cua day so, N=’); readln(n); writeln(‘Nhap cac phan tu cua day so:’); For i:=1 to n do
  19. Begin write(‘a[‘,i,’]=’); readln(a[i]); End; Tong:=0; For i:=1 to n do if a[i] mod 2 = 0 then Tong:= Tong+a[i]; writeln(‘Tong cac gia tri chan la:’,Tong); readln End.