Đề thi giữa kì 2 Tin học 10 Kết nối tri thức có đáp án - Đề 2
25 câu hỏi
Cho đoạn chương trình:
j = 0
for i in range(5):
j = j + i
print(j)
Sau khi thực hiện chương trình giá trị của biến j bằng bao nhiêu?
10.
12.
15.
14.
Đáp án đúng là A
Cho đoạn lệnh sau:
for i in range(1,10,2):
print(i)
Trên màn hình i có các giá trị là
1,3,5,7,9.
1,2,3,4,5,6,7,8,9,10.
1,3,5,7,9,10.
1,3,5,7,10.
Đáp án đúng là A
Số công việc cần phải lặp với số lần xác định?
1) Đếm số học sinh của lớp.
2) Đếm số chia hết cho 5 trong đoạn từ 10 tới 100.
3) Đọc tên lần lượt từng học sinh của một lớp có 30 em.
4) Chạy 5 vòng sân bóng.
5) Tính tổng các số có 2 chữ số.
3.
4.
5.
2.
Đáp án đúng là B
Cho biết kết quả khi chạy đoạn chương trình sau:
s = 0
for i in range(3):
s = s+2*i
print(s)
12.
10.
8.
6.
Đáp án đúng là D
Biến chạy trong vòng lặp for i in range(<giá trị cuối>) tăng lên mấy đơn vị sau mỗi lần lặp?
1.
2.
0.
Tất cả đều sai.
Đáp án đúng là A
Để khai báo một danh sách rỗng ta dùng cú pháp sau
< tên danh sách > ==[].
< tên danh sách > = 0.
< tên danh sách > = [].
< tên danh sách > = [0].
Đáp án đúng là C
Phương thức nào sau đây dùng để thêm phần tử vào list trong python?
abs().
link().
append().
add().
Đáp án đúng là C
Để xóa 2 phần tử ở vị trí 1 và 2 trong danh sách a hiện tại ta dùng lệnh nào?
del a[1:2].
del a[0:2].
del a[0:3].
del a[1:3].
Đáp án đúng là D
Chương trình sau thực hiện công việc gì?
A=[]
for i in range(1, 1001):
if(i % 7 == 0) and (i % 5 !=0):
A.append(str(i))
print(','.join(A))
Tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 1 và 1000.
Tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 1 và 1000 và chuỗi thu được in trên một dòng, có dấu “,” ngăn cách giữa các số.
Tìm tất cả các số chia hết cho 7 và là bội số của 5, nằm trong đoạn 1 và 1000.
Tìm tất cả các số không chia hết cho 7 nhưng là phải bội số của 5, nằm trong đoạn 1 và 1000.
Đáp án đúng là B
Đâu là kiểu dữ liệu danh sách?
list.
bool.
str.
int.
Đáp án đúng là A
Sau khi thực hiện lệnh sau, biến s sẽ có kết quả là
s1 ="3986443"
s2 = ""
for ch in s1:
if int(ch) % 2 == 0:
s2 = s2 + ch
print(s2)
3986443.
8644.
39864.
443.
Đáp án đúng là B
Trong Python, câu lệnh nào dùng để tính độ dài của xâu s?
len(s).
length(s).
s.len().
s. length().
Đáp án đúng là A
Chương trình sau bị lỗi ở dòng thứ bao nhiêu ?
def tinh(a, b):
if(b != 0):
return a // b
s = tinh(1, m)
print(s)
2.
3.
4.
5.
Đáp án đúng là C
Các tham số của f có kiểu dữ liệu gì nếu hàm f được gọi như sau:
f( ‘5.0’)
str.
float.
int.
Không xác định.
Đáp án đúng là A
Đoạn chương trình sau sẽ in ra số nào?
>>> def f(x,y):
z = x + y
return x*y*z
>>> f(1,4)
10.
18.
20.
30
Đáp án đúng là C
Đâu là ưu điểm của chương trình con?
Cấu trúc rõ ràng.
Dễ hiểu hơn.
Cả A, B đều đúng.
Cả A, B đều sai.
Đáp án đúng là C
Giá trị của m là bao nhiêu sau biết kết quả là 5:
def tinhSum(a, b):
return a + b
s = tinhSum(1, m)
print(s)
1.
4.
2.
3.
Đáp án đúng là B
Các khối lệnh trong cấu trúc tuần tự sẽ được thực hiện như thế nào?
Khối các câu lệnh chỉ được thực hiện tuy thuộc vào đỉều kiện nào đó là đúng hay sai.
Khối lệnh này tương ứng với cấu trúc rẽ nhánh và được thể hiện bằng câu lệnh điều kiện if.
Khối các câu lệnh được thực hiện lặp đi lặp lại tuỳ theo điều kiện nào đỏ vẫn còn đúng hay sai.
Khối gồm các lệnh được thực hiện theo trình tự từ trên xuống dưới.
Đáp án đúng là D
Cho đoạn chương trình python sau:
Tong = 0
while Tong < 10:
Tong = Tong + 1
Sau khi đoạn chương trình trên được thực hiện, giá trị của tổng bằng bao nhiêu:
9.
10.
11.
12.
Đáp án đúng là B
Kết quả của chương trình sau là gì?
x = 8
y = 9
if x > y:
print('x lớn hơn y')
elif x==y:
print('x bằng y')
else:
print('x nhỏ hơn y')
x lớn hơn y.
x bằng y.
x nhỏ hơn y.
y nhỏ hơn x
Đáp án đúng là C
Dựa vào đoạn mã dưới đây, hãy xác định xem các phát biểu sau là đúng hay sai:
![Dựa vào đoạn mã dưới đây, hãy xác định xem các phát biểu sau là đúng hay sai: a) Vòng lặp for trong đoạn mã sẽ chạy đúng bằng số phần tử trong danh sách A. b) Điều kiện A[i] > 0 trong đoạ (ảnh 1)](https://video.vietjack.com/upload2/images/1774709300/image1.png)
Vòng lặp for trong đoạn mã sẽ chạy đúng bằng số phần tử trong danh sách A.
Điều kiện A[i] > 0 trong đoạn mã trên chỉ cho phép cộng những số dương vào biến S.
Giá trị của biến S sau khi thực hiện đoạn mã trên sẽ là tổng của tất cả các phần tử trong A.
Nếu danh sách A chứa ít nhất một giá trị dương, thì giá trị của S sẽ không bằng 0 sau khi đoạn mã được thực hiện.
a). Đ. Vì range(len(A)) tạo ra một dãy số có độ dài bằng với số phần tử trong danh sách A, vì vậy vòng lặp sẽ chạy đúng số lần tương đương với số phần tử trong A.
b). Đ. Điều kiện A[i] > 0 đảm bảo chỉ những số dương mới được cộng vào biến S, các giá trị âm và bằng 0 sẽ bị bỏ qua.
c). S. Biến S chỉ là tổng của các phần tử dương trong danh sách A, không phải là tổng của tất cả các phần tử.
d). Đ. Nếu có ít nhất một giá trị dương trong A, thì giá trị đó sẽ được cộng vào S, làm cho S không bằng 0.
Cho xâu ký tự G = "Programming". Hãy xác định các câu sau đúng hay sai:
Ký tự đầu tiên trong xâu G là 'P', và có thể truy cập bằng G[0].
Lệnh G[5] = 'a' sẽ thay đổi ký tự thứ 5 trong xâu thành 'a'.
Xâu G có thể được coi như một danh sách các ký tự nhưng không thể thay đổi các ký tự đó.
Độ dài của xâu G là 11, có thể tính bằng lệnh len(G).
a). Đ. Vì chỉ số 0 truy cập ký tự đầu tiên trong xâu, nên G[0] sẽ trả về 'P'.
b). S. Vì xâu trong Python là bất biến, không thể thay đổi ký tự trong xâu bằng cách này.
c). Đ. Vì mặc dù có thể truy cập các ký tự trong xâu như danh sách, nhưng không thể thay đổi chúng.
d). Đ. Vì lệnh len(G) trả về số lượng ký tự trong xâu, và xâu "Programming" có 11 ký tự.
Dựa vào kiến thức về biểu thức logic và các phép toán logic trong Python, hãy xác định các ý sau đây là đúng hay sai:
Biểu thức 10 > 5 and 8 < 12 sẽ cho kết quả là True.
Biểu thức 15 == 15 or 3 > 7 sẽ cho kết quả là False.
Biểu thức not (20 <= 10) sẽ cho kết quả là True.
Biểu thức 5 != 5 and 7 == 7 sẽ cho kết quả là True.
a) Đ (True and True trả về True)
b) S (True or False trả về True)
c) Đ (not (true) False
d) S (False and True False)
Em hãy nêu cú pháp về câu lệnh lặp với số lần chưa biết trước? Lấy ví dụ minh hoạ.
Cú pháp
while <điều kiện>:
<khối lệnh lặp>
Ví dụ
mat_khau = ""
while mat_khau != "1234":
mat_khau = input("Nhập mật khẩu: ")
print("Đăng nhập thành công!")
Cho chương trình sau:
n = 20
C = 0
for k in range(n):
if k%3 = 0: # Điều kiện k là bội của 3 là k%3 = 0
C = C + 1
print(C)
Em hãy xác định các lỗi của chương trình và sửa lại cho đúng để được chương trình đếm số lượng số chia hết cho 3 trong khoảng từ 1 đến n.
- Lỗi so sánh (k%3 = 0): Trong lập trình, dấu = là phép gán. Để so sánh bằng, ta phải dùng dấu ==.
- Lỗi thụt lề (Indentation): Các lệnh bên trong vòng lặp for và câu lệnh if phải được thụt lề vào trong.
- Lỗi logic phạm vi (range(n)): Đề bài yêu cầu tính trong khoảng từ 1 đến $n$. Hàm range(20) chỉ chạy từ 0 đến 19. Để bao gồm cả số 20, ta cần dùng range(1, n + 1).







