Bài tập về Hàm, Xâu kí tự - Ôn tập GK2 Lớp 10 - Tin học sách KNTTVCS

Web Publisher User

 

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))

 

 

Post a Comment

Chúng tôi rất vui khi bạn muốn đóng góp ý kiến. Để đảm bảo môi trường trao đổi lành mạnh, vui lòng tuân thủ các quy định sau:

1. Sử dụng tiếng Việt có dấu đầy đủ, tránh viết tắt.
2. Bình luận sẽ được kiểm duyệt trước khi công khai.
3. Tôn trọng người khác và đóng góp ý kiến xây dựng.
4. Tuân thủ chính sách của Google và TTKT.

Cảm ơn bạn đã đồng hành cùng chúng tôi!

CẢNH BÁO

Gần đây, chúng tôi phát hiện nội dung bị chụp màn hình và chia sẻ trái phép. TTKT khuyến cáo bạn không nên chụp màn hình mà hãy chia sẻ link đến bài viết để tôn trọng tác giả và tránh bị vô hiệu hóa tài khoản.

Yêu cầu Đăng nhập

Để tiếp tục sử dụng, vui lòng đăng nhập.