15 câu Trắc nghiệm Tin học 11 Cánh diều Bài 4: Làm mịn dần từng bước từ thuật toán đến chương trình máy tính có đáp án
15 câu hỏi
PHẦN I. Câu trắc nghiệm nhiều phương án lựa chọn. Thí sinh trả lời từ câu 1 đến câu 10. Mỗi câu hỏi thí sinh chỉ lựa chọn một phương án.
Mã giả là gì?
Một ngôn ngữ lập trình để viết chương trình chi tiết
Một cách để mô tả thuật toán độc lập với ngôn ngữ lập trình
Một dạng mã lệnh thực thi trực tiếp trên máy tính
Một phương pháp chỉ có trong ngôn ngữ lập trình Python
Đáp án: B
Giải thích: Mã giả là cách mô tả thuật toán bằng văn bản gần giống với mã lệnh, nhưng không phụ thuộc vào ngôn ngữ lập trình cụ thể.
Mục đích chính của việc sử dụng mã giả là gì?
Giúp lập trình viên kiểm tra lỗi trong thuật toán
Tạo ra chương trình máy tính ngay lập tức
Mô tả thuật toán dễ hiểu và độc lập với ngôn ngữ lập trình
Tạo cấu trúc vòng lặp cho chương trình
Đáp án: C
Giải thích: Mã giả giúp mô tả thuật toán một cách rõ ràng và dễ hiểu, không phụ thuộc vào ngôn ngữ lập trình cụ thể.
Quy ước nào dưới đây thường được sử dụng khi viết mã giả?
Dùng từ khóa của ngôn ngữ lập trình C++
Sử dụng cú pháp chính thức của Python
Dùng cấu trúc lặp và rẽ nhánh dễ hiểu
Sử dụng ký hiệu ASCII cho mọi phép toán
Đáp án: C
Giải thích: Mã giả thường mô phỏng các cấu trúc điều khiển của ngôn ngữ lập trình bậc cao như rẽ nhánh và lặp, giúp người đọc dễ hiểu.
Trong mã giả, biểu tượng nào thường được dùng cho phép gán giá trị?
Dấu "="
Dấu mũi tên "<-"
Dấu ">"
Dấu ":"
Đáp án: B
Giải thích: Trong mã giả, dấu mũi tên "<-" thường được dùng để biểu thị phép gán giá trị.
Mã giả có ưu điểm gì so với các ngôn ngữ lập trình cụ thể?
Cho phép chạy chương trình ngay lập tức
Có thể hiểu được dễ dàng bởi người đọc không biết lập trình
Được hỗ trợ bởi tất cả các môi trường lập trình
Độc lập với ngôn ngữ lập trình cụ thể
Đáp án: D
Giải thích: Mã giả không phụ thuộc vào ngôn ngữ lập trình nào, giúp mô tả thuật toán một cách linh hoạt
Trong mã giả, khi mô tả cấu trúc lặp biết trước số lần, thường dùng câu lệnh nào?
while
if
for
until
Đáp án: C
Giải thích: Cấu trúc lặp với số lần biết trước thường được mô tả bằng câu lệnh "for" trong mã giả
Khi mô tả thuật toán kiểm tra số nguyên tố, tại sao chúng ta chỉ cần kiểm tra các số chia từ 2 đến √n?
Vì kiểm tra từ 2 đến √n là đủ để xác định tính nguyên tố
Vì kiểm tra từ 2 đến √n nhanh hơn kiểm tra toàn bộ các số
Vì các số lớn hơn √n không ảnh hưởng đến kết quả
Tất cả các đáp án trên đều đúng
Đáp án: D
Giải thích: Các số lớn hơn √n không cần kiểm tra vì nếu n chia hết cho một số lớn hơn √n thì đã có một số nhỏ hơn √n cũng chia hết.
Trong mã giả, khi mô tả một thuật toán kiểm tra số nguyên tố, bước nào sau đây là hợp lý?
Kiểm tra nếu n là số chẵn, n > 2, thì n không là số nguyên tố
Kiểm tra nếu n chia hết cho 3, thì n không là số nguyên tố
Chỉ kiểm tra các số nhỏ hơn n
Không cần kiểm tra n vì đã biết nó là số nguyên tố
Đáp án: A
Giải thích: Nếu n là số chẵn và lớn hơn 2, thì n không phải là số nguyên tố, vì số nguyên tố chỉ chia hết cho 1 và chính nó.
Thuật toán sàng Eratosthenes được dùng để làm gì?
Sàng lọc các số chẵn trong dãy
Tìm tất cả các số nguyên tố nhỏ hơn một số đã cho
Kiểm tra một số có phải là hợp số không
Sắp xếp các số từ nhỏ đến lớn
Đáp án: B
Giải thích: Thuật toán sàng Eratosthenes được sử dụng để tìm các số nguyên tố nhỏ hơn hoặc bằng một số cho trước.
Trong thuật toán sàng Eratosthenes, điều gì xảy ra với các số là bội của số nguyên tố?
Các số đó sẽ được đánh dấu là số nguyên tố
Các số đó sẽ được đánh dấu là hợp số
Các số đó sẽ bị xóa khỏi dãy số
Các số đó sẽ được sắp xếp lại trong dãy
Đáp án: B
Giải thích: Trong thuật toán sàng Eratosthenes, các số là bội của một số nguyên tố sẽ được đánh dấu là hợp số, vì chúng không phải là số nguyên tố.
PHẦN II. Câu trắc nghiệm đúng sai. Thí sinh trả lời từ câu 1 đến câu 2. Trong mỗi ý a), b), c), d) ở mỗi câu, thí sinh chọn đúng hoặc sai
Đâu là lợi ích chính của việc sử dụng mã giả trong quá trình phát triển thuật toán?
a) Giảm thiểu lỗi lập trình bằng cách kiểm tra cú pháp trong ngôn ngữ lập trình cụ thể.
b) Đảm bảo tính chính xác của thuật toán và dễ dàng chuyển đổi sang mã lệnh chương trình.
c) Được sử dụng làm tài liệu hướng dẫn chi tiết cho người dùng cuối.
d) Giúp tối ưu hóa mã lệnh để đạt hiệu suất cao nhất trong chương trình.
a) Sai. Mã giả không kiểm tra cú pháp vì nó độc lập với ngôn ngữ lập trình cụ thể. Mục đích của mã giả là mô tả ý tưởng, không phải để phát hiện lỗi cú pháp.
b) Đúng. Mã giả giúp mô tả thuật toán rõ ràng và dễ hiểu, đảm bảo tính chính xác và cho phép dễ dàng chuyển đổi sang mã lệnh chi tiết trong chương trình.
c) Sai. Mã giả thường không phải là tài liệu cho người dùng cuối; nó dành cho người lập trình hoặc kỹ sư để mô tả logic của thuật toán.
d) Sai. Mã giả không tập trung vào tối ưu hóa hiệu suất, mà chủ yếu là để mô tả thuật toán một cách dễ hiểu và chính xác.
Trong quá trình làm mịn dần các bước của thuật toán, tại sao lại cần chuyển từ mô tả bằng ngôn ngữ tự nhiên sang mã giả?
a) Vì ngôn ngữ tự nhiên quá ngắn gọn và dễ gây hiểu nhầm cho người đọc.
b) Vì mã giả giúp trình bày thuật toán một cách chi tiết và tiến gần hơn đến các câu lệnh của ngôn ngữ lập trình.
c) Vì mã giả sẽ loại bỏ hoàn toàn các ký hiệu và cú pháp của ngôn ngữ tự nhiên.
d) Vì mã giả phải tuân theo cú pháp chính thức của Python hoặc ngôn ngữ lập trình bậc cao.
a) Sai. Ngôn ngữ tự nhiên thường không ngắn gọn, nhưng nó có thể gây hiểu nhầm do cách diễn đạt không rõ ràng, không phải vì ngắn gọn.
b) Đúng. Mã giả giúp mô tả thuật toán một cách chi tiết, tiến gần hơn đến các câu lệnh của ngôn ngữ lập trình và giúp người đọc hiểu rõ từng bước thực hiện của thuật toán.
c) Sai. Mã giả vẫn có thể bao gồm các ký hiệu và cú pháp gợi nhớ từ ngôn ngữ tự nhiên hoặc toán học, chỉ cần dễ hiểu và không phụ thuộc vào ngôn ngữ lập trình.
d) Sai. Mã giả không cần tuân theo cú pháp chính thức của một ngôn ngữ lập trình cụ thể, nó chỉ mô phỏng các câu lệnh của ngôn ngữ lập trình để dễ dàng chuyển đổi thành chương trình chi tiết.
PHẦN III. Câu trả lời ngắn. Thí sinh trả lời từ câu 1 đến câu 3
Mã giả có điểm gì đặc biệt so với các ngôn ngữ lập trình khác?
Đáp án:Mã giả là một cách mô tả thuật toán độc lập với ngôn ngữ lập trình cụ thể nào.
Giải thích:Sự độc lập này cho phép các lập trình viên có thể dễ dàng chia sẻ và hiểu các thuật toán mà không bị ràng buộc vào cú pháp của một ngôn ngữ lập trình nhất định. Mã giả cũng giúp làm rõ ý tưởng chính của thuật toán mà không làm rối bởi các chi tiết kỹ thuật.
Tại sao việc "làm mịn dần" các bước mô tả thuật toán là cần thiết trong quá trình lập trình?
Đáp án:Việc làm mịn dần giúp chuyển đổi các mô tả bằng ngôn ngữ tự nhiên thành mã giả và sau đó là mã lệnh thực thi trong ngôn ngữ lập trình.
Giải thích:Quá trình này không chỉ giúp tăng tính chính xác mà còn đảm bảo rằng các bước thực hiện là rõ ràng và có thể được lập trình viên chuyển đổi thành các câu lệnh cụ thể một cách hiệu quả hơn. Điều này là cần thiết để tránh nhầm lẫn và lỗi khi triển khai thuật toán.
Thuật toán sàng Eratosthenes có ưu điểm gì khi tìm các số nguyên tố?
Đáp án:Thuật toán này hiệu quả hơn vì nó sử dụng phương pháp loại bỏ các bội số của các số nguyên tố để tìm các số nguyên tố nhỏ hơn hay bằng một số n cho trước.
Giải thích:Bằng cách đánh dấu các số không phải là số nguyên tố (hợp số) một cách hệ thống, thuật toán giảm thiểu số lượng phép kiểm tra cần thiết, từ đó tiết kiệm thời gian và tài nguyên so với các phương pháp kiểm tra từng số riêng lẻ.

