Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

ĐỀ CƯƠNG ÔN TẬP KIỂM TRA GIỮA KÌ 2 – TIN HỌC 11

I. PHẦN TRẮC NGHIỆM


Câu 1. Chọn phát biểu SAI trong các phát biểu sau đây:
A. Có thể dùng cấu trúc lặp để thay cho cấu trúc rẽ nhánh trong mô tả thuật toán.
B. Để mô tả việc lặp đi lặp lại một số thao tác (hoặc câu lệnh) trong một thuật toán ta có thể dùng cấu trúc lặp.
C. Tùy từng trường hợp cụ thể (khi mô tả một thuật toán), khi thì ta biết trước số lần lặp, khi thì ta không cần
hoặc không xác định được trước số lần lặp các thao tác nào đó.
D. Không thể mô tả được mọi thuật toán bằng ngôn ngữ lập trình bậc cao nếu không dùng cấu trúc lặp
Câu 2. Chọn phát biểu SAI trong các phát biểu dưới đây:
A. Trong các NNLT bậc cao đều có câu lệnh thể hiện cấu trúc lặp.
B. Trong Python, câu lệnh for và while dùng để thể hiện cấu trúc lặp.
C. Có thể sử dụng câu lệnh for để thể hiện lặp với số lần biết trước.
D. Trong Python, không biểu diễn được thao tác lặp với số lần không biết trước.
Câu 3. Chọn phát biểu đúng trong các phát biểu dưới đây:
A. Lặp là điều khiển thực hiện công việc lặp đi lặp lại một số lần hoặc thỏa mãn một điều kiện nào đó để hoàn
thành một công việc
B. Có thể dùng cấu trúc lặp để thay cho cấu trúc rẽ nhánh trong mô tả thuật toán.
C. Có thể mô tả được mọi thuật toán bằng ngôn ngữ lập trình bậc cao nếu không dùng cấu trúc lặp.
D. Để mô tả việc lặp đi lặp lại một số thao tác (câu lệnh) trong thuật toán ta sử dụng câu lệnh rẽ nhánh dạng đủ.
Câu 4. Câu lệnh lặp for được sử dụng để giải các bài toán:
A. Tất cả các bài toán có thao tác lặp B. Các bài toán có thao tác lặp với số lần biết trước
C. Tất cả các bài toán D. Các bài toán có thao tác lặp với số lần không biết trước
Câu 5. Câu lệnh có cú pháp như sau là câu lệnh gì?
for <biến đếm> in range (<giá trị cuối>,<giá trị đầu>,<bước nhảy âm>):
<các lệnh>
A. Câu lệnh rẽ nhánh B. Câu lệnh lặp chưa biết trước số lần
C. Câu lệnh lặp với số lần biết trước (dạng tiến) D. Câu lệnh lặp với số lần biết trước (dạng lùi)
Câu 6. Để xác định phạm vi giá trị, trong đó có các giá trị tăng dần thì hàm range phải có:
A. Giá trị đầu nhỏ hơn giá trị cuối B. Giá trị đầu nhỏ hơn hoặc bằng giá trị cuối.
C. Giá trị đầu lớn hơn giá trị cuối D. Giá trị đầu bằng giá trị cuối
Câu 7. Để xác định phạm vi giá trị, trong đó có các giá trị giảm dần thì hàm range phải có các đối số như
sau:
A. giá trị end nhỏ hơn start và bước nhảy âm B. giá trị end nhỏ hơn start và bước nhảy dương
C. giá trị end lớn hơn start và bước nhảy dương D. giá trị end lớn hơn start và bước nhảy âm
Câu 8. Trong câu lệnh for, hàm range dùng để:
A. Xác định số lượng câu lệnh trong khối lệnh lặp. B. Xác định phạm vi giá trị cho biến đếm.
C. Xác định số lượng thao tác cần lặp lại. D. Báo hết lặp.
Câu 9. Cú pháp câu lệnh for nào sau đây là đúng?
A. for <biến đếm> in range(<giá trị đầu>, <giá trị cuối>, <bước nhảy>)
<nhóm các lệnh của for>
B. for <biến đếm> in range (<giá trị đầu>, <giá trị cuối>)
<nhóm các lệnh của for>
C. for <biến đếm> in range():
<nhóm các lệnh của for>
D. for <biến đếm> in range (<giá trị đầu>, <giá trị cuối>, <bước nhảy>):
<nhóm các lệnh của for>
Câu 10. Kiểu dữ liệu của biến đếm trong lệnh lặp for là:
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 11. Câu lệnh while có cú pháp nào dưới đây?
A. white <điều kiện>: <câu lệnh> B. while <điều kiện>: <câu lệnh>
C. while <điều kiện> do <câu lệnh> D. while <điều kiện> begin <câu lệnh> end
Câu 12. Trong lệnh lặp while, các câu lệnh được thực hiện khi:
A. Điều kiện sai B. Điều kiện còn đúng
C. Điều kiện không xác định D. Không cần điều kiện
Câu 13. Câu lệnh lặp while có cú pháp:
while <điều kiện>:
<câu lệnh>
trong đó <điều kiện> là:
A. Biểu thức quan hệ B. Biểu thức logic
C. Biểu thức toán học D. Biểu thức quan hệ hoặc biểu thức logic
Câu 14. Đoạn chương trình dưới đây cho kết quả là bao nhiêu?
tong = 0
for i in range(1, 31): tong += i
A. 31 B. 30 C. 32 D. 465
Câu 15. Cho đoạn chương trình sau:
Dem = 0
for i in range(…):
if i % 2 == 0: Dem += 1
Điền vào chỗ (…) để đoạn chương trình trên thực hiện đếm các số chẵn từ 1 đến 100?
A. 1, 100 B. 1, 101 C. 1, 101, 2 D. 1, 100, 2
Câu 16. Đoạn chương trình sau thực hiện công việc?
t=0
for i in range (1, M+1):
if (i % 3 == 0) and (i % 5 == 0):
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 hoặc 5 trong phạm vi từ 1 đến M + 1
D. Tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M + 1
Câu 17. Khi kết thúc đoạn chương trình sau, câu lệnh print(j) được thực hiện bao nhiêu lần?
j = 0; for i in range(10): j = j+2
print(j)
A. 10 lần B. 1 lần C. 5 lần D. Không thực hiện lần nào
Câu 18. Làm thế nào để in ra các số chẵn từ 0 đến 10?
A. for i in range (0,10, 2) : print (i) B. for i in range (0,11, 2) : print (i)
C. for i in range (1,10, 2) : print (i) D. for i in range (1,11, 2) : print (i)
Câu 19. Cho biết số lần lặp lại của câu lệnh sau while trong đoạn chương trình sau:
i=5
while i >= 1: i = i - 1
A. 1 lần B. 2 lần C. 5 lần D. 6 lần
Câu 20. Hãy cho biết kết quả đoạn chương trình dưới đây:
A=10
while A<11: A -= 1; print(A)
A. Trên màn hình xuất hiện 11 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 1 số 10 D. Chương trình lặp vô tận
Câu 21. Hãy cho biết đoạn chương trình sau thực hiện công việc?
i=0
t=0
while i < 10000:
t=t+i
i=i+2
A. Tính tổng các số tự nhiên nhỏ hơn hoặc bằng 10000
B. Tính tổng các số tự nhiên chẵn nhỏ hơn 10000
C. Tính tổng các số tự nhiên chẵn nhỏ hơn hoặc bằng 10000
D. Tính tổng các số tự nhiên nhỏ hơn 10000
Câu 22. Cho đoạn chương trình:
S=0
n=1
while … :
S=S+n
n=n+1
Để tính tổng S = 1 + 2 + 3 + … + 100, cần điền điều kiện nào sau đây vào chỗ ba chấm (…) trong đoạn
chương trình trên?
A. n >= 100 B. n > 100 C. n < 100 D. n <= 100
Câu 23. Đoạn chương trình sau thực hiện công việc gì?
while M <> N:
if M > N: M = M - N
else: N = N - M
A. Tìm ước số chung lớn nhất của M và N B. Tìm bội số chung nhỏ nhất 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 24. Chọn phát biểu ĐÚNG trong các phát biểu sau đây:
A. Trong Python, dữ liệu kiểu list là một dãy hữu hạn các phần tử cho phép truy cập đến từng phần tử của nó.
B. Python bắt buộc các phần tử của một danh sách phải có cùng một kiểu dữ liệu.
C. Phải khởi tạo một danh sách bằng phép gán trong chương trình, không thể nhập các phần tử của danh sách từ
bàn phím.
D. Mỗi phần tử trong danh sách có chỉ số xác định bắt đầu từ 0 theo chiều từ trái sang phải.
Câu 25. Phát biểu nào sau đây về list chưa chính xác:
A. List là dãy các giá trị.
B. Các giá trị trong list phải có cùng kiểu dữ liệu.
C. Có thể truy cập vào từng phần tử của list thông qua chỉ số của phần tử.
D. Độ dài của list là số phần tử trong list đó.
Câu 26. Phát biểu nào sau đây ĐÚNG về kiểu dữ liệu list?
A. Là dãy các giá trị B. Chỉ là dãy các số nguyên
C. List không chứa các kí tự là chữ cái D. Là dãy vô hạn các phần tử có cùng kiểu dữ liệu
Câu 27. Vị trí của các phần tử trong list được xác định thông qua chỉ số. Phát biểu nào sau đây về chỉ số
của các phần tử trong list là đúng?
A. Chỉ số bắt đầu từ 0 theo chiều từ trái sang phải.
B. Chỉ số bắt đầu từ 0 theo chiều từ phải sang trái.
C. Chỉ số bắt đầu từ một giá trị nguyên do người lập trình quy định, theo chiều từ trái sang phải.
D. Chỉ số bắt đầu từ -1 theo chiều từ trái sang phải.
Câu 28. Cách viết nào sau đây tham chiếu đúng phần tử có chỉ số i của list D?
A. D[ ',i',] B. D['i'] C. D[i] D. D(i)
Câu 29. Biến L dưới đây thuộc kiểu dữ liệu nào?
L=[1, 23, ‘hello’, 1]
A. list B. dictionnary C. tuple D. array
Câu 30. Để khai báo list gồm 10 phần tử ta có thể dùng lệnh:
A. T = [0]*10 B. T = [10] C. T = int(list[10]) D. Không thực hiện được
Câu 31. Để nhập giá trị cho một phần tử nào đó trong list, ta dùng câu lệnh:
A. <tên list>[<chỉ số của phần tử>] = <kiểu dữ liệu>(input())
B. <tên list>[i] = <kiểu dữ liệu>(input())
C. <tên list>[<chỉ số của phần tử>] = int(input())
D. <tên list>[<chỉ số của phần tử>] = = <kiểu dữ liệu>(input())
Câu 32. Cho biết kết quả sau khi thực hiện đoạn chương trình sau?
game = [“Mario”, “Halo”, “Pikachu”, “Pokemon”]
print (game[3])
A. Mario B. Halo C. Pikachu D. Pokemon
Câu 33. Cho biết kết quả sau khi thực hiện đoạn chương trình sau?
cars = ['Ford', 'Volvo', 'BMW']
x = len(cars)
print(x)
A. len(cars) B. cars C. 3 D. 12
Câu 34. Cho khai báo list như sau:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
Đâu là giá trị của colors[2]?
A. orange B. indigo C. blue D. yellow
Câu 35. Chọn đáp án SAI: Cách viết nào sau đây đưa ra màn hình tất cả giá trị của các phần tử trong list
A có n phần tử?
A. for i in range(n): print(A[i]) B. print(A)
C. print(A[i]) D. for i in range(0,n,1): print(A[i])
Câu 36. Cho đoạn chương trình sau:
game = ['Mario', 'Halo', 'Pikachu', 'Pokemon']
for i in game: …
Hãy lựa chọn câu lệnh phù hợp để in ra lần lượt các phần tử trong danh sách game:
A. print(i) B. print(game[i]) C. print(i[game]) D. print(game)
Câu 37. Chọn phương án SAI: Để nhập một list T có n phần tử mang giá trị nguyên, sau khi nhập n từ
bàn phím, ta có thể dùng các câu lệnh sau:
A. T = [] D. n=int(input())
for i in range(n): T = []
T.append(int(input()) for i in range(n):
B. T = [0]*n a = int(input())
for i in range(n): T.insert(0, a)
T[i] = (int(input()) T.reverse()
C. T = []
while (len(T)!=n):
T = map(int, input().split())
Câu 38. Cho list A và đoạn chương trình như sau:
k=0
for i in range (1, len(A)):
if A[i] > A[k]: k = i
Đoạn chương trình trên thực hiện công việc?
A. Tìm phần tử nhỏ nhất trong mảng B. Tìm phần tử lớn nhất trong mảng
C. Tìm chỉ số của phần tử lớn nhất trong mảng D. Tìm chỉ số của phần tử nhỏ nhất trong mảng
Câu 39. Cho biết kết quả sau khi thực hiện đoạn chương trình sau:
A = [0] * 3
for i in range(0, 3): A[i] = i + 1
for i in range(0, 3):
if A[i] % 2 == 0: print (A[i])
A. 1 B.2 C. 1 3 D. 1 2 3
Câu 40. Cho list A và đoạn chương trình như sau:
S=0
for i in range(len(A)): S += A[i]
Đoạn chương trình trên thực hiện công việc?
A. Tính tích các phần tử trong mảng B. Tính tổng các phần tử trong mảng
C. Tính hiệu các phần tử trong mảng D. Tính thương các phần tử trong mảng
Câu 41. Cho list A và đoạn chương trình như sau:
m = A[0]
for i in range (len(A)):
if A[i] > m: m = A[i]
Đoạn chương trình trên thực hiện công việc?
A. Tìm chỉ số của phần tử nhỏ nhất trong mảng B. Tìm chỉ số của phần tử lớn nhất trong mảng
C. Tìm phần tử lớn nhất trong mảng D. Tìm phần tử nhỏ nhất trong mảng
Câu 42. Hãy cho biết kết quả sau khi thực hiện đoạn chương trình sau:
cars = [‘Ford’, ‘Volvo’, ‘BMW’, ‘Volvo’]
cars.remove(‘Volvo’)
print (cars)
A. ['Ford', 'BMW', 'Volvo'] B. ['Ford', 'BMW'] C. ['Ford', ‘Volvo', 'BMW'] D. Python báo lỗi.
Câu 43. Sau khi chạy chương trình dưới đây, giá trị của f là bao nhiêu:
a = [0] * 10
for i in range (0, 10): a[i] = 2 * i + 1
d = a[1] – a[0]
for i in range (1, 9):
if a[i] + d == a[ i + 1]: f =
1 else: f = 0
print(f)
A. 0 B. 1 C. 10 số 0 D. 10 số 1
Câu 44. Cho a là một list có n phần tử. Đoạn chương trình sau dùng để giải bài toán:
k=5–1
s=0
for i in range (0, n):
if a[i] % k == 0: s = s + a[i]
A.Tính tổng các phần tử trong list là bội của k B. Tính tổng các phần tử trong list là bội của 5
C. Tính tổng các phần tử chẵn trong list D. Tính tổng các phần tử lẻ trong list
Câu 45. Cho đoạn chương trình giải bài toán tìm phần tử có giá trị lớn nhất trong mảng và chỉ số của
phần tử tìm được như sau:
j=1
for i in range (1, n):
if a[i] > a[j]: j = i
print(‘Giá trị lớn nhất là’, a[j], ‘chỉ số:’, j)
Giải thích nào dưới đây cho đoạn chương trình trên là hợp lí?
A. Đưa ra tất cả các phần tử có giá trị lớn nhất và chỉ số của nó
B. Đưa ra giá trị lớn nhất và chỉ số của phần tử mang giá trị lớn nhất, nếu có nhiều phần tử cùng có giá trị lớn
nhất thì đưa ra phần tử có chỉ số nhỏ nhất
C. Đưa ra giá trị lớn nhất và chỉ số của phần tử mang giá trị lớn nhất, nếu có nhiều phần tử cùng có giá trị lớn
nhất thì đưa ra phần tử có chỉ số lớn nhất
D. Đưa ra giá trị lớn nhất và tất cả các chỉ số của các phần tử cùng mang giá trị lớn nhất
Câu 46. List b trong đoạn chương trình dưới đây bao gồm:
a = [0] * n
b = []

j=1
for i in range (0, n):
if a[i] % 5 == 0: b.append(a[i])
A. Các phần tử có giá trị bằng 0 trong list a B. Các phần tử chia hết cho 5 trong list a
C. Các phần tử chia hết cho 5 D. Các phần tử trong list a
Câu 47. Cho list X= [2, 1, 3, 4, 3]. Sau khi thực hiện phương thức X.remove(3), kết quả còn lại của X là:
A. [2, 1, 4] B. [2, 1, 3, 4] C. [2, 1, 4, 3] D. [2, 1, 3, 3]
Câu 48. Cho list X= [2, 1, 3, 4, 3]. Sau khi thực hiện phương thức X.reverse(), kết quả của X là:
A. [2, 1, 3, 4, 3] B. [1, 2, 3, 3, 4] C. [3, 4, 3, 1, 2] D. [4, 3, 3, 2, 1]
Câu 49. Giả sử có một list: i = [2, 3, 4]. Nếu muốn đảo ngược list này ta nên sử dụng lệnh nào sau đây?
A. i.reversed() B. i.reverse() C. list_i.reverse() D. list_i.reversed()
Câu 50. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất:
a = [1, 4, 20, 2, 5]
x = a[0]
for i in a:
if i > x:
x=i
print(x)
A. x là giá trị trung bình của list B. x là giá trị nhỏ nhất của list
C. x là giá trị lớn nhất của list D. x là tổng giá trị các số trong list
II. PHẦN TỰ LUẬN
1. Mẹ em dự định gửi một khoản tiền tiết kiệm tại một ngân hàng với lãi suất 5% một năm, nghĩa là sau một
năm, số tiền lãi bằng 5% số tiền gửi. Hết một năm, nếu mẹ không rút tiền thì cả vốn lẫn lãi sẽ tự động được gửi
tính cho năm tiếp theo. Viết chương trình nhập vào số tiền T (đơn vị triệu đồng), rồi thực hiện:
- Tính và đưa ra màn hình 3 dòng, mỗi dòng ghi số tiền sau mỗi năm trong 3 năm gửi liên tiếp cả gốc lẫn lãi để
mẹ tham khảo.
- Sau bao nhiêu năm thì từ số tiền gửi ban đầu là T, mẹ em sẽ nhận được ít nhất số tiền là N?
2. Viết chương trình tính dân số của một thành phố sau 10 năm nữa, biết rằng dân số hiện tại là 500.000 người,
và tỉ lệ tăng dân số hằng năm của thành phố này là 1.6%.
3. Trong đợt dịch bệnh bùng phát, thành phố H đã điều n cán bộ y tế xuống tận các phường/xã để hướng dẫn
người dân cách phòng chống dịch. Để lực lượng phân bố đồng đều, ban tổ chức muốn chia n cán bộ y tế vào
các tổ, sao cho số lượng cán bộ ở mỗi tổ là như nhau.
Yêu cầu: Em hãy viết chương trình giúp ban tổ chức đưa ra số cách chia mà số người trong mỗi tổ là như nhau.
Dữ liệu vào: Một số nguyên dương n duy nhất.
Kết quả: Một số nguyên dương là cách chia theo yêu cầu đề bài.
Test mẫu:
Input Output
9 3
Có 3 cách chia: - Chia thành 9 tổ, mỗi tổ có 1 người.
- Chia thành 3 tổ, mỗi tổ có 3 người.
- Chia thành 1 tổ, mỗi tổ có 9 người.
4. Nhà Mít có nuôi một đàn bò. Vào một ngày đẹp trời, Mít dắt n con bò đi vắt sữa. Mỗi con bò dự kiến sẽ vắt
được Ai lít sữa. Tuy nhiên, đàn bò có đặc tính lạ: cứ mỗi lần vắt sữa một con bò thì lũ còn lại sẽ sợ quá làm sản
lượng sữa của mỗi con giảm đi 1 lít. Nếu vắt sữa con bò thứ nhất thì n -1 con còn lại giảm sản lượng sữa đi 1
lít, vắt sữa con bò thứ 2 thì n - 2 con bò cọn lại tiếp tục giảm sản lượng 1 lít, cứ thế tiếp diễn…
Yêu cầu: Em hãy giúp Mít tính xem sản lượng sữa lớn nhất mà Mít có thể vắt được từ n con bò.
Dữ liệu vào: Số nguyên n và dãy n số nguyên tương ứng là sản lượng sữa của mỗi con bò.
Kết quả: Một số nguyên duy nhất là lượng sữa lớn nhất mà Mít có thể vắt được từ n con bò.
Test mẫu:
Input Output
4 10
4
4
4
4
4 6
2
4
1
3
5. Nhà nọ có hai anh em. Sau khi cha mẹ mất, người anh chia gia tài: anh nhận hết về phần mình, chỉ dành cho
em một cây khế. Mùa khế chín, đàn chim kéo nhau đến ăn, người em vác sào đuổi chim đi. Chim bay vòng
vòng quanh cây khế và hẹn: “Ăn quả, trả vàng”. Đúng hẹn, chim đưa người em ra đảo lấy vàng. Ở ngoài đảo có
n thỏi vàng với trọng lượng khác nhau, tuy nhiên, chim chỉ chở được người em và hai thỏi vàng ở trên lưng.
Yêu cầu: Tìm khối lượng vàng lớn nhất mà người em có thể mang về.
Dữ liệu vào: Số nguyên n và dãy n số nguyên tương ứng là khối lượng của mỗi thỏi vàng ở trên đảo.
Kết quả: Một số nguyên duy nhất là khối lượng vàng lớn nhất có thể mang về.
Test mẫu:
Input Output
3 8
3
2
5

You might also like