wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Ôn tập Tin 11 CS

Total questions: 72

Worksheet time: 40mins

Name
Class
Date
1.
Trong các dữ liệu sau, dữ liệu mảng một chiều là
a)
[1, 3, 5, 7, 9, 11].
b)
["A", "B", 1, 2, 3, 4].
c)
[1, 2, 3, [4, 5, 6]].
d)
[["Quang”, 7.5], ["Bình", 9.5]].
2.
Trong các dữ liệu sau, dữ liệu mảng hai chiều là
a)
[["Quang”, 7.5], ["Bình", 9.5]].
b)
["A", "B", 1, 2, 3, 4].
c)
["One", "Two", "Three"].
d)
[1, 3, 5, 7, 9, 11].
3.
Cho mảng A = [1, 3, 5, 7, 9, 11]. Để in ra màn hình tổng của các phần tử A, ta dùng câu lệnh
a)
print(sum(A))
b)
print sum(A)
c)
print(total(A))
d)
print total(A)
4.
Trong ngôn ngữ Python, hàm len() được sử dụng để lấy
a)
số phần tử trong mảng.
b)
giá trị lớn nhất trong mảng.
c)
giá trị nhỏ nhất trong mảng.
d)
tổng số phần tử trong mảng.
5.
Cho hai mảng một chiều A, B trong Python. Để ghép A và B thành mảng một chiều C, ta dùng câu lệnh
a)
C = A + B
b)
C = A & B
c)
C = A * B
d)
C = A % B
6.

Cho ma trận A kích thước m × n có dạng như hình. Danh sách A có

a)
m phần tử.
b)
m × n phần tử.
c)
n phần tử.
d)
phần tử.
7.
Cho hai số k, n và k < n. Viết một lệnh trong Python để tạo mảng có dạng [0,..., 0, 1, 0, ..., 0], trong đó phía trước số 1 có k số 0, sau số 1 có n – 1 – k số 0. Câu lệnh đúng là
a)
A = [0]*k + [1] + [0]*(n–1–k)
b)
A = [0]*k + [1] + [0]*[n–1–k]
c)
A = (0)*k + (1) + (0)*[n–1–k]
d)
A = (0)*k + (1) + (0)*(n–1–k)
8.

Cho chương trình như hình bên. Khi kết thúc chương trình, kết quả trên màn hình là

a)
tổng các phần tử của mảng a.
b)
giá trị các phần tử của mảng a.
c)
số lượng phần tử của mảng a.
d)
phần tử lớn nhất của mảng a.
9.
Kết quả trên màn hình của chương trình sau là
a)
[[0, 0], [0, 0], [0, 0], [0, 0]]
b)
[[0, 0, 0, 0], [0, 0, 0, 0]]
c)
([0, 0], [0, 0], [0, 0], [0, 0])
d)
([0, 0, 0, 0], [0, 0, 0, 0])
10.
Cho danh sách: DS = [("Hà", 7.5), ("Bình", 8), ("Quang", 9.2), ("An", 10)]. Đoạn chương trình tính điểm trung bình của cả danh sách là
a)

b)

c)

d)

11.
Viết chương trình nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số nguyên. Chương trình đúng là
a)

b)

c)

d)

12.

Cho chương trình như hình bên. Khi kết thúc chương trình, k bằng

a)
chỉ số của phần tử lớn nhất trong mảng.
b)
giá trị của phần tử lớn nhất trong mảng.
c)
chỉ số của phần tử nhỏ nhất trong mảng.
d)
giá trị của phần tử nhỏ nhất trong mảng.
13.
Cho ma trận có m hàng và n cột. Đoạn chương trình in ra màn hình ma trận đã cho dưới dạng như hình bên là
a)

b)

c)

d)

14.

Câu lệnh khai báo ma trận M là

a)

b)

c)

d)

15.
Cho ma trận A có m hàng và n cột. Để xóa hàng cuối cùng trong ma trận, ta dùng câu lệnh
a)
del A[m–1]
b)
del A[n–1]
c)
del A[m]
d)
del A[n]
16.
Cho ma trận có dạng tương tự như sau: Chương trình tính tổng đường chéo của mảng là (tong = 11 + 3 + 99 + 10 = 123)
a)

b)

c)

d)

17.
Trong mảng hai chiều, để truy cập phần tử tại hàng 2, cột 3, ta viết
a)
array[1][2]
b)
array[2, 3]
c)
array(2, 3)
d)
array[3][2]
18.
Khi sử dụng lệnh append để bổ sung một phần tử vào list thì phần tử đó được chèn vào vị trí
a)
cuối cùng.
b)
đầu tiên.
c)
ứng với chỉ số 1.
d)
được chỉ định.
19.

Kết quả được in ra bởi chương trình sau là

a)

6

[2, 3, 4, 5]

b)

6

(2, 3, 4, 5)

c)

5

[2, 3, 4, 5]

d)

5

(2, 3, 4, 5)

20.
Để khởi tạo danh sách a gồm 50 số 0, câu lệnh đúng là
a)
a = [0]*50
b)
a = 0...50
c)
a = [0...50]
d)
a = [0*50]
21.
Để xóa phần tử thứ 2 trong danh sách a ta dùng lệnh
a)
del(a[1])
b)
del(a[2])
c)
remove(a[2])
d)
remove(a[1])
22.

Cho đoạn lệnh sau:

a = [7, 3, 8, 1, 9]

del(a[3])

Danh sách a thu được là

a)
[7,3,8,9]
b)
[7,3,8,1]
c)
[7,8,1,9]
d)
[7,3,1,9]
23.

Cho đoạn lệnh sau:

a = [7, 3, 8, 1, 9]

a.remove(3)

Danh sách a thu được là

a)
[7,8,1,9]
b)
[7,3,1,9]
c)
[7,3,8,9]
d)
báo lỗi
24.
Để xóa tất cả các phần tử trong danh sách a, ta dùng câu lệnh
a)
a.clear()
b)
a.append()
c)
a.del()
d)
a.remove()
25.
Để xóa 2 phần tử đầu tiên trong danh sách a, ta dùng câu lệnh
a)
del(a[0:2])
b)
del(a[1:1])
c)
del(a[1:2])
d)
del(a[0:1])
26.
Để thêm số 5 vào cuối danh sách a, ta dùng câu lệnh
a)
a.append(5)
b)
a.append[5]
c)
a.pop(5)
d)
a.pop[5]
27.
Để in ra màn hình phần tử đầu tiên trong danh sách a, ta dùng câu lệnh
a)
print(a[0])
b)
print(a[1])
c)
print(a(0))
d)
print(a(1))
28.
Để in ra màn hình phần tử cuối cùng trong danh sách a, ta dùng câu lệnh
a)
print(a[len(a)–1])
b)
print(a[len(a)])
c)
print(a(len(a)–1))
d)
print(len(a)–1)
29.

Cho đoạn lệnh sau:

a = [5,7,3,4,1]

a.insert(2,9)

Danh sách a thu được là

a)
[5,7,9,3,4,1]
b)
[5,9,7,3,4,1]
c)
[5,7,3,4,1,2,9]
d)
[2,9,5,7,3,4,1]
30.
Cho danh sách a = [1, 2, 3, 4, 5]. Lệnh sẽ trả về phần tử cuối cùng trong danh sách là
a)
a[–1]
b)
a[0]
c)
a[1]
d)
a[–2]
31.
Cho danh sách a = [1, 2, 3, 4, 5]. Lệnh sẽ trả về danh sách mới là bao gồm 3 phần tử đầu tiên của danh sách a là
a)
a[:3]
b)
a[3:]
c)
a[:4]
d)
a[4:]
32.
Trong thuật toán tìm kiếm tuần tự, khi tìm một số trong dãy thẻ số, sau bước “Lật thẻ thứ nhất” thì ta sẽ thực hiện bước tiếp theo là
a)
kiểm tra số thẻ có đúng là số cần tìm không.
b)
kiểm tra tất cả các thẻ số đã được lật hết chưa.
c)
thông báo vị trí tìm thấy thẻ số cần tìm.
d)
thông báo không tìm thấy thẻ số và kết thúc.
33.
Trong thuật toán tìm kiếm tuần tự, khi tìm một số K trong dãy số, sau bước “Kiểm tra: phần tử A[i] có bằng số K không”, nếu nhận được kết quả Bằng nhau thì ta sẽ thực hiện bước tiếp theo là
a)
thông báo vị trí tìm thấy số bằng K.
b)
kiểm tra số tiếp theo có bằng số K không.
c)
thông báo không tìm thấy số bằng K.
d)
loại bỏ nửa dãy số chắc chắn không chứa K.
34.
Khi dùng thuật toán tìm kiếm nhị phân để tìm một số K trong dãy thẻ số (được sắp xếp theo thứ tự tăng dần), sau bước “So sánh K với phần tử giữa dãy A[mid]”, nếu nhận kết quả K > A[mid], ta thực hiện bước tiếp theo là
a)
xét dãy thẻ số đứng sau thẻ số vừa lật.
b)
xét dãy thẻ số đứng trước thẻ số vừa lật.
c)
thông báo vị trí tìm thấy thẻ số K.
d)
thông báo không tìm thấy thẻ số K.
35.
Trong thuật toán tìm kiếm nhị phân, số hạng ở giữa dãy có vị trí là
a)
phần nguyên của (left + right) : 2.
b)
giá trị làm tròn của (left + right) : 2.
c)
phần nguyên của (left + right) : 3.
d)
giá trị làm tròn của (left + right) : 3.
36.
Trong các câu lệnh sau, câu lệnh được dùng để mở và ghi dữ liệu vào tệp “data.inp” là
a)
F = open("data.inp", "w").
b)
F = open("data.inp").
c)
F = openWrite("data.inp”).
d)
F = openWrite("data.inp","w").
37.

Các dữ liệu trong tệp sẽ KHÔNG bị ghi đè trong trường hợp

a)
tệp được mở với tham số “a”.
b)
kết thúc chương trình mà không có lệnh đóng tệp.
c)
tệp được mở với tham số “w”.
d)
cứ có lệnh mở tệp là các dữ liệu trong tệp có thể bị ghi đè.
38.
Về thuật toán tìm kiếm tuần tự, phát biểu đúng là
a)
không cần sắp xếp mảng dữ liệu, lần lượt kiểm tra từng phần tử trong mảng dữ liệu.
b)
phải sắp xếp các phần tử trong mảng theo thứ tự, sau đó lần lượt kiểm tra từng phần tử.
c)
sắp xếp các phần tử trong mảng theo thứ tự, chia mảng dữ liệu thành hai nửa, kiểm tra phần tử ở giữa để xem cần tiếp tục tìm kiếm ở nửa bên trái hay nửa bên phải, lặp lại các bước trên cho đến khi tìm được phần tử cần tìm.
d)
không cần sắp xếp mảng dữ liệu, chia mảng dữ liệu thành hai nửa, kiểm tra phần tử ở giữa để xem cần tìm kiếm ở nửa bên trái hay nửa bên phải, lặp lại các bước trên cho đến khi tìm được phần tử cần tìm.
39.
Trong các đặc điểm sau đây, ưu điểm của thuật toán tìm kiếm tuần tự là
a)
không cần sắp xếp trước dữ liệu đầu vào.
b)
có thể hoạt động tốt trên mảng dữ liệu đã sắp xếp có kích thước lớn.
c)
chỉ có thể hoạt động tốt trên mảng dữ liệu đã sắp xếp.
d)
tốc độ tìm kiếm chậm trên mảng dữ liệu có kích thước lớn.
40.
Viết chương trình tìm số lớn nhất trong dãy số sau: A = [1, 3, 9, 8, 10, 19, 27, 11, 17]. Chương trình đúng là
a)

b)

c)

d)

41.
Lệnh mở tệp để ghi dữ liệu từ đầu là
a)
f = open(<file name>, "w", encoding = "UTF−8").
b)
f = open(<file name>, "r", encoding = "UTF−8").
c)
f = open(<file name>, "o", encoding = "UTF−8").
d)
f = open(<file name>, "a", encoding = "UTF−8").
42.
Để đọc toàn bộ dữ liệu tệp, đưa kết quả vào một danh sách (list), mỗi phần tử là một dòng, ta sử dụng lệnh
a)
f.readlines().
b)
f.readline().
c)
readlines(f).
d)
readline(f).
43.
Trong bài toán sắp xếp dãy theo thứ tự tăng dần, sau vòng lặp thứ nhất của thuật toán sắp xếp chọn, phương án ghép đúng là: Phần tử có giá trị
a)
nhỏ nhất ở vị trí đầu tiên của dãy.
b)
nhỏ nhất ở vị trí cuối cùng của dãy.
c)
lớn nhất ở vị trí đầu tiên của dãy.
d)
lớn nhất ở vị trí cuối cùng của dãy.
44.
Dãy A gồm n phần tử A[0], A[1],…, A[n–1]. Ý tưởng của thuật toán sắp xếp chọn là cho chỉ số i chạy từ
a)
0 đến n–2.
b)
1 đến n–1.
c)
1 đến n–2.
d)
0 đến n–1.
45.
Dãy A gồm n phần tử A[0], A[1],…, A[n–1]. Áp dụng thuật toán sắp xếp chọn, ta cần tìm phần tử
a)
nhỏ nhất nằm trong dãy A[i], A[i+1], … , A[n–1] và đổi chỗ phần tử nhỏ nhất này với A[i].
b)
nhỏ nhất nằm trong dãy A[i], A[i+1], … , A[n–1] và đổi chỗ phần tử nhỏ nhất này với A[i–1].
c)
lớn nhất nằm trong dãy A[i], A[i+1], … , A[n–1] và đổi chỗ phần tử lớn nhất này với A[i].
d)
lớn nhất nằm trong dãy A[i], A[i+1], … , A[n–1] và đổi chỗ phần tử lớn nhất này với A[i–1]
46.
Cho phát biểu sau: “Thuật toán thực hiện nhiều vòng lặp, kiểm tra hai phần tử cạnh nhau, nếu chúng chưa sắp xếp đúng thì đổi chỗ”. Phát biểu trên nói về thuật toán sắp xếp
a)
nổi bọt.
b)
chèn.
c)
chọn
d)
nhanh.
47.
Ý tưởng của thuật toán sắp xếp chọn là
a)
tại vòng lặp thứ i, chọn phần tử nhỏ nhất nằm trong dãy A[i], A[i+1], …, A[n–1] và đổi chỗ phần tử nhỏ nhất này với A[i].
b)
sau mỗi bước lặp, phần tử tương ứng sẽ được chèn vào vị trí đúng của dãy con đã sắp xếp là các phần tử trước vị trí đang duyệt.
c)
thực hiện nhiều vòng lặp, kiểm tra hai phần tử cạnh nhau, nếu phần tử trước lớn hơn phần tử sau thì đổi chỗ.
d)
so sánh hai phần tử đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng cho nhau.
48.
Ý tưởng của thuật toán sắp xếp chèn là
a)
sau mỗi bước lặp, phần tử tương ứng sẽ được chèn vào vị trí đúng của dãy con đã sắp xếp là các phần tử trước vị trí đang duyệt.
b)
tại vòng lặp thứ i, chọn phần tử nhỏ nhất nằm trong dãy A[i], A[i+1], …, A[n–1] và đổi chỗ phần tử nhỏ nhất này với A[i].
c)
thực hiện nhiều vòng lặp, kiểm tra hai phần tử cạnh nhau, nếu phần tử trước lớn hơn phần tử sau thì đổi chỗ.
d)
so sánh hai phần tử đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng cho nhau.
49.
Ý tưởng của thuật toán sắp xếp nổi bọt là
a)
thực hiện nhiều vòng lặp, kiểm tra hai phần tử cạnh nhau, nếu phần tử trước lớn hơn phần tử sau thì đổi chỗ.
b)
tại vòng lặp thứ i, chọn phần tử nhỏ nhất nằm trong dãy A[i], A[i+1], …, A[n–1] và đổi chỗ phần tử nhỏ nhất này với A[i].
c)
sau mỗi bước lặp, phần tử tương ứng sẽ được chèn vào vị trí đúng của dãy con đã sắp xếp là các phần tử trước vị trí đang duyệt.
d)
so sánh hai phần tử đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng cho nhau.
50.
Một chương trình/thuật toán là hiệu quả nếu độ phức tạp của thuật toán này là thấp, nghĩa là để thực hiện chương trình/thuật toán này, ta phải
a)
tốn ít thời gian và tốn ít bộ nhớ.
b)
tốn ít thời gian và tốn nhiều bộ nhớ.
c)
tốn nhiều thời gian và tốn ít bộ nhớ.
d)
tốn nhiều thời gian và tốn nhiều bộ nhớ.
51.
Tính đúng của thuật toán cần được chứng minh bằng
a)
lập luận toán học.
b)
dữ liệu kiểm thử.
c)
độ phức tạp của thuật toán.
d)
câu lệnh chương trình.
52.
Tính hiệu quả của chương trình/thuật toán được xem xét trên cơ sở đánh giá
a)
độ phức tạp tính toán.
b)
câu lệnh của chương trình.
c)
tính đúng của thuật toán.
d)
độ tin cậy của chương trình.
53.
Giả sử một chương trình đã được kiểm tra chạy chính xác với hơn 1000 lần test. Mệnh đề đúng là
a)
chương trình đó có độ tin cậy cao.
b)
chưa thể nói gì được về chương trình đó.
c)
chương trình đó hoàn toàn chính xác.
d)
chương trình đó có thể đúng, có thể sai.
54.
Để chứng minh một thuật toán là đúng cần phải làm gì? Phương án đúng là
a)
cần chứng minh bằng toán học chặt chẽ tính đúng của thuật toán.
b)
cần tiến hành kiểm thử chương trình cài đặt thuật toán, kiểm thử càng nhiều càng tốt.
c)
cần cài đặt thuật toán trên càng nhiều ngôn ngữ lập trình càng tốt.
d)
cần chạy thử chương trình cài đặt thuật toán xem thời gian chạy có nhanh hay không.
55.
Phát biểu SAI là
a)
với bài toán sắp xếp dãy số A theo thứ tự tăng dần, bộ dữ liệu kiểm thử có kích thước là số lớn nhất trong dãy số A.
b)
với thuật toán sắp xếp chèn, trong các bộ dữ liệu kiểm thử cùng kích thước n, bộ dữ liệu cho thời gian ít nhất là dãy đã sắp xếp đúng.
c)
với bài toán tính tổng 1 + 2 + … + n với n là số tự nhiên cho trước, bộ dữ liệu kiểm thử có kích thước là số n.
d)
với bài toán tính gcd(a,b) – ước chung lớn nhất của hai số tự nhiên cho trước a, b, bộ dữ liệu kiểm thử có kích thước là max(a, b).
56.

Cho chương trình sau:

Phép toán tích cực nằm ở dòng thứ

a)
4
b)
5
c)
3
d)
2
57.

Cho chương trình sau: Phép toán tích cực nằm ở dòng thứ

a)
5
b)
4
c)
3
d)
2
58.
Khi tính thời gian thực hiện chương trình, lệnh KHÔNG được tính là 1 đơn vị thời gian là lệnh
a)
lặp for.
b)
gán.
c)
print.
d)
đọc dữ liệu.
59.

Cho chương trình như sau: Biểu thức thể hiện chính xác thời gian chạy của chương trình là

a)
T(n) = n + 3.
b)

T(n) = n2 + 3.

c)
T(n) = 3n + 1.
d)
T(n) = n + 2.
60.

Cho chương trình như sau: Biểu thức thể hiện chính xác thời gian chạy của chương trình là

a)

T(n) =

b)
T(n) = 3n.
c)

T(n) =

d)

T(n) =

61.

Cho chương trình như sau: Biểu thức thể hiện chính xác thời gian chạy của chương trình là

a)

T(n) = n2 + 3.

b)
T(n) = n + 3.
c)
T(n) = 3n + 1.
d)
T(n) = n + 2.
62.

Cho chương trình như sau:

Biểu thức thể hiện chính xác thời gian chạy của chương trình là

a)

T(n) =

b)
T(n) = n + 3.
c)

T(n) =

d)

T(n) =

63.

Áp dụng các quy tắc đã học, hàm thời gian T(n) = n3 + nlogn + 2n + 1 có độ phức tạp là

a)

O(n3).

b)
O(nlogn).
c)
O(n).
d)
O(1).
64.

Áp dụng các quy tắc đã học, hàm thời gian T(n) = 3n4 + 2n2logn + 10 có độ phức tạp là

a)

O(n4).

b)

O(n3).

c)

O(n2logn).

d)
O(1).
65.
Chọn phương án ghép đúng: Phương pháp thiết kế làm mịn dần là phương pháp thiết kế được chia làm nhiều bước,
a)
bước sau thường là chi tiết hơn, làm mịn hơn một bước ở trước đó.
b)
các bước đều độc lập hoàn toàn với nhau.
c)
bước sau thường là tổ hợp, kết hợp các kết quả của các bước trước đó.
d)
mỗi bước sẽ tương ứng với một hàm hoặc chương trình con nào đó của bước trước.
66.

Phương án SAI khi nói về ưu điểm của phương pháp thiết kế theo mô đun là

a)
một người có thể viết toàn bộ chương trình.
b)
chương trình ngắn gọn, sáng sủa, dễ hiểu.
c)
các mô đun được thiết lập một lần và sử dụng nhiều lần.
d)
dễ dàng bổ sung các mô đun mới.
67.

Xem chương trình sau và trả lời câu hỏi

Mục đích chính của hàm NhapDL là

a)
mở tệp Data.inp và đọc dữ liệu.
b)
xử lý dữ liệu trước khi đưa vào chương trình.
c)
báo cáo kết quả xử lý dữ liệu.
d)
lưu trữ dữ liệu vào tệp Data.inp.
68.

Xem chương trình sau và trả lời câu hỏi

Mảng P trong hàm NhapDL lưu trữ thông tin

a)
tên mặt hàng.
b)
cả mã và tên mặt hàng.
c)
doanh số của từng mặt hàng.
d)
mã mặt hàng.
69.

Xem chương trình sau và trả lời câu hỏi

Mảng S trong hàm NhapDL lưu trữ thông tin

a)
doanh số của từng mặt hàng.
b)
mã mặt hàng.
c)
tên mặt hàng.
d)
cả mã và tên mặt hàng.
70.

Xem chương trình sau và trả lời câu hỏi

Sau khi gọi hàm NhapDL(fin), hai mảng P và S chứa dữ liệu

a)
mảng P chứa mã mặt hàng, mảng S chứa doanh số tương ứng.
b)
mảng P chứa tên mặt hàng, mảng S chứa doanh số tương ứng.
c)
mảng P chứa cả mã và tên mặt hàng, mảng S chứa doanh số tương ứng.
d)
mảng P chứa mã mặt hàng, mảng S chứa cả mã và tên mặt hàng.
71.

Xem chương trình sau và trả lời câu hỏi

Chức năng chính của hàm Sapxep(A, B) là

a)
mở tệp Data.inp và đọc dữ liệu.
b)
xử lý dữ liệu trước khi đưa vào chương trình.
c)
báo cáo kết quả xử lý dữ liệu.
d)
sắp xếp hai mảng A và B theo thứ tự tăng dần của A.
72.

Xem chương trình sau và trả lời câu hỏi

Sau khi gọi hàm Sapxep(P, S), dữ liệu trong hai mảng P và S được sắp xếp theo cách

a)
các mặt hàng được sắp xếp theo thứ tự tăng dần của tên mặt hàng, doanh số tương ứng cũng được sắp xếp theo thứ tự đó.
b)
các mặt hàng được sắp xếp theo thứ tự tăng dần của mã mặt hàng, doanh số tương ứng cũng được sắp xếp theo thứ tự đó.
c)
các mặt hàng được sắp xếp theo thứ tự tăng dần của doanh số, mã mặt hàng tương ứng cũng được sắp xếp theo thứ tự đó.
d)
các mặt hàng được sắp xếp theo thứ tự giảm dần của doanh số, mã mặt hàng tương ứng cũng được sắp xếp theo thứ tự đó.