Tải bản đầy đủ (.pdf) (7 trang)

Đề thi trắc nghiệp lập trình C

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (287.05 KB, 7 trang )


1


1. Kết quả nào đúng khi thực hiện giải thuật sau:

long lt(int n)
{if (n==0) return 1;
else return (2*lt(n-1);
}
A. lt(12) = 2010
B. lt(12) = 1024
C. lt(7) = 720
D. lt(6) = 64

2. Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {1, 3, 5}; n= 5, k= 3 :

void ToHopKe(int a[], int n, int k)
{int i, j, tmp = 0;
for (i= 1;i<= k; i++)
if (a[i]!= n-k+i) {tmp= 1;break;}
if (tmp==0) return;
i= k;
while (a[i]>= n-k+i) i--;
a[i]= a[i] + 1;
for (j= i+1;j <=k;j++) a[j]= a[i] + j - i;
for (i= 1; i<= n; i++) printf("%d ", a[i]);
}
A. 2 3 4
B. 1 2 3
C. 2 3 5


D. 1 4 5

3. Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {-3, -3, 15, -3}; n= 4; x= -3:

int FindX(int a[], int n, int x)
{int i;
for (i= n; i>= 1; i--) if (a[i]==x) return (i);
return (-1);
}
A. 1
B. 2
C. 3
D. 4

4. Dấu hiệu nào dưới đây cho biết danh sách liên kết đơn L là rỗng:

A. (L->left == NULL) B. (L->ìnfor == NULL)
C. (L->next == NULL) D. (L == NULL)


2
5. Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {1, 3, 5, 4, 2}; n= 5:

void HoanViKe(int a[],int n)
{int i, k, r, s, tmp = 0;
for(i=1;i<=n;i++) if(a[i]!=n-i+1)
{tmp=1;break;}
if(tmp==0) return;
i= n-1;
while(a[i]>a[i+1]) i= i - 1;

k= n;
while(a[k]< a[i]) k= k - 1;
tmp= a[i]; a[i]= a[k]; a[k]=t mp;
r= i+1; s= n;
while(r< s)
{tmp = a[r]; a[r]= a[s]; a[s]= tmp; r++; s--; }
for(i= 1; i<= n; i++) printf("%d ", a[i]);
}
A. 1 4 2 3 5
B. 5 4 3 2 1
C. 1 4 5 3 2
D. 1 3 4 2 5




6. Thao tác nào dưới đây thực hiện trên hàng đợi (queue):
A. Thêm phần tử vào lối sau B. Loại bỏ phần tử ở lối sau
C. Thêm phần tử vào lối trước D. Thêm và loại bỏ phần tử tại vị trí bất kỳ

7. Dấu hiệu nào dưới đây cho biết hàng đợi đã có thao tác thêm và loại bỏ phần tử là rỗng:
A. Lối trước có giá trị > giá trị của lối sau B. Lối sau nhận giá trị = 0
C. Lối trước có giá trị < giá trị của lối sau D. Lối trước nhận giá trị = 0

8. Thao tác nào dưới đây thực hiện trên ngăn xếp (stack):
A. Thêm phần tử vào vị trí bất kỳ B. Loại bỏ phần tử tại vị trí bất kỳ
C. Thêm và loại bỏ phần tử luôn
thực hiện tại vị trí đỉnh (top)
D. Thêm và loại bỏ phần tử có thể
thực hiện tại vị trí bất kỳ


9. Nút có khóa lớn nhất trong cây nhị phân tìm kiếm khác rỗng là:
A. Nút con bên phải nhất B. Nút con bên trái nhất
C. Nút gốc D. Tất cả các nút

10. Trong phép duyệt cây nhị phân có 24 nút theo thứ tự sau, nút gốc có thứ tự:
A. Thứ 1 B. Thứ 2
C. Thứ 23 D. Thứ 24

11. Nút có khóa nhỏ nhất trong cây nhị phân tìm kiếm khác rỗng là:
A. Nút gốc B. Tất cả các nút
C. Nút con bên phải nhất D. Nút con bên trái nhất

3
12. Cây nhị phân khác rỗng là cây:
A. Mỗi nút (trừ nút lá) đều có hai nút con B. Tất cả các nút đều có nút con
C. Mỗi nút có không quá 2 nút con D. Tất cả các nút đều có nút cha

13. Đồ thị G có n đỉnh và m cạnh với m  n thì ma trận kề của G luôn có dạng :
A. là ma trận vuông cấp n B. là ma trận cấp nxm
C. là ma trận vuông cấp m D. là ma trận cấp mxn

14. Đồ thị vô hướng G có chu trình Euler khi và chỉ khi :
A. G liên thông và mọi đỉnh  G có bậc chẵn B. mọi đỉnh  G có bậc chẵn
C. G có chu trình Hamilton D. G là liên thông

15. Đồ thị G là liên thông khi và chỉ khi:
A. G là đồ thị có hướng B. G là đồ thị vô hướng
C. Có đường đi giữa hai đỉnh bất kỳ  G
D. G có đường đi Euler


16. Hãy viết các thao tác chuyển tháp khi thực hiện hàm dưới đây vơi n= 3, a= 3 và b = 1:
void MOVE(int n, int a, int b)
{ if(n==0) return;
MOVE(n-1, a, 6-a-b);
cout<<a<<" => "<< b<< “\n”;
MOVE(n-1, 6-a-b, b);
}
1)
2)
3)
4)
5)
6)
7)

17. Viết kết quả của biểu thức dạng hậu tố E= 6 27 25 - * 15 8 - 3* - khi ứng dụng ngăn
xếp: E =

18. Viết các phần tử của mảng a[] = {27, 40, -7, 5, 57} tại mỗi giai đoạn i khi áp dụng
thuật toán sắp xếp lựa chọn để sắp xếp a theo thứ tự giảm:
(i= 5) (i= 4)
(i= 3) (i= 2)

19. Viết các phần tử của mảng a[] = {27, 40, -7, 5, 57} tại mỗi giai đoạn i khi áp dụng
thuật toán sắp xếp nổi bọt để sắp xếp a theo thứ tự giảm:
(i= 5) (i= 4)
(i= 3) (i= 2)

20. Viết các phần tử của mảng a[] = {27, 40, -7, 5, 57} tại mỗi giai đoạn i khi áp dụng

thuật toán sắp xếp xen vào để sắp xếp a theo thứ tự giảm:
(i= 5) (i= 4)
( i= 3) (i= 2)

4
21. Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số
nguyên 2, 10, 15, -5, -2, 13, -12 khi thực hiện phép duyệt cây theo thứ tự sau:


22. Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số
nguyên 2, 10, 15, -5, -2, 13, -12 khi thực hiện phép duyệt cây theo thứ tự giữa


23. Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số
nguyên 2, 10, 15, -5, -2, 12, -12 khi thực hiện phép duyệt cây theo thứ tự trước:


24. Viết xâu mã Huffman của 4 chữ cái A, B, C, D trong bản tin M, biết tần số xuất hiện
của chúng trong M tương ứng là: 0,45; 0,15; 0,30 và 0,10:


25. Viết thứ tự được duyệt của các đỉnh thuộc đồ thị G khi thực hiện tìm kiếm theo chiều
sâu bắt đầu từ đỉnh 1, trong đó G được biểu diễn dưới dạng ma trận kề sau:

A =



















000101
000011
000011
100001
011001
111110



26. Viết thứ tự được duyệt của các đỉnh thuộc đồ thị G khi thực hiện tìm kiếm theo chiều
rộng bắt đầu từ đỉnh 1, trong đó G được biểu diễn dưới dạng ma trận kề sau:

A =



















000101
000011
000011
100001
011001
111110




5
27. Viết đường đi Euler của đồ thị vô hướng G biểu diễn bởi ma trận kề sau:
A =



















001010
000011
100111
001001
111001
011110



28. Viết độ dài đường đi ngắn nhất từ đỉnh 1 đến đỉnh 5 và các đỉnh nằm trên đường đi đó
trong đồ thị G biểu diễn bởi ma trận trọng số A với A[i,j]= 0 nếu không có cạnh nối i đến j:
A =

















00501
10030
020025
20100
0150100



29. Tìm hai đỉnh i  j của đồ thị G sao cho tổng độ dài đường đi từ i đến j và từ j về i là nhỏ
nhất, G biểu diễn bởi ma trận trọng số A với A[i,j]= 0 nếu không có cạnh nối i đến j:
A =













0010
5000
10103
1910120

i=
j=


30. Viết tổng trọng số WT của cây khung nhỏ nhất T trong đồ thị G biểu diễn bởi ma trận
trọng số A với A[i,j]= 0 nếu không có cạnh nối i đến j:
A =

















01011
10530
05013
131007
10370

WT=
T=

30. Nhân tố nào là nhân tố chính ảnh hưởng đến thời gian tính của một giải thuật
a. Máy tính
b. Thuật toán được sử dụng
c. Chương trình dịch
d. Kích thước của dữ liệu đầu vào của thuật toán

×