Vững vàng nền tảng, Khai sáng tương lai Website HOC247 cung cấp một môi trường học trực tuyến sinh động, nhiều tiện ích thông minh, nội dung bài giảng được biên soạn công phu và giảng dạ[r]
Trang 1TRƯỜNG THCS VĂN LANG
ĐỀ THI HỌC KÌ 2 NĂM HỌC 2021 - 2022
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
A/ Trắc nghiệm khách quan:
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:
Câu 1: 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: 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: 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: 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: 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>
Trang 2C Thực hiện <câu lệnh> sau từ khóa then
D Kiểm tra <câu lệnh>
Câu 6: 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: 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: 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: Các phần tử của mảng:
Trang 3A 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: 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: 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: <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: 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à:
Trang 4A S=100
B S=0
C S=1
D Không xác định
Câu 15: 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: 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:
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:
Câu 1: 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}
Trang 5i:=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
b/ Hãy cho biết công dụng của chương trình trên
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
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
ĐÁP ÁN A/ Trắc nghiệm khách quan:
I/ 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/
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+ c 2+ b 3+ d 4+ a
Trang 6B/ Tự luận:
Câu 1:
a/ Chương trình sắp xếp lại thứ tự đúng:
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
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
Câu 2:
- 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:
- 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:
Câu 3: Thực hiện đúng theo yêu cầu
Trang 7Đá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)
uses crt;
var i, t:integer;
A: array[1 10] of integer;
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;
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);
readln;
end
2 ĐỀ SỐ 2
I/ TRẮC NGHIỆM:
Câu 1: Số lần lặp của câu lệnh lặp for…to…do… được tính như thế nào?
A Giá trị đầu – giá trị cuối
B Giá trị đầu – giá trị cuối + 1
C Giá trị cuối – giá trị đầu
D Giá trị cuối – giá trị đầu + 1
Câu 2: Giả sử biến Chiều cao gồm 20 phần tử, cách khai báo nào dưới đây là đúng
Trang 8A Var Chieucao: array[1 20] of real;
B Var Chieucao: array[1 20] of integer;
C Var Chieucao: array[1 20] of string;
D Var Chieucao: array[1…20] of char;
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
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;
Trang 9C 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 <biến đếm>:= <giá trị cuôí> down to <giá trị đầu> do <câu lệnh>;
B For <biến đếm>:= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>;
C For <biến đếm>:= <giá trị đầu> to <câu lệnh> do <giá trị cuối>;
D For <biến đếm>= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>;
Câu 9: 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 10: 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 11: 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
Câu 12: 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
Trang 10B S = 8
C S = 10
D S = 12
II/ TỰ LUẬN:
Câu 1: Hãy nêu cú pháp khai báo biến mảng trong pascal?
a/ Giải thích cú pháp khai báo biến mảng trong Pascal?
b/ Cho ví dụ về khai báo biến mảng
Câu 2: Viết chương trình tính tổng từ 1 đến 50
ĐÁP ÁN I/ TRẮC NGHIỆM:
II/ TỰ LUẬN:
Câu 1:
Var<tên biến mảng>:Array[<chỉ số đầu> <chỉ số cuối>]of<kiểu dữ liệu>;
a Chỉ số đầu và chỉ số cuối là hai số nguyên thỏa mản chỉ số đầu <= chỉ số cuối và kiểu dữ liệu có thể là
số nguyên (integer) hay số thực (real)
b Var thunhap: array[1 50] of real;
Câu 2:
program Tinh_tong;
uses crt;
var i:integer;
T:longint;
begin
Tổng:=0;
writeln('Đây là chương trình tính tổng từ 1 đến 50');
For i:= 1 to 50 do T:=T+i;
write('Tổng=',T);
Trang 11end
3 ĐỀ SỐ 3
I PHẦN TRẮC NGHIỆM: Hãy khoanh tròn câu trả lời đúng nhất trong các câu hỏi sau:
Câu 1: Trong các câu lệnh Pascal sau Câu lệnh nào là hợp lệ:
A For i:=4 to 1 do writeln(‘Y’);
B For i=1 to 10 do writeln(‘Y’);
C For i:=1 to 10 do writeln(‘Y’);
D For i to 10 do writeln(‘Y’);
Câu 2: Trong các cánh khai báo biến mảng sau đây, cách khai báo nào là hợp lệ:
A Var a: array[1,100] of integer;
B Var a: array[1.5 100.5] of integer;
C Var a: array[1 100] of integer;
D Var a: array[1.5,100.5] of integer;
Câu 3: Các cách khai báo biến sau đây, cách khai báo nào là hợp lệ trong Turbo Pascal:
A Var a= integer;
B Var a: integer;
C Var a: array;
D Var : a: integer;
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:
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
Trang 12D 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: Dữ liệu kiểu mảng là gì? Hãy nêu cách khai báo biến mảng trong Pascal và các thành phần của nó Câu 2:
a) Hãy nêu cú pháp câu lệnh lặp với số lần biết trước Nêu tác dụng của câu lệnh lặp
b) Hãy nêu cú pháp và hoạt động câu lệnh lặp với số lần chưa biết trước
Câu 3: Viết chương trình tính tổng: S = 1+2+3+…+n Trong đó n là số nguyên nhập từ bàn phím
ĐÁP ÁN
I PHẦN TRẮC NGHIỆM:
II PHẦN TỰ LUẬN:
Câu 1:
- Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần tử có thứ tự, mọi phần tử đều có cùng một kiểu dữ liệu, gọi là kiểu của phần tử
* Cách khai báo biến mảng trong Pascal:
Trang 13Var tên mảng: array [<chỉ sô đầu> <chỉ số cuối>] of <kiểu dữ liệu>;
Trong đó: Chỉ số đầu và chỉ số cuối là hai số nguyên thoả mãn Chỉ số đầu chỉ số cuối và kiểu dữ liệu có thể là integer hoặc real
Câu 2:
a)* Cú pháp câu lệnh lặp với số lần biết trước:
For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh> ;
* Tác dụng của câu lệnh lặp:
- Tiết kiệm thời gian
- Giảm nhẹ công sức viết chương trình
b)* Cú pháp câu 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> ;
* Hoạt động:
- Khi gặp câu lệnh này chương trình sẽ kiểm tra điều kiện
+ Nếu điều kiện đúng thì câu lệnh sẽ được thực hiện
và quay lại bước 1
+ Nếu điều kiện sai thì câu lệnh sẽ bị bỏ qua và lệnh lặp kết thúc
Câu 3:
Program Tong;
Uses crt;
Var S: real;
n, i: integer;
Begin
Clrscr;
Write(‘Nhap so n = ‘);
Readln(n);
S:= 0;
For i:= 1 to n do S: = S + i;
Writeln(‘Tong can tim la: ‘, S:6:2);
Readln
End
Trang 14Website HOC247 cung cấp một môi trường học trực tuyến sinh động, nhiều tiện ích thông minh, nội dung bài giảng được biên soạn công phu và giảng dạy bởi những giáo viên nhiều năm kinh nghiệm, giỏi
về kiến thức chuyên môn lẫn kỹ năng sư phạm đến từ các trường Đại học và các trường chuyên danh
tiếng
xây dựng các khóa luyện thi THPTQG các môn: Toán, Ngữ Văn, Tiếng Anh, Vật Lý, Hóa Học và
Sinh Học
trường PTNK, Chuyên HCM (LHP-TĐN-NTH-GĐ), Chuyên Phan Bội Châu Nghệ An và các trường Chuyên khác cùng TS.Trần Nam Dũng, TS Phạm Sỹ Nam, TS Trịnh Thanh Đèo và Thầy Nguyễn Đức
Tấn
THCS lớp 6, 7, 8, 9 yêu thích môn Toán phát triển tư duy, nâng cao thành tích học tập ở trường và đạt điểm tốt ở các kỳ thi HSG
dành cho học sinh các khối lớp 10, 11, 12 Đội ngũ Giảng Viên giàu kinh nghiệm: TS Lê Bá Khánh
Trình, TS Trần Nam Dũng, TS Phạm Sỹ Nam, TS Lưu Bá Thắng, Thầy Lê Phúc Lữ, Thầy Võ Quốc
Bá Cẩn cùng đôi HLV đạt thành tích cao HSG Quốc Gia
các môn học với nội dung bài giảng chi tiết, sửa bài tập SGK, luyện tập trắc nghiệm mễn phí, kho tư liệu tham khảo phong phú và cộng đồng hỏi đáp sôi động nhất
miễn phí từ lớp 1 đến lớp 12 tất cả các môn Toán- Lý - Hoá, Sinh- Sử - Địa, Ngữ Văn, Tin Học và Tiếng Anh
Vững vàng nền tảng, Khai sáng tương lai
Học mọi lúc, mọi nơi, mọi thiết bi – Tiết kiệm 90%
Học Toán Online cùng Chuyên Gia
HOC247 NET cộng đồng học tập miễn phí HOC247 TV kênh Video bài giảng miễn phí