Tải bản đầy đủ (.pdf) (20 trang)

Tổng hợp 5 đề thi ngôn ngữ lập trình Python

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (906.1 KB, 20 trang )

Đề kiểm tra giữa học kỳ
Ngơn ngữ lập trình Python
Đề 1
❖ Phần A. (3đ)
1. Khẳng định nào sau đây là khơng đúng về Python?
(a) Python có thể sử dụng trên nhiều hệ điều hành khác nhau: Windows, Mac OS, Linux, …
(b) Python là một ngôn ngữ không phân biệt kiểu chữ HOA, chữ thường
(c) Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động
(d) Python có tốc độ thực hiện chậm hơn so với các ngôn ngữ biên dịch như C, Java, ...
2. Kết quả của đoạn code sau đây là gì?
print(type(type(float)))
(a) <class 'type'>
(b) <class ‘float’>
(c) Có xuất hiện lỗi Error
(d) None
3. Điền phần còn thiếu trong đoạn code để được output dưới đây:
#Kết quả in ra output:
66
44
22
for i in range(6, 0,____):
print(str(i) * 2)
(a) 0
(b) 1
(c) -2
(d) -1
4. Cho một chuỗi s như sau: s = 'hello world'. Dòng code nào sau đây sẽ báo lỗi?
(a) print(s[0])
(b) print(s.lower())
(c) s[1] = 't'
(d) print(s.split())


5. Kiểu dữ liệu nào sau đây là LIST?
(a) ("apple", "banana", "cherry")
(b) {"apple", "banana", "cherry"}
(c) {"name": "apple", "color": "green"}
(d) ["apple", "banana", "cherry"]
6. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất
d = { 1:"a", 2:"b" }
print(d.get(0), d.get(0, 42))
(a) None 42
(b) Có xuất hiện lỗi Error
(c) None a
(d) None None
7. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất
d = dict()
d[2] = 100
d[2] = 200
d[2] = 400
d[0] = 100
d[1] = 200
d[0] = 300
print(d)
(a) {2: 700, 0: 400, 1: 200}
(b) {400:2, 300:0, 200:1}
(c) {2: 400, 0: 300, 1: 200}
(d) Có xuất hiện lỗi Error

1


8. Cho biết kết quả chương trình sau:

class A:
def __init__(self, x = 2, y = 3):
self.x = x
self.y = y
def __str__(self):
return "A"
def __eq__(self, num ):
return self.x * self.y == num.x * num.y
def main():
a = A(1, 2)
b = A(2, 1)
print(a == b)
main()
(a) 2
(b) 1
(c) True
(d) False
9. Đoạn code sau có ý nghĩa gì?
try:
# đoạn code có thể gây ra lỗi
pass
except (TypeError, ZeroDivisionError):
print("Python Quiz")
(a) In ra ' Python Quiz ' nếu không có ngoại lệ xảy ra.
(b) Chỉ in ra ' Python Quiz ' khi cả hai ngoại lệ TypeError và ZeroDivisionError cùng xảy ra
(c) In ra ' Python Quiz ' nếu có ngoại lệ xảy ra (khơng quan trọng là ngoại lệ gì).
(d) In ra ' Python Quiz ' nếu một trong hai ngoại lệ TypeError và ZeroDivisionError xảy ra.
10. Câu lệnh nào sau đây được dùng để gán giá trị cho x = 1, y = 2, z = 3 ?
(a) x,y,z = 1,2,3
(b) x;y;z = 1,2,3

(c) x,y,z = 1;2;3
(d) x;y;z = 1;2;3
11. Kết quả của chương trình được in ra màn hình là?
string="12345"
print('*'.join(reversed(string)))
(a) 12345
(b) 5*4*3*2*1
(c) 54321
(d) 1*2*3*4*5
12. Kết quả nào là output của đoạn code dưới đây?
list = [ 'Python', 100, 13.03, 'C++', 33.3]
print (list[1:3])
(a) ['100, 13.03, 'C++']
(b) [100, 13.03]
(c) ['Python', 'C++']
(d) ['Python', 100, 13.03]

2


13. Cho biết kết quả của đoạn chương trình sau:
def ct1(s, n):
for i in range(n):
for j in range(n, -1, -1):
if(j <= i):
break
num = int(s[i:j])
print(num, end= " ")
if(num % 2 == 1):
print("odd num")

else:
print("even num")
return num
print(ct1('12', 2))
(a) 12 even num
1 odd num
2 even num
2
(c) 12 odd num
1 even num
2 odd num
2

(b) 12 even num
1 odd num
2 even num
(d) 12 odd num
1 even num
2 odd num

14. Cho biết kết quả của đoạn chương trình sau:
print ('abcefd'.replace('cd', '12'))
(a) ab1ef2
(b) abcefd
(c) ab1efd
(d) ab12ed2
15. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất
T = (1,2,3,4,5)
del T[3]
print(T)

(a) (1,2,3,4,5)
(b) (1,2,4,5)
(c) Có xuất hiện lỗi Error
(d) (1,2,3,5)
❖ Phần B. (7đ)
Câu 1 (1đ)
Cho biết kết quả in ra màn hình khi thực hiện các lệnh sau đây:
def A(list1):
list1.append(2*list1[0])
print(list1)
def B(list2):
list2.append(2+list2[1])
list2 = []
print(list2)
def C(list1,list2):
A(list1)
print(list1)
print(list2)
B(list2)
print(list2)
a = [0,1]
b = [2,3]
C(a,b)

3


Câu 2 (1đ)
Nhập vào một chuỗi chứa các số nguyên dương cách nhau dấu phẩy. In ra các số lẻ.
# Ví dụ: chuỗi s nhập vào là "12,11,2,4,56,7,9,13" . In ra 11, 7, 9, 13

Câu 3 (3đ) Cho một list chứa các tuple (mỗi tuple chứa 3 thành phần (tên loại trái cây, giá tiền, số lượng trái cây),
trong đó tên loại trái cây là một chuỗi là các chữ in thường, giá tiền là số thực tính theo đơn vị $, số lượng trái cây
là số nguyên dương).
# Ví dụ: input list như sau: L = [('lemon', 0.45, 15), ('apple', 2.5, 3), ('peach', 4.3, 10), ('banana', 0.6, 5)]
a) Viết chương trình tạo ra một list chứa tên của tất cả các loại trái cây trong L thỏa điều kiện các tên đều là chữ
in hoa và được sắp xếp tăng theo thứ tự từ điển.
# Ví dụ: output như sau: ['APPLE', 'BANANA', 'LEMON', 'PEACH']
b) Viết chương trình tính tổng số lượng tất cả các loại trái cây có trong list đã cho.
# Ví dụ: output là 15+3+10+5 bằng 33
c) Viết chương trình sắp xếp list của các tuple theo thứ tự giảm dần về số lượng trái cây trong tuple.
# Ví dụ: output là [('lemon', 0.45, 15), ('peach', 4.3, 10), ('banana', 0.6, 5), ('apple', 2.5, 3)]
Câu 4 (2đ)
Viết một class Point2D bao gồm các thuộc tính và phương thức sau:
+ Thuộc tính: hồnh độ và tung độ
+ Viết phương thức khởi tạo __init__ (ban đầu khởi tạo hoành độ và tung độ là 0)
+ Viết phương thức __str__ trả về tọa độ một điểm có dạng (hồnh độ, tung độ).
+ Viết phương thức nhap cho phép nhập vào điểm Point2D
+ Viết phương thức tính khoảng cách giữa hai điểm.
--------------------------------HẾT--------------------------------

4


Đề kiểm tra giữa học kỳ
Ngơn ngữ lập trình Python
Đề 2
Phần A. (3đ)
1. Các khối code (khối lệnh của hàm, vòng lặp,...) trong Python được xác định bởi?
(a) Dấu ngoặc nhọn { }
(b) Canh lề

(c) Dầu ngoặc đơn ( )
(d) Dấu ngoặc vuông [ ]
2. Đâu là output của chương trình dưới đây?
def Function_1():
global n
n = 200
def Function_2():
global n
n = 300
n = 400
n = 500
Function_1()
print('n =', n)
(a) n = 500
(b) n = 200
(c) n = 300
(d) n = 400
3. Cho biết kết quả của đoạn chương trình sau
for i in range(1,5):
print(i, end=' ')
if i == 3:
break
(a) IndentationError: expected an indented block
(b) 1 2 3
(c) 1 2 3 4
(d) 1 2
4. Kết quả của chương trình được in ra màn hình là?
word="hello world"
print(word.split('o'))
(a) ['hello w', 'rld' ]

(b) ['hell', ' w', 'rld']
(c) ['hello', 'world' ]
(d) ['hell', 'world' ]
5. Chỉ ra trường hợp không hợp lệ khi đặt tên biến trong python?
(a) bien-X = 5
(b) _bienX = 5
(c) bien_X = 5
(d) bienX = 5

1


6. Cho biết kết quả của đoạn chương trình sau :
var1 = lambda var: var * 2
ret = lambda var: var * 4
result = 1
result = var1(result)
result = ret(result)
result = var1(result)
print(result)
(a) 8
(b) 16
(c) 32
(d) 24
7. Trong Python, hàm nào được dùng để kết hợp các chuỗi ?
(a) join()
(b) split()
(c) replace()
(d) strip()
8. Đâu là điểm khác biệt giữa tuple và list?

(a) Tuple nằm trong dấu ngoặc nhọn {}, list nằm trong dầu ngoặc vuông [].
(b) Tuple nằm trong dấu ngoặc vuông [], list nằm trong dầu ngoặc nhọn{}.
(c) Tuple chứa các phần tử có thứ tự, list chứa các phần tử khơng có thứ tự.
(d) Dữ liệu thuộc kiểu list có thể thay đổi được, dữ liệu thuộc kiểu tuple không thể thay đổi được.
9. Khẳng định nào sau đây là đúng?
(a) __add () __ được gọi khi toán tử ' + ' được sử dụng.
(b) Bạn có thể thay đổi cách các toán tử hoạt động trong Python.
(c) Trong Python, một tốn tử có thể có hoạt động khác nhau tùy thuộc vào toán hạng được sử dụng.
(d) Tất cả các đáp trên đều đúng.
10. Khẳng định nào là đúng về chương trình dưới đây?
class A:
def __init__(self):
self.a = 1
self.__b = 1
def getY(self):
return self.__b
obj = A()
obj.a = 45
print(obj.a)
(a) Chương trình có lỗi xảy ra vì ' __b ' là thuộc tính private, khơng thể truy cập được từ bên ngồi lớp.
(b) Chương trình có lỗi xảy ra vì ' a ' là thuộc tính private, khơng thể truy cập được từ bên ngồi lớp.
(c) Chương trình chạy bình thường và kết quả được in ra là 45.
(d) Chương trình chạy bình thường và kết quả được in ra là 1.
11. Cho biết kết quả chương trình sau?
number = 5.0
try:
r = 10/number
print(r)
except:
print("Oops! Error occurred.")

(a) 2.0
(b) Oops! Error occurred.
(c) 2
(d) 2.0 Oops! Error occurred.

2


12. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất
s = set([2,2,2,1,1,3,4,5,5])
print(s)
(a) {1, 2, 3, 4, 5}
(b) [2,1,3,4,5]
(c) {2,2,2,1,1,3,4,5,5}
(d) [2,2,2,1,1,3,4,5,5]
13. Kiểu dữ liệu nào sau đây là Dictionary?
(a) {"apple", "banana", "cherry"}
(b) {"name": "apple", "color": "green"}
(c) ["apple", "banana", "cherry"]
(d) ("apple", "banana", "cherry")
14. Cho một chuỗi s như sau: s = 'hello world'. Dòng code nào sau đây sẽ báo lỗi?
(a) print(s[0])
(b) print(s.lower())
(c) s[1] = 't'
(d) print(s.split())
15. Cho biết kết quả của đoạn chương trình sau:
import copy
def ct1(a):
b=a
c = copy.copy(b)

a[0][0] = 3
a[0].append(7)
a[1] = [9,8]
c[0] = [4]
c[1] = [0,0]
b[0].insert(0, 0)
print("a = ", a)
print("b = ", b)
print("c = ", c)
L = [[1,2], [3,4]]
ct1(L)
(a)

a = [[4], [0, 0]]
b = [[4], [0, 0]]
c = [[4], [0, 0]]

(b)

a = [[0, 3, 2, 7], [9, 8]]
b = [[0, 3, 2, 7], [3, 4]]
c = [[4], [0, 0]]

(c)

None

(d)

a = [[0, 3, 2, 7], [9, 8]]

b = [[0, 3, 2, 7], [9, 8]]
c = [[4], [0, 0]]

3


Phần B. (7đ)
Câu 1 (1đ)
Cho biết kết quả in ra màn hình khi thực hiện các lệnh sau đây:
def func1(set1):
set1.add(4)
print(set1)
def func2(set2):
set2.add(5)
set2 = set()
print(set2)
def myfunc(set1,set2):
func1(set1)
print(set1)
print(set2)
func2(set2)
print(set2)
a = set({1,2,1})
b = set({2,3})
myfunc(a,b)
Câu 2 (1đ)
Viết chương trình nhập vào một chuỗi (mỗi từ cách nhau bởi một khoảng trắng), tách chuỗi thành các từ và in ra
màn hình các từ tăng dần theo thứ tự từ điển.
# Ví dụ: chuỗi s là 'lap trinh python'. In ra là: 'lap', 'python', 'trinh'
Câu 3 (3đ) Cho một list chứa các tuple (mỗi tuple chứa 3 thành phần (tên loại nước ngọt, giá tiền, số lượng chai nước),

trong đó tên loại nước ngọt là một chuỗi các chữ cái in hoa, giá tiền là số thực tính theo đơn vị $, số lượng chai nước
là số nguyên dương).
# Ví dụ: input list như sau: L = [('PEPSI', 2.2, 20), ('STING', 1.5, 6), ('REDBULL', 3.4, 10), ('COCACOLA', 2.5, 30)]
a) Viết chương trình tạo ra một list chứa tên của tất cả các loại nước ngọt trong L thỏa điều kiện các tên đều là chữ in
thường và được sắp xếp giảm dần theo thứ tự từ điển.
#Ví dụ: output như sau: ['sting', 'redbull', 'pepsi', 'cocacola']
b) Viết chương trình tìm tên loại nước ngọt có số lượng chai nước là lớn nhất.
#Ví dụ: output là COCACOLA (vì có số lượng chai lớn nhất là 30 chai)
c) Viết chương trình in ra tên của các loại nước ngọt có giá tiền lớn hơn 2.0.
#Ví dụ: output là PEPSI, REDBULL, COCACOLA
Câu 4 (2đ)
Viết một class PhanSo bao gồm các thuộc tính và phương thức sau:
+ Thuộc tính: tử số và mẫu số
+ Viết phương thức khởi tạo __init__ cho phân số.
+ Viết phương thức __str__ trả về chuỗi in ra dạng phân số như sau “tử số/mẫu số”
+ Viết phương thức nhap() cho phép nhập vào một phân số
+ Viết phương thức __add__, __sub__ nạp chồng toán tử cho phép toán + và - hai phân số.
--------------------------------HẾT--------------------------------

4


Đề kiểm tra giữa học kỳ
Ngơn ngữ lập trình Python
Đề 3
Phần A. (3đ)
1. Khẳng định nào là đúng về chú thích trong Python?
(a) Python sử dụng kí tự // để bắt đầu một chú thích
(b) Python sử dụng kí tự % để bắt đầu một chú thích
(c) Python sử dụng kí tự # để bắt đầu một chú thích

(d) Python dùng ““ ”” (2 cặp nháy đôi) hoặc ‘‘
’’(2 cập nháy đơn) để viết chú thích trên nhiều dịng
2. Kết quả của lệnh sau là:
print(10//3,10%3,10/3,sep=" , ")
(a) 3 , 1 , 3.3333333333333335
(b) 1 , 3 , 3.3333333333333335
(c) 3.3333333333333335 , 1 , 3
(d) 3 , 3.3333333333333335 , 1
3. Đâu là kết quả của đoạn code dưới đây?
myList = [1, 6, 3, 4, 5, 5, 1]
_max = myList[0]
index_max= 0
for i in range(2, len(myList)):
if myList[i] > _max:
_max = myList[i]
index_max = i
print(index_max)
(a) 0
(b) 4
(c) 1
(d) 5
4. Kết quả của chương trình dưới đây là gì?
print(list(enumerate([2, 3])))
(a) [2, 3]
(b) [(1, 2), (2, 3)]
(c) [(0, 2), (1, 3)]
(d) [(2, 3)]
5. Cho biết kết quả của chương trình sau
names1 = [‘PHP’, ‘C’, ‘C++’, ‘Java’]
names2 = names1

names3 = names1[:]
names2[0] = ‘Python’
names3[1] = ‘C#’
sum = 0
for ls in (names1, names2, names3):
if ls[0] == ‘Python’:
sum += 1
if ls[1] == ‘C#’:
sum += 10
print (sum)
(a) 11
(b) 22
(c) 12
(d) 33

1


6. Chạy code sau trong Python, kết quả là:
num = "1" * 5
print(num)
(a) 55555
(b) 11111
(c) 5
(d) TypeError: can't multiply sequence by non-int of type 'str'
7. Đâu là output của đoạn code dưới đây?
mylist=[1, 5, 9, int('10')]
print(sum(mylist))
(a) 25
(b) 15

(c) 10
(d) Có xuất hiện lỗi Error
8. Kết quả của hàm hiển thị dưới đây là gì?
print(len(["hello", 2, 4, 6]))
(a) 4
(b) 3
(c) 8
(d) None
9. Cho một list L = [1, 5, 10, 19, 55, 55, 100, 55, 99]. Những chuỗi lệnh nào sau đây dùng để tạo ra một list
mới [1, 5, 10, 99]
a) L.pop(6);L.remove(19);L.remove(55);L.remove(55);L.pop(3)
b) L.remove(6);L.pop(19);L.remove(55);L.remove(55);L.pop(3)
c) L.pop(6);L.remove(19);L.pop(55);L.remove(55);L.pop(3)
d) L.pop(6);L.remove(19);L.remove(55);L.remove(55);L.pop(4)
10. Output của chương trình dưới đây là gì?
def say(message, times = 1):
print(message * times)
say('Hello')
say('World', 5)
(a) Hello
WorldWorldWorldWorldWorld
(b) Hello
World 5
(c) Hello
World,World,World,World,World
(d) Hello
HelloHelloHelloHelloHello
11. Mở file với chế độ mode 'wb' có ý nghĩa gì?
(a) Mở file để ghi
(b) Mở file để đọc và ghi

(c) Mở file để đọc và ghi cho dạng nhị phân
(d) Mở file để ghi cho dạng nhị phân
12. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất
d = { 1:"a", 2:"b" }
print(d.get(0), d.get(0, 42))
(a) None 42
(b) Có xuất hiện lỗi Error
(c) None a
(d) None None

2


13. Cho biết kết quả chương trình sau:
class Dog:
def walk(self):
return "*walking*"
def speak(self):
return "Woof!"
class JackRussellTerrier(Dog):
def talk(self):
return super().speak()
bobo = JackRussellTerrier()
print(bobo.talk())
(a)
(b)
(c)
(d)

*walking*

super
Có xuất hiện lỗi
Woof!

14. Kết quả nào là output của đoạn code dưới đây?
def myfunc():
try:
print('Monday')
finally:
print('Tuesday')
myfunc()
(a) Tuesday
(b) Monday Tuesday
(c) Tuesday Monday
(d) Monday
15. Cho biết kết quả chương trình sau:
class Point:
def __init__(self, x = 0, y = 0):
self.x = x+1
self.y = y+1
p1 = Point()
print(p1.x, p1.y)
(a)
(b)
(c)
(d)

00
11
None None

xy

3


Phần B. (7đ)
Câu 1 (1đ)
Cho biết kết quả sau khi thực hiện các câu lệnh sau đây:
def myfunc(n):
M = list(range(n,0,-1))
P=M
print(M)
M[0] = n+1
print(P)
Q = P + [10]
Q.sort()
print(Q)
P.pop()
print(P)
return [P, M, Q]
print(myfunc(2))
Câu 2 (1đ)
Nhập vào một chuỗi (mỗi từ cách nhau bởi một khoảng trắng). Chuyển ký tự đầu tiên của mỗi từ sang chữ in hoa.
# Ví dụ: s = "lap trinh python". In ra "Lap Trinh Python"
Câu 3 (3đ) Cho một list chứa các chuỗi (mỗi chuỗi gồm 3 thành phần cách nhau bởi dấu phẩy có dạng như sau: "Khoa>, <Khóa học>, <Số lượng sinh viên>", trong đó Tên Khoa là thơng tin của một Khoa biễu diễn dạng chuỗi,
Khóa học là thơng tin một khóa học biễu diễn dạng số nguyên dương trong chuỗi, Số lượng sinh viên là biễu diễn
dạng số nguyên dương trong chuỗi). Giả sử rằng Tên Khoa không xuất hiện trùng trong các chuỗi trong list.
# Ví dụ input list L như sau: L = ["CNTT,20,600", "Ly,18,200", "Toan,19,100", "Hoa,19,150"]
a) Viết chương trình tạo ra một từ điển trong đó các khóa (key, dạng chuỗi) của từ điển là Tên Khoa của các chuỗi

trong list đã cho; các giá trị (value, dạng số nguyên) tương ứng là số lượng sinh viên tương ứng của mỗi Khoa
# Ví dụ: ouput từ điển D là {'CNTT': 600, 'Ly': 200, 'Toan': 100, 'Hoa': 150}
b) Viết chương trình tính tổng tất cả các giá trị (value) trong từ điển của câu (a)
# Ví dụ: tổng là 1050
c) In ra khóa trong từ điển tìm được ở câu (a) có giá trị (value) lớn nhất.
# Ví dụ: khóa với giá trị lớn nhât là CNTT
Câu 4 (2đ)
Viết class Rectangle (hình chữ nhật) bao gồm thuộc tính và phương thức sau:
+ Thuộc tính: width và heigth (số thực)
+ Viết phương thức __init__ khởi tạo thuộc tính cho Rectangle
+ Viết phương thức __str__ trả về chuỗi in ra dạng thông tin Rectangle như sau “width, heigth”
+ Viết phương thức tính chu vi.
+ Viết phương thức tính diện tích.

----------------------------------------HẾT----------------------------------------

4


Đề kiểm tra giữa học kỳ
Ngơn ngữ lập trình Python
Đề 4
Phần A. (3đ)
1. Khẳng định nào sau đây là đúng về Python?
(a) Python là một ngôn ngữ thông dịch cấp cao
(b) Python là ngơn ngữ lập trình hướng đối tượng
(c) Python là ngôn ngữ mã nguồn mở
(d) Tất cả các đáp án đều đúng
2. Câu lệnh nào sau đây in ra kiểu dữ liệu của biến x?
(a) print(type(x))

(b) print(type[x])
(c) print(typeof[x])
(d) print(typeof(x))
3. Kết quả của lệnh sau là:
print(100, 200, "hello", "world", sep=':')
(a) 100:200:hello:world
(b) 100200helloworld
(c) 100 200 hello world
(d) Có xuất hiện lỗi Error
4. Kiểu dữ liệu nào sau đây là set (tập hợp)?
(a) ("apple", "banana", "cherry")
(b) {"apple", "banana", "cherry"}
(c) {"name": "apple", "color": "green"}
(d) ["apple", "banana", "cherry"]
5. Cho biết kết quả của đoạn chương trình sau đây:
str='world,helloworld,hiworld,smallworld,bigworld'
print(str.count('wo',-20))
(a) 5
(b) 2
(c) 4
(d) 3
6. Cho một list L như sau: L = [1, 2, [[3]], None, (), True, {}]. Chiều dài của L (dùng hàm len(L)) là:
(a) 8
(b) 7
(c) 6
(d) 3
7. Output của chương trình dưới đây là gì?
def say(message, times = 1):
print(message * times)
say('Hello')

say('World', 5)
(a) Hello
WorldWorldWorldWorldWorld
(b) Hello
World 5
(c) Hello
World,World,World,World,World
(d) Hello
HelloHelloHelloHelloHello

1


8. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất
t = (1, 2, 3)
t[0] = 42
print(t[0])
(a) 1
(b) 42
(c) Có xuất hiện lỗi Error
(d) 0
9. Cho biết kết quả chương trình sau:
class Foo:
def printLine(self, line='Python'):
print(line)
o1 = Foo()
o1.printLine('Java')
(a) Python
(b) line
(c) Java

(d) Java Python
10. Output của chương trình dưới đây là gì?
def maximum(x, y):
if x > y:
return x
elif x == y:
return 'Các số bằng nhau'
else:
return y
print(maximum(20, 30.3))
(a) 20
(b) 30.3
(c) Các số bằng nhau
(d) None
11. Đâu là giá trị của colors[2]?
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
(a) orange
(b) indigo
(c) blue
(d) yellow
12. Qui tắc nào sau đây là đúng khi đặt tên cho biến trong Python?
(a) Tên biến có thể bắt đầu bằng một chữ số
(b) Tên biến có thể chứa dấu gạch dưới "_"
(c) Tên biến có thể có các ký hiệu đặc biệt như !, @, #, $, %,...
(d) Tên biến có thể trùng với các từ khóa (keyword)
13. Lệnh nào sau đây dùng để tạo tập hợp rỗng?
(a) S = set()
(b) S = {}
(c) S = []
(d) S = ()


2


14. Kết quả nào là output của đoạn code dưới đây?
def myfunc():
try:
print('Monday')
finally:
print('Tuesday')
myfunc()
(a) Tuesday
(b) Monday Tuesday
(c) Tuesday Monday
(d) Monday
15. Cho biết kết quả chương trình sau:
class A:
def __str__(self):
return "A"
class B(A):
def __init__(self):
super().__init__()
class C(B):
def __init__(self):
super().__init__()
def main():
b = B()
a = A()
c = C()
print(a, b, c)

main()
(a) B B B
(b) A B C
(c) C B A
(d) A A A
Phần B. (7đ)
Câu 1 (1đ)
Cho biết kết quả khi thực hiện các lệnh sau đây:
def myfunc(n):
M = list(range(0,n))
L=M
print(M)
M.insert(1,10)
print(L)
T = M[:2] + [20,0]
print(T)
return [L, M, T]
print(myfunc(3))
Câu 2 (1đ)
Nhập vào một chuỗi, đếm số lượng chữ cái in hoa, chữ cái in thường.

3


Câu 3 (3đ) Cho một list chứa các tuple (mỗi tuple chứa 3 thành phần (Tên Khoa, số lượng sinh viên, năm thành lập),
trong đó Tên Khoa là một chuỗi các chữ cái in hoa, số lượng sinh viên là một số nguyên dương, năm thành lập là dạng
chuỗi).
# Ví dụ: input list như sau:
L = [('CNTT', 700, '2012'), ('LY', 300, '2008'), ('HOA', 200, '2010'), ('TOAN', 500, '2000')]
a) Viết chương trình tạo ra một list chứa số lượng sinh viên của tất cả các Khoa trong list đã cho và được sắp xếp theo

thứ tự tăng dần.
#Ví dụ: output như sau: [200, 300, 500, 700]
b) Viết chương trình tìm tên Khoa có thời gian thành lập lâu nhất tính đến nay.
#Ví dụ: output là TOAN
c) Viết chương trình tìm các Khoa có số lượng sinh viên lớn hơn 200. In kết quả các Khoa tìm được ra màn hình theo
thứ tự tăng dần theo từ điển.
#Ví dụ: output là CNTT, LY, TOAN
Câu 4 (2đ)
Viết một class Circle bao gồm thuộc tính và phương thức sau:
+ Thuộc tính: bán kính r (số thực)
+ Viết phương thức khởi tạo __init__
+ Viết phương thức nhap() cho phép nhập vào bán kính của Circle.
+ Viết phương thức tính chu vi.
+ Viết phương thức tính diện tích.

-------------------------HẾT-------------------------

4


Đề kiểm tra giữa học kỳ
Ngơn ngữ lập trình Python
Đề 5
Phần A. (3đ)
1. Khẳng định nào là đúng về chú thích trong Python?
(a) Python sử dụng kí tự # để bắt đầu một chú thích
(b) Nội dung của chú thích sẽ được trình thơng dịch bỏ qua
(c) Python dùng “”” ””” (3 cặp nháy đôi) hoặc ”’ ”'(3 cập nháy đơn) để viết chú thích trên nhiều dịng
(d) Tất cả các đáp án trên
2. Phép tốn nào có thể được dùng để so sánh hai biến?

(a) ==
(b) **
(c) //
(d) =
3. Cho biết kết quả của chương trình sau:
names1 = ['PHP', 'C', 'C++', 'Java']
names2 = names1
names3 = names1[:]
names2[0] = 'Python'
names3[1] = 'C#'
T = (names1, names2, names3)
sum = 0
for ls in T:
if ls[0] == 'Python':
sum += 1
if ls[1] == 'C#':
sum += 10
print (sum)
(a) 11
(b) 22
(c) 12
(d) 33
4. Lệnh nào sau đây dùng để tạo tập hợp rỗng
(a) S = set()
(b) S ={}
(c) S = []
(d) S = ()
5. Kết quả nào là output của đoạn code dưới đây?
for i in range(20):
if i == 10:

break
else:
print(i,end="")
else:
print("*")
(a) 0123456789*
(b) 123456789
(c) 0123456789
(d) 123456789*

1


6. Biến L trong đoạn sau là kiểu dữ liệu nào?
L = "[5:2,10:[1,2]"
(a) list
(b) string
(c) tuple
(d) dictionary
7. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất
t = (1, 2, 3)
t[0] = 42
print(t[0])
(a) 1
(b) 42
(c) Có xuất hiện lỗi Error
(d) 0
8. Cho biết kết quả của đoạn chương trình sau :
var1 = lambda var: var * 2
ret = lambda var: var * 4

result = 1
result = var1(result)
result = ret(result)
result = var1(result)
print(result)
(a) 8
(b) 16
(c) 32
(d) 24
9. Output của chương trình dưới đây là gì?
def Find_max(a, b):
if a > b:
print(a, 'is maximum')
elif a == b:
print(a, 'is equal to', b)
else:
print(b, 'is maximum')
Find_max(30.3, 40)
(a) 30.3 is maximum
(b) None
(c) 40 is maximum
(d) 30.3 is equal to 30.3
10. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất
print({1,2,3,2,4,4,5} - {1,1,2,3}, {1,2,3,2,4,4,5,6,6}.difference({1,1,2,3}))
(a) {4, 5} {4, 5, 6}
(b) {1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6}
(c) {4, 5} {1, 2, 3}
(d) {1, 2, 3} {4, 5, 6}

2



11. Lệnh print() in ra kết quả nào cho chương trình dưới đây?
list1 = [1, 3]
list2 = list1
list1[0] = 4
print(list2)
(a) [4, 3]
(b) [1, 3]
(c) [1, 4]
(d) [1, 3, 4]
12. Kết quả của chương trình được in ra là:
mylist=['a', 'aa', 'aaa', 'b', 'bb', 'bbb']
print(mylist[:-1])
(a) [a, aa, aaa, b, bb]
(b) ['a', 'aa', 'aaa', 'b', 'bb', 'bbb']
(c) ['a', 'aa', 'aaa', 'b', 'bb']
(d) [a, aa, aaa, b, bb, bbb]
13. Từ khóa nào được sử dụng để bắt đầu hàm?
(a) fun
(b) define
(c) def
(d) function
14. Kết quả nào là output của đoạn code dưới đây?
try:
print("throw")
except:
print("except")
finally:
print("finally")

(a) finally
throw
(c) except
finally

(b) finally
except
(d) throw
finally

15. Cho biết kết quả chương trình sau:
class Dog:
def walk(self):
return "*walking*"
def speak(self):
return "Woof!"
class JackRussellTerrier(Dog):
def talk(self):
return super().speak()
bobo = JackRussellTerrier()
print(bobo.talk())
(a)
(b)
(c)
(d)

*walking*
super
Có xuất hiện lỗi
Woof!


3


Phần B. (7đ)
Câu 1 (1đ)
Cho biết kết quả sau khi thực hiện các câu lệnh sau đây:
def myfunc(n):
M = set({1,1,2,3,2})
P=M
print(M)
M.add(n)
print(P)
Q = P.intersection(set({n,3,4}))
print(Q)
P.clear()
print(P)
return [M, P, Q]
print(myfunc(0))
Câu 2 (1đ)
Nhập vào một chuỗi (mỗi từ cách nhau bởi một khoảng trắng). Tách chuỗi thành các từ và in ra màn hình theo tứ tự
tăng dần theo thứ tự từ điển.
# Ví dụ: chuỗi s là "lap trinh python". In ra từng từ theo thứ tự tăng theo thứ tự từ điển là: "lap", "python", trinh"
Câu 3 (3đ) Cho một list chứa các chuỗi (mỗi chuỗi gồm 3 thành phần cách nhau bởi dấu phẩy có dạng như sau: "loại kẹo >, <Giá tiền>, <Số lượng>", trong đó <Tên loại kẹo> là thơng tin tên của loại kẹo được biểu diễn ở dạng
chuỗi các chữ cái in thường, <Giá tiền> là giá tiền của loại kẹo tương ứng tính theo đơn vị $/1 hộp được biểu diễn
bằng số thực, <Số lượng> là số lượng hộp kẹo được biểu diễn bằng số nguyên dương trong chuỗi). Giả sử rằng Tên
các loại kẹo không xuất hiện trùng trong các chuỗi trong list.
# Ví dụ input list L như sau: L = ["doublemint,1.5,10", "mentos,0.7,20", "oreo,2.8,5", "chupachups,0.2,30"]
a) Viết chương trình tạo ra một từ điển trong đó các khóa (key, dạng chuỗi) của từ điển là Tên loại kẹo của các chuỗi

trong list đã cho; các giá trị (value, dạng số nguyên) là số lượng hộp kẹo tương ứng với tên loại kẹo.
# Ví dụ: ouput từ điển D là {'doublemint': 10, 'mentos': 20, 'oreo': 5, 'chupachups': 30}
b) In ra khóa trong từ điển tìm được ở câu (a) ứng với giá trị (value) nhỏ nhất.
# Ví dụ: khóa với giá trị nhỏ nhât là oreo
c) Viết chương trình tính tổng tất cả các giá trị (value) trong từ điển của câu (a)
# Ví dụ: tổng là 65
Câu 4 (2đ)
Viết class Student bao gồm thuộc tính và phương thức sau:
+ Thuộc tính:
name (tên sinh viên dạng chuỗi)
diem1, diem2, diem3 (diem1, diem2, diem3 là 3 số thực lưu điểm thi của 03 môn học)
+ Viết phương thức __init__ khởi tạo
+ Viết phương thức __str__ trả về chuỗi in ra dạng thông tin Student như sau: "name, (diem1,diem2,diem3)"
+ Viết phương thức tính điểm trung bình của 03 mơn thi.
+ Viết phương thức tìm điểm thi có giá trị lớn nhất.

----------------------------------------HẾT----------------------------------------

4



×