logo

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


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


ĐỀ 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  

B. 2; 

C.  10            

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

B. 10

C. 11

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

B. 7

C. 10

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               

B. +1 hoặc -1

C. Một giá trị bất kì

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

I. 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.

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

II. 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 <biến đếm:=giá trị đầu> to <giá trị cuối> do <câu lệnh>;

rong đó: 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.

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