Trắc Nghiệm Cấu Trúc Dữ Liệu Và Giải Thuật - Bài 01
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 -
1 4 5
D -
2 3 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 -
4
B -
3
C -
2
D -
1
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->next == NULL)
B -
(L == NULL)
C -
(L->ìnfor == NULL)
D -
(L->left == NULL)
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 và loại bỏ phần tử tại vị trí bất kỳ
B -
Thêm phần tử vào lối sau
C -
Loại bỏ phần tử ở lối sau
D -
Thêm phần tử vào lối trước
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 sau nhận giá trị = 0
B -
Lối trước có giá trị < giá trị của lối sau
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ự: