Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)


Haylamdo biên soạn và sưu tầm lời giải bộ 4 Đề thi Học kì 2 Tin học lớp 10 Cánh diều năm học 2023 có đáp án, chọn lọc được sưu tầm từ đề thi Tin học 10 của các trường THPT trên cả nước.

Đề thi Học kì 2 Tin 10 Cánh diều có đáp án (4 đề)

Phòng Giáo dục và Đào tạo ...

Đề thi Học kì 2 - Cánh diều

Năm học 2023

Môn: Tin học lớp 10

Thời gian làm bài: 45 phút

(không kể thời gian phát đề)

(Đề số 1)

I. PHẦN TRẮC NGHIỆM (7,0 điểm)

Câu 1. Trong các câu sau đây, số câu phát biểu đúng là:

(1) Trong câu lệnh rẽ nhánh của ngôn ngữ lập trình bậc cao phải có một biểu thức logic thể hiện điều kiện rẽ nhánh.

(2) Biểu thức logic chỉ được lấy làm điều kiện rẽ nhánh nếu chưa chạy chương trình đã xác định được giá trị của biểu thức đó đúng hay sai.

(3) Có thể kết nối các biểu thức logic với nhau bằng các phép tính logic để được một điều kiện rẽ nhánh.

(4) Trong Python câu lệnh rẽ nhánh có dạng: if <điều kiện> else <các câu lệnh>.

A. 1

B. 2

C. 3

D. 4

Câu 2. Hãy xác định giá trị của các biểu thức logic sau đây nếu A có giá trị bằng 5, B có giá trị bằng 0.

(A < B) and (A + B > 20)

A. False

B. True

C. None

D. Tất cả đều sai.

Câu 3. Cấu trúc lặp với số lần biết trước là:

A. for <Biến chạy> in range(m,n)

<Khối lệnh cần lặp>

B. while <Điều kiện>:

<Câu lệnh hay khối lệnh>

C. for <Biến chạy> in range(m,n):

D. for <Biến chạy> in range(m,n):

<Khối lệnh cần lặp>

Câu 4. Cho đoạn lệnh sau:

for i in range(5):

print(i)

Trên màn hình i có các giá trị là:

A. 0 1 2 3 4 5

B. 1 2 3 4 5

C. 0 1 2 3 4

D. 1 2 3 4

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

s=0

i=1

while i<=5:

s=s+1

i=i+1

Sau khi thực hiện đoạn chương trình trên giá trị của s là:

A. 9

B. 15

C. 5

D. 10

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

A. Dùng câu lệnh while ta cũng thể hiện được cấu trúc lặp với số lần biết trước.

B. Dùng câu lệnh for ta cũng thể hiện được cấu trúc lặp với số lần không biết trước.

C. Trong Python có 2 dạng lặp: Lặp với số lần biết trước và lặp với số lần không biết trước.

D. Câu lệnh thể hiện lặp với số lần không biết trước phải sử dụng một biểu thức logic làm điều kiện lặp.

Câu 7. Cho các phát biểu sau, số phát biểu sai là:

(1) Sử dụng chương trình con sẽ làm chương trình dễ hiểu, dễ tìm lỗi hơn.

(2) Hàm chỉ được gọi một lần duy nhất ở chương trình chính.

(3) Hàm luôn trả một giá trị qua tên của hàm.

(4) Python chỉ cho phép chương trình gọi một hàm xây dựng sẵn trong các thư viện của Python.

(5) Khai báo hàm trong Python luôn có danh sách tham số.

A. 4

B. 3

C. 2

D. 1

Câu 8. Thư viện math cung cấp:

A. Thủ tục vào ra của chương trình.

B. Hỗ trợ việc tạo ra các lựa chọn ngẫu nhiên

C. Các hằng và hàm toán học.

D. Hỗ trợ trực tiếp các định dạng nén và lưu trữ dữ liệu

Câu 9. Khi sử dụng hàm sqrt() ta cần khai báo thư viện:

A. math

B. ramdom

C. zlib

D. datetime

Câu 10. Hàm gcd(x,y) trả về:

A. Bội chung nhỏ nhất của x và y.

B. Căn bậc hai của x và y.

C. Ước chung lớn nhất của x và y.

D. Trị tuyệt đối của x và y.

Câu 11. Trong các câu sau đây, câu nào sai?

A. Có thể ghép các xâu để được xâu mới.

B. Có thể tìm vị trí của một xâu con trong một xâu.

C. Không thể đếm số lần xuất hiện một xâu con trong một xâu.

D. Có thể tạo xâu mới bằng cách thay thế xâu con trong một xâu.

Câu 12. Hàm len() cho biết:

A. Độ dài (hay số kí tự) của xâu.

B. Chuyển xâu ban đầu thành kí tự in hoa.

C. Vị trí xuất hiện đầu tiên của một xâu trong xâu khác.

D. Vị trí của kí tự bất kì trong xâu.

Câu 13. Hàm y.cout(x) cho biết:

A. Vị trí xuất hiện đầu tiên của x trong y.

B. Vị trí xuất hiện cuối cùng của x trong y.

C. Cho biết số kí tự của xâu x+y

D. Đếm số lần xuất hiện không giao nhau của x trong y.

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

y=’abcae’

x1=’a’

x2=’d’

print(y.replace(x1,x2))

Trên màn hình máy tính sẽ xuất hiện xâu:

A. bce

B. adbcade

C. dbcde

D. dbcae

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

>>> friends = ['Mai', 'Minh', 'Nga', 'Anh', 'Giang', 'Lan']

>>> friends.sort()

>>> print(friends)

Kết quả nhận được là gì?

A. ['Anh', 'Giang', 'Lan', 'Mai', 'Minh', 'Nga']

B. ['Nga', 'Minh', 'Mai', 'Lan', 'Giang', 'Anh']

C. ['Anh', 'Giang', 'Mai', 'Minh', 'Nga', 'Lan']

D. ['Lan', 'Nga', 'Minh', 'Mai', 'Giang', 'Anh']

Câu 16. Để thêm phần tử vào cuối danh sách ta dùng hàm:

A. append()

B. pop()

C. clear()

D. remove()

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

a=[1,2,3]

a.pop(2)

print(a)

Sau khi thực hiện đoạn chương trình trên thì danh sách a có các phần tử:

A. a=[1,2]

B. a=[2,3]

C. a=[1,3]

D. a=[2]

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

a=[1,2,3]

a.insert(0,2)

print(a)

Sau khi thực hiện đoạn chương trình trên thì danh sách a có các phần tử:

A. a=[0,1,2,3]

B. a=[2,3]

C. a=[2,1,2,3]

D. a=[1,2,3,2]

Câu 19. Chọn phát biểu không đúng?

A. Quá trình xác định lỗi và sửa lỗi được gọi là gỡ lỗi.

B. Trong Python có công cụ hỗ trợ cho người dùng tìm lỗi.

C. Lỗi ngoại lệ là lỗi câu lệnh viết không theo đúng quy định của ngôn ngữ.

D. Lỗi ngữ nghĩa còn gọi là lỗi logic là lỗi mặc dù các câu lệnh viết đúng theo quy định của ngôn ngữ nhưng sai trong thao tác xử lí nào đó.

Câu 20. Hãy chọn báo lỗi đúng, sau khi thực hiện câu lệnh sau:

int(‘abc’)

A. TypeEror

B. NameError

C. ValueError

D. IndexError

Câu 21. Lỗi nào sau đây khó phát hiện nhất?

A. Lỗi cú pháp.

B. Lỗi ngữ nghĩa.

C. Lỗi ngoại lệ.

D. Lỗi Runtime.

Câu 22. Công cụ Debug dùng để:

A. Chạy chương trình.

B. Lưu chương trình.

C. Mở chương trình.

D. Gỡ lỗi.

Câu 23. Quá trình giải toán bằng lập trình trên máy tính có …bước.

A. 2                         B. 3                         C. 4                         D. 5

Câu 24. Bước kiểm thử, chạy và hiệu chỉnh chương trình là:

A. Lựa chọn cách tổ chức dữ liệu và sử dụng ngôn ngữ lập trình để điễn đạt đúng thuật toán.

B. Xác định những giá trị đã cho và mối quan hệ giữa chúng.

C. Tìm thuật toán dựa trên bước xác định bài toán, dựa trên mối quan hệ giữa các đại lượng đã cho với những giá trị cần tìm, đồng thời xác định cách tổ chức dữ liệu có thể sử dụng tương ứng với thuật toán đó.

D. Dùng các bộ dữ liệu khác nhau để kiểm thử và hiệu chỉnh chương trình.

Câu 25. Công đoạn thiết kế phần mềm là:

A. Phân tích nhu cầu của cộng đồng cần phục vụ, xác định vai trò của phần mềm, xác định thông tin đầu vào, đầu ra của hệ thống phần mềm cần xây dựng.

B. Chuyển những mô tả ở bản thiết kế thành các lệnh thực hiện được trên máy tính để máy tính “hiểu” và “thực hiện” đúng theo thiết kế.

C. Chuyển các yêu cầu về phần mềm thành bản thiết kế phần mềm.

D. Thực hiện các bước thử nghiệm sản phẩm xem có khiếm khuyết gì không để khắc phục kịp thời trước khi phần mềm đến tay người sử dụng.

Câu 26. Để trở thành một lập trình viên, em cần chuẩn bị những kiến thức, kĩ năng gì?

A. Biết cách tự học.

B. Học tiếng Anh chuyên ngành.

C. Học và nâng cao kĩ thuật chuyên môn.

D.Tất cả các kiến thức, kĩ năng trên.

Câu 27. Em hiểu thế nào là lập trình?

A. Mô tả quá trình thực hiện của máy tính                                            

B. Chuyển các yêu cầu về phần mềm thành bản thiết kế phần mềm.     

C. Viết chương trình bằng ngôn ngữ lập trình nào đó để máy tính có thể hiểu và thực hiện được.

D. Xác định thông tin đầu vào, đầu ra của hệ thống phần mềm cần xây dựng.

Câu 28. Để theo học ngành phát triển phần mềm, em cần chuẩn bị tốt những môn học nào?

A. Toán học, tin học.

B. Tin học, tiếng anh.

C. Tin học, mỹ thuật.

D. Toán học, vật lý.

II. PHẦN TỰ LUẬN (3 điểm)

Câu 1. (1 điểm) Giải thích ý nghĩa của các lệnh sau:

a) A.append(x)

b) A.pop(5)

Câu 2. (1 điểm) Chương trình sau thực hiện nhập từ thiết bị vào chuẩn hai dòng:

- Dòng thứ nhất chứa hai số nguyên pq ghi cách nhau một dấu cách.

- Dòng thứ hai là danh sách số nguyên A = (a1, a2, …, an), các số ghi trên một dòng cách nhau một dấu cách. Dữ liệu vào đảm bảo 1 ≤ p ≤ q ≤ n. Tính và đưa ra thiết bị ra chuẩn hai số nguyên trên một dòng:

min{ai, i = p, p+1, q} và max{ai, i = p, p+1, q}.

Chương trình thỉnh thoảng cho kết quả sai với một số bộ dữ liệu p, qA nào đó. Em hãy tìm và sửa lỗi để được chương trình cho kết quả đúng với mọi bộ dữ liệu vào p, qA.

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

Câu 3. (1 điểm) Em hãy viết chương trình nhập một xâu kí tự bất kì từ bàn phím. Cần sắp xếp lại các chữ số thì dồn sang trái, các chữ cái tiếng Anh thì dồn sang phải xâu, các kí tự khác thì giữ nguyên vị trí.

……………………. Hết …………………….

Ma trận đề thi học kì II môn Tin học lớp 10, năm học 2023, bộ sách Cánh diều

Chủ đề

Nội dung kiến thức/kĩ năng

Mức độ nhận thức

Tổng số câu

Tổng% điểm

Nhận biết

Thông hiểu

Vận dụng

Vận dụng cao

TN

TL

TN

TL

TN

TL

TN

TL

TN

TL

 

Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính

1. Câu lệnh rẽ nhánh

1

 

1

 

 

 

 

 

2

0

5%

(0,5 đ)

2. Câu lệnh lặp

2

 

2

 

 

 

 

 

4

0

10%

(1,0 đ)

3. Chương trình con và thư viện các chương trình con có sẵn

2

 

2

 

 

 

 

 

4

0

10%

(1,0 đ)

4. Kiểu dữ liệu xâu kí tự - Xử lí xâu kí tự

2

 

2

 

 

 

 

 

4

0

10%

(1,0 đ)

5. Kiểu dữ liệu danh sách – xử lí danh sách

2

 

2

 

 

1

 

 

4

1

20%

(2,0 đ)

6. Kiểm thử và gỡ lỗi chương trình

2

 

2

 

 

1

 

 

4

1

20%

(2,0 đ)

7. Lập trình giải quyết bài toán trên máy tính

1

 

1

 

 

 

 

1

2

1

15%

(1,5 đ)

Chủ đề G. Hướng nghiệp với Tin học

8. Nhóm nghề thiết kế và lập trình

2

 

 

 

 

 

 

 

2

0

5%

(0,5 đ)

9. Tìm hiểu về nghề lập trình web, lập trình trò chơi và lập trình cho thiết bị di động

2

 

 

 

 

 

 

 

2

0

5%

(0,5 đ)

Tổng

16

0

12

0

0

2

0

1

28

3

100%

(10,0 điểm)

Tỉ lệ %

40%

30%

20%

10%

70%

30%

Tỉ lệ chung

70%

30%

100%

Phòng Giáo dục và Đào tạo ...

Đề thi Học kì 2 - Cánh diều

Năm học 2023

Môn: Tin học lớp 10

Thời gian làm bài: 45 phút

(không kể thời gian phát đề)

(Đề số 2)

Câu 1. Hãy xác định giá trị của các biểu thức quan hệ dưới đây nếu A có giá trị 5, B có giá trị bằng 10.

A*A + B*B <= 200

A. True

B. False

C. 125

D. None

Câu 2. Hãy xác định giá trị của các biểu thức logic dưới đây nếu A có giá trị bằng 5, B có giá trị bằng 0.

(A + 5 != B) or (A*2 == 10)

A. True

B. False

C. None

D. 0

Câu 3. Trong các câu sau đây, số câu phát biểu đúng là:

(1) Trong các ngôn ngữ lập trình bậc cao đều có câu lệnh thể hiện cấu trúc lặp.

(2) Trong Python chỉ có câu lệnh lặp while để thể hiện cấu trúc lặp.

(3) Trong Python chỉ có câu lệnh lặp for để thể hiện cấu trúc lặp.

(4) Có thể sử dụng câu lệnh while để thể hiện cấu trúc lặp với số lần lặp biết trước.

(5) Có thể sử dụng câu lệnh for để thể hiện cấu trúc lặp với số lần lặp chưa biết trước.

A. 1

B. 2

C. 3

D. 4

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

for i in range(6):

print(i)

Trong đoạn chương trình trên vòng lặp được thực hiện bao nhiêu lần?

A. 3

B. 4

C. 5

D. 6

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

i=0

while i<=5:

                                s=s+i

i=i+1

Trong đoạn chương trình trên vòng lặp được thực hiện bao nhiêu lần?

A. 1

B. 2

C. 6

D. 5

Câu 6. Hàm range(101, 1, -1) sẽ tạo ra:

A. một dãy số từ 101 về 1

B. một dãy số từ 100 về -1

C. một dãy số từ 100 về 2

D. một dãy số từ 101 về 2

Câu 7. Để gắn thư viện time vào chương trình, ta dùng lệnh nào?

A. import time

B. def time

C. time import

D. from time import

Câu 8. Phát biểu nào sau đây là sai khi nói về chương trình con?

A. Giúp việc lập trình trở lên dễ dàng hơn.

B. Tránh được việc phải viết đi viết lại cùng một dãy lệnh.

C. Chương trình dễ hiểu, dễ đọc.

D. Khó phát hiện lỗi.

Câu 9. Từ khóa dùng để khai báo hàm trong Python là?

A. def

B. procedure

C. return

D. function

Câu 10. Hàm nào sau đây là hàm được tích hợp sẵn trong Python?

A. seed()

B. sqrt()

C. factorial()

D. print()

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

>>> y = "0123456"

>>> print(y[2:5])

Kết quả thu được là gì?

A. 1234

B. 234

C. 1234

D. 2345

Câu 12. Để thay thế từ hoặc cụm từ bằng từ hoặc cụm từ khác, ta sử dụng hàm nào?

A. find()

B. len()

C. replace()

D. remove()

Câu 13. Để cho ra kết quả là vị trí xuất hiện đầu tiên của một xâu hoặc ký tự có trong xâu, ta sử dụng hàm nào sau đây?

A. <tên biến xâu>.lower(<xâu hoặc ký tự cần tìm>)

B. <tên biến xâu>.find(<xâu hoặc ký tự cần tìm>)

C. <tên biến xâu>.len(<xâu hoặc ký tự cần tìm>)

D. <tên biến xâu>.upper(<xâu hoặc ký tự cần tìm>)

Câu 14. Chọn phát biểu không đúng?

A. Các kí tự trong xâu được đánh số bắt đầu từ 1.

B. Python cung cấp hàm len() để đếm số kí tự trong một xâu kể cả kí tự dấu cách.

C. Số kí tự trong xâu được gọi là độ dài của xâu.

D. Trong Python, xâu kí tự được đặt trong cặp nháy kép hoặc nháy đơn.

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

a=[1,2,3]

a.append(4)

print(a)

Sau khi thực hiện đoạn chương trình trên thì danh sách a có các phần tử:

A. a=[4,1,2,3]

B. a=[1,2,3]

C. a=[1,2,3,4]

D. a=[1,4,2,3]

Câu 16. Lệnh a.sort() thực hiện:

A. Xóa danh sách a.

B. Sắp xếp danh sách a theo thứ tự không giảm.

C. Sắp xếp danh sách a theo thứ tự không tăng.

D. Gọi đến phần tử đầu tiên trong danh sách a

Câu 17. Ý nghĩa của hàm xử lí danh sách sau là gì?

a.pop(i)

A. Xóa phần tử đứng ở vị trí a trong danh sách i và đưa ra phần tử này.

B. Xóa phần tử đứng ở vị trí i trong danh sách a và đưa ra phần tử này.

C. Xóa phần tử đứng ở vị trí (i – 1) trong danh sách a và đưa ra phần tử này.

D. Xóa phần tử đứng ở vị trí (a – 1) trong danh sách i và đưa ra phần tử này.

Câu 18. Cho biết kết quả sau khi thực hiện đoạn chương trình sau:

ma=[19, 2, 25, 4, 8, 99, 111, 12]

ma.sort()

ma.append([1,2])

print(ma)

A. [1,2,2, 4, 12, 8, 19, 25, 99, 111]

B. [[1,2],111, 99, 25, 19, 8, 12, 4, 2]

C. [2, 4, 8, 12, 19, 25, 99, 111, [1, 2]]

D. [2, 4, 8, 12, 19, 25, 99, 111, 1, 2]

Câu 19. Khẳng định nào sau đây là sai?

A. Lỗi ngữ nghĩa là lỗi khó phát hiện nhất.

B. Ngôn ngữ lập trình Python cung cấp công cụ Debug để gỡ lỗi .

C. Lỗi ngoại lệ là lỗi xảy ra khi chương trình đang chạy, một lệnh nào đó không thể thực hiện. Lỗi này sẽ được hiển thị ngay trên màn hình.

D. Truy vết để tìm lỗi là một quá trình vô cùng đơn giản, không tốn thời gian.

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

a=int(input()

print(a)

Lỗi trong chương trình trên là lỗi:

A. Cú pháp.

B. Ngữ nghĩa.

C. Ngoại lệ.

D. Không có lỗi.

Câu 21. Khi thực hiện tìm lỗi trong chương trình và kiểm thử, dữ liệu kiểm thử chia thành mấy nhóm?

A. 1

B. 2

C. 3

D. 4

Câu 22. Lỗi ngoại lệ trong Python là lỗi gì?

A. Lỗi khi chương trình biên dịch sang tệp exe

B. Lỗi khi không thể thực hiện một lệnh nào đó của chương trình

C. Lỗi khi truy cập một biến chưa được khai báo

D. Lỗi khi viết một câu lệnh sai cú pháp của ngôn ngữ lập trình

Câu 23. Có bao nhiêu chế độ dịch chương trình viết trên ngôn ngữ lập trình bậc cao sang ngôn ngữ máy?

A. 1

B. 2

C. 3

D. 4

Câu 24. Khẳng định nào sau đây là sai?

A. Chương trình viết bằng ngôn ngữ lập trình bậc cao sẽ được dịch sang ngôn ngữ máy để thực hiện.

B. Có hai chương trình dịch là biên dịch và thông dịch.

C. Quá trình giải toán bằng lập trình trên máy tính có 4 bước.

D. Không cần viết chương trình ta vẫn có thể giải một toán trên máy tính.

Câu 25. Những trường đại học nào có khoa công nghệ thông tin?

A. Đại học bách khoa Hà Nội.

B. Đại học quốc gia thành phố Hồ Chí Minh.

C. Đại học khoa học tự nhiên.

D. Tất cả các trường đại học trên.

Câu 26. Người theo nghành thiết kế và lập trình có những đặc điểm:

A. Kiên trì, đam mê.

B. Tư duy logic và chính xác.

C. Khả năng tự học, sáng tạo, khả năng đọc hiểu tiếng anh.

D. Tất cả những đặc điểm trên.

Câu 27. Trong các câu sau đây, câu nào đúng?

A. Khi phát triển phần mềm thì mỗi người làm nghề đều phải thực hiện tất cả các công đoạn chính là: phân tích hệ thông, thiết kế phần mềm, lập trình và kiểm thử.

B. Khi phát triển phần mềm mỗi người chỉ thực hiện được nhiều nhất không quá hai công đoạn nêu ở câu A.

C. Nhu cầu phát triển phần mềm ngày một gia tăng là do mỗi doanh nghiệp đều muốn áp dụng công nghệ số để phục vụ quản lí, sản xuất, kinh doanh.

D. Các nhà phát triển phần mềm chỉ có duy nhất một công việc là phát triển các phần mềm thương mại mới.

Câu 28. Những công đoạn chính của quá trình phát triển phần mềm?

A. Phân tích hệ thống – Lập trình.

B. Thiết kế phần mềm – Lập trình – Kiểm thử phần mềm.

C. Lập trình – Kiểm thử phần mềm.

D. Phân tích hệ thống – Thiết kế phần mềm – Lập trình – Kiểm thử phần mềm.

II. PHẦN TỰ LUẬN (3 điểm)

Câu 1. (1 điểm) Giải thích ý nghĩa của các lệnh sau:

a) A.insert(2,6)

b) A.sort()

Câu 2. (1 điểm) Chương trình sau thực hiện nhập từ thiết bị vào chuẩn hai dòng:

- Dòng thứ nhất chứa hai số nguyên pq ghi cách nhau một dấu cách.

- Dòng thứ hai là danh sách số nguyên A = (a1, a2, …, an), các số ghi trên một dòng cách nhau một dấu cách. Dữ liệu vào đảm bảo 1 ≤ p ≤ q ≤ n. Tính và đưa ra thiết bị ra chuẩn hai số nguyên trên một dòng:

min{ai, i = p, p+1, q} và max{ai, i = p, p+1, q}.

Chương trình thỉnh thoảng cho kết quả sai với một số bộ dữ liệu p, qA nào đó. Em hãy tìm và sửa lỗi để được chương trình cho kết quả đúng với mọi bộ dữ liệu vào p, qA.

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

Câu 3. (1 điểm) Em hãy viết chương trình nhập một xâu kí tự bất kì từ bàn phím. Cần sắp xếp lại các chữ số thì dồn sang phải, các chữ cái tiếng Anh thì dồn sang trái xâu, các kí tự khác thì giữ nguyên vị trí.

……………………. Hết …………………….

Ma trận đề thi học kì II môn Tin học lớp 10, năm học 2023, bộ sách Cánh diều

Chủ đề

Nội dung kiến thức/kĩ năng

Mức độ nhận thức

Tổng số câu

Tổng% điểm

Nhận biết

Thông hiểu

Vận dụng

Vận dụng cao

TN

TL

TN

TL

TN

TL

TN

TL

TN

TL

 

Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính

1. Câu lệnh rẽ nhánh

1

 

1

 

 

 

 

 

2

0

5%

(0,5 đ)

2. Câu lệnh lặp

2

 

2

 

 

 

 

 

4

0

10%

(1,0 đ)

3. Chương trình con và thư viện các chương trình con có sẵn

2

 

2

 

 

 

 

 

4

0

10%

(1,0 đ)

4. Kiểu dữ liệu xâu kí tự - Xử lí xâu kí tự

2

 

2

 

 

 

 

 

4

0

10%

(1,0 đ)

5. Kiểu dữ liệu danh sách – xử lí danh sách

2

 

2

 

 

1

 

 

4

1

20%

(2,0 đ)

6. Kiểm thử và gỡ lỗi chương trình

2

 

2

 

 

1

 

 

4

1

20%

(2,0 đ)

7. Lập trình giải quyết bài toán trên máy tính

1

 

1

 

 

 

 

1

2

1

15%

(1,5 đ)

Chủ đề G. Hướng nghiệp với Tin học

8. Nhóm nghề thiết kế và lập trình

2

 

 

 

 

 

 

 

2

0

5%

(0,5 đ)

9. Tìm hiểu về nghề lập trình web, lập trình trò chơi và lập trình cho thiết bị di động

2

 

 

 

 

 

 

 

2

0

5%

(0,5 đ)

Tổng

16

0

12

0

0

2

0

1

28

3

100%

(10,0 điểm)

Tỉ lệ %

40%

30%

20%

10%

70%

30%

Tỉ lệ chung

70%

30%

100%

 

Phòng Giáo dục và Đào tạo ...

Đề thi Học kì 2 - Cánh diều

Năm học 2023

Môn: Tin học lớp 10

Thời gian làm bài: 45 phút

(không kể thời gian phát đề)

(Đề số 3)

I. PHẦN TRẮC NGHIỆM (7,0 điểm)

Câu 1. Cho biểu thức logic x and y. Biểu thức nhận giá trị True khi nào?

A. Cả x và y đều nhận giá trị True.

B. x nhận giá trị True, y nhận giá trị False.

C. x nhận giá trị False, y nhận giá trị True.

D. Cả x và y đều nhận giá trị False.

Câu 2. Cho x = 5, y = 10. Hãy cho biết biểu thức logic nào nhận giá trị True?

A. 4*x=2*y

B. (x%5==0) and (y%2==0)

C. (x>2*y) or (x+y >20)

D. x+10 >= y+7

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

a=6

s=0

while (a>0):

 s=s+a

 a=a-1

Giá trị của s khi thực hiện đoạn chương trình trên bằng bao nhiêu?

 A. 5

B. 20

C. 6

D. 21

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

i = 1

while i <= 100:

                                if i % 2 == 0:

print(i)

                                i = i + 1

A. In ra màn hình các số chẵn từ 1 đến 100

B. In ra các số lẻ từ 1 đến 100

C. In ra các số từ 1 đến 100

D. In ra các số từ 1 đến 99

Câu 5. Hàm range(101) sẽ tạo ra:

A. một dãy số từ 0 đến 100

B. một dãy số từ 1 đến 101

C. 101 số ngẫu nhiên

D. một dãy số ngẫu nhiên 101

Câu 6. <Điều kiện> trong câu lệnh lặp với số lần không biết trước là:

A. Hàm toán học.

B. Biểu thức logic.

C. Biểu thức quan hệ.

D. Biểu thức tính toán.

Câu 7. Hàm trong Python được khai báo theo mẫu:

A. def tên_hàm(tham số):

Các lệnh mô tả hàm

B. def tên_hàm(tham số)

Các lệnh mô tả hàm

C. def tên_hàm()

Các lệnh mô tả hàm

D. def (tham số):

Các lệnh mô tả hàm

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

A. Tên hàm do người lập trình đặt không cần theo quy tắc.

B. Chương trình con là một đoạn câu lệnh thực hiện một việc nào đó được đặt tên.

C. Muốn xây dựng hàm trả về giá trị xử lí, cần kết thúc hàm bằng câu lệnh return cùng với biểu thức hay biến chứa giá trị trả về.

D. Các lệnh mô tả hàm phải viết lùi vào theo quy định của Python.

Câu 9. Khi sử dụng hàm có sẵn (trong một thư viện) ta cần:

A. Gọi hàm có sẵn thực hiện mà không cần xây dựng lại hàm đó.

B. Phải xây dựng lại hàm đó.

C. Phải khai báo hàm trước khi gọi.

D. Phải khai báo và xây dựng lại.

Câu 10. Phát biểu nào sau đây là sai khi nói về chương trình con?

A. Giúp việc lập trình trở lên dễ dàng hơn.

B. Tránh được việc phải viết đi viết lại cùng một dãy lệnh.

C. Chương trình dễ hiểu, dễ đọc.

D. Khó phát hiện lỗi.

Câu 11. Để cho ra kết quả là vị trí xuất hiện đầu tiên của một xâu hoặc ký tự có trong xâu, ta sử dụng hàm nào sau đây?

A. <tên biến xâu>.lower(<xâu hoặc ký tự cần tìm>)

B. <tên biến xâu>.find(<xâu hoặc ký tự cần tìm>)

C. <tên biến xâu>.len(<xâu hoặc ký tự cần tìm>)

D. <tên biến xâu>.upper(<xâu hoặc ký tự cần tìm>)

Câu 12. Cho xâu a = ‘Tân Lập! Đây là trường của em!’ Kết quả của lệnh len(a) là:

A. 28

B. 29

C. 30

D. 31

Câu 13. Xâu kí tự trong Python là:

A. Một kí tự           

B. Một dãy các số

C. Một dãy các kí tự

D. Một giá trị bất kì.

Câu 14. Hàm y.cout(x) cho biết:

A. Vị trí xuất hiện đầu tiên của x trong y.

B. Vị trí xuất hiện cuối cùng của x trong y.

C. Cho biết số kí tự của xâu x+y

D. Đếm số lần xuất hiện không giao nhau của x trong y.

Câu 15. Vị trí của các phần tử trong list được xác định thông qua chỉ số. Phát biểu nào sau đây về chỉ số của các phần tử trong list là đúng?

A. Chỉ số bắt đầu từ 0 theo chiều từ trái sang phải.

B. Chỉ số bắt đầu từ 0 theo chiều từ phải sang trái.

C. Chỉ số bắt đầu từ một giá trị nguyên do người lập trình quy định, theo chiều từ trái sang phải.

D. Chỉ số bắt đầu từ -1 theo chiều từ trái sang phải

Câu 16. Biểu thức điều kiện nào sau đây biểu thị phần tử thứ i của list A nằm trong khoảng (-3, 9)?

A. (A[i] > -3) or (A[i] < 9)

B. (A[i] < -3) and (A[i] > 9)

C. (-3 <= A[i] <= 9)

D. (A[i] > -3) and (A[i] <9)

Câu 17. Lệnh nào thêm phần tử có giá trị 100 vào cuối danh sách A?

A. A[len(A)]= 100

B. A[len(A)-1] = 100

C. A= A +100

D. A.append(100)

Câu 18. Ý nghĩa của hàm xử lí danh sách sau là gì?

a.pop(i)

A. Xóa phần tử đứng ở vị trí a trong danh sách i và đưa ra phần tử này.

B. Xóa phần tử đứng ở vị trí i trong danh sách a và đưa ra phần tử này.

C. Xóa phần tử đứng ở vị trí (i – 1) tong danh sách a và đưa ra phần tử này.

D. Xóa phần tử đứng ở vị trí (a – 1) trong danh sách i và đưa ra phần tử này.

Câu 19. Thư viện PDB là thư viện dùng để:

A. Cung cấp các thủ tục vào ra của chương trình.

B. Cung cấp hàng loạt các hàm dùng cho việc giao tiếp với hệ điều hành

C. Hỗ trợ trực tiếp các định dạng nén và lưu trữ dữ liệu.

D. Cung cấp các dịch vụ gỡ lỗi.

Câu 20. Để xem giá trị các biến sau khi thực hiện một câu lệnh ta dùng:

A. Lệnh intput().

B. Các phép tính toán.

C. Công cụ Debug.

D. Thư viện PDB.

Câu 21. Lỗi ngoại lệ trong Python là lỗi gì?

A. Lỗi khi viết một câu lệnh sai cú pháp của ngôn ngữ lập trình

B. Lỗi khi truy cập một biến chưa được khai báo

C. Lỗi khi không thể thực hiện một lệnh nào đó của chương trình

D. Lỗi khi chương trình biên dịch sang tệp exe

Câu 22. Chọn phát biểu không đúng?

A. Quá trình xác định lỗi và sửa lỗi được gọi là gỡ lỗi.

B. Trong Python có công cụ hỗ trợ cho người dùng tìm lỗi.

C. Lỗi ngoại lệ là lỗi câu lệnh viết không theo đúng quy định của ngôn ngữ.

D. Lỗi ngữ nghĩa còn gọi là lỗi logic là lỗi mặc dù các câu lệnh viết đúng theo quy định của ngôn ngữ nhưng sai trong thao tác xử lí nào đó.

Câu 23. Giải bài toán trên máy tính được tiến hành qua mấy bước?

A. 3

B. 4

C. 5

D. 6

Câu 24. Các bước giải bài toán sau dùng để:

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

A. Tìm số nhỏ nhất trong ba số a, b, c;  

B. Tìm số lớn nhất trong ba số a, b, c ;

C. Tìm số lớn nhất trong dãy số nguyên N số.        

D. Tìm số nhỏ nhất trong dãy số nguyên N số.

Câu 25. Những công đoạn chính của quá trình phát triển phần mềm?

A. Phân tích hệ thống – Lập trình.

B. Thiết kế phần mềm – Lập trình – Kiểm thử phần mềm.

C. Lập trình – Kiểm thử phần mềm.

D. Phân tích hệ thống – Thiết kế phần mềm – Lập trình – Kiểm thử phần mềm.

Câu 26. Nội dung nào không phải là công việc của phát triển phần mềm?

A. Sửa chữa phần cứng.

B. Phát triển games.

C. Phát triển ứng dụng trên web.

D. Phát triển ứng dụng di động.

Câu 27. Đâu là ngành nghề không liên quan đến nghề lập trình web, trò chơi, thiết bị di động?

A. Giáo dục.

B. Marketting.

C. Truyền thông.

D. Xây dựng.

Câu 28. Ngôn ngữ để thiết kế web, trò chơi, thiết bị di động thường dùng là gì?

A. MS Office, Java, HTML.

B. Photoshop, AutoCard, Java.

C. HTML, C++, Python.

D. Python, Photoshop, Latex

II. PHẦN TỰ LUẬN (3 điểm)

Câu 1. (1 điểm) Trong Python, việc xử lí xâu và danh sách có nhiều điểm tương đồng. Cách tạo danh sách con được viết giống như tạo xâu con. Em hãy nêu cách viết câu lệnh đưa ra danh sách con của a như sau:

- Gồm m phần tử đầu tiên của danh sách a.

- Gồm các phần tử từ vị trí p đến trước vị trí q, của danh sách a.

- Gồm các phần tử từ vị trí m đến cuối danh sách a.

Câu 2. (1 điểm) Có thể xem giá trị các biến sau khi thực hiện một câu lệnh ở đâu?

Câu 3. (1 điểm) Xét bài toán: Đội Trúc Xanh gồm 3 bạn An, Thuỳ và Minh đứng đầu trong cuộc thi về ca dao, tục ngữ Việt Nam. Cách trao giải của Ban tổ chức cũng khá độc đáo. Trên bàn bày một dãy n túi kẹo, trên túi kẹo thứ i có ghi số nguyên ai, là số lượng kẹo trong túi (ai ≥ 0). Đội thắng cuộc được phép chọn các túi kẹo có số lượng chia hết cho 3. Đội Trúc Xanh quyết định sẽ chọn hết tất cả các túi có kẹo và được phép lấy. Sau đó từ mỗi túi, mỗi người ăn một chiếc kẹo. Phần kẹo còn lại được tập trung và chia đều để mỗi bạn mang về cho em ở nhà. Hãy xác định, mỗi bạn đã ăn bao nhiêu cái kẹo và mang về nhà bao nhiêu cái.

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu.

Dữ liệu: Nhập vào từ thiết bị vào chuẩn:

- Dòng đầu tiên chứa số nguyên n (1n105).

- Dòng thứ hai chứa n số nguyên a1, a2, …, an (0ai104, i = 1, 2, …, n)

Kết quả: Đưa ra thiết bị ra chuẩn hai số nguyên là số lượng kẹo tương ứng với số kẹo mỗi bạn đã ăn và số kẹo mỗi bạn mang về, các số đưa ra trên cùng một dòng.

Ví dụ:

Input

Output

9

25 16 11 12 14 0 8 30 21

3

18

 

……………………. Hết …………………….

ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM ĐỀ SỐ 3

I. Trắc nghiệm (7 điểm)

- Mỗi câu đúng tương ứng với 0,25 điểm.

1. A

2. B

3. D

4. A

5. A

6. B

7. A

8. A

9. A

10. D

11. B

12. B

13. C

14. D

15. A

16. D

 17. D

18. B

19. D

20. C

21. C

22. C

23. B

24. B

25. D

26. A

27. D

28. C

 

 

II. Tự luận (3 điểm)

Câu

Đáp án

Điểm

Câu 1

(1 điểm)

Việc tạo danh sách con giống như tạo xâu con:

a[:m] - câu lệnh đưa ra danh sách m phần tử đầu tiên của a.

a[p:q] - câu lệnh đưa ra danh sách con tử phần tử ở vị trí p đến phần tử ở vị trí q - 1

a[m: ] - câu lệnh đưa ra danh sách các phần tử cuối của a bắt đầu từ vị trí m.

 

0,25

0,5

 

0,25

Câu 2

(1 điểm)

Ta có thể sử dụng công cụ Debugger sau đó chọn Step để thực hiện từng bước các câu lệnh, quan sát giá trị các biến. Hoặc ta cũng có thể chèn thêm các câu lệnh print để in ra giá trị của các biến.

1,0

Câu 3

(1 điểm)

Tóm tắt bài toán (Mô hình toán học)

Cho:

- Số nguyên n, (1n 105) và n số nguyên a1, a2, .., an (0 ≤ ai  ≤104, i = 1, 2, .., n).

Yêu cầu:

- Xác định k là số lượng ai lớn hơn 0 và chia hết cho 3.

- Tính tổng (ai – 3)/3 với các ai tìm được.

Thuật toán và cách tổ chức dữ liệu

- Bước 1. Nhập dữ liệu vào (dùng kiểu danh sách cho dãy n số nguyên).

- Bước 2. Chuẩn bị tích luỹ số lượng và tổng: k = 0, s = 0.

- Bước 3. Duyệt với mọi i: Nếu ai > 0 và ai chia hết cho 3 thì tăng k và tích luỹ ai vào s.

- Bước 4. Đưa ra k và (s - 3k)/3.

Tham khảo chương trình sau:

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

0,25

 

 

 

 

 

 

0,25

 

 

 

 

 

 

 

 

0,5

Phòng Giáo dục và Đào tạo ...

Đề thi Học kì 2 - Cánh diều

Năm học 2023

Môn: Tin học lớp 10

Thời gian làm bài: 45 phút

(không kể thời gian phát đề)

(Đề số 4)

I. PHẦN TRẮC NGHIỆM (7,0 điểm)

Câu 1. Cho đoạn lệnh sau:

x=20

if x%2==0:

   x=x+10

else:

   x=x-10;

Sau khi thực hiện đoạn chương trình x nhận giá trị bao nhiêu?

A. 10

B. 20

C. 30

D. 40

Câu 2. Câu lệnh if trong chương trình Python có dạng:

A. if <điều kiện>

        <câu lệnh hay nhóm câu lệnh>

B. if <điều kiện>:

       <câu lệnh hay nhóm câu lệnh>

C. <điều kiện>:

       <câu lệnh hay nhóm câu lệnh>

D. if <điều kiện>:

Câu 3. Hàm range(101, 1, -1) sẽ tạo ra:

A. một dãy số từ 101 về 1

B. một dãy số từ 100 về -1

C. một dãy số từ 100 về 2

D. một dãy số từ 101 về 2

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

for i in range(3, 10):

       print(i)

A. in ra màn hình các số từ 3 đến 10

B. in ra màn hình các số từ 1 đến 10

C. in ra màn hình các số từ 0 đến 10

D. in ra màn hình các số từ 3 đến 9

Câu 5. Đoạn chương trình sau thực hiện công việc gì?

t=0

 for i in range(1,m):

   if (i %3 ==0) and (i %5 ==0):

       t= t + i

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

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

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

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

Câu 6. Câu lệnh sau cho kết quả là gì?

for i in range(10):

        if i%2==1: print(i,end='' '')

A. 0 2 4 6 8

B. 1 3 5 7 9

C. 2 4 6 8

D. 2 4 6 8 10

Câu 7. Trong những câu sau, những câu nào đúng?

Vị trí có thể viết hàm trong chương trình là:

1) Viết ở đầu chương trình.

2) Viết bên trong một hàm khác.

3) Viết ở cuối chương trình.

4) Viết sau lời gọi tới nó trong chương trình chính.

5) Viết sau hàm có chứa lời gọi tới nó.

6) Viết trong chương trình chính, trước khi có lời gọi tới nó.

A. 1, 2, 3, 4

B. 2, 3, 4

C. 1, 2, 5, 6

D. 3, 4, 5, 6

 Câu 8. Hàm gcd(x,y) trả về:

A. Bội chung nhỏ nhất của x và y.

B. Căn bậc hai của x và y.

C. Ước chung lớn nhất của x và y.

D. Trị tuyệt đối của x và y.

Câu 9. Thư viện math cung cấp:

A. Thủ tục vào ra của chương trình.

B. Hỗ trợ việc tạo ra các lựa chọn ngẫu nhiên

C. Các hằng và hàm toán học.

D. Hỗ trợ trực tiếp các định dạng nén và lưu trữ dữ liệu

Câu 10. Các lệnh mô tả hàm phải viết:

A. Thẳng hàng với lệnh def.

B. Lùi vào theo quy định của Python.

C. Ngay sau dấu hai chấm (:) và không xuống dòng.

D. Viết thành khối và không được lùi vào.

Câu 11. Xâu rỗng là xâu:

A. có duy nhất một phần tử.

B. không có phần tử nào.

C. có độ dài vô hạn.

D. viết theo chiều thuận và chiều ngược giống nhau.

Câu 12. Cách nào không dùng để biểu diễn xâu kí tự?

A. Đặt xâu trong cặp dấu nháy đơn.

B. Đặt xâu trong cặp dấu nháy kép.

C. Đặt xâu trong ba cặp dấu nháy kép.

D. Ghi như bình thường không có gì đặc biệt.

Câu 13. Cho đoạn code sau:

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

Kết quả của đoạn lệnh trên là gì?

A. 1

B. 2

C. 3

D. yes

Câu 14. Để thay thế từ hoặc cụm từ bằng từ hoặc cụm từ khác, ta sử dụng hàm nào?

A. find()

B. len()

C. replace

D. remove()

Câu 15. Để biết kích thước của danh sách ta dùng hàm:

A. type()

B. len()

C. sort()

D. pop()

Câu 16. Cho mảng a=[0,2,4,6]. Phần tử a[1]=?

A. 0

B. 2

C. 4

D. 6

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

a=[1,2,3]

a.pop(2)

print(a)

Sau khi thực hiện đoạn chương trình trên thì danh sách a có các phần tử:

A. a=[1,2]

B. a=[2,3]

C. a=[1,3]

D. a=[2]

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

a=[1, 2, 3]

a.insert(0, 2)

print(a)

Sau khi thực hiện đoạn chương trình trên thì danh sách a có các phần tử:

A. a=[1, 2, 0, 3]

B. a=[1, 0, 2, 3]

C. a=[2, 1, 2, 3]

D. a=[1, 2, 2, 3]

Câu 19. Hãy chọn báo lỗi đúng, sau khi thực hiện câu lệnh sau:

int(‘abc’)

A. TypeEror

B. NameError

C. ValueError

D. IndexError

Câu 20. Khi thực hiện tìm lỗi trong chương trình và kiểm thử, dữ liệu kiểm thử chia thành mấy nhóm?

A. 1

B. 2

C. 3

D. 4

Câu 21. Để gỡ lỗi, thực hiện thao tác nào sau đây:

A. Debug > Debugger

B. Edit > Debugger

C. Option > Debugger

D. Shell > Debugger

Câu 22. Khẳng định nào sau đây là sai?

A. Lỗi ngữ nghĩa là lỗi khó phát hiện nhất.

B. Ngôn ngữ lập trình Python cung cấp công cụ Debug để gỡ lỗi .

C. Lỗi ngoại lệ là lỗi xảy ra khi chương trình đang chạy, một lệnh nào đó không thể thực hiện. Lỗi này sẽ được hiển thị ngay trên màn hình.

D. Truy vết để tìm lỗi là một quá trình vô cùng đơn giản, không tốn thời gian.

Câu 23. Có mấy loại chương trình dịch?

A. 1

B. 2

C. 3

D. 4

Câu 24. Bước viết chương trình là:

A. Lựa chọn cách tổ chức dữ liệu và sử dụng ngôn ngữ lập trình để điễn đạt đúng thuật toán.

B. Xác định những giá trị đã cho và mối quan hệ giữa chúng.

C. Tìm thuật toán dựa trên bước xác định bài toán, dựa trên mối quan hệ giữa các đại lượng đã cho với những giá trị cần tìm, đồng thời xác định cách tổ chức dữ liệu có thể sử dụng tương ứng với thuật toán đó.

D. Dùng các bộ dữ liệu khác nhau để kiểm thử và hiệu chỉnh chương trình.

Câu 25. Khẳng định nào sau đây là sai?

A. Lập trình viên có cơ hội làm việc ở các vị trí trong các cấp chính quyền, cấp bộ ngành, chính phủ.

B. Các hệ thống ngân hàng, tài chính hay tư nhân đều phải sử dụng hệ thống phần mềm phức tạp, có tính nghiệp vụ cao. Từ đó, mở ra nhiều cơ hội lớn cho những người thiết kế và lập trình.

C. Thế giới công nghệ thay đổi từng giây, từng phút, từng giờ. Những kiến thức được học sẽ nhanh bị cũ, vì vậy phải học tập không ngừng.

D. Những nghề thuộc nhóm thiết kế và lập trình chỉ có thể làm ở cơ quan tư nhân.

Câu 26. Công đoạn thiết kế phần mềm là:

A. Phân tích nhu cầu của cộng đồng cần phục vụ, xác định vai trò của phần mềm, xác định thông tin đầu vào, đầu ra của hệ thống phần mềm cần xây dựng.

B. Chuyển những mô tả ở bản thiết kế thành các lệnh thực hiện được trên máy tính để máy tính “hiểu” và “thực hiện” đúng theo thiết kế.

C. Chuyển các yêu cầu về phần mềm thành bản thiết kế phần mềm.

D. Thực hiện các bước thử nghiệm sản phẩm xem có khiếm khuyết gì không để khắc phục kịp thời trước khi phần mềm đến tay người sử dụng.

Câu 27. Những kiến thức nào ở bậc học phổ thông có ích nhất nếu sau này em muốn làm việc trong lĩnh vực phát triển phần mềm?

A. Toán, Văn, Anh

B. Toán, Tin, Anh

C. Anh, Toán, Mỹ thuật

D. Văn, Mỹ thuật, Anh

Câu 28. Đâu không phải là sản phẩm của nghề lập trình web, trò chơi, thiết bị di động?

A. Mẫu áo dài

B. Giao diện trang bán hàng trực tuyến

C. Nhân vật trong trò chơi trực tuyến    

D. Ứng dụng sổ sức khỏe điện tử

II. PHẦN TỰ LUẬN (3 điểm)

Câu 1. (1 điểm) Viết chương trình nhập vào từ bàn phím một danh sách các số nguyên, sau đó, thực hiện:

- Thay thế các phần tử âm bằng -1, phần tử dương bằng 1, giữ nguyên các phần tử giá trị 0.

- Đưa ra màn hình danh sách nhận được.

Câu 2. (1 điểm) Tại sao phải tạo nhiều bộ dữ liệu vào khác nhau để kiểm thử chương trình?

Câu 3. (1 điểm) Xét bài toán: Đội Trúc Xanh gồm 3 bạn An, Thuỳ và Minh đứng đầu trong cuộc thi về ca dao, tục ngữ Việt Nam. Cách trao giải của Ban tổ chức cũng khá độc đáo. Trên bàn bày một dãy n túi kẹo, trên túi kẹo thứ i có ghi số nguyên ai, là số lượng kẹo trong túi (ai ≥ 0). Đội thắng cuộc được phép chọn các túi kẹo có số lượng chia hết cho 3. Đội Trúc Xanh quyết định sẽ chọn hết tất cả các túi có kẹo và được phép lấy. Sau đó từ mỗi túi, mỗi người ăn một chiếc kẹo. Phần kẹo còn lại được tập trung và chia đều để mỗi bạn mang về cho em ở nhà. Hãy xác định, mỗi bạn đã ăn bao nhiêu cái kẹo và mang về nhà bao nhiêu cái.

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu.

Dữ liệu: Nhập vào từ thiết bị vào chuẩn:

- Dòng đầu tiên chứa số nguyên n (1n105).

- Dòng thứ hai chứa n số nguyên a1, a2, …, an (0ai104, i = 1, 2, …, n)

Kết quả: Đưa ra thiết bị ra chuẩn hai số nguyên là số lượng kẹo tương ứng với số kẹo mỗi bạn đã ăn và số kẹo mỗi bạn mang về, các số đưa ra trên cùng một dòng.

Ví dụ:

Input

Output

9

25 16 11 12 14 0 8 30 21

3

18

……………………. Hết …………………….

ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM ĐỀ SỐ 4

I. Trắc nghiệm (7 điểm)

- Mỗi câu đúng tương ứng với 0,25 điểm.

1. C

2. B

3. C

4. D

5. B

6. B

7. C

8. C

9. C

10. B

11. B

12. D

13. A

14. C

15. B

16. B

 17. A

18. C

19. C

20. C

21. A

22. D

23. B

24. A

25. D

26. C

27. B

28. A

 

 

II. Tự luận (3 điểm)

Câu

Đáp án

Điểm

Câu 1

(1 điểm)

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

1,0

Câu 2

(1 điểm)

Các lỗi ngữ nghĩa thì khó phát hiện hơn, chỉ có thể đoán nhận và tìm thấy thông qua quan sát kết quả thực hiện chương trình với các bộ dữ liệu khác nhau.

1,0

Câu 3

(1 điểm)

Tóm tắt bài toán (Mô hình toán học)

Cho:

- Số nguyên n, (1 n105) và n số nguyên a1, a2, .., an (0 ≤ ai  ≤104, i = 1, 2, .., n).

Yêu cầu:

- Xác định k là số lượng ai lớn hơn 0 và chia hết cho 3.

- Tính tổng (ai – 3)/3 với các ai tìm được.

Thuật toán và cách tổ chức dữ liệu

- Bước 1. Nhập dữ liệu vào (dùng kiểu danh sách cho dãy n số nguyên).

- Bước 2. Chuẩn bị tích luỹ số lượng và tổng: k = 0, s = 0.

- Bước 3. Duyệt với mọi i: Nếu ai > 0 và ai chia hết cho 3 thì tăng k và tích luỹ ai vào s.

- Bước 4. Đưa ra k và (s - 3k)/3.

Tham khảo chương trình sau:

Đề thi Học kì 2 Tin học 10 Cánh diều có đáp án (4 đề)

0,25

 

 

 

 

 

 

0,25

 

 

 

 

 

 

 

 

0,5

Xem thêm các bài giải sách bài tập Tin học 10 hay khác: