You are on page 1of 11

BÀI TẬP TRẮC NGHIỆM CHƯƠNG 2.

PHÂN TÍCH VÀ THIẾT KẾ GIẢI THUẬT

Câu hỏi số: 01


Ý tưởng cơ bản của phương pháp qui hoạch động là gì?
Các đáp án:
A Tìm nghiệm của một bài toán bằng cách xem xét tất cả các phương án có thể
B Chọn cái tốt nhất trước, sau đó cải tiến chúng thành những cái tốt hơn
C Đi từ các vấn đề tổng quát đến chi tiết.
D Để có lời giải của bài toán tối ưu kích thước n, ta giải các bài toán tương tự có
kích thước nhỏ hơn và phối hợp lời giải của chúng để được lời giải của bài
toán ban đầu
Đáp án đúng:

Câu hỏi số: 02


Trong các nguyên tắc dưới đây, nguyên tắc nào KHÔNG phải là nguyên tắc của các
phương pháp thiết kế thuật toán
Các đáp án:
A Tìm nghiệm của một bài toán bằng cách xem xét tất cả các phương án có thể
B Chọn cái tốt nhất trước, sau đó cải tiến chúng thành những cái tốt hơn
C Thiết kế bài toán theo cấu trúc hình cây.
D Để có lời giải của bài toán tối ưu kích thước n, ta giải các bài toán tương tự có
kích thước nhỏ hơn và phối hợp lời giải của chúng để được lời giải của bài toán
ban đầu
Đáp án đúng:

Câu hỏi số: 03


Nhược điểm chính của phương pháp vét cạn là gì?
Các đáp án:
A Độ phức tạp tính toán của bài toán rất lớn (lên đến hàm mũ)
B Khó thiết kế giải thuật
C Đòi hỏi máy tính thực hiện phải có cấu hình cao
D Thường cho kết quả gần đúng.
Đáp án đúng:

Câu hỏi số: 04


Bước phác thảo giải thuật tìm số lớn nhất như sau:
“Từ dãy các số nguyên, chọn ra số lớn nhất.”
Bước tiếp theo để thực hiện giải thuật theo phương pháp tinh chỉnh từng bước
nào dưới đây là đúng nhất?
Các đáp án:
A Max = a[1]
for (i=2; i<=n; i++)
if (a[i] >Max) Max = a[i];
B xét từ a[1] đến a[n] để tìm số lớn nhất
C for (i=1; i<=n; i++)
xét từ a[1] đến a[n] để tìm số lớn nhất
D for (i=1; i<=n; i++)
tìm số lớn nhất
Đáp án đúng:

Câu hỏi số: 05


Xây dựng hàm kiểm tra n có phải là số chính phương hay không được phác thảo
như sau:
- Duyệt i chạy từ 1 đến n/2
- Nếu i * i = n thì n là số chính phương
Bước tiếp theo để thực hiện đoạn chương trình theo phương pháp tinh chỉnh từng
bước nào dưới đây là đúng nhất?
Các đáp án:
A Cp = 0;
for (i = 1; i<=n/2; i++)
Kiểm tra số n có phải là số chính phương hay không
In kết quả
B Cp = 0;
for (i = 1; i<=n/2; i++)
if (i * i ==n) Cp = 1;
C Cp = 0;
for (i = 1; i<=n/2; i++)
if ( i * i == a[n]) Cp= 1;
D Cp = 0;
for (i = 1; i<=n/2; i++)
if (i * i ==n) d++;
Đáp án đúng:
Câu hỏi số: 06
Đoạn chương trình sau mô tả thuật toán gì?
S = 0;
for (i = 1; i<=n/2; i++)
if (i * i ==n)
S = 1;
return S;
Các đáp án:
A Kiểm tra số nguyên tố
B Kiểm tra số chính phương
C Kiểm tra số hoàn hảo
D Kiểm tra số chẵn, dương
Đáp án đúng:

Câu hỏi số: 07

Giả sử thời gian thực hiện một giải thuật là T(n) = cn2 (với c là hằng số), thì ta nói
độ phức tạp tính toán của giải thuật này có cấp là bao nhiêu?
Các đáp án:
A c
B cn2
C n2
D cn
Đáp án đúng:

Câu hỏi số: 08


Khái niệm về “cấp độ lớn của thời gian thực hiện giải thuật” còn được gọi là gì?

Các đáp án:


A Chương trình thể hiện giải thuật đó
B Độ phức tạp về thời gian thực hiện giải thuật
C Độ phức tạp của giải thuật
D Độ phức tạp tính toán của giải thuật
Đáp án đúng:

Câu hỏi số: 09


Qui tắc tính tổng được áp dụng tính độ phức tạp cho 2 đoạn chương trình P1, P2
trong trường hợp nào dưới đây?
Các đáp án:
A Đoạn chương trình P1 và P2 lồng nhau
B Thực hiện tuần tự P1 rồi đến P2
C Thực hiện đồng thời P1 và P2
D Trong đoạn P1 có một phần của P2
Đáp án đúng:

Câu hỏi số: 010

Câu lệnh: for (i=0;i<n;i++)


x=x+1;
có độ phức tạp tính toán là bao nhiêu?
Các đáp án:
A O(1)
B O(i)
C O(n)
D O(n2)
Đáp án đúng:

Câu hỏi số: 011


Khi đánh giá độ phức tạp của giải thuật cho các đoạn chương trình, thời gian thực
hiện của hai đoạn chương trình P1 lồng với P2 được thực hiện theo qui tắc nào?
Các đáp án:
A Qui tắc cộng
B Qui tắc trừ
C Qui tắc nhân
D Qui tắc chia
Đáp án đúng:

Câu hỏi số: 012

Cho đoạn chương trình


1. S=1;
2. for (i=0; i<n; i++)
{ p=1;
for (j=1; j<=n; j++) p= p*x/j;
S= S+p;
}
có độ phức tạp tính toán là bao nhiêu?
Các đáp án:
A O(log2n)
B O(nlog2n)
C O(3n)
D O(n2)
Đáp án đúng:

Câu hỏi số: 013

Thời gian thực hiện các lệnh gán, đọc, ghi là bao nhiêu?
Các đáp án:
A O(1)
B O(n)
C O(n2)
D O(log2n)
Đáp án đúng:

Câu hỏi số: 014

Thời gian thực hiện 1 vòng lặp bằng bao nhiêu?


Các đáp án:
A Tổng thời gian thực hiện thân vòng lặp và thời gian kiểm tra kết thúc vòng lặp
B Tổng thời gian thực hiện thân vòng lặp
C Tổng thời gian kiểm tra kết thúc vòng lặp
D Luôn bằng n
Đáp án đúng:

Câu hỏi số: 015


Trong các đoạn chương trình dưới đây, đoạn nào có độ phức tạp tính toán là
O(n2)?
Các đáp án:
A if (a > b)
max = a;
B for (i=1; i<=n; i++)
for (j = 1; j <=n; j++)
x = x + 1;
C for (i=1; i<=n; i++)
if (max < a[i]) max = a[i];
D for (i=1; i<=n; i++)
x = x +1;
Đáp án đúng:

Câu hỏi số: 016


Khi đánh giá độ phức tạp của giải thuật, những bài toán thuộc lớp nào có độ phức
tạp là O(log2n)?
Các đáp án:
A Khi giải một bài toán bằng cách tách nó thành các bài toán con nhỏ hơn
B Thời gian chạy chương trình tiến chậm khi N lớn dần
C Các chỉ thị của các chương trình đều được thực hiện một lần hay nhiều nhất
chỉ một vài lần
D Khi thời gian chạy của một thuật toán là bậc hai
Đáp án đúng:

Câu hỏi số: 017


Ý tưởng của giải thuật tìm kiếm nhị phân trên một dãy đã được sắp như sau: chia
tập cần tìm làm 2 nửa, xác định nửa chứa bản ghi cần tìm và tập trung tìm kiếm
trên nửa đó, quá trình lặp lại cho đến khi tìm thấy khóa cần tìm.
Thuật toán trên có độ phức tạp tính toán là bao nhiêu?
Các đáp án:
A O(n)
B O(n2)
C O(NlogN)
D O(log2N)
Đáp án đúng:

Câu hỏi số: 018

Đánh giá độ phức tạp của đoạn chương trình sau theo kí pháp O cho kết quả bằng
bao nhiêu?
1. p = m + n;
2. for (i = 0; i<p;i++) c[i] = 0;
3. for (i = 0; i<m;i++)
3.1. for (j= 0; j<n;j++)
3.1.1. c[i + j] = c[i + j] + a[i] * b[j];
Các đáp án:
A O(m*(n+ p + 1))
B O(p)
C O(m*n)
D O(m*n+p)
Đáp án đúng:

Câu hỏi số: 19


Cho đoạn chương trình:
if (a+b>c && b+c>a && c+a>b && a>0 && b>0 && c>0)
{
P = (a+b+c)/2;
S = sqrt(P*(P-a)*(P-b)*(P-c));
}
else
printf(“\nDay khong phai la ba canh của tam giac”);
Đoạn chương trình trên có độ phức tạp tính toán là bao nhiêu?
Các đáp án:
A T(n) = 8
B T(n) = 9
C T(n) = 1
D T(n) = 6
Đáp án đúng:

Câu hỏi số: 020

Nhân tố nào dưới đây ảnh hưởng đến thời gian tính của một giải thuật?
Các đáp án:
A Máy tính
B Thuật toán được sử dụng
C Thời gian sử dụng CPU
D Kích thước dữ liệu đầu vào của thuật toán
Đáp án đúng:

Câu hỏi số: 021


Một trong những phương pháp thiết kế giải thuật là phương pháp tinh chỉnh từng
bước. Tại sao lại gọi phương pháp này như vậy?
Các đáp án:
A Từ các bước đã phác thảo, ta chi tiết hóa dần dần đến ngôn ngữ lập trình
B Từ các bước đã phác thảo, ta chi tiết hóa dần dần tương ứng với những công
việc lớn hơn
C Từ các bước đã phác thảo, ta chi tiết hóa dần dần tương ứng với những công
việc nhỏ hơn
D Từ các bước đã phác thảo, ta chi tiết hóa dần dần đến các câu lệnh của ngôn
ngữ lập trình
Đáp án đúng:

Câu hỏi số: 022

Khi đánh giá độ phức tạp của giải thuật, đơn vị đo thời gian thực hiện chương trình
là gì?
Các đáp án:
A Đơn vị đo thời gian bình thường giờ, phút ,giây...
B Không phải là đơn vị đo thời gian bình thường như giờ, phút, giây....
C Được xác định bởi thời gian được thực hiện trong một máy tính lý tưởng
D Tất cả đều sai
Đáp án đúng:

Câu hỏi số: 023

Thường ta coi T(n) là thời gian thực hiện chương trình trong trường hợp xấu nhất
trên dữ liệu vào có kích thước n, tức T(n) là gì?
Các đáp án:
A Thời gian nhỏ nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng
kích thước T
B Thời gian nhỏ nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng
kích thước n
C Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng
kích thước n.
D Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng
kích thước T
Đáp án đúng:

Câu hỏi số: 024


Trong qui tắc nhân, Nếu T1(n) và T2(n) là thời gian thực hiện của hai đoạn chương
trình P1và P2 và T1(n) = O(f(n)), T2(n) = O(g(n)) thì thời gian thực hiện của đoạn hai
đoạn chương trình đó lồng nhau là bao nhiêu?
Các đáp án:
A T(n)=O(min(f(n),g(n)))
B T(n)=O(max(f(n),g(n)))
C T(n) = O(f(n).g(n))
D T(n2) = O(f(n).g(n))
Đáp án đúng:

Câu hỏi số: 025

Qui tắc thi hành một lệnh nào đó lâu nhất trong chuỗi lệnh được thực hiện theo
qui tắc nào?
Các đáp án:
A Qui tắc cộng
B Qui tắc trừ
C Qui tắc nhân
D Qui tắc tổng quát
Đáp án đúng:

Câu hỏi số: 26

Đối với các chương trình gọi chương trình con, thì tính độ phức tạp theo nguyên
tắc nào?
Các đáp án:
A Từ ngoài vào
B Từ trong ra
C Không có nguyên tắc nào
D Tùy thuộc vào độ phức tạp mà lựa chọn cách tính
Đáp án đúng:

Câu hỏi số: 27

Cơ sở nào dưới đây KHÔNG đánh giá được tính hiệu quả của một thuật toán?
Các đáp án:
A Đơn giản, dễ hiểu, dễ cài đặt
B Sử dụng tiết kiệm nhất các nguồn tài nguyên của máy tính
C Chạy nhanh nhất có thể được.
D Sử dụng tiết kiệm nhất về chi phí
Đáp án đúng:

Câu hỏi số: 28


Giả sử đã có bước phác thảo: từ dãy các số nguyên chưa được sắp, chọn ra số nhỏ
nhất, đặt nó vào cuối dãy đã được sắp xếp, bước tinh chỉnh tiếp theo nào dưới đây
cho bài toán này là đúng nhất?
Các đáp án:
A for (i=1; i<=n; i++)
- Xét từ ai đến an để tìm ra số nhỏ nhất
B - Xét từ ai đến an để tìm ra số nhỏ nhất
- Đổi chỗ giữa ai và aj
C for (i=1; i<=n; i++)
- Xét từ ai đến an để tìm ra số nhỏ nhất
- Đổi chỗ giữa ai và aj
D for (i=1; i<n; i++)
for (j=i+1; j<=n; j++)
if (a[i] > a[j]) đổi chỗ (a[i], a[j]);
Đáp án đúng:

Câu hỏi số: 29


Cho thuật toán sau:
int LinearSearch(int M[], int N, int X)
{ int k = 0;
while (M[k] != X && k<N)
k++;
if (k<N) return (k);
return (-1);
}
Trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X, thì số
phép gán va số phép so sánh bằng bao nhiêu?
Các đáp án:
A Số phép gán = 1
Số phép so sánh = 2N + 1
B Số phép gán = 2
Số phép so sánh = 2N + 1
C Số phép gán = 1
Số phép so sánh = 2N + 2
D Số phép gán = 1
Số phép so sánh = N + 1
Đáp án đúng:

Câu hỏi số: 30


Trong các nguyên tắc dưới đây, nguyên tắc nào thực hiện phương pháp thiết kế
kiểu Bottom-Up?
Các đáp án:
A Tìm nghiệm của một bài toán bằng cách xem xét tất cả các phương án có thể
B Đi từ các vấn đề tổng quát đến chi tiết.
C Đi từ những vấn đề cụ thể trước rồi ghép chúng lại thành những vấn đề lớn
hơn
D Chọn cái tốt nhất trước, sau đó cải tiến chúng thành những cái tốt hơn.
Đáp án đúng:

You might also like