Trả lời nhanh
Câu lệnh nhập với biến kiểu thực là B. Biến = float(input(dòng thông báo)). Hàm input() luôn trả về xâu kí tự, nên phải dùng hàm float() để đổi xâu đó thành số thực. Nếu muốn nhập số nguyên thì dùng int(input(…)) thay cho float(input(…)).
Bài 4 của Tin học 10 (Cánh diều) xoay quanh hai việc: phân biệt kiểu số nguyên – số thực trong Python, và dùng input(), print() để nhập, xuất dữ liệu. Trước khi làm 20 câu bên dưới, em hãy đọc nhanh phần ghi nhớ này để làm bài chắc tay hơn.
Ghi nhớ nhanh trước khi làm bài
- Kiểu nguyên (int): 5, -3, 0, 100. Kiểu thực (float): 3.4, -0.5, 2.0 (có dấu chấm thập phân).
- Nhập dữ liệu:
input()luôn cho kết quả là xâu (str). Muốn có số phải ép kiểu bằngint()hoặcfloat(). - Xuất dữ liệu:
print(danh sách biểu thức), các biểu thức cách nhau bằng dấu phẩy. - Kiểm tra kiểu:
type(biểu thức). - Python không bắt khai báo kiểu biến và không cần dấu
;cuối lệnh; mỗi lệnh nên nằm trên một dòng.
| Phép toán | Ý nghĩa | Ví dụ | Kết quả |
|---|---|---|---|
| + − * | Cộng, trừ, nhân | 5 * 3 | 15 |
| / | Chia, luôn ra số thực | 6 / 3 | 2.0 |
| // | Chia lấy phần nguyên | 7 // 2 | 3 |
| % | Chia lấy phần dư | 17 % 5 | 2 |
| ** | Lũy thừa | 2 ** 3 | 8 |
Em chưa chắc lý thuyết có thể xem lại ở bài tóm tắt sau: Lý thuyết Tin học 10 Bài 4 (Cánh diều).
Phần 1. Câu lệnh xuất, hằng và quy tắc viết lệnh (Câu 1–5)
Câu 1. Câu lệnh đưa giá trị các biểu thức ra màn hình là:
A. print()
B. print(‘danh sách biểu thức’)
C. print danh sách biểu thức
D. print(danh sách biểu thức)
Đáp án: D. Cú pháp chuẩn là print(danh sách biểu thức). A thiếu nội dung nên chỉ in một dòng trống; B đặt trong dấu nháy nên in nguyên văn chữ “danh sách biểu thức”; C thiếu cặp ngoặc (Python 3 bắt buộc có ngoặc).
Câu 2. Gọi s là diện tích tam giác ABC, để đưa giá trị của s ra màn hình ta viết:
A. print(s)
B. print s
C. print(‘s)
D. print:(s)
Đáp án: A. Chỉ A đúng cú pháp. B thiếu ngoặc, C sai dấu nháy, D có dấu hai chấm thừa. Lưu ý: print('s') sẽ in chữ s chứ không phải giá trị của biến s.
Câu 3. Phát biểu nào sau đây đúng khi nói về hằng?
A. Hằng là đại lượng thay đổi trong quá trình thực hiện chương trình.
B. Hằng là đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình.
C. Hằng là đại lượng bất kì.
D. Hằng không bao gồm số học.
Đáp án: B. Hằng giữ nguyên giá trị suốt chương trình (ví dụ số 3.14, chuỗi ‘Xin chào’); đại lượng thay đổi là biến. A là định nghĩa của biến nên sai; D sai vì số cũng là hằng.
Câu 4. Phát biểu nào đúng về câu lệnh trong Python?
A. Mỗi câu lệnh nên viết trên một dòng riêng, kết thúc bằng dấu ;
B. Các câu lệnh nên được viết trên cùng một dòng.
C. Các câu lệnh viết trên một dòng, kết thúc bằng dấu ;
D. Mỗi câu lệnh nên được viết trên một dòng riêng biệt.
Đáp án: D. Python quy ước mỗi lệnh một dòng và không cần dấu chấm phẩy. A và C ép dấu ; (đó là thói quen từ Pascal, C), B trái với quy ước.
Câu 5. Phát biểu nào sau đây đúng?
A. Tất cả các biến dùng trong chương trình đều phải được đặt tên để chương trình dịch biết mà lưu trữ và xử lí.
B. Biến dùng trong chương trình không cần đặt tên.
C. Python quy định chặt chẽ phải có phần khai báo và phần thân như Pascal.
D. Python yêu cầu dùng dấu ; khi kết thúc lệnh.
Đáp án: A. Tên biến là cách duy nhất để gọi vùng nhớ chứa giá trị. C và D sai vì Python không có phần khai báo riêng và không cần dấu ;.
Phần 2. Kiểu dữ liệu và câu lệnh nhập (Câu 6–12)
Câu 6. Cho đoạn chương trình:
a = 3.4
print(type(a))
Kết quả hiển thị kiểu dữ liệu nào? A. int B. float C. str D. bool
Đáp án: B. 3.4 có phần thập phân nên là số thực (float). Màn hình sẽ hiện <class 'float'>.
Câu 7. Câu lệnh nhập với biến kiểu nguyên là:
A. Biến = (input(dòng thông báo)
B. Biến = float(input(dòng thông báo))
C. Biến = input()
D. Biến = int(input(dòng thông báo))
Đáp án: D. int() đổi xâu vừa nhập thành số nguyên. A thiếu một ngoặc đóng; B cho số thực; C chỉ thu được xâu.
Câu 8. Câu lệnh nhập với biến kiểu thực là:
A. Biến = (input(dòng thông báo)
B. Biến = float(input(dòng thông báo))
C. Biến = input()
D. Biến = int(input(dòng thông báo))
Đáp án: B. Đây chính là câu trả lời cho từ khoá của bài. Trình tự thực hiện từ trong ra ngoài: input(...) nhận xâu từ bàn phím → float(...) đổi xâu thành số thực → gán vào biến. Loại A (sai cú pháp), C (kết quả là xâu), D (chỉ nhận số nguyên; nhập 2.5 sẽ báo lỗi ValueError).
Câu 9. Để nhập từ bàn phím biến a kiểu nguyên ta viết:
A. a = input(‘n=’)
B. a = float(input(‘n=’))
C. a = int(input(‘n=’))
D. a = int()
Đáp án: C. Dòng ‘n=’ là lời nhắc hiện trên màn hình trước khi người dùng nhập. D chỉ tạo số 0, không nhập gì.
Câu 10. Để nhập từ bàn phím biến b kiểu thực ta viết:
A. b = input(‘n=’)
B. b = float(input(‘n=’))
C. b = int(input(‘n=’))
D. b = int()
Đáp án: B. Cùng cấu trúc với câu 8, chỉ thay lời nhắc bằng ‘n=’.
Câu 11. Để tính tổng s của hai số 5 và 6, s thuộc kiểu dữ liệu: A. int B. float C. bool D. str
Đáp án: A. 5 + 6 = 11, cộng hai số nguyên cho số nguyên.
Câu 12. Đâu là câu lệnh gán trong Python?
A. X == 6 B. X = 6 C. X != 6 D. X := 6
Đáp án: B. Dấu = là phép gán. == là so sánh bằng, != là so sánh khác. Dạng := là toán tử đặc biệt, không dùng như lệnh gán ở mức Tin học 10.
Phần 3. Phép toán số học và đọc kết quả chương trình (Câu 13–20)
Câu 13. Phát biểu nào sau đây là sai?
A. Ngôn ngữ lập trình bậc cao có kiểu số nguyên và kiểu số thực.
B. Hàm input() trả về giá trị kiểu xâu kí tự.
C. Python yêu cầu khai báo kiểu của biến trước khi dùng, giống Pascal.
D. Phép // cho kết quả là phần nguyên của phép chia.
Đáp án: C. Python tự xác định kiểu của biến theo giá trị được gán nên không cần khai báo. Ba phát biểu còn lại đều đúng. Với câu “chọn phát biểu sai”, hãy gạch chân từ “sai” để khỏi chọn nhầm phát biểu đúng.
Câu 14. Kết quả của print(7 // 2) là: A. 3.5 B. 3 C. 4 D. 1
Đáp án: B. 7 chia 2 được 3 dư 1; // lấy thương nguyên là 3. A là kết quả của 7 / 2; D là kết quả của 7 % 2.
Câu 15. Kết quả của print(17 % 5) là: A. 3 B. 3.4 C. 2 D. 5
Đáp án: C. 17 = 5 × 3 + 2 nên số dư là 2.
Câu 16. Kết quả của print(2 ** 3) là: A. 6 B. 5 C. 9 D. 8
Đáp án: D. 23 = 8. Sai lầm phổ biến là nhầm với 2 × 3 = 6.
Câu 17. Đoạn lệnh print(type(6 / 3)) cho kiểu dữ liệu: A. int B. float C. str D. bool
Đáp án: B. Phép / luôn cho số thực, kể cả khi chia hết: 6 / 3 = 2.0. Muốn kết quả nguyên thì dùng 6 // 3.
Câu 18. Chạy đoạn chương trình sau, người dùng nhập lần lượt 12 và 5:
a = int(input())
b = int(input())
print(a // b, a % b)
Màn hình hiện: A. 2.4 2 B. 2 2 C. 2 12 D. 2,2
Đáp án: B. 12 // 5 = 2 và 12 % 5 = 2. Hai giá trị trong print được ngăn cách bằng một dấu cách theo mặc định, không phải dấu phẩy.
Câu 19. Người dùng nhập 3 rồi nhập 4 cho đoạn chương trình:
a = input()
b = input()
print(a + b)
Kết quả là: A. 7 B. 7.0 C. 34 D. Báo lỗi
Đáp án: C. Vì không ép kiểu nên a = ‘3’, b = ‘4’ là hai xâu; dấu + nối xâu thành ’34’. Đây là lỗi mà học sinh mới học hay gặp nhất.
Câu 20. Biểu thức toán học (a + b)/2 (trung bình cộng) viết đúng trong Python là:
A. a + b / 2
B. (a + b) / 2
C. (a + b) // 2 (khi a, b nguyên thì luôn cho đúng trung bình cộng)
D. a + (b / 2)
Đáp án: B. Phải đặt ngoặc để cộng trước rồi mới chia. A và D chỉ chia b cho 2 trước (độ ưu tiên của / cao hơn +). C bỏ mất phần thập phân khi a + b lẻ, ví dụ (3 + 4) // 2 = 3 chứ không phải 3.5.
Bảng đáp án nhanh
| Câu | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| Đáp án | D | A | B | D | A | B | D | B | C | B |
| Câu | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
|---|---|---|---|---|---|---|---|---|---|---|
| Đáp án | A | B | C | B | C | D | B | B | C | B |
Những lỗi sai thường gặp ở bài này
- Quên ép kiểu: viết
a = input()rồi tínha * 2. Nếu nhập 5, kết quả là ’55’ chứ không phải 10. - Nhập số thực bằng int(): gõ 2.5 cho
int(input())gây lỗi ValueError. Khi đề không nói rõ số nguyên, dùng float cho an toàn. - Nhầm / và //: nhớ “một gạch chia chính xác (thực), hai gạch chia lấy nguyên”.
- Nhầm = và ==: một dấu bằng để gán, hai dấu bằng để so sánh.
- Quên ngoặc trong
printhoặcinput, hoặc mở ngoặc nhiều hơn đóng như phương án A ở câu 7.
Mẹo nhớ: nhập số = “kiểu(input(…))” — kiểu là int hoặc float, input nằm bên trong.
Bài luyện tập tự giải
- Viết lệnh nhập chiều dài a (số thực) với lời nhắc “Chiều dài: “.
- Cho
x = 23. Giá trị củax // 4vàx % 4lần lượt là bao nhiêu? - Viết một lệnh in ra chu vi hình chữ nhật có hai cạnh là biến a, b (đã nhập kiểu thực).
Đáp án gợi ý:
a = float(input('Chiều dài: '))- 23 = 4 × 5 + 3 nên
x // 4 = 5,x % 4 = 3. print(2 * (a + b))
Tài liệu học cùng bài này
- Giải SGK Tin học 10 Bài 4 (Cánh diều)
- Sách bài tập Tin học 10 Bài 4 (Cánh diều)
- Trắc nghiệm Tin học 10 Bài 2: Biến, phép gán và biểu thức số học
- Trắc nghiệm Tin học 10 Bài 6: Câu lệnh rẽ nhánh
- Trắc nghiệm Tin học 10 Cánh diều cả năm
Câu hỏi thường gặp
Câu lệnh nhập với biến kiểu thực là gì?
Là Biến = float(input(dòng thông báo)). Ví dụ: b = float(input('Nhập b: ')). Hàm input() nhận xâu, float() đổi xâu đó thành số thực.
Vì sao phải dùng int() hoặc float() bao ngoài input()?
Vì input() luôn trả về xâu kí tự. Nếu không ép kiểu, phép + sẽ nối xâu (3 và 4 thành '34') và các phép tính số học sẽ báo lỗi hoặc cho kết quả sai.
Phép / và // trong Python khác nhau thế nào?
Phép / là chia thực, luôn cho kết quả float (7 / 2 = 3.5, 6 / 3 = 2.0). Phép // chia lấy phần nguyên (7 // 2 = 3).
Python có cần khai báo kiểu biến và dấu chấm phẩy cuối lệnh không?
Không. Python tự xác định kiểu theo giá trị gán cho biến, và mỗi câu lệnh chỉ cần viết trên một dòng riêng, không bắt buộc kết thúc bằng dấu ;.