Trắc nghiệm Tin 10 Cánh diều Bài 12: Kiểu dữ liệu xâu kí tự - xử lí xâu kí tự - Đề 02
Trắc nghiệm Tin 10 Cánh diều Bài 12: Kiểu dữ liệu xâu kí tự - xử lí xâu kí tự - Đề 02 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Trong Python, kiểu dữ liệu xâu kí tự (string) được sử dụng để lưu trữ và xử lý các chuỗi văn bản. Xâu kí tự được định nghĩa bằng cách đặt các kí tự trong cặp dấu nào?
- A. Dấu ngoặc đơn `()`
- B. Dấu ngoặc vuông `[]`
- C. Dấu nháy đơn `""` hoặc dấu nháy kép `
- D. Dấu ngoặc nhọn `{}`
Câu 2: Cho đoạn chương trình Python sau:
```python
ten_mon_hoc = "Tin học 10"
chuoi_rong = ""
so_luong = "30"
print(type(ten_mon_hoc))
print(type(chuoi_rong))
print(type(so_luong))
```
Kết quả in ra màn hình sẽ là gì?
Câu 3: Trong một xâu kí tự, vị trí của các kí tự được đánh số bắt đầu từ 0. Cho xâu `s = "Python"`, kí tự "h" nằm ở vị trí (chỉ số) nào?
Câu 4: Cho xâu `ngon_ngu = "Python"`. Để truy cập đến kí tự cuối cùng của xâu này bằng chỉ số âm, ta sử dụng chỉ số nào?
- A. -0
- B. -5
- C. -len(ngon_ngu)
- D. -1
Câu 5: Cho đoạn chương trình sau:
```python
xau_goc = "Lap trinh Python"
ket_qua = xau_goc[4]
print(ket_qua)
```
Kết quả in ra màn hình là kí tự nào?
- A. "T"
- B. "r"
- C. "a"
- D. " "
Câu 6: Phép toán `+` khi áp dụng cho hai xâu kí tự có ý nghĩa gì?
- A. Ghép (nối) hai xâu lại với nhau.
- B. Cộng giá trị số của các kí tự trong xâu.
- C. So sánh hai xâu.
- D. Nhân bản xâu.
Câu 7: Cho đoạn chương trình sau:
```python
chao = "Xin chao"
ten = "VietJack"
loi_chao_day_du = chao + " " + ten + "!"
print(loi_chao_day_du)
```
Kết quả in ra màn hình là gì?
- A. "Xin chaoVietJack!"
- B. "Xin chao VietJack"
- C. "Xin chao VietJack!"
- D. "Xin chao VietJack !"
Câu 8: Phép toán `*` khi áp dụng cho một xâu kí tự và một số nguyên dương N có ý nghĩa gì?
- A. Lặp lại mỗi kí tự trong xâu N lần.
- B. Nhân giá trị số của các kí tự với N.
- C. Chia xâu thành N phần bằng nhau.
- D. Tạo ra một xâu mới bằng cách lặp lại xâu ban đầu N lần.
Câu 9: Cho đoạn chương trình sau:
```python
ky_tu = "-"
lan_lap = 5
duong_ke = ky_tu * lan_lap
print(duong_ke)
```
Kết quả in ra màn hình là gì?
- A. `-5`
- B. `-----`
- C. `ky_tu * lan_lap`
- D. `Error`
Câu 10: Hàm `len()` trong Python được sử dụng với xâu kí tự để làm gì?
- A. Tìm kiếm một kí tự trong xâu.
- B. Chuyển xâu thành chữ hoa.
- C. Xác định độ dài (số lượng kí tự) của xâu.
- D. Đếm số lần xuất hiện của một kí tự cụ thể.
Câu 11: Cho xâu `thong_diep = "Hello World!"`. Kết quả của `len(thong_diep)` là bao nhiêu?
Câu 12: Thao tác cắt xâu (slicing) trong Python được sử dụng để trích xuất một phần (xâu con) từ xâu ban đầu. Cú pháp cơ bản là `xau[start:end]`. Xâu con được tạo ra sẽ bao gồm các kí tự từ vị trí `start` đến vị trí `end` TRỪ kí tự tại vị trí `end`. Cho xâu `chuoi = "abcdefgh"`. Kết quả của `chuoi[2:5]` là gì?
- A. "cde"
- B. "cdef"
- C. "bcd"
- D. "bcde"
Câu 13: Cho xâu `du_lieu = "2023-10-26"`. Để lấy ra phần "10" (tháng) từ xâu này bằng thao tác cắt xâu, ta sử dụng cú pháp nào?
- A. `du_lieu[5:8]`
- B. `du_lieu[5:7]`
- C. `du_lieu[6:8]`
- D. `du_lieu[5:]`
Câu 14: Trong cắt xâu `xau[start:end]`, nếu bỏ qua `start`, nó mặc định là chỉ số đầu tiên (0). Nếu bỏ qua `end`, nó mặc định là chỉ số cuối cùng (bao gồm cả kí tự cuối cùng). Cho xâu `ngay_thang = "26/10/2023"`. Kết quả của `ngay_thang[:5]` là gì?
- A. "26/1"
- B. "26/10"
- C. "26/10"
- D. "/10/2"
Câu 15: Cho xâu `file_name = "document.txt"`. Để lấy phần mở rộng của tệp (".txt") bằng thao tác cắt xâu kết hợp chỉ số âm, ta sử dụng cú pháp nào?
- A. `file_name[-4:]`
- B. `file_name[-3:]`
- C. `file_name[:-4]`
- D. `file_name[-4:-1]`
Câu 16: Phương thức `xau.count(sub)` trả về số lần xâu con `sub` xuất hiện trong `xau`. Cho xâu `van_ban = "Toi yeu toan hoc, toi yeu tin hoc"`. Kết quả của `van_ban.count("toi")` là bao nhiêu?
Câu 17: Phương thức `xau.find(sub)` trả về chỉ số (vị trí) đầu tiên mà xâu con `sub` xuất hiện trong `xau`. Nếu không tìm thấy, nó trả về -1. Cho xâu `dia_chi = "Ha Noi, Viet Nam"`. Kết quả của `dia_chi.find("Viet")` là bao nhiêu?
Câu 18: Cho xâu `email = "user@example.com"`. Sử dụng phương thức `find()` để tìm vị trí của kí tự "@" trong địa chỉ email này.
- A. `email.find("@", 0)`
- B. `email.find("@", 1)`
- C. `email.find("@")`
- D. `email.find("@", -1)`
Câu 19: Phương thức `xau.replace(old, new)` tạo ra một xâu mới bằng cách thay thế tất cả các lần xuất hiện của xâu con `old` bằng xâu con `new` trong `xau`. Cho xâu `cau = "Toi di hoc, ban co di hoc khong?"`. Kết quả của `cau.replace("hoc", "choi")` là gì?
- A. "Toi di choi, ban co di hoc khong?"
- B. "Toi di hoc, ban co di choi khong?"
- C. "Toi di choi, ban co di choi khong?."
- D. "Toi di choi, ban co di choi khong?"
Câu 20: Cho xâu `gia = "Gia ban: 120000 dong"`. Bạn muốn thay thế dấu cách giữa "120000" và "dong" bằng dấu gạch dưới "_". Cú pháp `replace()` nào sau đây thực hiện được điều đó?
- A. `gia.replace(" dong", "_dong")`
- B. `gia.replace(" ", "_", 1)`
- C. `gia.replace("120000 ", "120000_")`
- D. `gia.replace(" ", "_")`
Câu 21: Các phép toán so sánh (`==`, `!=`, `<`, `>`, `<=`, `>=`) khi áp dụng cho xâu kí tự sẽ so sánh dựa trên thứ tự từ điển (lexicographical order). Thứ tự này dựa trên giá trị mã ASCII của các kí tự. Cho biết kết quả của phép so sánh `"Apple" < "apple"` là gì?
- A. True (Vì "A" đứng trước "a" trong bảng chữ cái)
- B. True (Vì mã ASCII của "A" nhỏ hơn mã ASCII của "a")
- C. False (Vì hai xâu khác nhau)
- D. False (Vì "apple" có nhiều kí tự hơn "Apple")
Câu 22: Kết quả của phép so sánh xâu `"10" > "2"` trong Python là gì? Giải thích lý do.
- A. False, vì so sánh theo thứ tự từ điển, kí tự "1" nhỏ hơn kí tự "2".
- B. True, vì số 10 lớn hơn số 2.
- C. True, vì xâu "10" dài hơn xâu "2".
- D. False, vì cả hai đều là xâu số.
Câu 23: Toán tử `in` được sử dụng để kiểm tra xem một xâu con có xuất hiện bên trong một xâu lớn hơn hay không. Kết quả trả về là `True` hoặc `False`. Cho xâu `slogan = "Hoc tap, hoc nua, hoc mai"`. Kết quả của `"hoc nua" in slogan` là gì?
- A. True
- B. False
- C. Error
- D. None
Câu 24: Cho xâu `url = "https://vietjack.com"`. Để kiểm tra xem địa chỉ URL này có bắt đầu bằng "https://" hay không, ta sử dụng toán tử `in` như thế nào?
- A. `url == "https://"`
- B. `"https://" in url`
- C. `url.find("https://") > -1`
- D. `url.startswith("https://")` (Lưu ý: `startswith` là phương thức, không phải toán tử `in`)
Câu 25: Xâu kí tự trong Python là bất biến (immutable), nghĩa là sau khi được tạo ra, nội dung của nó không thể bị thay đổi trực tiếp tại chỗ. Khi thực hiện các thao tác như ghép xâu, thay thế, cắt xâu, Python sẽ tạo ra điều gì?
- A. Thay đổi trực tiếp các kí tự trong xâu ban đầu.
- B. Gây ra lỗi chương trình.
- C. Tạo ra một xâu kí tự mới với nội dung đã thay đổi.
- D. Xóa xâu ban đầu khỏi bộ nhớ.
Câu 26: Cho đoạn chương trình sau:
```python
s = "Hello"
s = s + " World"
print(s)
```
Điều gì xảy ra ở dòng `s = s + " World"`?
- A. Xâu "Hello" bị thay đổi trực tiếp thành "Hello World".
- B. Gây ra lỗi vì xâu là bất biến.
- C. Xâu "Hello" bị xóa, và một xâu mới " World" được tạo ra.
- D. Một xâu mới "Hello World" được tạo ra và biến `s` được gán tham chiếu đến xâu mới đó.
Câu 27: Bạn có một danh sách các từ cách nhau bởi dấu phẩy như `"apple,banana,cherry"`. Bạn muốn chuyển danh sách này thành một danh sách (list) các xâu riêng biệt. Phương thức xử lý xâu nào thường được sử dụng cho mục đích này?
- A. Phương thức `split()`
- B. Phương thức `join()`
- C. Phương thức `replace()`
- D. Phương thức `find()`
Câu 28: Cho đoạn chương trình sau:
```python
chuoi_du_lieu = " Khoa hoc may tinh "
chuoi_da_xu_ly = chuoi_du_lieu.strip()
print(f"[{chuoi_da_xu_ly}]")
```
Kết quả in ra màn hình là gì? (Lưu ý dấu ngoặc vuông `[]` chỉ để dễ nhìn kết quả)
- A. `[ Khoa hoc may tinh ]`
- B. `[Khoa hoc may tinh ]`
- C. `[Khoa hoc may tinh]`
- D. `[ Khoa hoc may tinh]`
Câu 29: Bạn cần chuẩn hóa đầu vào là tên một thành phố, ví dụ " Ha Noi ". Bạn muốn loại bỏ khoảng trắng thừa ở đầu và cuối xâu, đồng thời chuyển tất cả các kí tự thành chữ thường. Chuỗi các phương thức xử lý xâu nào sau đây thực hiện được cả hai yêu cầu đó?
- A. `.strip().upper()`
- B. `.strip().lower()`
- C. `.lower().strip()`
- D. `.replace(" ", "").lower()`
Câu 30: Cho đoạn chương trình sau:
```python
s = "VietJack"
for i in range(len(s)):
if i % 2 == 0:
print(s[i], end="")
```
Kết quả in ra màn hình là gì?
- A. Vejc
- B. ietak
- C. V i e t J a c k
- D. VietJack