You are currently viewing CÂU HỎI TRẮC NGHIỆM TIN HỌC 10 – CHỦ ĐỀ 5 – PYTHON

CÂU HỎI TRẮC NGHIỆM TIN HỌC 10 – CHỦ ĐỀ 5 – PYTHON

CÂU HỎI TRẮC NGHIỆM TIN HỌC 10 CHỦ ĐỀ 5 – GIẢI QUYẾT VẤN ĐỀ VỚI SỰ TRỢ GIÚP CỦA MÁY TÍNH

Tổng hợp 300 câu hỏi trắc nghiệm Ngôn ngữ lập trình Python có đáp án và giải thích đáp án rất dễ hiểu và chi tiết. Các câu hỏi được chia theo từng bài trong SGK Tin học 10 Kết nối tri thức với cuộc sống và SGK Tin học 10 Cánh diều.

Nội dung chủ đề 5 SGK Tin học 10 ICT Kết nối tri thức với cuộc sống gồm 15 bài lý thuyết:

Bài 16: Ngôn ngữ lập trình bậc cao và python

Bài 17: Biến và lệnh gán

Bài 18: Các lệnh vào ra đơn giản

Bài 19: Câu lệnh điều kiện If

Bài 20: Câu lệnh lặp For

Bài 21: Câu lệnh lặp while

Bài 22: Kiểu dữ liệu danh sách

Bài 23: Một số lệnh làm việc với dữ liệu danh sách

Bài 24: Xâu kí tự

Bài 25: Một số lệnh làm việc với xâu kí tự

Bài 26: Hàm trong Python

Bài 27: Tham số của hàm

Bài 28: Phạm vi của biến

Bài 29: Nhận biết lỗi chương trình

Bài 30: Kiểm thử và gỡ lỗi chương trình

Bài 16: Ngôn ngữ lập trình bậc cao và python

Câu 1. Ai đã phát triển Ngôn ngữ lập trình Python?

  1. Wick van Rossum.
  2. Rasmus Lerdorf.
  3. Guido van Rossum.
  4. Niene Stom.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Ngôn ngữ Python được thiết kế bởi một lập trình viên người Hà Lan Guido van Rossum.

Câu 2. Ngôn ngữ Python được ra mắt lần đầu vào năm nào?

A. 1995.
B. 1972.
C. 1981.
D. 1991.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Ngôn ngữ Python được phát triển bởi Guido van Rossum và ra mắt lần đầu vào năm 1991.

Câu 3. Ngôn ngữ nào gần với ngôn ngữ tự nhiên nhất?

  1. Ngôn ngữ bậc cao.
  2. Ngôn ngữ máy.
  3. Hợp ngữ.
  4. Cả ba phương án đều sai.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Ngôn ngữ lập trình bậc cao có các câu lệnh được viết gần với ngôn ngữ tự nhiên giúp cho việc đọc, hiểu chương trình dễ dàng hơn.

Câu 4. Ngôn ngữ nào sau đây không phải ngôn ngữ bậc cao?

  1. A. C/C++.
  2. Assembly.
  3. Python.
  4. Java.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Assembly là hợp ngữ.

Câu 5. Phần mở rộng nào sau đây là đúng của tệp Python?

A .python.

B .pl.

C .py.

D .p.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

‘.py’ là phần mở rộng chính xác của tệp Python. Các chương trình Python có thể được viết bằng bất kỳ trình soạn thảo văn bản nào. Để lưu các chương trình này, chúng ta cần lưu trong các tệp có phần mở rộng tệp là ‘.py’.

Câu 6. Giá trị của biểu thức Python sau sẽ là bao nhiêu?

4 + 15 / 5

A. 7.
B. 2.
C. 4.
D. 1.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Thứ tự ưu tiên là: /, +. Do đó, biểu thức trên, khi đơn giản hóa cho kết quả là 4 + 3 = 7. Do đó kết quả là 7

Câu 7. Điều nào sau đây được sử dụng để xác định một khối mã trong ngôn ngữ Python?

  1. Thụt lề.
  2. Nháy “ ”.
  3. Dấu ngoặc ( ).
  4. Dấu ngoặc [ ].

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Trong Python, để xác định một khối mã, chúng ta sử dụng thụt đầu dòng. Thụt lề đề cập đến là khoảng trắng ở đầu dòng.

Câu 8. Thứ tự thực hiện các phép tính trong Python ở đáp án nào đúng?

  1. /, -, +, *.
  2. (*, /), (+, -).
  3. Từ trái sang phải.
  4. (+, -), (*, /).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Trong Python, phép tính nhân chia sẽ được thực hiện trước các phép tính cộng trừ giống như trong toán học.

Câu 9. Giá trị của biểu thức Python sau sẽ là bao nhiêu?

6 – 6 / 2 + 4 * 5 – 6 / 2

A. 17.

B. 20.

C. 18.

D. 19.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

6 – 6 / 2 + 4 * 5 – 6 / 2 = 6 – 3 + 20 – 3 = 20

Câu 10. Câu lệnh sau bị lỗi ở đâu?

>>> 3 + * 5

  1. 3 .
  2. + hoặc *.
  3. *.
  4. Không có lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Không thể có 2 dấu + và * giữa hai số, cần bỏ một trong hai dấu này.

Câu 11: Để kết thúc một phiên làm việc trong python, ta có thể?

  1. Nháy dấu X góc bên phải màn hình.
  2. Gõ câu lệnh quit() rồi ấn Enter
  3. Sử dụng câu lệnh Exit.
  4. Cả ba cách làm trên đều đúng.

Hướng dẫn giải thích đáp án:  Đáp án đúng là : D

Để kết thúc một phiên làm việc trong python, ta có thể nháy dấu x góc bên phải màn hình, gõ câu lệnh quit() rồi ấn Enter hoặc sử dụng câu lệnh Exit.

Câu 12: Output của lệnh sau là:

print(1+ 2 + 3+ 4)

A. 10.

B. 15.

C. 1 + 2 + 3 + 4.

D. 1 + 2 + 3.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

1 + 2 + 3 + 4 = 10

Câu 13: Phát biểu nào sau đây sai khi nói về python?

  1. Python là ngôn ngữ lập trình bậc cao.
  2. Python có mã nguồn mở thu hút được nhiều nhà khoa học cùng phát triển.
  3. Python có các lệnh phức tạp nên không phổ biến trong giáo dục.
  4. Python có các câu lệnh khá gần ngôn ngữ tự nhiên.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Python có các câu lệnh gần với ngôn ngữ tự nhiên, phổ biến trong nghiên cứu và giáo dục.

Câu 14. Chọn phát biểu đúng khi nói về môi trường lập trình Python?

  1. Chế độ soạn thảo có dấu nhắc.
  2. Ngoài chế độ gõ lệnh trực tiếp và soạn thảo còn có các chế độ khác
  3. Chế độ gõ lệnh trực tiếp thích hợp cho việc tính toán và kiểm tra nhanh các lệnh
  4. Chế độ gõ lệnh trực tiếp có con trỏ soạn thảo.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Môi trường lập trình Python có hai chế độ:

– Chế độ gõ lệnh trực tiếp thường được dùng để tính toán và kiểm tra nhanh các lệnh.

– Chế độ soạn thảo dùng để viết các chương trình có nhiều dòng lệnh.

Câu 15. Dùng câu lệnh print và kí tự nào để viết được đoạn văn xuống dòng giữa xâu?

  1. Cặp dấu nháy đơn.
  2. Cặp ba dấu nháy kép.
  3. Cặp dấu nháy kép.
  4. Không thể thực hiện được.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Nếu một xâu được viết giữa cặp ba dấu nháy kép thì chúng ta có thể dùng phím Enter để xuống dòng giữa xâu

Bài 17: Biến và lệnh gán

Câu 1. Trong ngôn ngữ Python, tên nào sau đây là từ khoá?

  1. program, sqr.
  2. uses, var.
  3. include, const.
  4. if, else.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Từ khoá là các từ đặc biệt tham gia vào cấu trúc của ngôn ngữ lập trình như if, else, none, True, and, def,…

Câu 2. Đâu là quy tắc đúng khi đặt tên biến cho Python?

  1. Tên biến có thể bắt đầu bằng dấu gạch dưới “_”
  2. Có thể sử dụng keyword làm tên biến
  3. Tên biến có thể bắt đầu bằng một chữ số
  4. Tên biến có thể có các kí hiệu @, #, %, &,…

Hướng dẫn giải thích đáp án:  Đáp án đúng là A

Tên biến chỉ gồm các chữ cái tiếng Anh, các chữ số từ 0 đến 9 và kí tự gạch dưới “_”, không bắt đầu bằng chữ số.

Câu 3. Từ khoá của một ngôn ngữ lâp trình là:

  1. là những từ dành riêng.
  2. cho một mục đích sử dụng nhất định.
  3. có thể đặt tên cho biến.
  4. Cả A và B

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Từ khoá là các từ đặc biệt tham gia vào cấu trúc của ngôn ngữ lập trình. Không được phép đặt tên biến hay các định danh trùng với từ khoá

Câu 4. Trong ngôn ngữ lập trình Python, từ khoá và tên:

  1. Có ý nghĩa như nhau.
  2. Người lập trình phải tuân theo quy tắc đặt tên.
  3. Có thể trùng nhau.
  4. Cả ba đáp án trên đều đúng.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Người lập trình phải tuân theo quy tắc đặt tên của ngôn ngữ Python, và không được phép đặt tên biến hay các định danh trùng với từ khoá

Câu 5. Trong ngôn ngữ Python, tên nào sau đây đặt sai theo quy tắc?

  1. 11tinhoc.
  2. tinhoc11.
  3. tin_hoc.
  4. _11.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Tên biến không được bắt đầu bằng chữ số

Câu 6. Lệnh gán giá trị cho biến b nguyên nào sau đây là đúng?

A. b = 10.

B. B = 10.

C. b == 10

D. b = ‘10’

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Trong python có phân biệt chữ hoa và chữ thường, b là biến nguyên.

Câu 7. Trường hợp nào sau đây không phải lệnh gán trong python?

A. cd = 50.

B. a = a * 2.

C. a = 10.

D. a + b = 100.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Cú pháp lệnh gán <biến> = <giá trị>

a + b = 100 là biểu thức không phải lệnh gán

Câu 8. Tên biến nào sau đây là đúng trong Python?

  1. –tich.
  2. tong@.
  3. 1_dem.
  4. ab_c1.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Tên biến chỉ gồm các chữ cái tiếng Anh, các chữ số từ 0 đến 9 và kí tự gạch dưới “_”, không bắt đầu bằng chữ số

Câu 9. Tìm lỗi sai trong khai báo biến nguyên Max sau đây?

Max = 2021:

  1. Dư dấu (=)
  2. Tên biến trùng với từ khoá
  3. Dư dấu (:)
  4. Câu lệnh đúng

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Cú pháp lệnh gán <biến> = <giá trị>, không có dấu (:) kết thúc

Câu 10. Để gán giá trị cho một biến số ta thực hiện như thế nào?

  1. <giá trị> := A.
  2. A = <giá trị>.
  3. <giá trị> = A.
  4. A := <giá trị>.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Cú pháp lệnh gán <biến> = <giá trị>

Câu 11. Để tính diện tích đường tròn bán kính R, với pi = 3,14, biểu thức nào sau đây trong Python là đúng?

  1. S:=R*R*pi.
  2. S=R*R*pi.
  3. S:=2(R)*pi.
  4. S:=R2*pi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Cú pháp lệnh gán <biến> = <giá trị>, không có dấu (:)

Câu 12. Để viết 3 mũ 4 trong Python chọn

A. 3**4.

B. 3//4.

C. 3*3+3*3.

D. 3%4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Để biểu diễn luỹ thừa trong python sử dụng 2 dấu sao (**)

Câu 13. Chuyển biểu thức sau sang python  2x+1x+2

A. 2*x+1/x+2.

B. (2*x+1)/(x+2).

C. (2*x+1)(x+2).

D. (2*x+1) :(x+2).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Trong python, phép cộng “+”, trừ “-“, nhân “*”, chia “/”

Câu 14. Kết quả khi thực hiện câu lệnh sau:

>>>10 – 5 ** 2 + 8//3 +2 

A. -11.

B. 11.

C. 7.

D. Câu lệnh bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

10 – 5 ** 2 + 8//3 +2 = 10 – 25 + 2 + 2 = -11

Câu 15. Biểu thức a/(a+1)*(x-1) khi chuyển sang dạng toán học có dạng:

A. aa+1*(x-1).

B. aa+1(x-1).

C. aa+1 x (x-1).

D. ax-1(a+1).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Thực hiện lần lượt từ trái sang phải đối với biểu thức chỉ có phép nhân và phép chia

Bài 18: Các lệnh vào ra đơn giản

Câu 1. Đưa dữ liệu ra màn hình dùng thủ tục nào?

A. print().

B. input().

C. type().

D. abs().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Sử dụng print() để đưa dữ liệu ra màn hình

Câu 2. Câu lệnh nào dùng để đưa dữ liệu từ bàn phím vào?

A. print().

B. input().

C. nhap().

D. enter().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Thủ tục input() đưa dữ liệu vào

Câu 3. Phát biểu nào sau đây là sai?

A. Lệnh input() có chức năng nhập dữ liệu từ thiết bị chuẩn vào bàn phím

B. Bàn phím là thiết bị chuẩn duy nhất

C. Nội dung nhập có thể là số

D. Kết quả của lệnh input() là một xâu kí tự

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Có nhiều thiết bị chuẩn trong đó có bàn phím

Câu 4.

1) Cú pháp lệnh input() : <biến> :=input(<Dòng thông báo>)

2) Lệnh print() có chức năng đưa dữ liệu ra thiết bị chuẩn, thường là bàn phím

3) Lệnh input() có chức năng nhập dữ liệu thường từ bàn phím

4) Thông tin cần đưa ra có thể gồm nhiều kiểu dữ liệu khác nhau, cho phép cả biểu thức tính toán

Số phát biểu đúng là

A. 1.

B. 2.

C. 3.

D. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Các phát biểu đúng 3, 4

Câu 5. Đâu không phải là kiểu dữ liệu cơ bản trong python ?

A. int.

B. float.

C. list.

D. string.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Các kiểu dữ liệu cơ bản trong python như int, string, float, double,…

Câu 6. Kết quả của dòng lệnh sau

>>x=6.7

>>type(x)

A. int.

B. float.

C. string.

D. double.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Câu 7. Kết quả của dòng lệnh sau

>>> x, y, z = 10, “10”, 10

>>> type(z)

A. int.

B. float.

C. double.

D. str.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Câu 8. Lệnh nào dùng để nhận biết kiểu dữ liệu của biến trong python?

A. type().

B. int().

C. size().

D. abs().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Lệnh type() dùng để nhận biết kiểu dữ liệu của biến trong python

Câu 9. Xác định kiểu của biểu thức sau?

“34 + 28 – 45 ”

A. int.

B. float.

C. bool.

D. string.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Một biểu thức đặt trong cặp dấu nháy kép có kiểu str

Câu 10. Xác định kiểu và giá trị của biểu thức sau

4 + 5*6-34 >5*8-2

A. bool, True.

B. bool, true.

C. bool, False.

D. không xác định, false.

Hướng dẫn giải thích đáp án:  Đáp án đúng là:C

Câu 11. Câu lệnh sau bị lỗi không?

>>int(10.5)

  1. Không có lỗi
  2. Câu lệnh có lỗi
  3. Không xác định
  4. Cả 3 phương trên đều sai

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Lệnh int() không chuyển đổi được xâu chứa số thực

Câu 12. Kết quả của câu lệnh sau là gì?

>>str(3+4//3)

  1. “3+4//3”.
  2. “4”.
  3. 4.
  4. ‘4’.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Câu 13. Để nhập giá trị số thực cho biến x bạn An viết câu lệnh như sau:

>>x = input(“Nhập số thực x: ”)

Câu lệnh trên đúng theo yêu cầu đặt ra chưa?

  1. Chương trình chạy đúng.
  2. Chương trình báo lỗi không chạy.
  3. Không xác định được lỗi.
  4. Chương trình vẫn chạy nhưng không đúng yêu cầu đặt ra .

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Về cú pháp câu lệnh đúng nhưng nếu cần nhập số thực thì cần dùng lệnh float() để chuyển sang kiểu số thực

Câu 14. Viết chương trình nhập vào 4 số và tính tổng của chúng. Các dòng lệnh số mấy bị sai?

a = int(input(“Nhập số a”))

b = float(input(“Nhập số b”))

c = int(input(“Nhập số c”))

d = input(“Nhập số d”)

print(“Tổng là: ”, a+b+c+d)

  1. Dòng 1, 2
  2. Dòng 2, 4
  3. Dòng 3, 5
  4. Dòng 4

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Nếu cần nhập số thì cần dùng lệnh float(), int(),… để chuyển sang kiểu số thực, nguyên,…

Câu 15. Câu lênh nào sau đây không báo lỗi?

1) float(4)

2) int(“1+3”)

3) int(“3.5”)

4) float(“1+2+3”)

  1. 1
  2. 2
  3. 3
  4. 4

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Bài 19: Câu lệnh điều kiện If

Câu 1. Phát biểu nào sau đây là sai khi nói về biểu thức lôgic?

  1. Biểu thức lôgic là biểu thức chỉ nhận giá trị True hoặc False.
  2. Giá trị của biểu thức lôgic thuộc kiểu bool
  3. Ngoài hai giá trị True, False biểu thức lôgic nhận giá trị undefined
  4. Biểu thức “2 * 3 // 5 == 1” mang giá trị True

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Biểu thức lôgic chỉ nhận giá trị True hoặc False, không nhận giá trị undefined

Câu 2. Biểu diễn nào sau đây là sai trong Python?

  1. b*b>a*c, a*(1-a)+(a-b)>=0, 1/x-x<0.
  2. (a-b)>c-d, 1//x-y>=2*x, b*b>a*c.
  3. (a-b)>c-d, (a-b)<>b-a,12*a>5a.
  4. (a-b)**0.5>x,1/x-y>=2*x,15*a>5.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Trong biểu thức lôgic không có biểu diễn <> và thiếu dấu sao ở 5a

Câu 3. Kết quả của đoạn chương trình sau:

x=2021

print((x%4==0 and x%100!=0) or x%400==0)

A. 55.

B. True.

C. 5.

D. False.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Câu 4. Cho x = True, y = False. Cho biết giá trị của biểu thức sau:

not((x or y ) and x )

  1. True
  2. False
  3. x
  4. 1

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

not((x or y ) and x ) = not((True or False) and True)

= not(True and True) = not(True) = False

Câu 5. Giá trị của hai biểu thức sau là True hay False?

50%3==1

34//5==6

  1. True, True
  2. False, False.
  3. True, False
  4. False, True

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

50%3=2!=1

34//5=6==6

Câu 6. Phát biểu nào sau đây bị sai khi nói về lệnh if?

  1. Sau <điều kiện> cần có dấu “:”
  2. Khối lệnh tiếp theo không bắt buộc lùi vào 1 tab và thẳng hàng
  3. Khi thực hiện lệnh, Python sẽ kiểm tra <điều kiện> nếu đúng thì thực hiện <khối lệnh>, ngược lại thì bỏ qua chuyến sang lệnh tiếp theo.
  4. Tất cả phát biểu sai.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Khối lệnh tiếp theo bắt buộc lùi vào 1 tab và thẳng hàng. Nếu không chương trình sẽ thông báo lỗi.

Câu 7. Tìm giá trị m và n thoả mãn (m+4) % 5 == 0 và n*2//3=5

  1. m = 1, n = 8
  2. m = 2, n = 9
  3. m = 3, n = 10,
  4. m = 0, n = 7

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

m = 1: (1+4) % 5 == 0

n = 8: n*2//3 = 8 * 2 //3 =16 // 3 = 5

Câu 8. Biểu thức lôgic đúng thể hiện số a nằm ngoài [3,8] là:

  1. a < 3 and a >= 8
  2. 3 <= a <=8
  3. a < 3 and a > 8
  4. a <= 3 and a >= 8

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

a nằm ngoài [3,8] nên a < 3 and a > 8

Câu 9. Biểu thức lôgic nào sau đây thể hiện số a thuộc nửa khoảng (5, 7]

  1. 5 < a <= 7
  2. 5<= a <=7
  3. 5 < a < 7
  4. 5 <= a < 7

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

a thuộc nửa khoảng (5, 7] nên 5 < a <= 7

Câu 10: Kết quả của chương trình sau là gì?

x = 5

y = 6

if x > y:

print(‘Max:’,x)

else:

print(‘Max: ’, y)

  1. Max:5
  2. Max:6
  3. Max: 5
  4. Max: 6

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Do 5 <= 6 nên kết quả là : Max : 6

Câu 11. Kết quả của chương trình sau là gì ?

x = 8
y = 9
if x > y:
    print('x lớn hơn y')
elif x==y:
    print('x bằng y')
else:
    print('x nhỏ hơn y')
  1. x lớn hơn y
  2. x bằng y
  3. x nhỏ hơn y
  4. Chương trình bị lỗi

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Do 8 < 9 nên kết quả là x nhỏ hơn y

Câu 12. Kết quả của chương trình sau là gì ?

num = 3
if num > 0:
    print(num**2)
print("Thông điệp này luôn được in.")

A. 9

    Thông điệp này luôn được in.

B. 6

C. Thông điệp này luôn được in.

D. 6

    Thông điệp này luôn được in.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

3 > 0 và 3**2=9

Câu 13. Năm nhuận là năm chia hết cho 400 hoặc n chia hết cho 4 đồng thời không chia hết cho 100. Biểu thức biểu diễn kiểm tra năm nhuận là:

  1. n % 4 == 100 or ( n % 4 == 0 and n % 100 == 0)
  2. n % 4 == 100 or n % 4 == 0 and n % 100 != 0
  3. n % 4 != 100 or ( n % 4 == 0 and n % 100 != 0)
  4. n % 4 == 100 or ( n % 4 == 0 and n % 100 != 0)

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Do toán tử or và and thực hiện từ trái sang phải nên cần có dấu ngoặc thể hiện mức độ ưu tiên hơn.

Câu 14. Kết quả của lệnh print(round(4.5679,2)) là:

A. 4.5

B. 4.6

C. 4.56

D. 4.57

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Lệnh round(t, m) làm tròn số thực t lấy m chữ số phần thập phân

Câu 15. Kết quả của biểu thức round(-1.232154, 4) là:

  1. -1.2321
  2. -1.2322
  3. -1.23
  4. -1,232

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lệnh round(t, m) làm tròn số thực t lấy m chữ số phần thập phân

Bài 20: Câu lệnh lặp For

Câu 1. Số công việc cần phải lặp với số lần xác định?

1) Đếm số học sinh của lớp.

2) Đếm số chia hết cho 5 trong đoạn từ 10 tới 100.

3) Đọc tên lần lượt từng học sinh của một lớp có 30 em.

4) Chạy 5 vòng sân bóng.

5) Tính tổng các số có 2 chữ số.

A. 3.

B. 4.

C. 5.

D. 2.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Các công việc cần phải lặp với số lần xác định: 2, 3, 4, 5.

Câu 2. Biến chạy trong vòng lặp for i in range(<giá trị cuối>) tăng lên mấy đơn vị sau mỗi lần lặp?

  1. 1.
  2. 2.
  3. 0.
  4. Tất cả đều sai.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Sau mỗi lần lặp biến chạy sẽ tăng thêm 1 đơn vị.

Câu 4. Trong Python, câu lệnh nào dưới đây được viết đúng?

  1. for i in range(10): prin(“A”).
  2. for i in range(10): print(“A”).
  3. for i in range(10): print(A).
  4. for i in range(10) print(“A”).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Sau câu lệnh for có dấu hai chấm “:” và in ra xâu kí tự cần có cặp dấu nháy kép “”.

Câu 5. Trong câu lệnh lặp:

j=0
for j in range(10):
    j = j + 2
print(j)

Khi kết thúc câu lệnh trên, câu lệnh print(j) được thực hiện bao nhiêu lần?

  1. 10 lần.
  2. 1 lần.
  3. 5 lần.
  4. Không thực hiện.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lệnh print() không nằm trong khối lệnh lặp nên chỉ được thực hiện 1 lần.

Câu 6. Trong câu lệnh lặp:

for j in range(10):
    print("A")

Khi kết thúc câu lệnh trên lệnh có bao nhiêu chữ “A” xuất hiện?

  1. 10 lần.
  2. 1 lần.
  3. 5 lần.
  4. Không thực hiện.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Lệnh print nằm trong vòng lặp nên sẽ xuất hiện 10 lần theo giá trị của j từ 0 tới 9.

Câu 7. Cho đoạn chương trình:

j = 0
for i in range(5):
    j = j + i
print(j)

Sau khi thực hiện chương trình giá trị của biến j bằng bao nhiêu?

A. 10.

B. 12.

C. 15.

D. 14.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

j = 0 + 0 + 1+ 2+ 3 + 4 = 10.

Câu 8. Xác định số vòng lặp cho bài toán: tính tổng các số nguyên từ 1 đến 100?

  1. 1.
  2. 100.
  3. 99.
  4. Tất cả đều sai.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Biến chạy từ 1 đến 100 có tất cả 100 giá trị nên có 100 vòng lặp.

Câu 9. Đoạn chương trình sau giải bài toán nào?

t = 0
for i in range(1, 101):
    if(i % 3 == 0 and i % 5 == 0):
        t = t + i
print(t)

A. Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến 100.

B. Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến 101.

C. Tính tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến 101.

D. Tính tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến 100.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Đoạn lệnh có range(1, 101) và and nên đoạn chương trình tính tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến 100.

Câu 10. Cho biết kết quả khi chạy đoạn chương trình sau:

s = 0

for i in range(3):

s = s+2*i

print(s)

A. 12.

B. 10.

C. 8.

D. 6.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

s = 0 + 0 + 2 + 4 = 6

Câu 11. Bạn An thực hiện đoạn chương trình sau nhưng chương trình báo lỗi. Theo em, bạn An sai ở dòng thứ mấy:

numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]
sum == 0
for val in numbers:
    sum = sum+val
print("The sum is", sum)

A. 4.

B. 3.

C. 2.

D. 5.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Khởi tạo giá trị cho biến s = 0 , s == 0 là biểu thức điều kiện.

Câu 12. Đoạn chương trình sau có lỗi tại một dòng lệnh. Theo em, đó là lỗi ở câu lệnh nào:

student_name = 'Soyuj'
marks = {'James': 90, 'Jules': 55, 'Arthur': 77}
for student in marks:
    if student == student_name:
        print(marks(student))
        break
    else:
        print('No entry with that name found.')
  1. Sai kí hiệu chú thích.
  2. Sai khi khai báo danh sách.
  3. Sai khi gọi tới phần tử của danh sách.
  4. Không có lỗi sai ở câu lệnh nào.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Sửa câu lệnh print(marks(student)) thành print(marks[student]), sử dụng dấu ngoặc vuông khi gọi tới từng phần tử của danh sách.

Câu 13. Trong Python, đoạn chương trình sau đưa ra kết quả gì?

for i in range(10, 0, -1):
    print(i, ‘’)
  1. 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
  2. Đưa ra 10 dấu cách.
  3. 1 2 3 4 5 6 7 8 9 10.
  4. Không đưa ra kết quả gì.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

i chạy từ 10 về 1 với mỗi lần lặp giảm đi 1 đơn vị.

Câu 14. Lệnh nào in ra màn hình các giá trị sau?

11111

22222

33333

44444

55555

  1. for i in range(1, 6): print(i, i, i, i, i).
  2. for i in range(1, 6): print(str(i)*5).
  3. for i in range(1, 5): print(str(i)*5).
  4. for i in range(0, 5): print(str(i)*5).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lệnh range(1, 6), biến i chạy từ 1 đến 5 và sử dụng lệnh (print(str(i)*5)) để hiển thị ra chuỗi gồm 5 kí tự giống nhau.

Câu 15. Điền phần còn thiếu … trong đoạn code sau để được kết quả dưới đây?

55555

44444

33333

22222

11111

for i in range(5, 0, …):

print(str(i)*5)

  1. -1.
  2. 0.
  3. None.
  4. 1.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Mỗi lần lặp biến chạy giảm đi một đơn vị

Bài 21: Câu lệnh lặp while

Câu 1. Trong các phát biểu sau, phát biểu nào chưa chính xác?

  1. While là lệnh lặp với số lần không biết trước.
  2. For là lệnh lặp với số lần xác định trước.
  3. Khối lệnh lặp while được thực hiện cho đến khi <điều kiện> = False.
  4. Số lần lặp của lệnh lặp for luôn được xác định bởi vùng giá trị của lệnh range().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Số lần lặp của lệnh lặp for thường được xác định bởi vùng giá trị của lệnh range().

Câu 2. Cho đoạn chương trình python sau:

Tong = 0
while Tong < 10:
    Tong = Tong + 1

Sau khi đoạn chương trình trên được thực hiện, giá trị của tổng bằng bao nhiêu:

A. 9.

B. 10.

C. 11.

D. 12.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Giá trị của Tong tăng từ 1 tới 10.

Câu 3. Cho biết kết quả của đoạn chương trình dưới đây:

a = 10

while a < 11: print(a)

A. Trên màn hình xuất hiện một số 10.

B. Trên màn hình xuất hiện 10 chữ a.

C. Trên màn hình xuất hiện một số 11.

D. Chương trình bị lặp vô tận.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Vì a = 10 luôn nhỏ hơn 11 nên chương trình bị lặp vô hạn.

Câu 4. Câu lệnh sau giải bài toán nào:

while M != N:
    if M > N:
        M = M – N
    else:
        N = N – M
  1. Tìm UCLN của M và N.
  2. Tìm BCNN của M và N.
  3. Tìm hiệu nhỏ nhất của M và N.
  4. Tìm hiệu lớn nhất của M và N.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Câu 5. Tính tổng S = 1 + 2 + 3 + 4 +… + n + … cho đến khi S>10000. Điều kiện nào sau đây cho vòng lặp while là đúng:

A. while S >= 10000.

B. while S < 10000.

C. while S <= 10000.

D. While S >10000.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Đề bài yêu cầu tính tổng S cho đến khi S > 10000 tức là điều kiện của vòng lặp là S <= 10000.

Câu 6. Hãy đưa ra kết quả trong đoạn lệnh sau:

x = 1
while (x <= 5):
    print(“python”)
    x = x + 1
  1. 5 từ python.
  2. 4 từ python.
  3. 3 từ python.
  4. Không có kết quả.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

x chạy từ 1 đến 5 nên “python” xuất hiện 5 lần

Câu 7. Cho đoạn chương trình sau:

n = int(input("Nhập n<=1000: "))
k=0
n=abs(n)
while n!=0:
    n=n//10
    k=k+1
print(k)

Hãy cho biết điều khẳng định nào sau đây đúng?

  1. k là số chữ số có nghĩa của n.
  2. k là chữ số hàng đơn vị của n.
  3. k là chữ số khác 0 lớn nhất của n.
  4. k là số chữ số khác 0 của n.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Câu 8. Chọn đáp án đúng nhất:

i = 0; x = 0
while i < 10:
    if i%2 == 0:
        x += 1
        i += 1
print(x)

A. 2.

B. 3.

C. 4.

D. 5.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Câu 9. Trong các phát biểu sau, phát biểu nào sai?

  1. Có ba cấu trúc lập trình cơ bản của các ngôn ngữ lập trình.
  2. Cấu trúc tuần tự gồm các khối lệnh được thực hiện theo trình tự từ trên xuống dưới.
  3. Khối lệnh chỉ được thực hiện tuỳ thuộc điều kiện nào đó được thể hiện bằng câu lệnh for, while.
  4. Cả ba phương án trên đều đúng.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Khối lệnh chỉ được thực hiện tuỳ thuộc điều kiện nào đó được thể hiện bằng câu lệnh if.

Câu 10. Vòng lặp while – do kết thúc khi nào?

  1. Khi một số điều kiện cho trước thoả mãn.
  2. Khi đủ số vòng lặp.
  3. Khi tìm được output.
  4. Tất cả các phương án.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Vòng lặp while – do là vòng lặp chưa biết số lần lặp nên chỉ kết thúc khi một số điều kiện cho trước thoả mãn.

Câu 11. Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên cấu trúc cơ bản là:

  1. Cấu trúc tuần tự.
  2. Cấu trúc rẽ nhánh.
  3. Cấu trúc lặp.
  4. Cả ba cấu trúc.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Cả ba cấu trúc cơ bản có thể mô tả và thực hiện mọi quá trình tính toán. Tuỳ từng bài lựa chọn cấu trúc hợp lí.

Câu 12. Hoạt động nào sau đây lặp với số lần lặp chưa biết trước?

  1. Ngày tắm hai lần.
  2. Học bài cho tới khi thuộc bài.
  3. Mỗi tuần đi nhà sách một lần.
  4. Ngày đánh răng hai lần.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Hoạt động học bài chỉ dừng khi thuộc bài, chưa xác định rõ số lần sẽ học.

Câu 13. Cú pháp lệnh lặp với số lần chưa biết trước:

  1. while <điều kiện> to <câu lệnh>.
  2. while <điều kiện> to <câu lệnh1> do<câu lệnh 2>.
  3. while <điều kiện> do: <câu lệnh>.
  4. while <điều kiện>: <câu lệnh>.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Cấu trúc vòng lặp while: while <điều kiện>:<câu lệnh>

Câu 14. Kết quả của chương trình sau:

x = 1
y = 5
while x < y:
    print(x, end = " ")
    x = x + 1

A. 1 2 3 4.

B. 2 3 4 5.

C. 1 2 3 4 5.

D. 2 3 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Câu 15. Kết quả của chương trình sau là gì?

x = 8
y = 2
while y < x:
    x = x - 2
    print(x, end = " ")

A. 8, 6, 4, 2.

B. 8, 6, 4.

C. 6, 4, 2.

D. 8, 6, 4, 2, 0.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Bài 22: Kiểu dữ liệu danh sách

Câu 1. Đoạn lệnh sau làm nhiệm vụ gì?

A = []
for x in range(10):
    append(int(input()))
  1. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số nguyên.
  2. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số thực.
  3. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là xâu.
  4. Không có đáp án đúng.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Hàm append() thêm phần tử vào cuối danh sách và hàm int(input()) chuyển kiểu dữ liệu nhập vào sang kiểu số nguyên.

Câu 2. Chọn phát biểu đúng khi nói về dữ liệu kiểu Danh sách(List) trong python.

  1. Dữ liệu kiểu Danh sách là tập hợp các phần tử không có thứ tự và mọi phần tử có cùng một kiểu dữ liệu.
  2. Dữ liệu kiểu Danh sách là tập hợp các phần tử có thứ tự và mỗi một phần tử trong Danh sách có thể có các kiểu dữ liệu khác nhau.
  3. Dữ liệu kiểu Danh sách là tập hợp các phần tử có thứ tự và mọi phần tử phải có cùng một kiểu dữ liệu.
  4. Tất cả ý trên đều sai.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

List là kiểu dữ liệu Danh sách trong python và các phần tử của danh sách có thể có các kiểu dữ liệu khác nhau.

Câu 3. Cách khai báo biến Danh sách sau đây, cách nào sai?

  1. ls = [1, 2, 3]
  2. ls = [x for x in range(3)]
  3. ls = [int(x) for x in input().split()]
  4. ls = list(3).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Câu 4. Cho khai báo Danh sách sau:

A = list(“3456789”)

Để in giá trị phần tử thứ 2 của Danh sách A ra màn hình ta viết:

  1. print(A[2]).
  2. print(A[1]).
  3. print(A[3]).
  4. print(A[0]).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Trong Danh sách, các phần tử đánh số thứ tự từ 0 nên phần tử thứ hai trong Danh sách có chỉ số là 1.

Câu 5. Giả sử có một list: i = [2, 3, 4]. Nếu muốn in list này theo thứ tự ngược lại ta nên sử dụng phương pháp nào sau đây?

  1. print(list(reversed(i))).
  2. print(list(reverse(i))).
  3. print(reversed(i)).
  4. print(reversed(i)).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Sử dụng reversed() cho phép ta xử lý các mục theo thứ tự ngược lại chuỗi ban đầu, nhận chuỗi và trả về giá trị đảo ngược của chuỗi ban đầu truyền vào.

Câu 6. Chương trình sau thực hiện công việc gì?

A=[]
for i in range(1, 1001):
    if(i % 7 == 0) and (i % 5 !=0):
        A.append(str(i))
        print(','.join(A))

A. Tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 1 và 1000.

B. Tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 1 và 1000 và chuỗi thu được in trên một dòng, có dấu “,” ngăn cách giữa các số.

C. Tìm tất cả các số chia hết cho 7 và là bội số của 5, nằm trong đoạn 1 và 1000.

D. Tìm tất cả các số không chia hết cho 7 nhưng là phải bội số của 5, nằm trong đoạn 1 và 1000.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Chúng ta sử dụng phương thức join() trong python để nối các chuỗi ký tự là phần tử trong một list lại với nhau, bằng một hoặc một chuỗi ký tự phân cách.

Phương thức append() thêm phần tử vào cuối danh sách.

Câu 7. Đối tượng dưới đây thuộc kiểu dữ liệu nào?

A = [1, 2, ‘3’]

  1. list.
  2. int.
  3. float.
  4. string.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Dữ liệu kiểu mảng list là tập hợp các phần tử có thứ tự và mỗi một phần tử trong Danh sách có thể có các kiểu dữ liệu khác nhau.

Câu 8. Phương thức nào sau đây dùng để thêm phần tử vào list trong python?

  1. abs().
  2. link().
  3. append().
  4. add().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Phương thức append() thêm phần tử vào cuối danh sách.

Câu 9. Danh sách A sẽ như thế nào sau các lệnh sau?

>>> A = [2, 3, 5, 6]

>>> A. append(4)

>>> del (A[2])

A. 2, 3, 4, 5, 6, 4.

B. 2, 3, 4, 5, 6.

C. 2, 4, 5, 6.

D. 2, 3, 6, 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Thêm phần tử 4 vào chuỗi sau đó xoá phần tử ở vị trí thứ 2 + 1 = 3.

Câu 10. Kết quả của chương trình sau là gì?

A = [2, 3, 5, "python", 6]
A.append(4)
A.append(2)
A.append("x")
del(A[2])
print(len(A))

A. 5.

B. 6.

C. 7.

D. 8.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Hàm len() tính số phần tử trong danh sách A. Ban đầu số phần tử của A là 5 sau 3 lệnh append() và 1 lệnh del số phần tử là 5 + 3 -1 = 7.

Câu 11. Cho arr = [‘xuan’, ‘hạ’, 1. 4, ‘đông’, ‘3’, 4.5, 7]. Đâu là giá trị của arr[3]?

  1. 1.4.
  2. đông.
  3. hạ.
  4. 3.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Mảng đánh số từ 0 nên phần tử có chỉ số 3 nằm ở vị trí thứ tư của mảng.

Câu 12. Lệnh nào để duyệt từng phần tử của danh sách?

  1. for.
  2. while – for.
  3. for kết hợp với lệnh range().
  4. while kết hợp với lệnh range().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Có thể duyệt lần lượt các phần tử của danh sách bằng lệnh for kết hợp với vùng giá trị của lệnh range().

Câu 13. Lệnh xoá một phần tử của một danh sách A có chỉ số i là:

  1. list.del(i).
  2. A. del(i).
  3. del A[i].
  4. A. del[i].

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Cú pháp đúng:

del list[chỉ số].

Câu 14. Chương trình sau thực hiện công việc gì?

>>> S = 0

>>> for i in range(len(A)):

if A[i] > 0:

S = S + A[i]

>>> print(S)

  1. Duyệt từng phần tử trong A.
  2. Tính tổng các phần tử trong A.
  3. Tính tổng các phần tử không âm trong A.
  4. Tính tổng các phần tử dương trong A.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Ở mỗi lần lặp nếu giá trị của phần tử A > 0 thì tổng sum cộng thêm phần tử đó. Kết quả cuối cùng sẽ ra được tổng các phần tử dương trong A.

Câu 15. Hoàn thiện chương trình tính tích các phần tử dương trong danh sách A.

>>> S = (…)

>>> for i in range(len(A)):

(…)

S = S * A[i]

>>> print(S)

  1. 1, if A[i] > 0:.
  2. 0, if A[i] > 0:.
  3. 1, if A[i] >= 0.
  4. 0, if A[i] > 0.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Khởi tạo biến S bằng 1 sau đó kiếm tra điều kiện từng phần tử nếu dương biến S nhân với phần tử đó.

Bài 23: Một số lệnh làm việc với dữ liệu danh sách

Câu 1. Toán tử nào dùng để kiểm tra một giá trị có nằm trong danh sách không?

  1. in.
  2. int.
  3. range.
  4. append.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Dùng toán tử in để kiểm tra <giá trị> có trong danh sách hay không, nếu có trả lại True nếu không thì trả về False:

<giá trị> in <danh sách>

Câu 2. Kết quả của chương trình sau là gì?

A = [1, 2, 3, 4, 5, 6, 5]

for k in A:

print(k, end = ” “)

  1. 1 2 3 4 5 6
  2. 1 2 3 4 5 6 5
  3. 1 2 3 4 5
  4. 2 3 4 5 6 5.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Vòng lặp duyệt qua và in tất cả các phần tử có trong mảng.

Câu 3. Ngoài việc kết hợp lệnh for và range để duyệt phần tử trong danh sách, có thể sử dụng câu lệnh nào khác?

  1. int.
  2. while.
  3. in range.
  4. in.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Dùng toán tử in để kiểm tra <giá trị> có trong danh sách hay không, nếu có trả lại True nếu không thì trả về False:

<giá trị> in <danh sách>

Câu 4. Giả sử A = [‘a’, ‘b’, ‘c’, ‘d’, 2, 3, 4]. Các biểu thức sau trả về giá trị đúng hay sai?

6 in A

‘a’ in A

  1. True, False.
  2. True, False.
  3. False, True.
  4. False, False.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Phần tử 6 không có mặt trong danh sách và ‘a’ có mặt trong A.

Câu 5. Giả sử A = [5, 6, 7, 8, 9, 10, 11, 12]. Biểu thức sau trả về giá trị đúng hay sai?

(3 + 4 – 5 + 18 // 4) in A

  1. True.
  2. False.
  3. Không xác định.
  4. Câu lệnh bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

3 + 4 – 5 + 18 // 4 = 2 + 4 = 6 thuộc vào A nên trả về giá trị True.

Câu 6. Lệnh nào sau đây xoá toàn bộ danh sách?

  1. clear().
  2. exit().
  3. remove().
  4. del().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Sau khi thực hiện lệnh clear(), danh sách gốc trở thành rỗng.

Câu 7. Phát biểu nào sau đây là sai?

  1. Sau khi thực hiện lệnh clear(), danh sách gốc trở thành rỗng.
  2. Lệnh remove () có chức năng xoá một phần tử có giá trị cho trước.
  3. Lệnh remove() xoá tất cả các phần tử có giá trị cho trước trong list.
  4. Clear() có tác dụng xoá toàn bộ các danh sách.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Lệnh remove xoá phần tử đầu tiên có giá trị cho trước trong list.

Câu 8. Số phát biểu đúng là:

1) Sau khi thực hiện lệnh clear(), các phần tử trả về giá trị 0.

2) Lệnh remove trả về giá trị False nếu không có trong danh sách.

3) remove() có tác dụng xoá một phần tử có giá trị cho trước trong list.

4) Lệnh remove() có tác dụng xoá một phần tử ở vị trí cho trước.

  1. 1.
  2. 2.
  3. 0.
  4. 3.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Phát biểu đúng: 3

Câu 9. Sau khi thực hiện các câu lệnh sau, mảng A như thế nào?

>>> A = [1, 2, 3, 4, 5]

>>> A. remove(2)

>>> print(A)

  1. [1, 2, 3, 4].
  2. [2, 3, 4, 5].
  3. [1, 2, 4, 5].
  4. [1, 3, 4, 5].

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Remove xoá phần tử có giá trị 2 đầu tiên trong mảng.

Câu 10. Phần tử thứ bao nhiêu trong mảng A bị xoá?

>>> A = [10, 20, 3, 30, 20, 30, 20, 6, 3, 2, 8, 9]

>>> A. remove(3)

>>> print(A)

A. 2.

B. 3.

C. 8.

D. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Remove xoá phần tử có giá trị 3 đầu tiên trong mảng. Phần tử đó nằm ở vị trí thứ 3.

Câu 11. Kết quả khi thực hiện chương trình sau?

>>> A = [1, 2, 3, 5]

>>> A.insert(2, 4)

>>> print(A)

A. 1, 2, 3, 4.

B. 1, 2, 4, 3, 5.

C. 1, 2, 3, 4, 5.

D. 1, 2, 4, 5.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lệnh insert() chèn số 4 tại chỉ số 2.

Câu 12. Lệnh sau, chèn phần tử cần thêm vào vị trí thứ mấy trong danh sách A?

insert(-5, 3)

  1. 3.
  2. 1
  3. 0
  4. 2

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Do -5 < 0 nên chèn 3 vào vị trí đầu tiên trong A.

Câu 13. Danh sách A trước và sau lệnh insert() là [1, 3, 5, 0] và [1, 3, 4, 5, 0]. Lệnh đã dùng là lệnh gì?

  1. insert(2, 4).
  2. insert(4, 2).
  3. insert(3, 4).
  4. insert(4, 3).

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

insert(2, 4) : chèn số 4 vào chỉ số 2.

Câu 14. Danh sách A sau lệnh 1 lệnh remove() và 3 lệnh append() có 8 phần tử. Hỏi ban đầu danh sách A có bao nhiêu phần tử?

A. 8.

B. 7.

C. 4.

D. 6.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Số phần tử ban đầu của A là 8 – 3 + 1 = 6.

Câu 15. Chọn phát biểu sai trong các phát biểu sau khi nói về câu lệnh insert trong python:

  1. insert(index, value) sẽ chèn giá trị value vào danh sách tại vị trí index và đẩy các phần tử sang phải.
  2. Nếu chỉ số chèn < 0 thì chèn vào đầu danh sách.
  3. Phần tử có chỉ số k sẽ được thay thế bởi phần tử thêm vào.
  4. Nếu chỉ số chèn > len(A) thì chèn vào cuối danh sách.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

insert(index, value) sẽ chèn giá trị value vào danh sách tại vị trí index và đẩy các phần tử sang phải. ⇒ Phát biểu C sai.

Bài 24: Xâu kí tự

Câu 1. Trong Python, câu lệnh nào dùng để tính độ dài của xâu s?

  1. len(s).
  2. length(s).
  3. s.len().
  4. s. length().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A
Lệnh len() tính độ dài của xâu kí tự với cấu trúc len(list).

Câu 2. Có bao nhiêu xâu kí tự hợp lệ?

1) “123_@##”

2) “hoa hau”

3) “346h7g84jd”

4) python

5) “01028475”

6) 123456

A. 5.

B. 6.

C. 4.

D. 3

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Các xâu hợp lệ: 1, 2, 3, 5

Xâu kí tự trong Python là dãy các kí tự Unicode và được đặt trong cặp dấu nháy đơn hoặc nháy kép.

Câu 3. Xâu “1234%^^%TFRESDRG” có độ dài bằng bao nhiêu?

A. 16.

B. 17.

C. 18.

D. 15.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Đếm số kí tự trong cặp dấu nháy kép.

Câu 4. Phát biểu nào sau đây là sai?

  1. Có thể truy cập từng kí tự của xâu thông qua chỉ số.
  2. Chỉ số bắt đầu từ 0.
  3. Có thể thay đổi từng kí tự của một xâu.
  4. Python không có kiểu dữ liệu kí tự.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Khác với danh sách, không thể thay đổi từng kí tự trong xâu.

Câu 5. Sau khi thực hiện lệnh sau, biến s sẽ có kết quả là:

s1 ="3986443"
s2 = ""
for ch in s1:
    if int(ch) % 2 == 0:
        s2 = s2 + ch
print(s2)

A. 3986443.

B. 8644.

C. 39864.

D. 443.

Hướng dẫn giải thích đáp án:  Đáp án đúng là:B

Chương trình hiển thị chuỗi gồm các chữ số chẵn trong s1.

Câu 6. Biểu thức sau cho kết quả đúng hay sai?

S1 = “12345”

S2 = “3e4r45”

S3 = “45”

S3 in S1

S3 in S2

  1. True, False.
  2. True, True.
  3. False, False.
  4. False, True.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Cả hai chuỗi S1, S2 đều chứa S3 nên hai biểu thức đúng.

Câu 7. Kết quả của chương trình sau nếu s = “python1221” là gì?

s = input("Nhập xâu kí tự bất kì:")
kq = False
for i in range(len(s)-1):
    if s[i] == "2" and s[i+1] == "1":
        kq = True
        break
print(kq)
  1. True.
  2. False.
  3. Chương trình bị lỗi.
  4. Vòng lặp vô hạn.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Chuỗi s chứa “21” nên kq = True.

Câu 8. Chương trình sau cho kết quả là bao nhiêu?

name = “Codelearn”

print(name[0])

  1. “C”.
  2. “o”.
  3. “c”.
  4. Câu lệnh bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Kí tự có chỉ số 0 đứng ở vị trí đầu tiên trong xâu name.

Câu 9. Kết quả của chương trình sau là bao nhiêu?

>>> s = “0123145”

>>> s[0] = ‘8’

>>> print(s[0])

  1. ‘8’.
  2. ‘0’.
  3. ‘1’.
  4. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Khác với danh sách, không thể thay đổi từng kí tự của xâu.

Câu 11. Kết quả của chương trình sau là bao nhiêu?

>>> s = “abcdefg”

>>> print(s[2])

  1. ‘c’.
  2. ‘b’.
  3. ‘a’.
  4. ‘d’

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Kí tự có chỉ số 2 nằm ở vị trí thứ 3 trong chuỗi là ‘c’.

Câu 12. Chương trình trên giải quyết bài toán gì?

s = “”

for i in range(10):

s = s + str(i)

print(s)

A. In một chuỗi kí tự từ 0 tới 10.

B. In một chuỗi kí tự từ 0 tới 9.

C. In một chuỗi kí tự từ 1 tới 10.

D. In một chuỗi kí tự từ 1 đến 9.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Biến i chạy từ 0 đến 9 trong range(10).

Câu 13. Cho s = “123456abcdefg”, s1 = “124”, s2 = “235”, s3 = “ab”, s4 = “56” + s3

Có bao nhiêu biểu thức lôgic sau đúng?

1) s1 in s.

2) s2 in s.

3) s3 in s.

4) s4 in s.

  1. 1.
  2. 2.
  3. 3.
  4. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Biểu thức đúng là: 3, 4.

Câu 14. Chương trình sau giải quyết bài toán gì?

n = input("Nhập n")
s = ""
for i in range(n):
    if i % 2 == 0:
        append(i)
print(s)
  1. In ra một chuỗi các số từ 0 tới n.
  2. Chương trình bị lỗi.
  3. In ra một chuỗi các số lẻ từ 0 đến n.
  4. In ra một chuỗi các số chẵn từ 0 đến n – 1.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Do i có kiểu số nguyên nên không thể thêm vào chuỗi s được.

Câu 15. Chuỗi sau được in ra mấy lần?

s = "abcdefghi"
for i in range(10):
    if i % 4 == 0:
        print(s)
  1. 0.
  2. 1.
  3. 2.
  4. 3.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

In ra 3 lần chuỗi s tương ứng với biến i bằng 0, 4, 8.

Bài 25: Một số lệnh làm việc với xâu kí tự

Câu 1. Sử dụng lệnh nào để tìm vị trí của một xâu con trong xâu khác không?

  1. test().
  2. in().
  3. find().
  4. split().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Lệnh find() trả về vị trí của xâu con trong xâu mẹ.

Câu 2. Phát biểu nào chưa chính xác khi nói về toán tử in?

  1. Biểu thức kiểm tra xâu 1 nằm trong xâu 2 là: <xâu 1> in <xâu 2>
  2. Toán tử in trả về giá trị True nếu xâu 1 nằm trong xâu 2.
  3. Toán tử in trả về giá trị False nếu xâu 1 không nằm trong xâu 2.
  4. Toán tử in là toán tử duy nhất giải quyết được bài toán kiểm tra xâu có nằm trong xâu không.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Toán tử in thường được dùng, nhưng không phải toán tử duy nhất để giải quyết được bài toán kiểm tra xâu có nằm trong xâu không.

Câu 3. Kết quả của các câu lệnh sau là gì?

s = “12 34 56 ab cd de “

print(s. find(” “))

print(s.find(“12”))

print(s. find(“34”))

A. 2, 0, 3.

B. 2, 1, 3.

C. 3, 5, 2.

D. 1, 4, 5.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Vị trí đầu tiên của các xâu “ ”, “12”, “34” là: 2, 0, 3.

Câu 4. Phát biểu nào sau đây là đúng khi nói về các phương thức trong python?

  1. Python có một lệnh đặc biệt dành riêng cho xâu kí tự.
  2. Cú pháp của lệnh find là: <xâu mẹ>. Find(<xâu con>).
  3. Lệnh find sẽ tìm vị trí đầu tiên của xâu con trong xâu mẹ.
  4. Câu lệnh find có một cú pháp duy nhất.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Lệnh find sẽ tìm vị trí đầu tiên của xâu con trong xâu mẹ. Python có một số lệnh đặc biệt dành riêng cho xâu kí tự. Cú pháp của lệnh find là: <xâu mẹ>. find(<xâu con>). Câu lệnh find có nhiều hơn 1 cú pháp.

Câu 5. Lệnh sau trả lại giá trị gì?

>> “abcdabcd”. find(“cd”)

>> “abcdabcd”. find(“cd”, 4)

A. 2, 6.

B. 3, 3.

C. 2, 2.

D. 2, 7.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

<xâu mẹ>. find(<xâu con>, start): tìm vị trí xâu con bắt đầu từ vị trí start.

<xâu mẹ>. find(<xâu con>): tìm vị trí xâu con bắt đầu từ vị trí đầu tiên.

Câu 6. Lệnh nào sau đây dùng để tách xâu:

  1. split()
  2. join()
  3. remove()
  4. copy().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Lệnh split() tách một xâu thành các từ và đưa vào một danh sách. Kí tự tách dùng để phân tách các từ mặc định là dấu cách.

Câu 7. Kết quả của chương trình sau là gì?

>>> s = “Một năm có bốn mùa”

>>> s.split()

>>> st = “a, b, c, d, e, f, g, h”

>>> st.split()

  1. ‘Một năm có bốn mùa’, [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’].
  2. [‘Một’, ‘năm’, ‘có’, ‘bốn’, ‘mùa’], [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’].
  3. ‘Một năm có bốn mùa’, ‘abcdefgh’
  4. [‘Một’, ‘năm’, ‘có’, ‘bốn’, ‘mùa’], ‘abcdefgh’.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lệnh split() tách một xâu thành các từ và đưa vào một danh sách. Kí tự tách dùng để phân tách các từ mặc định là dấu cách, tuy nhiên có thể thay thế kí tự tách bằng kí tự khác.

Câu 8. Chọn phát biểu sai trong các phát biểu sau:

  1. Lệnh join() nối các phần tử của một danh sách thành một xâu, ngăn cách bởi dấu cách.
  2. Trong lệnh join, kí tự nối tuỳ thuộc vào câu lệnh.
  3. split() có tác dụng tách xâu.
  4. Kí tự mặc định để phân cách split() là dấu cách.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Có thể thay đổi kí tự nối như dấu cách, dấu ngoặc kép, dấu phẩy,… tuỳ theo mục đích của người sử dụng.

Câu 9. Điền đáp án đúng vào chỗ chấm (…) hoàn thành phát biểu đúng sau:
“Python có các … để xử lí xâu là … dùng để tách câu thành một danh sách và lệnh join() dùng để … các xâu thành một xâu”.

  1. câu lệnh, split(), nối.
  2. câu lệnh đặc biệt, split(), tách xâu.
  3. câu lệnh đặc biệt, copy(), nối danh sách.
  4. câu lệnh đặc biệt, split(), nối danh sách.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Python có các câu lệnh đặc biệt để xử lí xâu là split() dùng để tách câu thành một danh sách và lệnh join() dùng để nối danh sách các xâu thành một xâu.

Câu 10. Kết quả của chương trình sau là gì?

a = “Hello”
b = “world”
c = a + ” ” + b
print(c)

  1. hello world.
  2. Hello World.
  3. Hello word.
  4. Helloword.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Nối ba chuỗi a, “ ” và b thu được “Hello world”.

Câu 11. Hoàn thành câu lệnh sau để in ra chiều dài của xâu:

x = “Hello World”

print(…)

  1. x. len().
  2. len(x).
  3. copy(x).
  4. x. length().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Sử dụng câu lệnh len() để in ra chiều dài của xâu.

Câu 12. Cho xâu s = “1, 2, 3, 4, 5”. Muốn xoá bỏ kí tự “,” và thay thế bằng dấu “ ” ta sử dụng lần lượt những câu lệnh nào?

  1. remove() và join().
  2. del() và replace().
  3. split() và join().
  4. split() và replace().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Câu 13. Cho xâu s = “Python”. Muốn chuyển thành xâu s = “P y t h o n” ta cần làm sử dụng những câu lệnh:
A. split() và join().

B. split() và replace().

C. del() và replace().

D. replace().

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Sử dụng split() để tách xâu thành các kí tự riêng biệt và lệnh join() hợp chúng lại thành xâu mới.

Câu 14. Chương trình sau cho ra kết quả là gì

greeting = ‘Good ‘

time = ‘Afternoon’

greeting = greeting + time + ‘!’

print(greeting)

  1. ‘GoodAfternoon’.
  2. ‘GoodAfternoon!’.
  3. Chương trình báo lỗi.
  4. ‘Good Afternoon !’

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Cộng 3 chuỗi greeting, time và “!” ta được “Good Afternoon!”

Câu 15. Kết quả của chương trình sau là gì?

line = “Geek1 Geek2 Geek3”

print(line.split())

print(line.split(‘ ‘, 1))

A. [‘Geek1’, ‘Geek2’, ‘Geek3’]

    [‘Geek1’, ‘Geek2 Geek3’].

B. [‘Geek1’, ‘Geek2’, ‘Geek3’]

    [‘Geek1’, ‘Geek2’, ‘Geek3’] .

C. [‘Geek1 Geek2’, ‘Geek3’]

    [‘Geek1’, ‘Geek2’, ‘Geek3’].

D. [‘Geek1 Geek2’, ‘Geek3’]

    [‘Geek1’, ‘Geek2 Geek3’].

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Lệnh split() tách xâu bởi dấu cách và split((‘ ‘, 1)) tách thành 1 + 1 = 2 xâu.

 

Bài 26: Hàm trong Python

Câu 1. Chọn phát biểu sai trong các phát biểu sau:

  1. Lệnh print() thực hiện việc in ra màn hình.
  2. Lệnh input() thực hiện yêu cầu nhập vào một biểu thức, số hay một xâu bất kì.
  3. Lệnh type() trả lại kiểu dữ liệu của biểu thức trong ngoặc.
  4. Lệnh str() chuyển đối tượng đã cho thành chuỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lệnh input() thực hiện yêu cầu nhập vào một xâu bất kì.

Câu 2. Số phát biểu đúng trong số phát biểu sau:

1) Python cung cấp sẵn nhiều hàm thực hiện những công việc khác nhau cho người dùng tuỳ ý sử dụng.

2) Lệnh float() chuyển đối tượng đã cho thành kiểu số thực.

3) Lệnh int trả về số nguyên từ số hoặc chuỗi biểu thức.

4) Trong python, người dùng chỉ được sử dụng các hàm có sẵn được xây dựng.

5) Người dùng có thể xây dựng thêm một số hàm mới.

  1. 1.
  2. 2.
  3. 3.
  4. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Các phát biểu đúng: 1, 2, 3, 5.

4) Vì người dùng có thể xây dụng thêm một số hàm mới.

Câu 3. Phát biểu đúng trong các phát biểu sau là:

  1. Lệnh float() trả về số nguyên từ số hoặc chuỗi biểu thức.
  2. Có ít hàm có sẵn được xây dựng trong python.
  3. Lệnh bool() chuyển một giá trị sang Boolean.
  4. Lệnh input() có thể nhập vào một số nguyên mà không cần chuyển đổi kiểu.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Lệnh bool() chuyển một giá trị sang Boolean.

Câu 4. Chương trình sau cho kết quả là bao nhiêu?

def chao(ten):
    print("Xin chào, " + ten + "!")
chao(‘Xuan’)
  1. “Xin chào”.
  2. “Xin chào, Xuan!”.
  3. “Xin chào!”.
  4. Câu lệnh bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Hàm chào gồm tên hàm, tham số của hàm, mô tả hàm và một câu lệnh print(“Xin chào, ” + ten + “!”) nên sẽ in ra “Xin chào, Xuan!”.

Câu 5. Kết quả của chương trình sau là:

def PhepNhan(Number):
    return Number * 10;
print(PhepNhan(5))

A. 5.

B. 10.

C. Chương trình bị lỗi.

D. 50.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Truyền 5 vào hàm PhepNhan(Number) ta được kết quả là 5 * 10 = 50.

Câu 6. Kết quả của chương trình sau là:

def Kieu(Number):
    return type(Number);
print(Kieu (5.0))

A. 5.

B. float.

C. Chương trình bị lỗi.

D. int.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Truyền 5.0 vào hàm Kieu(Number)ta được kết quả là type(5.0) = float.

Câu 7. Hàm sau có chức năng gì?

def sum(a, b):
    print("sum = " + str(a + b))
  1. Trả về tổng của hai số a và b được truyền vào.
  2. Trả về hai giá trị a và b.
  3. Tính tổng hai số a và b.
  4. Tính tổng hai số a và b và hiển thị ra màn hình.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Trong hàm sum() có câu lệnh print(“sum = ” + str(a + b)) tính tổng của 2 số và hiển thị ra màn hình.

Câu 8. Điền vào (…) để tìm ra số lớn nhất trong 3 số nhập vào:

def find_max(a, b, c):
    max = a
    if (…): max = b
    if (…): max = c
    return max
  1. max < b, max < c.
  2. max <= b, max < c.
  3. max < b, max <= c.
  4. max <= b, max <= c.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Kiểm tra hai điều kiện max < b, max < c để tìm ra số lớn nhất.

Câu 9. Chương trình sau ra kết quả bao nhiêu?

def get_sum(num):
    tmp = 0
    for i in num:
        tmp += i
    return tmp
result = get_sum(1, 2, 3, 4, 5)
print(result)

A. 12.

B. 13.

C. 14.

D. 15.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Hàm tính tổng các số của mảng và kết quả là 1 + 2 + 3 + 4 + 5 = 15.

Câu 10. Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu?

a = "Hello Guy!"
def say(i):
    return a + i
say(3)
print(a)

A. 4.

B. 2.

C. 3.

D. Không có dòng lệnh bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Không thể thực hiện phép nỗi chuỗi giữa chuỗi a và số nguyên i = 3

Câu 11. Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu?

def add(a, b):
    x = a + b
    return(x)
add(1, 2)
add(5, 6)

A. 2.

B. 3.

C. 1.

D. Không bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Chương trình chạy đúng và không có lỗi.

Câu 12. Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu?

def add(a, b)
    sum = a + b
    return sum
x = int(input("Nhập số thứ nhất:"))
y = int(input("Nhập số thứ hai:"))
tong = add(x, y)
print("Tổng là: " + str(tong))
  1. 1.
  2. 2.
  3. 3.
  4. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Thiếu dấu “:” khi định nghĩa hàm.

Câu 13. Kết quả của chương trình sau:

def my_function(x):
    return 3 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))

A. 3, 5, 9.

B. 9, 15, 27.

C. 9, 5, 27.

D. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Hàm thực hiện chức năng nhận giá trị x với 3.

Câu 14. Chương trình sau hiển thị kết quả như thế nào?

def ham():
    print(country)
ham("Sweden")
ham("India")
ham("Brazil")
  1. Sweden, India, Brazil.
  2. Sweden, Brazil, India.
  3. Sweden, Brazil.
  4. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Do thiếu tham số truyền vào cho hàm ham().

Câu 15. Hoàn thành chương trình tính tổng một mảng sau:

n = (…)(input())
lst = []
for i in range(n):
    lst.append(int(input()))
answer = (…)
for v in lst:
    answer *= v
print(answer)
  1. float, 1.
  2. int, 0.
  3. int, 1.
  4. float, 0.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Sử dụng lệnh int() chuyển kiểu dữ liệu cho n từ xâu sang số nguyên và gán giá trị answer bằng 1.

Bài 27: Tham số của hàm

Câu 1. Khi khai báo hàm, thành phần nào được định nghĩa và được dùng như biến trong hàm?

  1. Tham số.
  2. Đối số.
  3. Dữ liệu.
  4. Giá trị.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Tham số được định nghĩa khi khai báo hàm và dùng như biến trong hàm.

Câu 2. Chọn phát biểu đúng trong các phát biểu sau:

  1. Lời gọi hàm không có lỗi nếu tham số được truyền chưa có giá trị.
  2. Số lượng giá trị được truyền vào hàm bằng số tham số trong khai báo của hàm.
  3. Tham số là giá trị được truyền vào khi gọi hàm.
  4. Cả 3 phát biểu trên đều đúng.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lời gọi hàm có lỗi nếu tham số được truyền chưa có giá trị.

Đối số là giá trị được truyền vào khi gọi hàm.

Câu 3. Phát biểu nào bị sai?

  1. Một hàm khi khai báo có một tham số nhưng khi gọi hàm có thể có 2 đối số.
  2. Tham số được định nghĩa khi khai báo hàm.
  3. Tham số và đối số có một số điểm khác nhau.
  4. Khi gọi hàm, các tham số sẽ được truyền bằng giá trị thông qua đối số của hàm.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Một hàm khi khai báo có một tham số nhưng khi gọi hàm không thể có 2 đối số.

Câu 4. Giả sử hàm f có hai tham số khi khai báo. Khi gọi hàm, 2 giá trị đối số nào truyền vào sẽ gây lỗi?

A. 2, 3.

B. 10, c.

C. “a”, “b”.

D. “a”, “3”.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Giá trị của c chưa xác định nên sẽ gây lỗi.

Câu 5. Khi gọi hàm f(1, 2, 3), khi định nghĩa hàm f có bao nhiêu tham số?

  1. 1.
  2. 2.
  3. 3.
  4. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Do có 3 đối số nên f cần có 3 tham số.

Câu 6. Các tham số của f có kiểu dữ liệu gì nếu hàm f được gọi như sau:

f( ‘5.0’)

  1. str
  2. float.
  3. int.
  4. Không xác định.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

“5.0” nên kiểu tham số là kiểu xâu.

Câu 7. Hàm f được khai báo như sau f(a, b, c). Số lượng đối số truyền vào là:

A. 3.

B. 2.

C. 1.

D. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Có 3 tham số nên cần có 3 đối số truyền vào.

Câu 8. Hoàn thành chương trình kiểm tra một số có là số nguyên tố không:

def prime(n):
    c = 0
    k = 1
    while(k<n):
        if n%k == 0:
            c = c + 1
            k = k+ 1
    if c == 1:
        return (…)
    else:
        return (…)
  1. True, False.
  2. True, True.
  3. False, False.
  4. False, True.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Nếu số ước của n là 1 thì n là số nguyên tố, trả về giá trị True, ngược lại trả về giá trị False.

Câu 9. Giá trị của m là bao nhiêu sau biết kết quả là 5:

def tinhSum(a, b):
    return a + b
s = tinhSum(1, m)
print(s)
  1. 1.
  2. 4.
  3. 2.
  4. 3.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

1 + 4 = 5 nên m = 4.

Câu 10. Chương trình sau bị lỗi ở dòng thứ bao nhiêu ?

def tinh(a, b):
    if(b != 0):
    return a // b
s = tinh(1, m)
print(s)

A. 2.

B. 3.

C. 4.

D. 5.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Đối số m truyền vào chưa có giá trị cụ thể.

Câu 11. Giá trị của x là bao nhiêu sau biết kết quả là 8:

def tinh(a, b, c):
    if(b != 0):
        return a // b + c*2
s = tinh(1, 5, x)
print(s)

A. 3.

B. 2.

C. 1.

D. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Do 1 // 5 + 4 *2 = 8 nên x = 4.

Câu 12. Hoàn thiện chương trình sau:

def USCLN_2(a, b):
    r = a % b
    while r != 0:
        a = b
        b = r
        r = a % b
    return (…)
  1. a.
  2. b.
  3. r.
  4. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Kết quả b cuối cùng sẽ là UCLN của hai số a và b ban đầu, nên cần trả về b.

Câu 13. Hoàn thiện chương trình tìm UCLN của hai số?

def USCLN_1(a, b):
    if (…):
        return a
    return USCLN_1(b, a % b)
a = input('Nhap vao so nguyen duong a = ')
b = int(input('Nhao vao so nguyen duong b = '))
print(USCLN_1(a, b))
  1. a > c.
  2. a > b.
  3. a == 1.
  4. b == 0.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Trong TH b = 0 thì UCLN của hai số bằng số còn lại.

Câu 14. Chương trình sau bị lỗi ở dòng thứ bao nhiêu

>>> def fib(n):
>>> a, b = 0, 1
>>> while a < n:
>>> print(a, end=' ')
>>> a, b = b, a+b
>>> print()
>>> fib(1000)

A. 3.

B. 4.

C. Không có lỗi.

D. 5.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Chương trình không có lỗi.

Câu 15. Kết quả của chương trình này là bao nhiêu?

def kq():
    numbers = [2, 4, 6, 8]
    product = 1
    for number in numbers:
        product = product * number
    print(product)
kq()

A. 384.

B. 2.

C. 4.

D. 6.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Hàm tính tích của các số trong mảng numbers và kết quả là 2 * 4 * 6 * 8 = 384.

Bài 28: Phạm vi của biến

Câu 1. Hoàn thiện (…) trong phát biểu sau:

“Trong Python tất cả các biến khai báo bên trong hàm đều có tính …, không có hiệu lực ở bên … hàm”.

  1. địa phương, trong.
  2. cục bộ, ngoài.
  3. địa phương, ngoài.
  4. toàn cục, ngoài.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Trong Python tất cả các biến khai báo bên trong hàm đều có tính địa phương (cục bộ), không có hiệu lực ở bên ngoài hàm.

Câu 2. Số phát biểu đúng trong các phát biểu sau là:

1) Tất cả các biến bên trong hàm đều có tính cục bộ.

2) Tất cả các biến bên trong hàm chỉ có tính cục bộ.

3) Biến cục bộ trong hàm nếu gọi bên ngoài hàm sẽ bị lỗi.

  1. 1.
  2. 2.
  3. 3.
  4. 0.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Phát biểu đúng: 1, 3.

Câu 3. Chọn phát biểu sai trong các phát biểu sau:

  1. Chương trình chính có thể sử dụng biến cục bộ bên trong hàm.
  2. Biến bên trong hàm có thể trùng tên với biến đã khai bao trước đó bên ngoài hàm.
  3. Tất cả các biến trong hàm đều có tính cục bộ.
  4. Các biến bên trong hàm không có hiệu lực ở bên ngoài hàm.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Chương trình chính không thể sử dụng biến cục bộ bên trong hàm.

Câu 4. Giá trị của x, y là bao nhiêu khi thực hiện lệnh f(1, 3)

>>> x, y = 3, 4
>>> def f(x, y):
....x = x + y
....y = y + 2
....return x

A. 2, 3.

B. 4, 5.

C. 5, 4.

D. 3, 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Giá trị của biến x, y không thay đổi.

Câu 5. Giá trị của a, b là bao nhiêu khi thực hiện lệnh f(2, 5)

>>> a, b = 0, 1
>>> def f(a, b):
....a = a * b
....b = b // 2
....return a + b

A. 10, 2.

B. 10, 1.

C. 2, 5.

D. 0, 1.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Giá trị của biến a, b không thay đổi.

Câu 6. Kết quả của chương trình này là bao nhiêu?

s = "Tôi tên là: "
def kq(name):
    s = s+ name
print(kq("Long"))
  1. “Tôi tên là: Long”.
  2. “Long”.
  3. “Tôi tên là: ”.
  4. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Chương trình bị lỗi do vi phạm phạm vi sử dụng biến

Câu 7. Kết quả của chương trình sau là bao nhiêu?

s = "Hôm nay tôi đi học "
def kq(name):
    s = "Hello World"
    s = s + “!!!”
    return s
print(s)
  1. “Hôm nay tôi đi học “.
  2. “Hello World”.
  3. “Hello World!!!”.
  4. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Giá trị của chuỗi s bên ngoài hàm không bị thay đổi.

Câu 8. Kết quả của chương trình sau là bao nhiêu?

def kq(name):
    s = "Tôi tên là: "
    s = s+ name
    return s
print(kq("Xuân"))
  1. “Tôi tên là: “.
  2. “Xuân”.
  3. “Tôi tên là: Xuân”.
  4. Chương trình bị lỗi

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Hàm thực hiện nối hai chuỗi và trả về chuỗi s mới.

Câu 9. Kết quả của chương trình sau là bao nhiêu?

>>>def f(a,b):
....return a + b + N
>>> N = 5
>>>f(3, 3)

A. 5.

B. 6.

C. 11.

D. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Hàm tính tổng của 3 số a, b, và N thu được kết quả là 11.

Câu 10. Nếu muốn biến bên ngoài vẫn có tác dụng bên trong hàm thì cần khai báo lại biến này bên trong hàm với từ khoá nào

  1. global.
  2. def.
  3. Không thể thực hiện
  4. all.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Từ khoá global giúp biến bên ngoài vẫn có tác dụng bên trong hàm.

Câu 11. Kết quả nào được in ra khi thực hiện các câu lệnh sau:

>>>def f(x, y):
....a = x + y
....print(a + n)
>>>n = 5
>>>f(2, 3)

A. 5.

B. 10.

C. 2.

D. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Tính tổng ba số x, y, n là 2 + 3 + 5 = 10.

Câu 12. Kết quả của chương trình sau là:

def add(x,y):
    print(x+y)
x=15
add(x ,10)
add(x,x)
y=20
add(x,y)

A. 25, 35, 30.

B. 35, 30, 25.

C. 25, 30, 35.

D. Chương trình bị lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Hàm add(x, y) được thực hiện 3 lần :

15 + 10 = 25

15 + 15 = 30

20 + 15 = 35

Câu 13. Cho biết kết quả của chương trình sau:

def changeme(mylist):
    mylist.append([1,2,3,4])
mylist = [10,20,30]
changeme( mylist)
print(mylist)
  1. [10, 20, 30].
  2. [10, 20, 30, 1, 2, 3, 4].
  3. [1, 2, 3, 4].
  4. [10, 20, 30, [1, 2, 3, 4]].

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Danh sách [1, 2, 3, 4] được nối vào mylist ban đầu.

Câu 14. Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu?

def msg():
    a=10
    print("Gia tri cua a la",a)
    return msg()
print a

A. 4.

B. 5.

C. 3.

D. Không có lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Biến a ở trong hàm nên không thể được sử dụng bên ngoài hàm

Câu 15. Chương trình sau bị lỗi ở dòng lệnh thứ:

b=20
def msg():
    a=10
    print ("Gia tri cua a la",a)
    print ("Gia tri cua b la",b)
    return msg()
print(b)

A. 3.

B. 4.

C. 5.

D. Không có lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Chương trình không có lỗi do biến b được khai báo bên ngoài hàm.

Bài 29: Nhận biết lỗi chương trình

Câu 1. Chọn phát biểu sai trong các phát biểu sau:

  1. Có thể phân biệt lỗi chương trình Python làm ba loại.
  2. Khi có lỗi sai cú pháp, chương trình lập tức dừng và thông báo lỗi.
  3. Lỗi ngoại lệ là lỗi không thể thực hiện một lệnh trong chương trình.
  4. Cách xử lí các loại lỗi giống nhau.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Cách xử lí các lỗi khác nhau đối với mỗi loại.

Câu 2. Số phát biểu đúng trong các phát biểu sau là:

1) Chương trình chạy khi lỗi lôgic xảy ra

2) Khi có lỗi sai cấu trúc ngôn ngữ, chương trình vẫn chạy.

3) Khi có lỗi ngoại lệ, chương trình dừng và thông báo lỗi.

4) Mã lỗi ngoại lệ trả lại gọi là mã lỗi ngoại lệ.

A. 2.

B. 3.

C. 4.

D. 1.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Các phát biểu đúng: 1, 3, 4.

Câu 3. Điền vào “…” hoàn thành phát biểu sau: “Chương trình chạy không lỗi ngoại lệ nhưng kết quả đưa ra …. Đây là lỗi … bên trong chương trình.”

  1. sai, lôgic.
  2. đúng, Syntax Error.
  3. đúng, lôgic.
  4. sai, ngoại lệ.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Chương trình chạy không lỗi ngoại lệ nhưng kết quả đưa ra sai, không chính xác. Đây là lỗi lôgic bên trong chương trình.

Câu 4. Chương trình sau thông báo lỗi gì?

for i in range(10) print(i)

  1. Type Error.
  2. NameError.
  3. SyntaxError.
  4. ValueError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Sai cú pháp câu lệnh: SyntaxError

Câu 5. Chương trình sau thông báo lỗi gì?

n = 5
for i in range(n):
    prin(t)
  1. Type Error.
  2. NameError.
  3. SyntaxError.
  4. ValueError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Từ khoá print viết sai chính tả.

Câu 6. Chương trình sau thông báo lỗi gì?

>>>n = int(input(“Nhập n: “))

>>>Nhập n: a

  1. Type Error.
  2. NameError.
  3. SyntaxError.
  4. ValueError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Chương trình thông báo lỗi nhập dữ liệu không đúng khuôn dạng.

Câu 7. Chương trình sau thông báo lỗi gì?

lst = [1, 2, 3, 4, 5]
for i in range(10):
    print(lst[i])
  1. IndexError.
  2. NameError.
  3. SyntaxError.
  4. ValueError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Chỉ số vượt quá giới hạn cho phép.

Câu 8. Chương trình sau thông báo lỗi gì?

lst = [10, 20, 30, 40]

print(lst[6])

  1. NameError.
  2. SyntaxError.
  3. ValueError.
  4. IndexError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Chỉ số vượt quá giới hạn cho phép.

Câu 9. Chương trình sau mắc lỗi gì?

#Tính tích của 3 số nguyên dương đầu tiên.

>>>s = 1

>> for i in range(3)

>>>s = s * i

>>>print(s)

  1. Lôgic.
  2. Sai cú pháp.
  3. Lỗi ngoại lệ.
  4. Không có lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Chương trình vẫn chạy nhưng kết quả bị sai, không thực hiện đúng yêu cầu bài toán đặt ra.

Câu 10. Mã lỗi ngoại lệ của lệnh sau là float(“2 + 3”)

  1. IndexError.
  2. TypeError.
  3. ValueError.
  4. SyntaxError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Lỗi liên quan đến giá trị đối tượng khi thực hiện chuyển kiểu dữ liệu.

Câu 11. Mã lỗi nào được đưa ra khi lệnh thực hiện phép chia cho giá trị 0

  1. ZeroDivisionError.
  2. TypeError.
  3. ValueError.
  4. SyntaxError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Mã lỗi ZeroDivisionError được đưa ra khi lệnh thực hiện phép chia cho giá trị 0.

Câu 12. Khi dòng lệnh thụt vào không thẳng hàng chương trình đưa ra mã lỗi ngoại lệ nào?

  1. ZeroDivisionError.
  2. TypeError.
  3. IndentationError.
  4. SyntaxError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Khi dòng lệnh thụt vào không thẳng hàng hoặc không đúng vị trí chương trình đưa ra mã lỗi IndentationError.

Câu 13. Mã lỗi ngoại lệ của lệnh sau là

s = “12” + 12

  1. ZeroDivisionError.
  2. TypeError.
  3. IndentationError.
  4. SyntaxError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

TypeError là lỗi kiểu dữ liệu khi lệnh tính một biểu thức số có một toán hạng không phải là số.

Câu 14. Mã lỗi nào được đưa ra khi lệnh gọi một hàm nhưng không có hàm đó

  1. ZeroDivisionError.
  2. TypeError.
  3. IndentationError.
  4. NameError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Lỗi xảy ra khi chương trình muốn tìm một tên nhưng không tìm thấy

Câu 15. Dòng lệnh sau bị lỗi gì?

>> >A = [1, 2]

>>>A[0.5]

  1. Lỗi lôgic.
  2. Lỗi ngoại lệ.
  3. Lỗi cú pháp.
  4. Không có lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Mã lỗi trong trường hợp này là TypeError do chỉ số phải mang kiểu nguyên.

Bài 30: Kiểm thử và gỡ lỗi chương trình

Câu 1. Hoàn thành phát biểu sau: “Có rất nhiều công cụ và phương pháp khác nhau để kiểm thử chương trình. Các công cụ có mục đích … của chương trình và …, … các lỗi phát sinh trong tương lai”

  1. Tìm ra lỗi, phòng ngừa, ngăn chặn.
  2. Tìm ra lỗi, phòng ngừa, xử lí.
  3. Phòng ngừa, ngăn chặn, xử lí lỗi.
  4. Xử lí lỗi, phòng ngừa, ngăn chặn.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Có rất nhiều công cụ và phương pháp khác nhau để kiểm thử chương trình. Các công cụ có mục đích tìm ra lỗi của chương trình và phòng ngừa, ngăn chặn các lỗi phát sinh trong tương lai.

Câu 2. Đâu không là công cụ để kiểm thử chương trình?

  1. Công cụ in biến trung gian.
  2. Công cụ sinh các bộ dữ liệu test.
  3. Công cụ thống kê dữ liệu
  4. Công cụ điểm dừng trong phần mềm soạn thảo lập trình.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Một số công cụ để kiểm thử chương trình như Công cụ in biến trung gian, công cụ sinh các bộ dữ liệu test, công cụ điểm dừng trong phần mềm soạn thảo lập trình,…

Câu 3. Trong các phát biểu sau, phát biểu nào chưa chính xác về kiểm thử chương trình?

  1. Hiện nay, có ít phương pháp và công cụ khác nhau để kiểm thử chương trình.
  2. Chương trình cần được thử với một số bộ dữ liệu test gồm đầu vào tiêu biểu và kết quả đầu ra biết trước.
  3. Các bộ test phụ thuộc vào các tiêu chí khác nhau.
  4. Các bộ test dữ liệu nên có nhiều bộ test ngẫu nhiên,…

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Có nhiều phương pháp và công cụ khác nhau để kiểm thử chương trình

Câu 4. Phát biểu nào sau đây đúng nhất khi nói về các bộ dữ liệu test khi kiểm thử chương trình?

  1. Các bộ test có thể có đầu vào theo các tiêu chí khác nhau.
  2. Các bộ test có đầu vào theo một số tiêu chí nhất định.
  3. Các bộ test có thể có đầu vào theo các tiêu chí khác nhau như độ lớn, tính đa dạng của dữ liệu.
  4. Các bộ test có đầu vào phải theo các tiêu chí về độ lớn, tính đa dạng của dữ liệu.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Các bộ test có thể có đầu vào theo các tiêu chí khác nhau như độ lớn, tính đa dạng của dữ liệu.

Câu 5. Số phát biểu đúng trong các phát biểu sau:

1) Cần chú ý nên có nhiều bộ test khi test các bộ dữ liệu.

2) Việc sinh ngẫu nhiên dữ liệu đầu vào trong miền xác định của chương trình làm tăng khả năng tìm lỗi.

3) Thực tế cho thấy ít khi phát sinh lỗi tại các vùng biên hoặc lân cận biên.

4) Không thể sử dụng các lệnh print() để in ra các biến trung gian.

A. 2.

B. 3.

C. 1.

D. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Thực tế cho thấy thường khi phát sinh lỗi tại các vùng biên hoặc lân cận biên.

⇒ 3) Sai.

Có thể sử dụng các lệnh print() để in ra các biến trung gian.

⇒ 4) Sai

Câu 6. Chương trình chạy phát sinh lỗi ngoại lệ ZeroDivision, nên xử lí như thế nào?

  1. Kiểm tra lại giá trị số chia.
  2. Kiểm tra lại chỉ số trong mảng.
  3. Kiểm tra giá trị của số bị chia.
  4. Kiểm tra kiểu dữ liệu nhập vào.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: A

Lỗi ngoại lệ ZeroDivision xảy ra khi lệnh thực hiện phép chia cho giá trị 0 nên cần kiểm tra lại giá trị số chia.

Câu 7. Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu ?

>>> fruits = [‘Banana’, ‘Apple’, ‘Lime’]

>>> loud_fruits = [fruit.upper() for fruit in fruits]

>>> print(loud_fruits)

>>> list(enumerate(fruits))

A. 2.

B. 3.

C. 4.

D. Không phát sinh lỗi

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Chương trình đúng không có lỗi.

Câu 8. Chương trình sau phát sinh lỗi gì?

>>> 1 / 0

0.5

>>> 2 ** 3

8

  1. NameError.
  2. TypeError.
  3. ZeroDivisionError.
  4. Syntax Error.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

ZeroDivisionError: câu lệnh chia cho số 0.

Câu 9. Chương trình chạy phát sinh lỗi ngoại lệ IndexError, nên xử lí như thế nào?

  1. Kiểm tra lại giá trị số chia.
  2. Kiểm tra lại chỉ số trong mảng.
  3. Kiểm tra giá trị của số bị chia.
  4. Kiểm tra kiểu dữ liệu nhập vào.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lỗi ngoại lệ IndexError xảy ra khi lệnh cố gắn truy cập phần tử của danh sách nhưng chỉ số vượt giới hạn.

Câu 10. Chương trình sau có lỗi ở dòng lệnh nào?

n = int(input("Nhập số tự nhiên n: "))
s = ""
for i in range(10):
    s = s + i
  1. 1.
  2. 2.
  3. 3.
  4. 4.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Sai cấu trúc ngữ pháp ở dòng 4: s = s + i.

Câu 11. Chương trình chạy phát sinh lỗi ngoại lệ TypeError, nên xử lí như thế nào?

  1. Kiểm tra lại chỉ số trong mảng.
  2. Kiểm tra lại giá trị số chia.
  3. Kiểm tra giá trị của số bị chia.
  4. Kiểm tra kiểu dữ liệu nhập vào.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

Lỗi ngoại lệ TypeError xảy ra khi xuất hiện lỗi kiểu dữ liệu.

Câu 12. Chương trình sau mắc lỗi gì?

def func(n)
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
a, b = b, a+b
print()
print(func(1000))
  1. TypeError.
  2. ZeroDivisionError.
  3. Syntax Error.
  4. NameError.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: C

Thiếu dấu hai chấm sau tên hàm

Câu 13. Để tính giá trị trung bình của một danh sách số A, người lập trình đã dùng lệnh gttb = sum(A) / len(A). Những mã lỗi ngoại lệ nào có thể xảy ra ?

  1. NameError.
  2. ZeroDivisionError.
  3. Không thể xảy ra lỗi
  4. Có thể xảy ra cả hai lỗi trên.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: D

NameError: chưa khai báo biến A

ZeroDivisionError: danh sách A rỗng.

Câu 14. Chương trình chạy phát sinh lỗi ngoại lệ NameError, nên xử lí như thế nào?

  1. Kiểm tra lại chỉ số trong mảng.
  2. Kiểm tra lại tên các biến và hàm.
  3. Kiểm tra giá trị của số bị chia.
  4. Kiểm tra kiểu dữ liệu nhập vào.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Lỗi ngoại lệ NameError xảy ra không tìm được tên biến hoặc tên hàm

Câu 15. Chương trình sau nên sửa như thế nào. Chọn phương án đúng nhất.

fruits = [‘Banana’, ‘Apple’, ‘Lime’]

print(fruits[4])

  1. Thay đổi kiểu dữ liệu của từng phần tử trong mảng.
  2. Kiểm tra chỉ số của mảng khi thực hiện lệnh.
  3. Thay đổi tên mảng.
  4. Chương trình không có lỗi.

Hướng dẫn giải thích đáp án:  Đáp án đúng là: B

Danh sách có 3 phần tử nên trong lệnh print() cần thay đổi chỉ số của danh sách.

 

Trả lời