wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Kiểm thử chương trình

Total questions: 106

Worksheet time: 35mins

Name
Class
Date
1.

Phương pháp kiểm thử nào dưới đây có thể giúp tăng độ tin cậy của chương trình nhưng không chứng minh được tính đúng của thuật toán?

a)

Kiểm thử bằng chứng minh lôgic toán học

b)

Sử dụng các bộ dữ liệu kiểm thử

c)

Sử dụng phương pháp quy nạp toán học

d)

Xem xét thời gian chạy của chương trình

2.

Phương pháp nào sau đây thường được sử dụng để chứng minh tính đúng của thuật toán một cách chắc chắn?

a)

Kiểm thử bằng cách chạy nhiều lần

b)

Dùng dữ liệu kiểm thử ngẫu nhiên

c)

Chứng minh bằng lôgic toán học

d)

Kiểm tra độ phức tạp tính toán

3.

Mục đích chính của việc kiểm thử chương trình là gì?

a)

Đảm bảo chương trình chạy nhanh nhất có thể

b)

Phát hiện lỗi và sửa lỗi để tăng độ tin cậy của chương trình

c)

Chứng minh chương trình không bao giờ sai

d)

Đánh giá khả năng tối ưu của thuật toán

4.

Trong kiểm thử chương trình, tại sao không thể chỉ dựa vào các bộ dữ liệu kiểm thử để chứng minh tính đúng của thuật toán?

a)

Vì các bộ dữ liệu kiểm thử thường có sai sót

b)

Vì kiểm thử không kiểm tra được tất cả các tình huống có thể xảy ra

c)

Vì thuật toán luôn có khả năng chạy sai

d)

Vì kiểm thử chỉ làm tăng thời gian chạy của chương trình

5.

Tiêu chí nào dưới đây thường được xem xét khi đánh giá hiệu quả của một thuật toán?

a)

Tính đơn giản và dễ hiểu

b)

Thời gian và không gian bộ nhớ sử dụng

c)

Khả năng phát hiện lỗi tự động

d)

Độ dài của mã lệnh

6.

Một chương trình có thể tối ưu về mặt thời gian nhưng không tối ưu về mặt nào dưới đây?

a)

Tính đúng của thuật toán

b)

Dung lượng bộ nhớ sử dụng

c)

Khả năng kiểm thử

d)

Độ phức tạp logic

7.

Trong kiểm thử chương trình, tại sao nên sử dụng các bộ dữ liệu có tính đa dạng cao?

a)

Để kiểm tra độ nhanh chậm của thuật toán

b)

Để tăng khả năng phát hiện lỗi trong các trường hợp khác nhau

c)

Để giúp chương trình dễ hiểu hơn

d)

Để giảm thời gian chạy chương trình

8.

Độ phức tạp tính toán

4 lines
9.

Độ phức tạp tính toán của một thuật toán chủ yếu đánh giá điều gì?

a)

Tính đơn giản của thuật toán

b)

Tài nguyên phần cứng cần thiết để chạy chương trình

c)

Tốc độ thực thi và bộ nhớ cần thiết cho chương trình

d)

Khả năng kiểm tra lỗi của chương trình

10.

Trong các lựa chọn sau, đâu là lợi ích của việc sử dụng các bộ dữ liệu kiểm thử?

a)

Chứng minh thuật toán chạy đúng cho mọi trường hợp

b)

Tăng độ tin cậy của chương trình

c)

Giảm thời gian cần để viết mã

d)

Đảm bảo bộ nhớ sử dụng tối thiểu

11.

Phương pháp quy nạp toán học thường được sử dụng để làm gì trong kiểm thử chương trình?

a)

Để tìm và sửa lỗi trong mã lệnh

b)

Để chứng minh tính đúng của thuật toán

c)

Để đo độ phức tạp của chương trình

d)

Để đánh giá dung lượng bộ nhớ sử dụng

12.

Phương pháp nào sau đây không phải là phương pháp kiểm thử chương trình?

a)

Chạy chương trình theo từng lệnh để tìm lỗi.

b)

In dữ liệu trung gian để kiểm tra giá trị.

c)

Tự động xóa lỗi trong mã nguồn.

d)

Tạo các bộ dữ liệu kiểm thử.

13.

Phương pháp bất biến vòng lặp có tác dụng gì trong kiểm chứng thuật toán?

a)

Giúp phát hiện và loại bỏ lỗi trong chương trình.

b)

Giúp đánh giá độ phức tạp của thuật toán.

c)

Giúp chứng minh thuật toán đúng bằng lập luận toán học.

d)

Giúp tăng tốc quá trình kiểm thử chương trình.

14.

Khi một chương trình được kiểm thử với 10 bộ dữ liệu và có 9 lần cho kết quả đúng, ta có thể kết luận gì?

a)

Chương trình chỉ sai với dữ liệu đầu vào nhất định.

b)

Chương trình hoàn toàn đúng.

c)

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

d)

Chương trình có thể vẫn còn lỗi.

15.

Nếu cần kiểm thử chương trình tính tổng các số chẵn trong một danh sách, bộ dữ liệu nào dưới đây giúp kiểm thử hiệu quả nhất?

a)

[1, 3, 5, 7]

b)

[2,4,6.8]

c)

[2,3,4,5,6]

d)

[]

16.

Nếu cần kiểm thử chương trình tính tổng các số chẵn trong một danh sách, bộ dữ liệu nào dưới đây giúp kiểm thử hiệu quả nhất?

a)

[1, 3, 5, 7]

b)

[2, 4, 6, 8]

c)

[2, 3, 4, 5, 6]

d)

[0]

17.

Tại sao kiểm thử chương trình không thể chứng minh chương trình đúng hoàn toàn?

a)

Do không có cách nào loại bỏ hết lỗi trong chương trình.

b)

Do kiểm thử không thay thế được việc chứng minh toán học.

c)

Do kiểm thử chỉ giúp giảm lỗi chứ không đảm bảo tính đúng.

d)

Do không thể kiểm thử với mọi bộ dữ liệu đầu vào.

18.

Kiểm thử chương trình có vai trò gì?

a)

Giúp tìm ra lỗi và tăng độ tin cậy của chương trình.

b)

Xóa bỏ các đoạn mã thừa trong chương trình.

c)

Giúp chương trình chạy nhanh hơn.

d)

Chứng minh chương trình hoàn toàn đúng.

19.

Khi đánh giá hiệu quả của thuật toán, tiêu chí nào quan trọng nhất?

a)

Độ dài mã nguồn.

b)

Độ phức tạp không gian.

c)

Mức độ dễ hiểu của chương trình.

d)

Độ phức tạp thời gian.

20.

Trong kiểm thử chương trình, việc thiết lập điểm dừng (breakpoint) có mục đích gì?

a)

Dừng chương trình ngay khi gặp lỗi.

b)

Giúp theo dõi giá trị biến tại từng bước thực thi.

c)

Tăng tốc độ thực thi chương trình.

d)

Tự động sửa lỗi.

21.

Câu lệnh nào trong Python giúp đo thời gian thực thi chương trình?

a)

import perf_counter; perf_counter()

b)

import clock; clock.start(); clock.stop(); print(clock.time())

c)

from datetime import now; print(now())

d)

import time; start = time.time(); end = time.time(); print(end - start)

22.

Một thuật toán được coi là đúng khi nào?

a)

Khi thời gian chạy của thuật toán nhanh hơn các thuật toán khác.

b)

Khi kiểm thử với nhiều bộ dữ liệu khác nhau đều cho kết quả đúng.

c)

Khi được chứng minh bằng lập luận toán học.

d)

Khi chương trình chạy không có lỗi.

23.

Mục đích chính của việc sử dụng các bộ dữ liệu kiểm thử là gì?

4 lines
24.

Mục đích chính của việc sử dụng các bộ dữ liệu kiểm thử là gì?

a)

Chứng minh tính đúng đắn tuyệt đối của chương trình.

b)

Kiểm tra độ tin cậy của chương trình bằng cách phát hiện lỗi có thể có.

c)

Đánh giá tốc độ thực thi của chương trình.

d)

Đảm bảo chương trình tiết kiệm bộ nhớ tối đa.

25.

Tiêu chí nào dưới đây là quan trọng nhất khi đánh giá hiệu quả của một thuật toán?

a)

Thời gian chạy nhanh hơn các thuật toán khác cùng giải bài toán.

b)

Sử dụng bộ nhớ ít nhất có thể.

c)

Chương trình phải rõ ràng, dễ hiểu và dễ áp dụng.

d)

Phải chứng minh được tính đúng đắn tuyệt đối của thuật toán.

26.

Hãy đánh giá tính đúng hoặc sai của các phát biểu sau:

a)

Kiểm thử bằng nhiều bộ dữ liệu giúp tăng khả năng phát hiện lỗi.

b)

Nếu một chương trình chạy đúng với tất cả bộ dữ liệu kiểm thử thì nó chắc chắn đúng.

c)

Kiểm thử giúp loại bỏ hoàn toàn lỗi trong chương trình.

d)

Kiểm thử giúp tăng độ tin cậy của chương trình.

27.

Hãy đánh giá tính đúng hoặc sai của các phát biểu sau:

a)

Một chương trình đơn giản nhưng có độ phức tạp cao vẫn được coi là hiệu quả.

b)

Độ phức tạp không gian chỉ quan trọng với những bài toán lớn.

c)

Độ phức tạp thời gian quan trọng hơn độ phức tạp không gian trong hầu hết các bài toán.

28.

Độ phức tạp thời gian của phép nhân hai số nguyên có n chữ số, như trong ví dụ của Karatsuba, là bao nhiêu?

a)

O(n)

b)

O(nlogn)

c)

O(n2)

d)

O(n1.585)

29.

Trong chương trình 1 ở Hình 24.2, tổng số đơn vị thời gian để thực hiện toàn bộ chương trình là bao nhiêu?

a)

n+3

b)

n2+2n2 + 2n2+2

c)

2n+3

d)

n3+3n2 + 3n2+3

30.

Trong chương trình 2 ở Hình 24.2, độ phức tạp thời gian của vòng lặp lồng nhau là gì?

a)

O(n)

b)

O(logn)

c)

O(n2)

d)

O(1)

31.

Ký hiệu O(n) trong phân tích độ phức tạp thời gian biểu thị điều gì?

a)

Chương trình có độ phức tạp tuyến tính

b)

Chương trình có độ phức tạp bình phương

c)

Chương trình có độ phức tạp mũ

d)

Chương trình có độ phức tạp hàng số

32.

Quy tắc cộng trong tính độ phức tạp thời gian của thuật toán được áp dụng trong trường hợp nào?

a)

Khi có vòng lặp lồng nhau

b)

Khi thực hiện hai chương trình nối tiếp nhau

c)

Khi thực hiện phép toán nhân

d)

Khi thực hiện phép toán chia

33.

Nếu chương trình có độ phức tạp thời gian T(n)=n2+3n+1 độ phức tạp thời gian của nó là gì?

a)

O(n2)

b)

O(n)

c)

O(logn)

d)

O(n3)

34.

Độ phức tạp thời gian của thuật toán sắp xếp chọn là bao nhiêu?

a)

O(n)

b)

O(logn)

c)

O(n2)

d)

O(nlogn)

35.

Trong trường hợp nào độ phức tạp thời gian của chương trình là O(1)?

a)

Khi chương trình có vòng lặp lồng nhau

b)

Khi chương trình chỉ có các phép toán đơn và không phụ thuộc vào n

c)

Khi chương trình có độ phức tạp tuyến tính

d)

Khi chương trình có độ phức tạp lũy thừa

36.

Ký hiệu O(logn) được dùng khi độ phức tạp thời gian của thuật toán là gì?

a)

Tuyến tính

b)

Logarit

c)

Đa thức

d)

37.

Ký hiệu O(logn) được dùng khi độ phức tạp thời gian của thuật toán là gì?

a)

Tuyến tính

b)

Logarit

c)

Đa thức

d)

38.

Để tính độ phức tạp thời gian của chương trình với các phép toán lồng nhau, ta áp dụng quy tắc nào?

a)

Quy tắc cộng

b)

Quy tắc nhân

c)

Quy tắc chia

d)

Quy tắc cộng và chia

39.

Độ phức tạp thời gian của thuật toán là gì?

a)

Dung lượng bộ nhớ chương trình sử dụng.

b)

Số phép toán cần thực hiện theo kích thước đầu vào.

c)

Thời gian thực thi chương trình trên máy tính.

d)

Số lần chạy chương trình trên máy tính.

40.

Trong chương trình có vòng lặp lồng nhau, cách xác định độ phức tạp thời gian như thế nào?

a)

Đếm tất cả các câu lệnh được thực hiện.

b)

Đo thời gian thực thi của chương trình.

c)

Cộng tổng số vòng lặp trong chương trình.

d)

Nhân số lần lặp của các vòng lặp với nhau.

41.

Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân là bao nhiêu?

a)

O(n)

b)

O(log n)

c)

O(1)

d)

O(n²)

42.

Nếu một thuật toán có độ phức tạp thời gian O(n²), điều này có nghĩa là gì?

a)

Thời gian thực thi không phụ thuộc vào n.

b)

Thời gian thực thi tăng theo bình phương của n.

c)

Thời gian thực thi giảm khi n tăng.

d)

Thời gian thực thi tăng gấp đôi khi n tăng gấp đôi.

43.

Kí hiệu O-lớn (Big-O) dùng để làm gì?

a)

Đánh giá độ phức tạp thuật toán khi dữ liệu tăng.

b)

Đo lường tốc độ thực thi của bộ xử lý.

c)

Xác định tần suất chương trình gặp lỗi.

d)

Đánh giá mức tiêu thụ năng lượng hệ thống.

44.

Thuật toán nào sau đây có độ phức tạp thời gian O(n log n)?

a)

Sắp xếp chọn.

b)

Sắp xếp nổi bọt.

c)

Tìm kiếm tuyến tính.

d)

Sắp xếp nhanh.

45.

Chương trình sau có độ phức tạp thời gian là bao nhiêu? for i in range(n): for j in range(n): print(i, j)

a)

O(log n)

b)

O(1)

c)

O(n²)

d)

O(n)

46.

Khi đánh giá độ phức tạp thời gian thuật toán, phép toán nào được coi là phép toán tích cực?

(a)  

47.

Khi đánh giá độ phức tạp thời gian thuật toán, phép toán nào được coi là phép toán tích cực?

a)

Phép toán có độ phức tạp cao nhất.

b)

Phép toán có kết quả lớn nhất.

c)

Phép toán được thực hiện nhiều nhất trong thuật toán.

d)

Phép toán xuất hiện ở dòng đầu tiên của chương trình.

48.

Trong các chương trình sau, chương trình nào có độ phức tạp thấp nhất?

a)

Chương trình với vòng lặp O(n).

b)

Chương trình với vòng lặp O(n²).

c)

Chương trình với vòng lặp O(n log n).

d)

Chương trình với vòng lặp O(log n).

49.

Tại sao độ phức tạp O(1) được coi là tối ưu?

a)

Vì nó giúp giảm đáng kể lượng bộ nhớ dùng.

b)

Vì nó có thể giải quyết mọi bài toán dễ dàng.

c)

Vì nó luôn có tốc độ cao hơn O(log n).

d)

Vì thời gian chạy không đổi dù dữ liệu tăng.

50.

Độ phức tạp thời gian của chương trình 1 trong Hình 24.2, với tổng thời gian tính toán là T1​(n)=n+3, được đánh giá là:

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n²)

51.

Độ phức tạp thời gian của chương trình 2 trong Hình 24.2, với tổng thời gian tính toán là T2(n)=n2+3, được đánh giá là:

a)

O(n)

b)

O(n²)

c)

O(log n)

d)

O(1)

52.

Độ phức tạp thời gian của một thuật toán biểu thị lượng thời gian cần thiết để thuật toán hoàn thành công việc dựa trên kích thước đầu vào. Việc hiểu rõ và so sánh các mức độ phức tạp giúp lựa chọn thuật toán tối ưu hơn. Hãy đánh giá tính đúng hoặc sai của các phát biểu sau:

a)

Độ phức tạp O(n!) thường xuất hiện trong thuật toán quay lui (backtracking).

b)

Độ phức tạp O(n²) luôn tốt hơn O(n log n).

c)

Độ phức tạp O(1) luôn nhanh hơn O(log n).

d)

Khi đánh giá thuật toán, cần ưu tiên thuật toán có độ phức tạp thấp nhất.

53.

Trong thuật toán sắp xếp chèn, bước nào sau đây giúp tìm vị trí đúng để chèn phần tử A[i]?

a)

A. while A[j] < value: j = j + 1

b)

B. j = i - 1; while j >= 0 and A[j] > value: A[j+1] = A[j]; j = j - 1

c)

C. for j in range(i): A[j] = A[j+1]

d)

D. for j in range(i): if A[j] > A[i]: swap(A[j], A[i])

54.

Trong phương pháp làm mịn dần, mỗi bước thực hiện điều gì?

a)

A.Giảm số lượng dòng lệnh trong chương trình.

b)

B. Làm rõ ý tưởng và cụ thể hóa chương trình.

c)

C.Tự động tối ưu hóa các phần mã nguồn.

d)

D.Tăng tốc độ thực thi của thuật toán.

55.

Khi làm mịn thuật toán sắp xếp chèn, tại sao cần tạo biến value để lưu phần tử đang xét?

a)

A.Để tăng tốc độ thực thi của cả chương trình.

b)

B.Để giảm số lần so sánh các phần tử trong danh sách.

c)

C. Để di chuyển phần tử trong danh sách không mất dữ liệu.

d)

D.Để thay thế phần tử lớn nhất ở trong danh sách.

56.

Phương pháp làm mịn dần trong thiết kế chương trình là gì?

a)

A.Chia bài toán thành nhiều bước từ tổng quan đến chi tiết.

b)

B.Viết ngay toàn bộ chương trình.

c)

C.Kiểm thử chương trình trước khi viết mã.

d)

D.Tạo một chương trình đơn giản trước khi làm chi tiết hơn.

57.

Nếu thay thuật toán tìm vị trí chèn trong sắp xếp chèn bằng cách duyệt toàn bộ danh sách, điều gì sẽ xảy ra?

4 lines
58.

Nếu thay thuật toán tìm vị trí chèn trong sắp xếp chèn bằng cách duyệt toàn bộ danh sách, điều gì sẽ xảy ra?

a)

Thuật toán sẽ sai trong một số trường hợp.

b)

Thuật toán sẽ vẫn đúng nhưng có thể chậm hơn.

c)

Thuật toán sẽ nhanh hơn đáng kể.

d)

Thuật toán sẽ không thay đổi về tốc độ.

59.

Trong thuật toán sắp xếp chèn, bước đầu tiên trong quá trình làm mịn dần là gì?

a)

So sánh phần tử thứ hai và phần tử đầu.

b)

Phân chia danh sách thành hai phần riêng.

c)

Xây dựng ý tưởng chèn từng phần tử.

d)

Tìm phần tử nhỏ nhất từ đầu danh sách.

60.

Trong phương pháp làm mịn dần, tại sao cần thực hiện từng bước từ ý tưởng tổng quát đến chi tiết?

a)

Để dễ dàng kiểm soát và sửa lỗi.

b)

Để giảm số lượng biến sử dụng trong chương trình.

c)

Để tăng số lượng vòng lặp trong thuật toán.

d)

Để viết chương trình ngắn gọn hơn.

61.

Khi thiết kế thuật toán bằng phương pháp làm mịn dần, bước cuối cùng là gì?

a)

Vẽ sơ đồ khối biểu diễn thuật toán đó.

b)

Viết mã giả mô tả hoạt động thuật toán.

c)

Viết mã lệnh hoàn chỉnh cho chương trình.

d)

Chạy thử nghiệm chương trình trên máy tính.

62.

Tại sao phương pháp làm mịn dần giúp thiết kế chương trình hiệu quả hơn?

a)

Giảm bớt số dòng lệnh cần viết.

b)

Giúp chương trình chạy nhanh hơn.

c)

Giúp tổ chức chương trình rõ ràng và dễ hiểu hơn.

d)

Tránh được tất cả các lỗi trong chương trình.

63.

Trong bài toán đếm số cặp nghịch đảo của một dãy số, bước đầu tiên trong thiết kế chương trình là gì?

a)

Xây dựng vòng lặp kiểm tra từng cặp số.

b)

Xác định rõ điều kiện cặp số nghịch đảo.

c)

Khởi tạo biến đếm số cặp nghịch đảo.

d)

Xây dựng ý tưởng tổng quát đếm số cặp đó.

64.

Phương pháp làm mịn dần trong thiết kế chương trình là gì?

a)

Phương pháp làm giảm số lượng mã lệnh trong chương trình

b)

Phương pháp chi tiết hóa các bước từ ý tưởng tổng quan đến từng hành động cụ thể

65.

n dần trong thiết kế chương trình là gì?

a)

Phương pháp làm giảm số lượng mã lệnh trong chương trình

b)

Phương pháp chi tiết hóa các bước từ ý tưởng tổng quan đến từng hành động cụ thể

c)

Phương pháp kiểm tra lỗi sau khi viết xong chương trình

d)

Phương pháp tổ chức dữ liệu theo thứ tự tăng dần

66.

Khi thiết kế chương trình theo phương pháp làm mịn dần, bước đầu tiên cần thực hiện là gì?

a)

Xác định đầu vào và đầu ra của bài toán

b)

Viết toàn bộ chương trình

c)

Kiểm tra lỗi

d)

Thực hiện từng thao tác cụ thể

67.

Trong thuật toán sắp xếp chèn, tại bước đầu tiên của thiết kế, công việc nào được thực hiện?

a)

Tạo biến mới để lưu giá trị cần chèn

b)

Duyệt từ phần tử thứ hai đến phần tử cuối của dãy

c)

Sắp xếp các phần tử theo thứ tự giảm dần

d)

Tạo danh sách mới từ danh sách cũ

68.

Trong bước làm mịn "Chèn A[i] vào đúng vị trí", thao tác nào dưới đây là đúng?

a)

So sánh A[i] với tất cả phần tử trong dãy

b)

So sánh A[i] với các phần tử bên phải của nó

c)

Chuyển các phần tử lớn hơn A[i] sang phải

d)

Chèn A[i] vào vị trí đầu tiên của dãy

69.

Sau khi chèn một phần tử vào vị trí đúng trong dãy sắp xếp chèn, ta có thể khẳng định gì?

a)

Dãy đã hoàn toàn sắp xếp

b)

Các phần tử từ A[0] đến A[i] đã được sắp xếp

c)

Các phần tử từ A[i] đến A[n-1] đã được sắp xếp

d)

Chỉ phần tử A[i] được sắp xếp

70.

Trong chương trình đếm số cặp nghịch đảo, điều kiện kiểm tra nghịch đảo của cặp (i, j) là gì?

a)

A[i] < A[j]

b)

i > j

c)

A[i] > A[j] và i < j

d)

A[i] = A[j]

71.

Câu lệnh nào dùng để thiết lập biến value lưu trữ giá trị của A[i] trong sắp xếp chèn?

a)

value = A[i]

b)

value = A[j+1]

c)

A[i] = value

d)

A[j+1] = value

72.

Phương pháp làm mịn dần trong thiết kế chương trình giúp gì cho lập trình viên?

a)

Tăng tốc độ chạy chương trình

b)

Giảm dung lượng bộ nhớ chương trình

c)

Làm rõ từng bước của chương trình, dễ dàng chuyển ý tưởng thành c

73.

dần trong thiết kế chương trình giúp gì cho lập trình viên?

a)

Tăng tốc độ chạy chương trình

b)

Giảm dung lượng bộ nhớ chương trình

c)

Làm rõ từng bước của chương trình, dễ dàng chuyển ý tưởng thành câu lệnh

d)

Tự động phát hiện lỗi cú pháp

74.

Trong chương trình đếm số cặp nghịch đảo, tại sao vòng lặp thứ hai chỉ duyệt từ i + 1 đến n - 1?

a)

Để tiết kiệm thời gian và tránh lặp lại các cặp đã kiểm tra

b)

Vì chỉ số j phải lớn hơn chỉ số i

c)

Để kiểm tra mọi phần tử trong dãy

d)

Vì cặp (i, j) không quan trọng

75.

Sau khi hoàn thành phương pháp làm mịn dần, kết quả cuối cùng là:

a)

Một chương trình hoàn chỉnh với các bước chi tiết

b)

Một thuật toán tổng quan mà không có mã lệnh cụ thể

c)

Chỉ là một ý tưởng thiết kế ban đầu

d)

Một báo cáo về quá trình thiết kế

76.

Khi thiết kế chương trình theo phương pháp làm mịn dần, bước đầu tiên thường là:

a)

Viết mã hoàn chỉnh ngay từ đầu.

b)

Tìm hiểu yêu cầu bài toán, xác định đầu vào và đầu ra của bài toán.

c)

Chia bài toán thành các phần nhỏ và tiến hành làm mịn từng phần.

d)

Thực hiện từng bước chi tiết theo thứ tự mà không cần phân tích tổng thể.

77.

Trong phương pháp làm mịn dần, khi thiết kế thuật toán sắp xếp chèn, bước nào sau đây là đúng?

a)

Đầu tiên, chèn phần tử A[i] vào đúng vị trí rồi mới tiến hành duyệt các phần tử còn lại.

b)

Tạo biến value lưu phần tử đang xét, sau đó dịch chuyển các phần tử lớn hơn value sang phải.

c)

Chỉ cần kiểm tra điều kiện A[i] < A[j] để xác định vị trí chèn phần tử.

d)

Thực hiện tất cả các thao tác trên cùng một dòng lệnh để tăng hiệu suất.

78.

Phương pháp làm mịn dần (stepwise refinement) là kỹ thuật phát triển chương trình bằng cách chia nhỏ vấn đề thành các bước chi tiết hơn, giúp thiết kế chương trình rõ ràng và dễ quản lý. Hãy đánh giá tính đúng hoặc sai của các phát biểu sau:

a)

Làm mịn dần giúp cải thiện tốc độ thực thi chương trình.

b)

Bước cuối cùng

79.

Hãy đánh giá tính đúng hoặc sai của các phát biểu sau: a)Làm mịn dần giúp cải thiện tốc độ thực thi chương trình. b)Bước cuối cùng của phương pháp làm mịn dần là viết chương trình hoàn chỉnh. c)Phương pháp làm mịn dần giúp viết chương trình theo từng bước rõ ràng. d)Mỗi bước trong quá trình làm mịn dần phải hoàn toàn độc lập với các bước trước đó.

a)

Đúng

b)

Sai

80.

Đánh giá tính đúng hoặc sai của các phát biểu sau: a)Nếu danh sách đã sắp xếp, thuật toán có thể dừng ngay mà không cần thực hiện. b)Bước đầu tiên là xác định ý tưởng tổng quát về cách chèn từng phần tử. c)Chương trình hoàn chỉnh cần sử dụng ít nhất ba vòng lặp lồng nhau. d)Sau khi tìm được vị trí chèn, cần dịch chuyển các phần tử để tạo khoảng trống.

a)

Đúng

b)

Sai

81.

Mô đun nào thực hiện việc đọc dữ liệu từ tệp vào chương trình trong quá trình thiết kế chương trình theo mô đun?

a)

GhiDL

b)

NhapDL

c)

Sapxep

d)

XuLyDL

82.

Công việc nào sau đây thuộc nhóm "Công việc nâng cấp một mô đun cũ"?

a)

Tạo báo cáo mới ghi doanh số bán trung bình trong ngày

b)

Thay đổi số lượng mặt hàng có doanh số cao nhất trong báo cáo

c)

Nhập thêm mặt hàng và doanh số mới vào tệp dữ liệu

d)

Thực hiện báo cáo riêng cho khách hàng

83.

Khi sắp xếp các mặt hàng theo thứ tự doanh số, mô đun nào sẽ thực hiện chức năng này?

a)

NhapDL

b)

GhiDL

c)

Sapxep

d)

InBaoCao

84.

Nếu cần tìm mặt hàng có doanh số xấp xỉ một giá trị K, công việc này thuộc nhóm nào?

a)

Công việc mới hoàn toàn

b)

Công việc nâng cấp một mô đun cũ

c)

Không thuộc nhóm nào

d)

Công việc không liên quan đến thuật toán và lập trình

85.

Phương pháp thiết kế chương trình theo mô đun có ưu điểm nào sau đây?

a)

Làm chương trình ngắn gọn, dễ hiểu hơn

b)

Giảm khả năng tái sử dụng các phần của chương trình

c)

Hạn chế khả năng làm việc nhóm

d)

Giảm tính linh hoạt khi chỉnh sửa chương trình

86.

Mô đun nào sau đây có nhiệm vụ đưa dữ liệu ra báo cáo cuối ngày?

a)

NhapDL

b)

GhiDL

c)

Sapxep

d)

XuLyDL

87.

Nếu cần bổ sung thêm mặt hàng và doanh số mới vào tệp Data.inp, công việc này sẽ thuộc nhóm nào?

a)

Công việc mới hoàn toàn

b)

Công việc nâng cấp một mô đun cũ

c)

Công việc kết hợp nhiều mô đun

d)

Công việc không liên quan đến thuật toán và lập trình

88.

Để thực hiện công việc bổ sung ghi lại 2 mặt hàng có doanh số cao nhất và 4 mặt hàng có doanh số thấp nhất, cần chỉnh sửa mô đun nào?

a)

NhapDL

b)

GhiDL

c)

Sapxep

d)

XuLyDL

89.

Thiết kế chương trình theo mô đun giúp dễ dàng nâng cấp và bổ sung vì lý do nào sau đây?

a)

Tất cả các mô đun được gộp thành một đoạn mã duy nhất

b)

Mỗi mô đun hoạt động độc lập và thực hiện một chức năng riêng

c)

Các mô đun không thể thay đổi hoặc cập nhật

d)

Chỉ có một mô đun duy nhất nên không cần bổ sung thêm

90.

Nếu muốn tạo thêm một báo cáo riêng ghi doanh số bán trung bình và các mặt hàng có doanh số lớn hơn mức trung bình, cần bổ sung mô đun nào?

a)

NhapDL

b)

GhiDL

c)

Sapxep

d)

BC2

91.

Trong thiết kế mô đun, mỗi mô đun con cần có đặc điểm gì?

a)

Phụ thuộc hoàn toàn vào mô đun chính của chương trình.

b)

Chỉ thực hiện chạy duy nhất một lần trong chương trình.

c)

Chức năng riêng biệt, có khả năng tái sử dụng nhiều lần.

d)

Độc lập hoàn toàn, không liên quan các mô đun khác.

92.

Vì sao cần sử dụng thiết kế chương trình theo mô đun?

a)

Tránh hoàn toàn lỗi lập trình.

b)

Giúp chương trình dễ đọc, dễ bảo trì.

93.

Vì sao cần sử dụng thiết kế chương trình theo mô đun?

a)

Tránh hoàn toàn lỗi lập trình.

b)

Giúp chương trình dễ đọc, dễ bảo trì.

c)

Giúp chương trình chạy nhanh hơn.

d)

Giảm số dòng lệnh trong chương trình.

94.

Mô đun xử lý dữ liệu trong bài toán cửa hàng thực phẩm thực hiện công việc gì?

a)

Sắp xếp danh sách hàng hóa theo doanh số bán ra.

b)

Thêm mặt hàng mới vào trong danh sách hàng hóa.

c)

Hiển thị danh sách các mặt hàng lên trên màn hình.

d)

Nhận dữ liệu nhập vào từ bàn phím người dùng.

95.

Trong mô đun xuất dữ liệu, kết quả được lưu vào đâu?

a)

Cơ sở dữ liệu.

b)

Tệp văn bản.

c)

Màn hình.

d)

Không lưu trữ.

96.

Trong chương trình quản lý cửa hàng thực phẩm, nếu cần bổ sung báo cáo về mặt hàng có doanh số trung bình, cần làm gì?

a)

Viết thêm một mô đun mới.

b)

Không thể thực hiện.

c)

Chỉnh sửa mô đun xử lý dữ liệu.

d)

Chỉnh sửa mô đun nhập dữ liệu.

97.

Trong bài toán quản lý cửa hàng thực phẩm, chương trình có bao nhiêu mô đun chính?

a)

5

b)

4

c)

3

d)

2

98.

Trong mô đun nhập dữ liệu, dữ liệu được đọc từ đâu?

a)

Bàn phím.

b)

Một tệp văn bản.

c)

Cơ sở dữ liệu.

d)

Mạng internet.

99.

Khi thiết kế chương trình tìm mặt hàng có doanh số gần nhất với một giá trị K, có thể sử dụng thuật toán nào?

a)

Tìm kiếm nhị phân.

b)

Thuật toán đệ quy.

c)

Tìm kiếm tuyến tính.

d)

Thuật toán sắp xếp.

100.

Khi cần thay đổi định dạng báo cáo từ 3 mặt hàng cao nhất thành 2 mặt hàng cao nhất, mô đun nào cần chỉnh sửa?

a)

Mô đun xử lý dữ liệu của các mặt hàng trong kho.

b)

Mô đun nhập dữ liệu từ bàn phím người dùng.

c)

Cần sửa đổi mô đun chính của chương trình.

d)

Mô đun xuất dữ liệu báo cáo lên màn hình.

101.

Thiết kế chương trình theo mô đun là gì?

a)

Tạo chương trình chỉ với một hàm duy nhất, không phân chia.

b)

Chạy chương trình mà không cần thiết kế trước các bước.

102.

Thiết kế chương trình theo mô đun là gì?

a)

Tạo chương trình chỉ với một hàm duy nhất, không phân chia.

b)

Chạy chương trình mà không cần thiết kế trước các bước.

c)

Chia chương trình thành các phần nhỏ, chức năng độc lập.

d)

Viết chương trình liền mạch, không chia nhỏ thành các phần.

103.

Trong phương pháp thiết kế chương trình theo mô đun, công việc "nhập dữ liệu từ tệp Data.inp và lưu vào hai mảng P và S" sẽ được thực hiện bởi mô đun nào?

a)

Mô đun xử lý dữ liệu

b)

Mô đun nhập dữ liệu

c)

Mô đun báo cáo

d)

Không mô đun nào thực hiện

104.

Trong phương pháp thiết kế theo mô đun, công việc "tìm và sắp xếp các mặt hàng theo doanh số" sẽ được thực hiện bởi mô đun nào?

a)

Mô đun nhập dữ liệu

b)

Mô đun xử lý dữ liệu

c)

Mô đun báo cáo

d)

Không mô đun nào thực hiện

105.

Đánh giá tính đúng hoặc sai của các phát biểu sau:

a)

Giúp chương trình dễ bảo trì và nâng cấp.

b)

Không thể thêm tính năng mới nếu đã thiết kế mô đun.

c)

Mô đun có thể được sử dụng lại nhiều lần trong chương trình khác.

d)

Có thể chia nhóm lập trình viên làm việc trên các mô đun riêng biệt.

106.

Đánh giá tính đúng hoặc sai của các phát biểu sau:

a)

Các mô đun có thể được tái sử dụng trong các chương trình khác.

b)

Thiết kế mô đun giúp chia chương trình thành các phần nhỏ dễ quản lý.

c)

Mỗi mô đun trong chương trình có thể hoạt động độc lập với nhau.

d)

Nếu thay đổi một mô đun, toàn bộ chương trình phải sửa lại.