Đề kiểm tra chất lượng môn Tin học Lớp 8 - Học kì 2

doc 6 trang nhatle22 2571
Bạn đang xem tài liệu "Đề kiểm tra chất lượng môn Tin học Lớp 8 - Học kì 2", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docde_kiem_tra_chat_luong_mon_tin_hoc_lop_8_hoc_ki_2.doc

Nội dung text: Đề kiểm tra chất lượng môn Tin học Lớp 8 - Học kì 2

  1. ĐỀ KIỂM TRA CHẤT LƯỢNG HỌC KÌ II MÔN: TIN HỌC 8 ĐỀ SỐ 1: *) ĐỀ BÀI I. Trắc nghiệm: (3.5 điểm) Câu 1: Các câu lệnh Pascal sau đúng hay sai? Hãy chỉ ra chỗ sai nếu có. A. For i:=1 to 10; do x:= x+1; B. For i:=10 to 1 do x:= x+1; C. For i:=1 to 10 do x:= x+1; D. For i:=1 to 10 for j:=1 to 10 do x:= x+1; E. For i:=1 to 10 do for j:=1 to 10 do x:= x+1; Câu 2: Trong câu lệnh lặp For i:=1 to 10 do begin end; Câu lệnh được thực hiện bao nhiêu vòng lặp? A. 1 C. 10 B. 2; D. Không lần nào Câu 3: Dưới đây là một đoạn chương trình của Pascal: For i:= 0 to 10 do Begin End; Sau khi thực hiện đoạn chương trình trên, giá trị của i là: A. 0 C. 11 B. 10 D. Không xác định Câu 4: Cho một đoạn chương trình của Pascal như sau: 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, giá trị của biến j là: A. 2 C. 10 B. 7 D. 12 Câu 5: Trong lệnh lặp For to do của Pascal, trong mỗi vòng lặp giá trị của biến đếm thay đổi như thế nào? A. + 1 C. Một giá trị bất kì B. +1 hoặc -1 D. Một giá trị khác 0. Câu 6: Các lệnh khai báo biến mảng sau đây của Pascal đúng hay sai? Chỉ ra chỗ sai nếu có? a) A: Array[1 . . . 100] of integer; b) B: Array[1 . . n] of real; c) C: Array[1 : 100] of integer; d) D: Array[100 . . 1] of real; e) E: Array[1 . .10] of byte; II. Tự luận:(6.5 điểm) Câu 1:(1đ) Em hiểu thế nào là câu lệnh lặp? Câu 2:(2đ) Viết câu lệnh lặp với số lần biết trước của Pascal và nêu rõ hoạt động của lệnh? Câu 3:(3,5đ) Viết chương trình bằng ngôn ngữ lập trình Pascal thực hiện công việc sau: Nhập vào từ bàn phím các phần tử của một dãy số nguyên; in ra màn hình giá trị lớn nhất của dãy số. *) ĐÁP ÁN - BIỂU ĐIỂM A. Trắc nghiệm: (3.5 điểm) Mỗi ý trả lời đúng được 0,25 điểm Câu 1: (1,25đ) A. Sai, thừa dấu chấm phẩy đầu tiên
  2. B. Sai, giá trị đầu phải nhỏ hơn giá trị cuối. C. Đúng D. Sai, thiếu từ khóa do trong lệnh For do thứ nhất E. Đúng Câu 2 3 4 5 Đáp án C B D A Câu 6: (1,25đ) A. Sai, cần thay ba dấu chấm bằng hai dấu chấm. B. Sai, các chỉ số phải là các giá trị cụ thể. Tuy nhiên nếu n là một hằng đã được khai báo thì câu lệnh này hợp lệ. C. Sai, cần thay dâu hai chấm bằng hai dấu chấm. D. Sai, chỉ số đầu không được lớn hơn chỉ số cuối E. Đúng B. Tự luận: (6.5đ) Câu 1: (1 đ) HS nêu được: Câu lệnh lặp là câu lệnh được viết một lần nhưng lại được điều khiển để thực hiện lặp một số hữu hạn lần. Câu 2: (2đ) HS nêu được: *)Cấu trúc lệnh: For to do ; Trong đó: for, to, do là các từ khóa, biến đếm là biến kiểu nguyên, giá trị đầu, giá trị cuối là các giá trị nguyên . *) Hoạt động: - Khi thực hiện, ban đầu biến đếm sẽ nhận là giá trị đầu, sau mỗi vòng lặp, biến đếm tự động tăng thêm 1 đơn vị cho đến khi bằng giá trị cuối. - Câu lệnh lặp sẽ thực hiện câu lệnh nhiều lần mỗi lần là một vòng lặp. Số vòng lặp của câu lệnh được tình bằng: Số vòng lặp = giá trị cuối - giá trị đầu + 1. Câu 3: (3,5đ) Program Max; Uses crt; Var i, n,Max : integer; A: Array[1 50] of integer; Begin Clrscr; Write('Nhap so phan tu cua day so nguyen N='); Readln(N); Write('Nhap cac phan tu cua day so:'); For i:=1 to N do Begin Write('A[',i,’]=’); Readln(A[i]); End; Max:=A[1]; For i:=2 to N do If Max < A[i] then Max:=A[i]; Writeln('Gia tri lon nhat cua day so la Max = ', Max); Readln End.
  3. ĐỀ SỐ 2: *) ĐỀ BÀI I. Trắc nghiệm: (3.5 điểm) Câu 1: Các câu lệnh Pascal sau đúng hay sai? Hãy chỉ ra chỗ sai nếu có. A. For i:=1 to 10; do x:= x+1; B. For i:=10 to 1 do x:= x+1; C. For i:=1 to 10 do x:= x+1; D. For i:=1 to 10 for j:=1 to 10 do x:= x+1; E. For i:=1 to 10 do for j:=1 to 10 do x:= x+1; Câu 2: Trong câu lệnh lặp For i:=1 to 10 do begin end; Câu lệnh được thực hiện bao nhiêu vòng lặp? A. 1 C. 10 B. 2; D. Không lần nào Câu 3: Dưới đây là một đoạn chương trình của Pascal: J:=0; For i:= 0 to 5 do Begin End; Sau khi thực hiện đoạn chương trình trên, giá trị của i là: A. 0 C. 11 B. 10 D. Không xác định Câu 4: Cho một đoạn chương trình của Pascal như sau: 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, giá trị của biến j là: A. 2 C. 10 B. 7 D. 12 Câu 5: Trong lệnh lặp For to do của Pascal, trong mỗi vòng lặp giá trị của biến đếm thay đổi như thế nào? A. + 1 C. Một giá trị bất kì B. +1 hoặc -1 D. Một giá trị khác 0. Câu 6: Các lệnh khai báo biến mảng sau đây của Pascal đúng hay sai? Chỉ ra chỗ sai nếu có? a) A: Array[1 . . . 100] of integer; b) B: Array[1 . . n] of real; c) C: Array[1 : 100] of integer; d) D: Array[100 . . 1] of real; e) E: Array[1 . .10] of byte; II. Tự luận:(6.5 điểm) Câu 1:(1đ) Em hiểu thế nào là câu lệnh lặp? Câu 2:(2đ) Viết câu lệnh lặp với số lần chưa biết trước của Pascal và nêu rõ hoạt động của lệnh? Câu 3:(3,5đ) Viết chương trình bằng ngôn ngữ lập trình Pascal thực hiện công việc sau: Nhập vào từ bàn phím các phần tử của một dãy số nguyên; in ra màn hình giá trị nhỏ nhất của dãy số đó. *) ĐÁP ÁN - BIỂU ĐIỂM A. Trắc nghiệm: (3.5 điểm) Mỗi ý trả lời đúng được 0,25 điểm Câu 1: (1,25đ) A. Sai, thừa dấu chấm phẩy đầu tiên B. Sai, giá trị đầu phải nhỏ hơn giá trị cuối.
  4. C. Đúng D. Sai, thiếu từ khóa do trong lệnh For do thứ nhất E. Đúng Câu 2 3 4 5 Đáp án C B D A Câu 6: (1,25đ) A. Sai, cần thay ba dấu chấm bằng hai dấu chấm. B. Sai, các chỉ số phải là các giá trị cụ thể. Tuy nhiên nếu n là một hằng đã được khai báo thì câu lệnh này hợp lệ. C. Sai, cần thay dâu hai chấm bằng hai dấu chấm. D. Sai, chỉ số đầu không được lớn hơn chỉ số cuối E. Đúng B. Tự luận: (6.5đ) Câu 1: (1 đ) HS nêu được: Câu lệnh lặp là câu lệnh được viết một lần nhưng lại được điều khiển để thực hiện lặp một số hữu hạn lần. Câu 2: (2đ) HS nêu được: *)Cấu trúc lệnh: While do ; Trong đó: while, do là các từ khóa, điều kiện thường là phép so sánh; câu lệnh có thể là câu lệnh đơn hay câu lệnh ghép *) Hoạt động: - Bước 1: Kiểm tra điều kiện - Bước 2: Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện 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 bước 1. Câu 3: (3,5đ) Program Min; Uses crt; Var i, n,Min : integer; A: Array[1 50] of integer; Begin Clrscr; Write('Nhap so phan tu cua day so nguyen,N='); Readln(N); Write('Nhap cac phan tu cua day so:'); For i:=1 to N do Begin Write('A[',i,']='); Readln(A[i]); End; Min:=A[1]; For i:=2 to N do If Min > A[i] then Min:=A[i]; Writeln('Gia tri nho nhat cua day so la Min = ', Min); Readln End.
  5. ĐỀ SỐ 3: *) ĐỀ BÀI I. Trắc nghiệm: (3 điểm) Câu 1: Hãy chọn câu lệnh đúng? A. For i:=1 to 20; do x:= x+1; B. For i:=20 to 1 do x:= x+1; C. For i:=1 to 20 do x:= x+1; D. For i:=1 to 20 do x:= x+1; Câu 2: Trong ngôn ngữ lập trình Pascal, để đổi giá trị hai phần tử của mảng một chiều A tại vị trí i, j. Hãy chọn câu lệnh đúng trong các câu lệnh sau: a) A[i]:=tg; c) tg:= A[i]; A[i]:=A[j]; A[j]:=A[i]; A[j]:=tg; A[j]:=tg; b) tg:= A[i]; d) tg:= A[i]; A[i]:=A[j]; A[i]:=A[j]; A[j]:=tg; tg:= A[j]; Câu 3: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau cho kết quả trên màn hình là gì với i là biến số nguyên? for i:=1 to 100 do If i mod 9=0 then write(i,’ ’); A. 1 2 3 4 5 6 7 100 B. 47592264388540087 C. 9 18 27 36 45 54 63 72 81 90 99 D. 9 9 9 9 9 9 9 9 9 Câu 4: Cho một đoạn chương trình của Pascal như sau: 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, giá trị của biến j là: A. 2 C. 10 B. 7 D. 12 Câu 5: Trong lệnh lặp For to do của Pascal, trong mỗi vòng lặp giá trị của biến đếm thay đổi như thế nào? A. + 1 C. Một giá trị bất kì B. +1 hoặc -1 D. Một giá trị khác 0. Câu 6: Cho đoạn chương trình sau: So:=1; While so<10 do writeln(so); So:=so+1; Khi thực hiện đoạn chương trình trên 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. Không in ra gì hết; II. Tự luận:(7 điểm) Câu 1:(1đ) Em hiểu thế nào là câu lệnh lặp? Câu 2:(2đ) Hãy nêu sự khác biệt giữa câu lệnh lặp với số lần biết trước và câu lệnh lặp với số lần chưa biết trước của Pascal? Câu 3:(4) Viết chương trình bằng ngôn ngữ lập trình Pascal thực hiện công việc sau: Nhập vào từ bàn phím các phần tử của một dãy số nguyên; in ra màn hình các số dương trong dãy và tổng các số âm.
  6. *) ĐÁP ÁN - BIỂU ĐIỂM A. Trắc nghiệm: (3 điểm) Mỗi câu chọn đúng được 0, 5 điểm Câu 1 2 3 4 5 6 Đáp án D B C D A C II. Tự luận:(7 điểm) Câu 1: (1 đ) HS nêu được: Câu lệnh lặp là câu lệnh được viết một lần nhưng lại được điều khiển để thực hiện lặp một số hữu hạn lần. Câu 2: (2đ) HS nêu được: Câu lệnh lặp với số lần biết trước Câu lệnh lặp với số lần chưa biết trước - Chỉ thị cho MT thực hiện 1 hoặc nhóm lệnh - Số lần lặp chưa được xác định với số lần đã xác định từ trước. - Điều kiện là giá trị của biến đếm có giá trị - Điều kiện kiểm tra có thể là 1 giá trị của nguyên đã đạt được giá trị lớn nhất hay chưa. một số thực cũng có thể là một biểu thức - Câu lệnh được thực hiện ít nhất một lần sau logic. đó kiểm tra điều kiện. - Điều kiện được kiểm tra trước. Nếu điều kiện được thỏa mãn câu lệnh mới được thực hiện. Do đó có thể có trường hợp câu lệnh không được thực hiện lần nào. Câu 3: (4đ) Program Day_so; Uses crt; Var i, n,s : integer; A: Array[1 50] of integer; Begin Clrscr; Write('Nhap so phan tu cua day so nguyen,N= '); Readln(N); Write('Nhap cac phan tu cua day so:'); For i:=1 to N do Begin Write('A[',i,']='); Readln(A[i]); End; s:=0; Writeln('Cac so duong trong mang la:'); For i:=1 to N do Begin if A[i]>0 then write(A[i]:8); if A[i]<0 then s:=s + A[i]; writeln; writeln('Tong cac so am trong mang la:',s:9); Readln End.