Microsoft Word Document15 I MA TRẬN Cấp độ Chủ đề Nhận biết Thông hiểu Vận dụng Cộng Cấp độ thấp Cấp độ cao TNKQ TL TNKQ TL TNKQ TL TNKQ TL 1 Câu lệnh lặp Nhận biết được khái niệm, cấu trúc, cú pháp c[.]
Trang 1- Sắp xếp được hoàn chỉnh
chương trình tính tổng N
1
1 10%
4
1 10%
1
3 30%
- Vận dụng kiến thức đã học để viết hoàn chỉnh hoàn chỉnh chương trình
từ thuật toán
Trang 24
1 10%
1
2 20%
1
3 30%
10
7 70%
9
4 40%
1
3 30%
19
10 100%
Phòng Giáo dục và Đào tạo
Đề thi Giữa kì 2 Năm học 2021 - 2022 Bài thi môn: Tin học lớp 8
Thời gian làm bài: 45 phút (không kể thời gian phát đề)
(Đề số 1)
A TRẮC NGHIỆM: (4 điểm, mỗi câu được 0,25 điểm)
* Khoanh tròn vào chữ cái đứng trước kết quả em cho là đúng trong mỗi câu sau:
Câu 1: Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do
x:=x+1; thì biến đếm i phải được khai báo là kiểu dữ liệu nào?
A Integer B Real C String D Tất cả các kiểu trên đều được
Câu 2: Hoạt động nào sau đây lặp với số lần lặp biết trước?
A Giặt tới khi sạch B Học bài cho tới khi thuộc bài
Trang 3C Gọi điện tới khi có người nghe máy D Ngày đánh răng 2 lần
Câu 3: Vòng lặp While – do kết thúc khi nào
A Khi một điều kiện cho trước được thỏa mãn B Khi đủ số vòng lặp
C Khi tìm được Output D Tất cả các phương án
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, <câu lệnh> được thực
hiện bao nhiêu lần?
A (<giá trị đầu> - <giá trị cuối>) lần
B (<giá trị cuối> - <giá trị đầu>) lần
C (<giá trị cuối> - <giá trị đầu> + 1) lần
Trang 4Câ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ác câu lệnh bên trong < câu lệnh> đã thực hiện xong
D Tất cả phương án trên đều sai
Câu 9: Chọn cú pháp câu lệnh lặp là:
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ị cuối > to < giá trị đầu > 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 >;
Câu 10: Việc đầu tiên mà câu lệnh 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 11: Cho biết câu lệnh sau Do thực hiện mấy lần trong đoạn chương
trình sau:
i := 5;
While i>=1 do i := i – 1;
A 1 lần B 2 lần C 5 lần D 6 lần
Câu 12: Hãy cho biết kết quả của đoạn chương trình dưới đây:
a:=10;While a < 11 do write (a);
A Trên màn hình xuất hiện một số 10
Trang 5B 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ố 11
D Chương trình bị lặp vô tận
Câu 13 Hãy xác định đúng sai cho các phát biểu dưới đây:
Để 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;
A Đúng
B Sai
Câu 14: 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
Câu 16: Trong nhiều trường hợp, thời gian việc thực hiện câu lệnh
lặp while do như thế nào so với câu lệnh lặp for do?
A Tốn nhiều thời gian hơn
B Tốn ít thời gian hơn
C Tốn thời gian bằng nhau
Trang 6D Tất cả đều sai
B TỰ LUẬN (6.0 điểm)
Câu 17 (3.0đ): Em hãy cho biết thuật toán máy tính sẽ thực hiện bao
nhiêu vòng lặp? Kết thúc giá trị của S bằng bao nhiêu? Viết chương trình bằng Pascal để mô tả thuật toán đó
B1: S ! 0, n ! 2;
B2: Nếu S≥5, chuyển B4
B3: S ! S + n và quay lại B2
B4: Thông báo S và kết thúc thuật toán
Câu 18 (1.0đ): Cho đoạn chương trình: j:= 2;
Trang 7A TRẮC NGHIỆM: (4 điểm, mỗi câu được 0,25 điểm)
Trang 818
(1đ)
i:=1; 1<=4 đúng, thực hiện câu lệnh tức j:=2+2=4
i:=2; 2<=4 đúng, thực hiện câu lệnh tức j:=4+2=6
i:=3; 3<=4 đúng, thực hiện câu lệnh tức j:=6+2=8
i:=4; 4=4 (bằng giá trị cuối) đúng, thực hiện câu lệnh
0,5 0,5
- Phòng Giáo dục và Đào tạo
Đề thi Giữa kì 2 Năm học 2021 - 2022 Bài thi môn: Tin học lớp 8
Thời gian làm bài: 45 phút (không kể thời gian phát đề)
(Đề số 2) I.TRẮC NGHIỆM
Trang 9Cho đoạn chương trình trả lời câu 1, 2 dưới đây:
Câu 3: Đoạn chương trình
Write(‘ Nhap vao n:’); Readln(n);
S:=0;
For i:=1 to n do S:=S+2*i
Hãy cho biết kết quả của S của đoạn lệnh sau với n=6:
A 21 B.42 C 6 D 0
Câu 4: Vòng lặp while do là vòng lặp:
A Biết trước số lần lặp
Trang 10B Biết trước số lần lặp nhưng giới hạn là <=100
C Chưa biết trước số lần lặp
D Biết trước số lần lặp nhưng giới hạn là >=10
Câu 5: Trong ngôn ngữ Pascal, đoạn chương trình sau đưa ra màn hình
kết quả gì?
For i:=1 to 10 do write (i,’ ‘);
A 1 2 3 4 5 6 7 8 9 10 B 10 9 8 7 6 5 4 3 2 1
C Đưa ra 10 dấu cách D Không đưa ra kết quả gì
Câu 6: Bạn An ăn sang 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 7: Câu lệnh Pascal nào sau đây hợp lý:
A for i:=100 to 1 do writeln(‘A’); B for i:= 1.5 to 10.5 do writeln(‘A’);
C for i:= 1 to 10 do; writeln(‘A’); D for i:=1 to 10 do writeln(‘A’);
Câu 8: Câu lệnh Pascal : While (4*5>=20) do Writeln (4*5); sẽ :
Trang 11While so < 10 do writeln(so); so:=so + 1;
A In ra vô hạn các số 1, mỗi số trên một dòng; B Không phương án nào đúng
C In ra các số từ 1 đến 9; D In ra các số từ 1 đến 10;
Câu 11: Câu lệnh nào sau đây lặp vô hạn lần
Câu 13: Đâu là hoạt động lặp với số lần chưa biết trước?
A Hàng ngày em ăn cơm 2 lần
Trang 12B Một tuần trường em tổ chức chào cờ 1 lần
C Ngày em đánh răng 3 lần
D Em sẽ đến nhà bà ngoại chơi vào hôm cả bố và mẹ đi vắng
Câu 14: Câu lệnh pascal nào sau đây là hợp lệ?
A For i=1 to 10 do writeln(‘A’) B For i:= 1 to 10 do writeln(‘A’);
C For i:=5 to 30 do; writeln(‘A’) D For i:= 10 to 1 do writeln(‘A’);
Câu 15: Trong các câu lệnh lặp Pascal sau đây, câu nào đúng
A While i=1 do T:=10; B While (n mod i <> 0); do i:= i+
II TỰ LUẬN (6.0 điểm)
Câu 17 (3.0đ): Trong lập trình cấu trúc lặp dựng để làm gì? Nêu cú pháp
và hoạt động câu lệnh lặp While do trong ngôn ngữ lập trình Pascal
?
Câu 18 (1.0đ): Đối với từng đoạn chương trình Pascal sau đây, hãy cho
biết lệnh writeln in ra màn hình giá trị của i , j, k là bao nhiêu?
i:=1; j:=2; k:=3;
while i<6 do i:=i+1; j:=j+1; k:=k+j;
writeln(i,’ ’, j,’ ’, k);
Trang 13Giá trị của j, k sau khi thực hiện đoạn chương trình là?
Câu 19 (2.0đ): Cho số với 0≤ a,b,c ≤ 9 và thỏa mãn 3a+4b+3c=10 Hãy
hoàn thành chương trình sau để tìm ra số ( 2 điểm ):
A TRẮC NGHIỆM: (4 điểm, mỗi câu được 0,25 điểm)
Câu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
B TỰ LUẬN (6 điểm)
Trang 1417
(3đ)
- Trong lập trình, cấu trúc lặp dùng để chỉ thị cho
máy tính thực hiện lặp lại một vài hoạt động nào
đó cho đến khi một điều kiện nào đó được thỏa
mãn
- Cú pháp câu lệnh lặp While do là :
While <điều kiện> do <Câu lệnh>;
- Cách thực hiện lệnh của Câu lệnh lặp While
do :
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, máy sẽ thực hiện <Câu lệnh> và
quay lại bước 1
Trang 15End
-
Phòng Giáo dục và Đào tạo
Đề thi Giữa kì 2 Năm học 2021 - 2022 Bài thi môn: Tin học lớp 8
Thời gian làm bài: 45 phút (không kể thời gian phát đề)
(Đề số 3)
A TRẮC NGHIỆM: (4 điểm, mỗi câu được 0,25 điểm)
* Khoanh tròn vào chữ cái đứng trước kết quả em cho là đúng trong mỗi câu sau:
Câu 1: Trong ngôn ngữ lập trình Pascal, câu lệnh lặp với số lần chưa biết
trước là:
A If <Điều kiện> then <Câu lệnh>;
B Var i,n: Integer;
C While <điều kiện> do <câu lệnh>;
D For <Biến đếm>:=<Giá trị đầu>downto <Giá trị cuối> do <câu lệnh>;
Câu 2: 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ị
Trang 16Câu 3: Đâu là hoạt động lặp với số lần chưa biết trước?
A Hàng ngày em đi học
B Một tuần trường em tổ chức chào cờ 1 lần
C Ngày em đánh răng ba lần
D Em sẽ đến nhà bà ngoại chơi vào hôm cả bố và mẹ đi vắng
Câu 4: Câu lệnh pascal nào sau đây là hợp lệ?
A For i=1 to 10 do writeln(‘A’) B For i : = 1 to 10 do writeln(‘A’);
C For i:=5 to 30 do; writeln(‘A’) D For i:= 10 to 1 do writeln(‘A’);
Câu 5: Trong các câu lệnh lặp Pascal sau đây, câu nào đúng?
A While i= 1 do T:=10; B While (n mod i <> 0) ; do i:= i+ 1;
C While 1 = 1; do Writeln (‘Dung’); D While x<=y do; Writeln (‘y
khong nho hon x’);
Câu 6: Sau khi thực hiện đoạn chương trình sau, giá trị của biến a bằng
bao nhiêu?
a:=0 ; for i:= 1 to 3 do a:= a+i;
A 3 B 4 C 6 D 2
Câu 7: Trong câu lệnh lặp for i:=1 to 10 do begin…end; câu lệnh ghép
được thực hiện bao nhiêu lần (nói cách khác, bao nhiêu vòng lặp được thực hiện?)
Trang 17A Khi một điều kiện cho trước được thỏa mãn B Khi đủ số vòng lặp
C Khi tìm được Output D Tất cả các phương
án
Câu 10: Việc đầu tiên mà câu lệnh 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 11: Cho biết câu lệnh sau Do thực hiện mấy lần trong đoạn chương
trình sau:
i := 5;
While i>=1 do i := i – 1;
A 1 lần B 2 lần C 5 lần D 6 lần
Câu 12: Hãy cho biết kết quả của đoạn chương trình dưới đây:
a:=10;While a < 11 do write (a);
A Trên màn hình xuất hiện một số 10
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ố 11
Trang 18B Tìm BCNN của M và N
C Tìm hiệu nhỏ nhất của M và N
D Tìm hiệu lớn nhất của M và N
Câu 14: Hoạt động nào sau đây lặp với số lần lặp chưa biết trước?
A Ngày tắm hai lần B Học bài cho tới khi thuộc bài
C Mỗi tuần đi nhà sách một lần D Ngày đánh răng 2 lần
Câu 15: Cú pháp lệnh lặp với số lần chưa biết trước:
A While < điều kiện > to < câu lệnh >;
B While < điều kiện > to < câu lệnh 1 > do < câu lệnh 2 >;
C While < điều kiện > do ;< câu lệnh >;
D While < điều kiện > do < câu lệnh >;
Câu 16: Tính tống S = 1 + 2 + 3 + … + n + … cho đến khi S>108 Điều kiện nào sau đây cho vòng lặp while – do là đúng:
Trang 19A TRẮC NGHIỆM: (4 điểm, mỗi câu được 0,25 điểm)
Trang 21B1: Biến đếm được gán bằng giá trị đầu
B2: Nếu biến đếm <= giá trị cuối thì thực hiện câu lệnh
sau đó tăng biến đếm lên một đơn vị và thực hiện tiếp
Nếu biến đếm > GTC thì thoát khỏi vòng lặp FOR
Trang 22Năm học 2021 - 2022 Bài thi môn: Tin học lớp 8
Thời gian làm bài: 45 phút (không kể thời gian phát đề)
(Đề số 4)
A TRẮC NGHIỆM KHÁCH QUAN: (4 điểm, mỗi câu được 0,25 điểm)
* Khoanh tròn vào chữ cái đứng trước kết quả em cho là đúng trong mỗi câu sau:
Câu 1 Trong câu lệnh lặp For i:=1 to 10 do begin end; câu lệnh ghép
được thực hiện bao nhiêu lần?
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: Câu lệnh For to do kết thúc :
Trang 23A 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 nhỏ hơn giá trị đầu
D Khi biến đếm lớn hơn giá trị đầu
Câu 5: Cho các câu lệnh sau hãy chỉ ra câu lệnh đúng :
A for i:=1 to 10; do x:=x+1;
B for i:=1 to 10 do x:=x+1;
C for i:=10 to 1 do x:=x+1;
D for i =10 to 1 do x:=x+1;
Câu 6: Kiểu dữ liệu của biến đếm trong lệnh lặp For – do:
A Cùng kiểu với giá trị đầu và giá trị cuối
B Chỉ cần khác kiểu với giá trị đầu
C Cùng kiểu với các biến trong câu lệnh
D Không cần phải xác định kiểu dữ liệu
Câu 7: Đoạn chương trình sau giải bài toán nào?
For I:=1 to M do
If (I mod 3 = 0) and (I mod 5 = 0) then
T := T + I;
A Tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến M
B Tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M
C Tổng các số chia hết cho 3 trong phạm vi từ 1 đến M
D Tổng các số chia hết cho 5 trong phạm vi từ 1 đến M
Trang 24Câu 8: Xác định số vòng lặp cho bài toán: tính tổng các số nguyên từ 1
đến 100
A 1 B 100 C 99 D Tất cả đều sai
Câu 9: Bạn Mai muốn in ra màn hình 5 chữ B và 5 chữ C trên màn
hìnhbằ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ì?
Trang 25A 0 lần B 1 lần C 2 lần D Tùy thuộc bài toán
Câu 13: Câu lệnh sau giải bài toán nào:
Câu 14: Hoạt động nào sau đây lặp với số lần lặp chưa biết trước?
A Ngày tắm hai lần B Học bài cho tới khi thuộc bài
C Mỗi tuần đi nhà sách một lần D Ngày đánh răng 2 lần
Câu 15: Cú pháp lệnh lặp với số lần chưa biết trước:
A While < điều kiện > to < câu lệnh >;
B While < điều kiện > to < câu lệnh 1 > do < câu lệnh 2 >;
C While < điều kiện > do ;< câu lệnh >;
D While < điều kiện > do < câu lệnh >;
Câu 16: Tính tống S = 1 + 2 + 3 + … + n + … cho đến khi S>108 Điều kiện nào sau đây cho vòng lặp while – do là đúng:
A While S>=108 do B While S < 108 do
C While S < 1.0E8 do D While S >= E8 do
B TỰ LUẬN (6 điểm)
Câu 17 ( 3.0 điểm): Em hãy sắp xếp chương trình tính tổng N số tự
nhiên sau cho phù hợp?
Trang 26A TRẮC NGHIỆM: (4 điểm, mỗi câu được 0,25 điểm)
Trang 27Var N, i: integer;
S: Longint;
Begin Write(‘Nhap so N=’); readln(n);
s:=0;
For i:=1 to n do S:=s+i;
Writeln(‘Tong cua ‘, N, ‘ So tu nhien dau tien s=’, s);
Readln End
18
(1đ)
• Ban đầu gán S=0 và cho chương trình chạy biến i từ 1 đến 1000 rồi
• Mỗi lần chạy kết quả được cộng dồn vào biến S.
0.5 0.5
19
(2đ)
Câu lệnh lặp với số lần biết trước :
- Chỉ thị cho máy tính thực hiện 1 lệnh hay 1 nhóm lệnh với số lần đã được xác định từ trước
- Điều kiện là 1 giá trị của 1 biến đếm có giá trị nguyên Câu lệnh lặp với số lần chưa biết trước :
0,5
0,5