You are on page 1of 16

Câu 1: Toán tử nào sau đây giúp duyệt từng phần tử của mảng:

A. in
B. and
C. if
D. or
Câu 2: Cho đoạn chương trình:
B=[“Lan”, “Ngọc”, “Linh”, “Đan”, “Nhi”]
print(B[1])
Hãy cho biết kết quả của chương trình trên:
A. Ngọc
B. Lan
C. Đan
D. Nhi
Câu 3: Hãy chọn phương án ghép đúng nhất. Kiểu dữ liệu có cấu trúc:
A. Trong mỗi ngôn ngữ lập trình đều có cách thức xây dựng giống nhau;
B. Trong ngôn ngữ lập trình bậc cao chỉ là kiểu mảng, bản ghi và xâu;
C. Là kiểu dữ liệu chuẩn do mỗi ngôn ngữ lập trình cho sẵn, người lập trình chỉ cần
khai báo nhờ các tên chuẩn;
D. Là kiểu dữ liệu do người lập trình xây dựng từ những kiểu dữ liệu đã có;
Câu 4: Trong tin học, một cấu trúc dữ liệu mảng hai chiều được hiểu là:
A. Hai mảng một chiều lồng vào nhau.
B. Một bảng hay một ma trận.
C. Một hệ trục tọa độ.
D. Xâu dữ liệu lồng nhau.
Câu 5: Để duyệt theo từng phần tử trong mảng hai chiều, ta sẽ dùng lệnh nào?
A. Hai lệnh in lồng nhau.
B. Hai lệnh for lồng nhau.
C. Hai lệnh if lồng nhau.
D. Câu lệnh if rẽ nhánh.
Câu 6: Việc thiết kế thuật toán tìm kiếm không phụ thuộc vào các yếu tố nào sau đây?
A. Cấu trúc của miền dữ liệu cần tìm kiếm.
B. Đối tượng mà chúng ta muốn tìm.
C. Danh sách kết quả mà chúng ta tìm kiếm.
D. Tiêu chí cụ thể của bài toán tìm kiếm.
Câu 7: Bài toán tìm kiếm k trong danh sách A có n phần tử có đầu vào là gì?
A. Dãy số A[0], A[1],..., A[n-1] và giá trị k.
B. Tập số n+1 số nguyên, và giá trị k.
C. Dãy số A[0], A[1],..., A[n-1] và giá trị k+1.
D. Tổng của n phần tử trong danh sách A.
Câu 8: Thuật toán tìm kiếm tuần tự không phù hợp cho....
A. Danh sách nhỏ.
B. Tìm kiếm phần tử cụ thể trong danh sách không được sắp xếp.
C. Danh sách quá lớn.
D. Danh sách có ít phần tử.
Câu 9: Khi nào thì tìm kiếm tuần tự sẽ tốn nhiều thời gian nhất?
A. Khi danh sách có nhiều hơn 10 phần tử.
B. Khi không tìm thấy phần tử cần tìm.
C. Khi giá trị cần tìm kiếm nằm ở vị trí cuối cùng của dãy.
D. Khi giá trị cần tìm xuất hiện nhiều lần.
Câu 10: Bài toán tìm kiếm nhị phân tìm kiếm với dãy số như thế nào?
A. Đã được sắp xếp.
B. Phải toàn số dương.
C. Phải toàn số âm.
D. Phải có số 0.
Câu 11: Bài toán tìm kiếm nhị phân được thực hiện bằng cách nào?
A. Duyệt liên tục tất cả các phần tử của dãy.
B. Liên tục thu hẹp phạm vi tìm kiếm.
C. Duyệt các phần tử từ trái sang phải.
D. Duyệt các phần tử từ phải sang trái.
Câu 12: Vì sao thuật toán tìm kiếm nhị phân có hiệu quả tìm kiếm cao trong các danh
sách lớn?
A. Vì sau mỗi bước, thuật toán tìm kiếm nhị phân sẽ loại đi gần một nửa số giá trị của
danh sách.
B. Vì trong thuật toán tìm kiếm nhị phân mỗi bước có thể duyệt qua rất nhiều phần
tử.
C. Vì thuật toán tìm kiếm nhị phân duyệt phần tử từ hai đầu vào giữa nên sẽ tìm được
nhanh chóng.
D. Vì thuật toán tìm kiếm nhị phân sẽ thay đổi đi giá trị của các phần tử không liên
quan.
Câu 13: Thuật toán tìm kiếm nhị phân có thể tìm kiếm trong dãy nào?
A. Dãy toàn số âm.
B. Dãy không được sắp xếp.
C. Dãy chỉ toàn các số giống nhau.
D. Dãy giảm dần.
Câu 14: Với thuật toán sắp xếp tuần tự thì có yêu cầu gì đối với dãy số cần tìm kiếm?
A. Dãy phải được sắp xếp.
B. Dãy phải được sắp xếp tăng dần.
C. Dãy phải toàn số dương.
D. Không có yêu cầu.
Câu 15: Lệnh nào sau đây để đóng tệp:
A. f.read()
B. f.cut()
C. f.close()
D. f.readln()
Câu 16: Trong python dữ liệu mảng một chiều có thể được biểu diễn bằng kiểu dữ liệu
nào sau đây:

A. Boolean

B. List

C. String

D. Float

Câu 17: Cho ma trận A kích thước m x n được biểu diễn trong Python theo dạng danh
sách trong danh sách. Mệnh đề nào dưới đây là đúng?

A. Danh sách A có m x n phần tử.

B. Danh sách A có m phần tử.

C. Danh sách A có n phần tử.

D. Danh sách A có " 2 " phần tử.


Câu 18: Trong python Để khai báo mảng ta dùng cú pháp sau:

A. <kiểu phần tử> <tên biến mảng > [<kích thước>];


B. <tên biến mảng > [<kích thước>];
C. <kiểu phần tử> <tên biến mảng > ;
D. <kiểu phần tử> of<tên biến mảng > [<kích thước>];

Câu 19: Mảng A gồm 100 phần tử là các số nguyên. Cách khai báo nào sau đây là đúng:

A. float A[100];
B. int A[100];
C. int A of [100];
D. int A=[100];

Câu 20: 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í nào?

A. Đầu tiên.

B. Vị trí được chỉ định.

C. Vị trí ứng với chỉ số 1.

D. Cuối cùng.

Câu 21: Khi thiết lập các giá trị trong mảng thông qua kiểu dữ liệu list của Python, dùng
kí tự nào để phân cách các phần tử?

A. Dấu chấm “.”.

B. Dấu phẩy “,”.

C. Dấu hai chấm “:”.

D. Dấu cách “ ”.

Câu 22: Trong python Cú pháp nào sau đây đâu là cú pháp tham chiếu tới phần tử của
mảng?

A. <Tên biến mảng> [chỉ số phần tử];


B.<Chỉ số phần tử> [Tên biến mảng];
C. <Tên biến mảng> <chỉ số phần tử>;
D. [Tên biến mảng] <chỉ số phần tử>;
Câu 22: Lệnh A.append(x) dùng để làm gì?
A. Bổ sung phần tử x vào đầu danh sách A
B. Bổ sung phần tử x vào cuối danh sách A
C. Bổ sung phần tử x vào giữa danh sách A
D. Bổ sung phần tử x vào vị trí bất kì của danh sách A
Câu 23: Lệnh A.insert(k,x) dùng để làm gì?
A. Chèn phần tử x vào vị trí k của danh sách A
B. Chèn phần tử x vào vị trí bất kì của danh sách A
C. Bổ sung phần tử x vào vị trí bất kì của danh sách A
D. Bổ sung phần tử x vào vị trí đầu của danh sách A
Câu 24: Khi nào thì lệnh A.append(1) và A. Insert(0,1) có tác dụng giống nhau?
A. Khi danh sách A rỗng, chưa có phần tử nào.
B. Khi danh sách A đã có phần tử
C. Khi danh sách A có hai phần tử
D. Khi danh sách A chỉ có một phần tử
Câu 25: Tìm kiếm nhị phân còn có tên là gì?
A. Binary search
B. Linear Search
C. Binary beats
D. Sequential Search
------------------------------------------------------------------------------------------------
Câu 1:Thuật toán sắp xếp chọn sẽ so sánh các phần tử ở vị trí nào?
A. So sánh phần tử ở vị trí được xét với các phần tử phía trước.
B. So sánh phần tử ở vị trí được xét với các phần tử phía sau.
C. So sánh phần tử ở vị trí được xét với các phần tử liền kề.
D. So sánh phần tử ở vị trí được xét với các phần tử đầu tiên.
Câu 2: Cho đoạn chương trình sau:
A=["Hoàn", "Liên", "Khánh", "Ý", "Liên", "Tình"]
for i in range(len(A)):
if A[i]== "Liên":
print(i, end= " ")
Hỏi kết quả của chương trình là gì?
A. 1 4
B. 2 4
C. 2 3
D. 3 1
Câu 3: Chọn phát biểu sai về thuật toán tìm kiếm nhị phân?
A. Thẻ số ở giữa dãy có số thứ tự là phần nguyên của phép chia (số lượng thẻ của
dãy) /2.
B. Khi dãy chỉ còn một thẻ số thì nửa trước (hoặc nửa sau) là dãy rỗng (dãy không có
thể số nào).
C. Vòng lặp sẽ kết thúc khi tìm thấy số cần tìm hoặc dãy không còn thẻ số nào nữa.
D. Thuật toán tìm kiếm nhị phân thực hiện chia bài toán tìm kiếm ban đầu thành
những bài toán tìm kiếm nhỏ hơn.
Câu 4: Với thuật toán tìm kiếm nhị phân, khi nào thì tìm kiếm phần tử k trong dãy A
nhanh nhất, cần ít phép so sánh nhất?
A. Giá trị cần tìm nằm ở cuối dãy.
B. Giá trị cần tìm ở đầu dãy.
C. Không có giá trị cần tìm.
D. Khi phần tử cần tìm có chỉ số bằng (len(A)-1)/2.
Câu 5: Hãy sắp xếp các bước thực hiện của bài toán tìm kiếm tuần tự để tìm k:
(a) Duyệt từng phần tử của dãy để tìm phần tử có giá trị k.
(b) Ngược lại, thông báo không tìm thấy và trả về giá trị -1.
(c) Nếu tìm thấy trả về chỉ số của phâng tử bằng k.
Hỏi thứ tự sắp xếp nào đúng:
A. (a), (b), (c).
B. (c), (a), (b).
C. (b), (c), (a).
D. (a), (c), (b).
Câu 6: Hoàn thành hàm sau, biết hàm này dùng thuật toán tìm kiếm tuần tự để tìm k trong
danh sách A.
def LinearSeach(A,k):
for i in range(len(A)):
if ................. :
return i
return -1
A. A[i]==k
B. A[i]!=k
C. A[i-1]=k
D. A[i-1]==k
Câu 7: Cho đoạn chương trình sau:
A=[2,4,6,7,9]
print(A[1]+A[3]+len(A))
Hãy cho biết kết quả của đoạn chương trình trên là:
A. 8
B. 16
C. 13
D. 6
Câu 8:Để tìm kiếm một số trong dãy số bằng thuật toán tìm kiếm tuần tự, ta thực hiện:
A. Lấy ngẫu nhiên một số trong dãy số để so sánh với số cần tìm.
B. So sánh lần lượt từ số đầu tiên trong dãy số với số cần tìm.
C. Sắp xếp dãy số theo thức tự tăng dần.
D. So sánh số cần tìm với số ở giữa dãy số.
Câu 9: ý tưởng của thuật toán sắp xếp chèn là thực hiện vòng lặp duyệt từ phần tử thứ
mấy đến cuối dãy?
A. Thứ hai
B. Thứ nhất
C. Thứ ba
D. Thứ tư
Câu 10: thuật toán sắp xếp chọn thực hiện một vòng lặp với chỉ số i chạy từ 0 (phần tử
đầu tiên) đến phần tử nào:
A. n-2
B. n
C. n-1
D. n+1
Câu 11: cho dãy A = [1, 91, 45, 23, 67, 9, 10, 47, 90, 46, 86]. Thuật toán tìm kiếm tuần
tự cần thực hiện bao nhiêu lần duyệt để tìm ra phần tử có giá trị bằng 47 trong dãy?
A. 7
B. 5
C. 6
D. 8
Câu 12: dãy A= {0, 4, 9, 10, 12,14, 17, 18, 20, 31, 34, 67}. Với thuật toán tìm kiếm tuần
tự, cần duyệt bao nhiêu phần tử để tìm ra phần từ có giá trị bằng 34?
A.11
B. 10
C.9
D.12
Câu 13:Cho dãy A= {0, 4, 9, 10, 12,14, 17, 18, 20, 31, 34, 67}. Với thuật toán tìm kiếm
nhị phân, cần duyệt bao nhiêu phần tử để tìm ra phân tử có giá trị bằng 34?
A. 2
B. 1
C. 3
D. 4
Câu 14:cho dãy A=[“Hoa”,”An”,”Binh”,”Thao”,”Huy”,”Hoang”].
Nếu sử dụng lệnh A.append(“Trang”) dãy A sẽ thành?
A.A=[“Hoa”,”An”,”Binh”,”Thao”,”Huy”,”Hoang”,”Trang”].
B.A=[“”Trang”,Hoa”,”An”,”Binh”,”Thao”,”Huy”,”Hoang”].
C.A=[“Hoa”,”An”,”Binh”,”Trang”,”Thao”,”Huy”,”Hoang”].
D.A=[“Hoa”,”An”,”Binh”,”Thao”,”Huy”,”Trang”,”Hoang”].
Câu 15: Cách nào sau đây dùng để gán giá trị của phần tử đầu tiên ở hàng thứ hai của
mảng hai chiều a cho biến x:
A .x=a[0,1]
B.x=a[2,1]
C.x=a[1,0]
D.x=a[1,0]
Câu 16: cho đoạn code sau:
For i in range(0,2):
For j in range(0,2):
Print(1)
Lệnh print được thực hiện bao nhiêu lần?
A.4
B.2
C.1
D.7
Câu 17: cách nào sau đây dùng để khai báo mảng hai chiều với 2 hàng 3 cột:
A.a=[[1,2,3],[4,5,6]]
B.a=[[1,2,3,4,5,6]]
C.a=[1,2,3],[4,5,6]
D.a=1,2,3,4,5,6
Câu 18: kết quả của đoạn code sau là gì?
List=[1,2,3,4]
Print(list[4])
A.4
B.3
C.2
D.Báo lỗi
Câu 19: Cho dãyA=[1,4,6,8,9,13,14,18,20,21,23,,,24,38]. Thuật toán tìm kiếm nhị phân
cần thực hiện bao nhiêu bước để tìm ra phần tử có giá trị bằng 38 trong dãy?
A.4
B.3
C.5
D.6
Câu 20: kết quả đoạn code sau:
A=[[12,45,3,48],[43,17,25,7],[27,12,20,44]]
print(A[2][1])
A.12
B.17
C.45
D.20
Câu 21:kết quả của đoạn lệnh sau là gì?
A=[1,2,3,4]
A.remove(2)
Print(A)
A.[1,3,4]
B.[1,2,3,4]
C.[]
D.[1,2,2,4]
Câu 22: Cho dãy A = [1,4,6,7,10,23,47,55,60]. Thuật toán tìm kiếm nhị phân cần thực
hiện bao nhiêu bước để tìm ra phần tử có giá trị bằng 47 trong dãy?
A.2
B.3
C.4
D.5
Câu 23:Cho dãy A = [2,4,3,8,1] Để sắp xếp dãy tăng dần theo thuật toán sắp xếp nổi bọt,
ở bước đầu tiên hai phần tử đổi chỗ cho nhau là:
A. 4 và 3
B. 2 và 4
C. 8 và 1
D. 2 và 1
Câu 24:Cho dãy A = [2,4,3,8,1] Để sắp xếp dãy tăng dần theo thuật toán sắp xếp nổi bọt,
phần tử 8 có bao nhiêu lần đổi chỗ?
A. 0
B. 1
C. 2
D. 3
Câu 25: cho A=[[12,10,91],[11,45,20],[15,34,55]] muốn truy cập phần tử hàng 3 cột 2 ta
cần gõ:
A. A[2][1]
B.A[1][2]
C.[2][0]
D.[0][1]
------------------------------------------------------------------------------------------------------------
Câu 1:Cho dãy số sau: 15, 20, 10, 18.
Bạn Minh sử dụng thuật toán sắp xếp nổi bọt để sắp xếp dãy số tăng dần. Mỗi vòng lặp sẽ
duyệt từ phần tử cuối đến phần tử đầu tiên. Em hãy chọn phương án mô tả đúng dãy số
sắp xếp sau mỗi vòng lặp.
A. 15, 20, 10, 18 – 10, 15, 18, 20 – 10, 15, 18, 20
B. 15, 20, 10, 18 – 10, 20, 15, 18 – 10, 15, 20, 18 – 10, 15, 18, 20.
C. 15,20, 10, 18 – 15, 10, 20, 18 – 10, 15, 18, 20.
D. 15, 20, 10, 18 – 10, 15, 20, 18 – 10, 15, 18, 20.
Câu 2:kết quả đoạn code sau:
A=[1,2,3,4,5,6]
A.clear()
Print(A)
A.[]
B. Báo lỗi
C. [1,2,3,4,5,6]
D.[1,2,3]
Câu 3: danh sách A trước và sau lệnh insert() là [1,4,10,0] và [1,4,10,5,0]. Lệnh đã dùng
gì?
A.A.insert(3,5)
B.A.append(5)
C.A.remove(5)
D.insert(5,5)
Câu 4: Cho đoạn chương trình sau:
M=[5,7,8,10,11,1,2]
M.append(5)
s=0
for i in M:
s=s+i
print(s+len(M))
Hãy cho biết kết quả của đoạn chương trình này:
A. 57
B. 66
C. 49
D. 60
Câu 5: Bạn Lan viết đoạn sau:
A=[1,2,4,6,7,9,10,14]
s=0
for k in A:
if k>7:
s+=1
print(s)
Hỏi kết quả in ra màn hình là gì?
A. 4
B. 3
C. 9,10,14
D. 1,2,4,6
Câu 6: Cho đoạn chương trình sau:
A=[14,7,8,9,11,7,16]
Min,Max=A[0],A[0]
for check in A:
if check<Min:
Min=check
if check>Max:
Max=check
print(Min+Max)
Hỏi chương trình trên cho kết quả nào sau đây:
A. 16
B. 7
C. 23
D. 12
Câu 7: Bạn Lan viết chương trình như sau:
A=[4,-3,7,-9,8,6,3,-1]
s=0
for i in A:
if i<0:
s=s+i
print(s)
Hỏi kết quả chương trình là gì?
A. -13
B. 14
C. -14
D. 4
Câu 8: Bạn Trân viết chương trình đếm số số chẵn trong mảng A=[2,5,6,9,11,8,10,9] như
sau:
A=[2,5,6,9,11,8,10,9]
s=0
for k in A:
if k%2==1:
s+=1
print(s)
Hỏi chương trình của Trân sai ở câu lệnh nào?
A. s=0
B. if k%2==1
C. s+=1
D. print(s)
Câu 9: Bạn Tèo viết chương trình tìm sau:
A=[2,5,6,9,11,8,10,9,11,8,7]
s=0
for k in A:
if k%2==0:
s+=1
print(s)
Hỏi chương trình cho kết quả là gì?
A. 6
B. 5
C. 11
D. 1
Câu 10: Bạn An viết chương trình như sau:
M=[1,4,8,9,15,5,7,6,11,10]
s=0
for i in M:
if i%5==1:
s=s+i
print(s)
Hỏi kết quả chương trình là gì?
A. 19
B. 18
C. 12
D. 11
-------------------------------------------------------------------------------------------------------
Đáp án đúng sai???? Chú ý
Câu 1:Cho đoạn chương trình sau:
a = [4, 3, 2, 5, 6, 7, 3]
for i in range(len(a)-1):
for j in range(len(a)-1-i):
if (a[j] >= a[j+1]):
a[j], a[j+1] = a[j+1], a[j]
print(a)
A. chương trình trên dùng thuật toán sắp xếp chèn. SAI
B. len(a) = 7. ĐÚNG
C. chương trình kết thúc sau 4 vòng lặp. SAI
D. kết quả sau khi chạy chương trình [2, 3, 3, 4, 5, 6, 7]. ĐÚNG

Câu 2: Hằng viết đoạn chương trình sau:


A=[ [1,2,3],[3,8,9],[2,4,5] ]
tong=0
for i in range(3):
for j in range(3):
if i==j:
tong=tong+A[i][j]
print(tong)
A. Biến A được khai báo là mảng 2 chiều. ĐÚNG
B. A có 8 phần tử. SAI
C. Chương trình trên tính tổng các phần tử có chỉ số i bằng chỉ số j. ĐÚNG
D. Kết quả sau khi chạy chương trình: 14 ĐÚNG
Câu 3: đọc chương trình như sau:
M=[1,4,8,9,15,5,7,6,11,10]
s=0
for i in M:
if i%5==1:
s=s+i
print(s)
A. M kiểu danh sách. Đúng
B. len(M) = 10 đúng
C. Chương trính tính tổng các số chia hết cho 5. sai
D. kết quả sau khi chạy chương trình:18 đúng
Câu 4: Cho đoạn chương trình sau:
A=[14,7,8,9,11,7,16]
Min,Max=A[0],A[0]
for check in A:
if check<Min:
Min=check
if check>Max:
Max=check
print(Min+Max)
A. Chương trình trên có 4 biến. Đúng
B. Danh sách A là mảng 1 chiều. Đúng
C. Chương trình trên tìm số lớn nhất và số nhỏ nhất trong danh sách. Sai
D. Kết quả sau khi chạy chương trình: 23 đúng

You might also like