|
TTKT
– ttkntc.blogspot.com TÀI
LIỆU THAM KHẢO KIỂM TRA GIỮA KÌ 2 Trường: __________________________________ Họ và tên:
________________________________ Lớp: ____________ |
Môn: Tin học Thời
gian: 45
phút Chương
trình: KNTT&CS Số
báo danh:
|
Câu 1. Viết chương trình nhập một xâu S là họ tên đầy
đủ (gồm họ, đệm, tên) từ bàn phím, sau đó in ra màn hình lần lượt họ, đệm và
tên vừa nhập.
|
Input |
Output |
|
S = “Nguyễn Văn A” |
Họ: Nguyễn |
|
Họ đệm: Văn |
|
|
Tên: A |
Đáp án
S = input('Nhập họ và tên đầy đủ: ')
L = S.split()
print('Họ:', L[0])
print('Tên đệm:', end=" ")
for i in range(1, len(L)-1):
print(L[i], end=" ")
print()
print('Tên:', L[len(L)-1])
Câu 2. Viết chương trình nhập vào một xâu S từ bàn
phím gồm các số tự nhiên, mỗi số cách nhau bởi một khoảng trống. Tính và in ra
màn hình tổng, trung bình cộng của các số vừa nhập từ bàn phím.
|
Input |
Output |
|
S = "2 4 0 -3
7" |
Tổng: 10 |
|
Trung bình: 2.0 |
Đáp án
S = input('Nhập các số tự nhiên, cách nhau bởi khoảng trắng: ')
L = S.split() # Tách xâu S ra từng giá trị, kiểu dữ liệu string
Sum = 0 # Hàm để lưu tổng
for i in L:
Sum = Sum + int(i)
print('Tổng:', Sum)
print('Trung bình:', Sum/len(L))
Câu 3. Áp dụng cấu trúc hàm để viết chương trình nhập
vào số tự nhiên N từ bàn phím. Kiểm tra số N có phải là số nguyên tố hay không?
|
Input |
Output |
|
N = 5 |
“5 là số nguyên tố" |
|
N = 6 |
‘6 không phải số
nguyên tố' |
Đáp án
# Hàm đếm số nghiệm của một số
def SoNghiem(x):
nghiem = 0
for i in range(1, x+1):
if x%i == 0:
nghiem = nghiem + 1
return nghiem
# Hàm đếm số nguyên tố
def SNT(y):
if y == 2:
return True # Số nguyên tố
chỉ có 2 nghiệm, là 1 và chính nó
else:
return False # Nếu có nhiều
hơn 2 nghiệm, không là số nguyên tố
# Khu vực chương trình chính
S = int(input('Nhập một số cần kiểm tra: '))
N = SoNghiem(S)
Check = SNT(N)
if Check == True:
print(S, 'là số nguyên tố')
else:
print(S, 'không lá số nguyên tố')
Câu 4. Áp dụng cấu trúc hàm để viết chương trình nhập
vào một xâu S từ bàn phím. Kiểm tra và in ra trong xâu có bao nhiêu kí tự là chữ
số, bao nhiêu kí tự là chữ cái.
|
Input |
Output |
|
S = "70 Le Hong
Phong" |
“Xâu có 2 kí tự là
chữ số' |
|
“Xâu có 11 kí tự là
chữ cái' |
Đáp án
# Hàm đếm số kí tự là chữ số
def NumChar(string):
c = 0
for i in string:
if i in
"1234567890":
c = c + 1
return c
# Hàm đếm số kí tự là chữ cái
def TextChar(string):
c = 0
for j in string:
if j in
'qwertyuiopasdfghjklzxcvbnm' or j in 'QWERTYUIOPÁDFGHJKLZXCVBNM':
# Xử lí biến đếm cả
trường hợp chữ hoa và chữ thường
c = c + 1
return c
# Chương trình chính
S = input('Nhập xâu cần xác đinh: ')
Num = NumChar(S)
Txt = TextChar(S)
# In ra màn hình
print('Xâu có', str(Num), 'kí tự là chữ số')
print('Xâu có', str(Txt), 'kí tự là chữ cái')
Câu 5. Viết một hàm Python có tên tinhtong nhận
hai tham số là hai số nguyên dương a và b. Hàm này trả về tổng của tất cả các số
chẵn nằm trong khoảng từ a đến b (bao gồm cả a và b nếu chúng là số chẵn).
|
Input |
Output |
|
a = 3 |
Tổng: 18 |
|
b=8 |
Đáp án
def tinhtong(a, b):
T = 0
for i in range(a, b+1):
if i % 2 == 0:
T = T + i
return T
a = int(input('Nhập số a: '))
b = int(input('Nhập số b: '))
print('Tổng:', tinhtong(a, b))
Câu 6. Định nghĩa một hàm Python có tên kiemtra_namnhuan
nhận một tham số là nam (số nguyên). Hàm này trả về True nếu năm
đó là năm nhuận và False nếu không phải. Sử dụng hàm này để viết chương
trình nhập vào một năm từ bàn phím và in ra thông báo cho biết năm đó có phải
là năm nhuận hay không.
|
Input |
Output |
|
nam = 2000 |
“Năm 2000 là năm nhuận' |
|
nam = 2025 |
‘Năm 2025 là năm
không nhuận’ |
Đáp án
def kiemtra_namnhuan(nam):
if nam % 400 == 0 or (nam % 4
== 0 and nam % 100 != 0):
return True
else:
return False
nam = int(input('Nhập số năm: '))
r = kiemtra_namnhuan(nam)
# Kiểm tra xem giá trị năm nhuận là True hay False, sau đó hiện các thông
báo tương ứng
if r:
print('Năm', nam, 'là năm nhuận')
else:
print('Năm', nam, 'là năm
không nhuận')
Câu 7. [VẬN DỤNG CAO] Định nghĩa một hàm Python có tên str_to_int
nhận một tham số là chuỗi `s` (kiểu
string). Hàm này chuyển chuỗi `s` thành
một số nguyên int. Trong quá trình chuyển đổi, bỏ qua mọi khoảng trắng ở đầu
chuỗi, sau đó xác định dấu của số (nếu có dấu '-' thì số là âm, nếu có dấu '+' thì số
là dương, nếu không có dấu thì mặc định là số dương). Sau đó, đọc các ký tự là
chữ số liên tiếp để tạo thành số nguyên. Nếu gặp ký tự không phải chữ số hoặc hết
chuỗi, dừng lại và trả về số nguyên đã tính được. Nếu chuỗi không chứa chữ số
nào, trả về giá trị 0. Kết quả trả về phải thuộc kiểu dữ liệu integer.
|
Input (str) |
Output (int) |
|
-3 44 2 |
-3442 |
|
Hello world |
0 |
Đáp án
# Phần viết hàm chuyển đổi xâu thành số nguyên
def str_to_int(s):
ns = ''
for i in s:
if i in '0123456789+-':
ns = ns + str(i)
if ns == '':
return int(0)
return int(ns)
# Phần chương trình chính
s = input('Nhập số: ')
N = str_to_int(s)
print(N)
Câu 8. Viết chương trình nhập vào một xâu. Tìm và xóa
đi các dấu cách thừa có trong xâu.
|
Input |
Output |
|
S = ' baby table
cloud ' |
S = 'baby table
cloud' |
Đáp án
S = input('Nhập vào xâu S: ')
L = S.split() # Tách từng từ ra thành danh sách
S = ' '.join(L) # Nối danh sách lại, thêm khoảng trắng giữa các từ
print(S) # In ra danh sách
Câu 9. Cho xâu S và hai số nguyên dương M, N (M
≤ N). Viết chương trình sử dụng hàm def in ra kết quả trực tiếp để lấy ra xâu
con của xâu S từ vị trí M đến vị trí N.
|
Input |
Output |
|
S = 'Chào mừng các bạn
đang xem tài liệu tại ttkntc.blogspot.com'; M = 0; N = 9 |
'Chào mừng' |
Đáp án
# Hàm lấy ra giá trị
def StrValue(string, start, stop):
S = '' # Biến lưu trữ giá trị
cần lấy
for i in range(len(string)): #
Dùng vòng lặp theo chỉ số để lặp qua danh sách
if i <= stop and i
>= start: # Kiểm tra xem giá trị có nằm trong khoảng cần lấy hay không
S = S + string[i]
return S # Trả về xâu S chính
là giá trị cần lấy
# Chương trình chính
S = input('Nhập vào xâu S: ')
M = int(input('Nhập vào số M: '))
N = int(input('Nhập vào số N: '))
SI = StrValue(S, M, N) # Gọi hàm và truyền vào các đối số S, M, N
print(SI) # In ra giá trị cần lấy
Câu 10. Cho hai xâu S1, S2 và số nguyên dương N.
Viết chương trình sử dụng cấu trúc hàm để chèn xâu S1 vào vị trí N của xâu S2 sử
dụng slicing. Hãy xem đoạn hướng dẫn bên dưới để biết cách sử dụng slicing.
Slicing trong Python là một phương pháp đơn giản để trích xuất một phần con từ các đối tượng có thể lặp như xâu và danh sách. Cú pháp cơ bản của slicing là <tên biến>[<start>:<end>], trong đó start là chỉ số bắt đầu của phần con (mặc định là 0 nếu không chỉ định), end là chỉ số kết thúc, sẽ lấy kí tự ở chỉ số end - 1.
Ví dụ, nếu ta có một chuỗi S = "Python", biểu thức S[1:4] sẽ lấy các ký tự từ chỉ số 1 đến 3, kết quả là "yth". Slicing cũng hỗ trợ chỉ số âm, cho phép lấy phần con từ cuối đối tượng trở về đầu, ví dụ S[-3:]sẽ lấy ba ký tự cuối cùng của chuỗi "Python", kết quả là "hon". Tổng quát, slicing là một công cụ mạnh mẽ giúp thao tác với các phần tử trong các đối tượng có thể lặp một cách linh hoạt và hiệu quả.
|
Input |
Output |
|
S1 = 'học' |
'Trường học thân thiện' |
|
S2 = 'Trường thân
thiện' |
|
|
N = 7 |
Đáp án
# Hàm chèn vị trí
def InsertStr(S1, S2, N):
# Dùng slicing để nối các phần
của xâu lại
S = S2[0:N] + S1 +
S2[N:len(S2)-1]
return S # Trả về xâu đã nối
# Phần chương trình chính
S1 = input('Nhập xâu S1: ')
S2 = input('Nhập xâu S2: ')
N = int(input('Nhập vị trí cần chèn xâu S1 vào S2: '))
# Gọi hàm, lưu giá trị đã xử lí vào biến S
S = InsertStr(S1, S2, N)
# In ra biến S
print(S)
Câu 11. Viết chương trình sử dụng cấu trúc hàm để
nhập hai số nguyên dương từ bàn phím, các số cách nhau bởi khoảng cách. Tìm và
đưa ra ước chung nhỏ nhất của hai số đó.
|
Input |
Output |
|
a = 20 |
5 |
|
b = 25 |
Đáp án
# Hàm tính ước chung
def Uoc(a, b):
for i in range(2, b):
if a % i == 0 and b % i ==
0:
A = i
return A
# Chương trình chính
S = input('Nhập hai số A và B cách nhau bởi khoảng trắng, a không lớn
hơn b: ')
L = S.split()
A = Uoc(int(L[0]), int(L[1]))
print(A)
Câu 12. Cho xâu S và hai số nguyên dương M, N (M
≤ N). Viết chương trình lấy ra xâu con của xâu S từ vị trí M đến vị trí N.
|
Input |
Output |
|
S = 'Chào mừng năm mới';
M = 0; N = 9 |
'Chào mừng' |
Đáp án
# Hàm lấy giá trị
def GetChar(s, m, n):
return S[M:N]
# Phần chương trình chính
S = input('Nhập S: ')
M = int(input('Nhập M: '))
N = int(input('Nhập N: '))
SI = GetChar(S, M, N)
print(SI)
Câu 13. Viết chương trình kiểm tra một xâu có chứa
chữ số không bằng cách sử dụng cấu trúc hàm. Nếu có thì thông báo "S có chứa
chữ số" và ngược lại thông báo "S không chứa chữ số nào"
|
Input |
Output |
|
S = 'Chào mừng năm mới
2025' |
'S có chứa chữ số' |
|
S = 'An khang – Thịnh
vượng' |
'S không chứa chữ số
nào' |
Đáp án
# Hàm kiểm tra
def ChkNumChar(S):
for i in S:
if i in '0123456789':
return True
return False
# Chương trình chính
S = input('Nhập xâu S: ')
CN = ChkNumChar(S)
# Kiểm tra điều kiện và trả về thông báo
if CN:
print('S có chứa chữ số')
else:
print('S không chứa chữ số')
Câu 14. Viết chương trình nhập vào một xâu S có các từ
cách nhau một khoảng trắng. Hãy đếm và in ra số từ có trong xâu S.
|
Input |
Output |
|
S = 'Chào mừng năm mới
2025' |
Số từ: 5 |
|
S = 'Tài liệu tại
TTKT' |
Số từ: 4 |
Đáp án
# Hàm đếm số từ
def SoTu(S):
L = S.split()
return len(L)
# Chương trình chính
S = input('Nhập S: ')
L = SoTu(S)
print('Số từ: ' + str(L))
Câu 15. Viết chương trình nhập vào một xâu S có các từ
cách nhau một khoảng trắng. Hãy đếm và in ra số từ có trong xâu S.
Đáp án
# Hàm đếm số nguyên dương
def Duong(N):
# Type: List
dem = 0
for i in N:
if int(i) > 0:
dem = dem + 1
return dem
# Hàm đếm số nguyên âm
def Am(N):
# Type: List
dem = 0
for i in N:
if int(i) < 0:
dem = dem + 1
return dem
# Chương trình chính
S = input('Nhập dãy số nguyên, cách nhau bởi khoảng trắng: ')
L = S.split()
# In ra kết quả
print('Dãy số bạn vừa nhập:', L)
print('Số dương:', Duong(L))
print('Số âm:', Am(L))