logo

Đề thi học kì 2 Tin học 8 có đáp án - Đề 1


Đề thi học kì 2 Tin học 8 có đáp án - Đề 1


ĐỀ BÀI

A/ Trắc nghiệm khách quan (5,0 điểm): 

I. Hãy điền vào bảng điền đáp án bên dưới ứng với câu trả lời em cho là đúng nhất: (4,0 điểm):

Câu 1: (0,25đ) Khi nào thì câu lệnh lặp For…do (dạng tiến) kết thúc?

A. Khi biến đếm nhỏ hơn giá trị cuối.

B. Khi biến đếm lớn hơn giá trị cuối.

C. Khi biến đếm bằng giá trị cuối.

D. Khi biến đếm bằng giá trị đầu.

Câu 2: (0,25đ) Khi sử dụng lệnh lặp While…do cần chú ý `điều gì?

A. Điều kiện dần đi đến sai.

B. Số lần lặp.

C. Số lượng câu lệnh.

D. Điều kiện dần đi đến đúng.

Câu 3: (0,25đ) 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.

Câu 4: (0,25đ) Trong Pascal, câu lệnh lặp với số lần chưa xác định trước có dạng:

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

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

C. While <điều kiện> then <câu lệnh>;

D. While <điều kiện>; then <câu lệnh>;

Câu 5: (0,25đ) Việc đầu tiên mà câu lệnh lặp While…do 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 6: (0,25đ) Cho đoạn chương trình sau:

       N:=0;

       While N>0 do

          Begin

             N:=N+1;

             Writeln(‘Xin chao’);

        End;

Khi thực hiện chương trình, câu “Xin chao” được viết ra màn hình mấy lần?

A. 10.                             

B. 9.

C. 0.                               

D. Vòng lặp vô tận.

Câu 7: (0,25đ) Trước khi khai báo mảng A:array[1..n] of Real, thì phải khai báo điều gì trước?

A. Const n=10;

B. Var n:integer;

C. Cả A và B đều đúng.

D. Cả A và B đều sai.

Câu 8: (0,25đ) Chỉ ra cú pháp khai báo biến mảng đúng trong Turbo Pascal:

A. Var <tên biến>: array[<số phần tử>] of <kiểu dữ liệu>;

B. Var <tên biến>: array[<chỉ số đầu>..<chỉ số cuối>]: <kiểu dữ liệu>;

V. Var <tên biến>: array[<chỉ số đầu>:<chỉ số cuối>]: <kiểu dữ liệu>;

D. Var <tên biến>: array[<chỉ số đầu>..<chỉ số cuối>]of <kiểu dữ liệu>;

Câu 9: Trong câu lệnh lặp với số lần định trước (for…do), <câu lệnh> được thực hiện mấy lần?

A. (<giá trị cuối> - <giá trị đầu>) lần.

B. Tùy thuộc vào bài toán mới biết được số lần.

C. Khoảng 10 lần.

D. (<giá trị cuối> - <giá trị đầu> + 1) lần.

Câu 10: (0,25đ) Các phần tử của mảng:

A. Phải khác kiểu dữ liệu.

B. Phải có giá trị như nhau.

C. Phải cùng kiểu dữ liệu.

D. Có thể cùng kiểu hoặc khác kiểu dữ liệu.

Câu 11: (0,25đ) Chỉ ra khai báo biến mảng đúng trong các cách khai báo sau:

A. Var a:array[1...10] of integer;

B. Var a:array(1..10] of integer;

C. Var a:array(1..10) of integer;

D. Var a:array[1..10] of integer;

Câu 12: (0,25đ) Cho đoạn chương trình sau:

       N:=1;

       While N<10 do

        Begin

           N:=N+1;

           Writeln(‘Xin chao’);

        End;

Khi thực hiện chương trình, câu “Xin chao” được viết ra màn hình mấy lần?

A. 10.                             

B. 0.

C. 9.                               

D. Vòng lặp vô tận.

Câu 13: (0,25đ) <câu lệnh> sau từ khóa do trong câu lệnh lặp While…do được thực hiện ít nhất:

A. 1 lần.

B. 0 lần.

C. 2 lần.                          

D. Còn tùy thuộc vào bài toán.

Câu 14: (0,25đ) Cho đoạn chương trình sau:

       S:=0;

       For i:=1 to 1 do S:=S+1;

Sau khi chạy đoạn chương trình trên, giá trị S là:

A. S=100.

B. S=0.

C. S=1.                          

D. Không xác định.

Câu 15: (0,25đ) Chỉ ra câu lệnh lặp với số lần lặp biết trước trong các câu lệnh rút gọn sau đây?

A. While…do.

B. If – then – else.

C. If – then.                   

D. For…do.

Câu 16: (0,25đ) Trong các cách viết câu lệnh lặp với số lần định trước như sau, cách nào đú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ị đầu> to <giá trị cuối> do <câu lệnh>

D. For <biến đếm> = <giá trị đầu> to <giá trị cuối> do <câu lệnh>;

II/ Hãy điền đáp án vào cột C: Là kết quả ghép nối đúng giữa cột A với cột B (1,0 điểm):

A (tên chương trình)

B (công dụng thu gọn)

C (kết quả)

1.  Finger Break Out.

2.  Sun Times.

3.  Geogebra.

4.  Yenka.

a/ Quan sát hình không gian.

b/ Tìm hiểu thời gian.

c/ Luyện gõ phím nhanh.

d/ Học vẽ hình.

e/ Học lập trình.

1+………..

2+……….

3+………..

4+…………

B/ Tự luận (5,0 điểm):

Câu 1: (2,0 điểm): Cho chương trình sau (bằng Turbo Pascal):

      Begin {1}

      Write(‘Tong cac so chan nho hon 50 la:’,t ); {2}

     While i<50 do {3}

        Begin {4}

          If i mod 2 =0 then {5}

            t:=t + i; {6}

            i:=i+1; {7}

        end;  {8}

      Uses crt; {9}

   Var i, t:integer; {10}

    i:=1; t:=0; {11}

 Clrscr;  {12}

 Readln; {13}

End. {14}

a/ Chương trình trên bị sai về vị trí các dòng {2}, {9}, {10}, {11}, {12}, hãy sắp xếp lại vị trí của các dòng này để được chương trình đúng (1,5 điểm).

b/ Hãy cho biết công dụng của chương trình trên (0,5 điểm).

Câu 2: Hãy vẽ hình nút lệnh và nêu tên gọi tương ứng của các công cụ tạo mối quan hệ hình học có trong chương trình Geogebra. (2,0 điểm).

Câu 3: Viết chương trình (bằng ngôn ngữ Pascal) thực hiện công việc nhập 10 phần tử có giá trị nguyên cho mảng A (mảng 1 chiều) từ bàn phím và tính tổng các phần tử lẽ có trong mảng A. (1,0 điểm).


ĐÁP ÁN

A/ Trắc nghiệm khách quan: (đúng tất cả: 5,0 điểm)

I/ Mỗi ý đúng được 0,25 điểm X 16 câu = 4,0 điểm

Bảng điền đáp án

Câu

 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Đ.án

B

A

A

A

B

C

A

D

D

C

D

C

B

C

D

B

II/ Mỗi ý nối đúng được 0,25 điểm  X 4 ý =1,0 điểm.

A (tên chương trình)

B (công dụng thu gọn)

C (kết quả)

Điểm

1. Finger Break Out.

2. Sun Times.

3. Geogebra.

4. Yenka.

a/ Quan sát hình không gian.

b/ Tìm hiểu thời gian.

c/ Luyện gõ phím nhanh.

d/ Học vẽ hình.

e/ Học lập trình.

1+ c

2+ b

3+ d

4+ a

0,25

0,25

0,25

0,25

B/ Tự luận: (đúng tất cả: 5,0 điểm)

Câu 1: (Làm đúng theo yêu cầu: 2,0 điểm)

a/ Chương trình sắp xếp lại thứ tự đúng: 1,5 điểm:

Chương trình được sắp xếp lại

Điểm

Uses crt; {9}

Var i, t:integer; {10}

Begin   

Clrscr;  {12}

     i:=1; t:=0; {11}

      While i<50 do

        Begin

          If i mod 2 =0 then

           t:=t + i;

            i:=i+1;

        end; 

    Write(‘Tong cac so chan nho hon 50 la:’,t ); {2}

Readln;

End.

0,25

0,25

 

0,25

0,25

 

 

 

 

 

 

0,5

b/ Công dụng: Dùng để tính tổng các số chẵn có trong dãy số từ 1 đến 49  (0,5 điểm)

Câu 2: (2,0 điểm)

- 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: 0,25 điểm x 4 nút lệnh= 1,0 điểm

- 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:  0,25 điểm x 4 nút lệnh = 1,0 điểm

Đề thi học kì 2 Tin học 8 có đáp án - Đề 1 | 68 đề thi Học kì 2 Tin học 8 hay nhất

Câu 3: Thực hiện đúng theo yêu cầu: 1,0 điểm

Đáp án mẫu (có thể có đáp án khác, miễn thực hiện được việc nhập và tính tổng các phần tử lẽ có trong mảng)

Chương trình

Điểm

uses crt;

var i, t:integer;

   A: array[1..10] of integer;

 

0,25

begin

 clrscr;

 writeln('Nhap gia tri cho cac phan tu trong mang:');

 for i:=1 to 10 do

  begin

   write('Phan tu thu ',i,': ');

   readln(A[i]);

  end;

0,25

t:=0;

 for i:=1 to 10 do

  if a[i] mod 2 <>0 then

   t:=t+a[i];

 write('Tong cac pahn tu le co trong mang la: ',t);

0,25

readln;

 end.

0,25

icon-date
Xuất bản : 04/02/2021 - Cập nhật : 05/02/2021