- Câu hỏi 83248:
Đoạn mã sau đây thực hiện yêu cầu xử lý gì?
int TK_SV_Ten_Tuyentinh(int n, SV ds[], char ht[]){ for(int i = 0; i<n; i++) if ( strcmp(ds[i].HoTen, ht)==0) break; if (i<n) return 1; else return -1;}
A. Thực hiện tìm kiếm trong danh sách ds có SV có mã là ht hay không? Nếu có trả lại giá trị 1 nếu không có trả lại giá -1
B. Thực hiện tìm kiếm trong danh sách (ds) có SV có tên là ht hay không? Nếu có thì trả lại giá trị là 1, ngược lại không có trả lại giá trị là -1, thuật toán sử dụng là thuật toán tìm kiếm tuyến tính
C. Thực hiện tìm kiếm trong danh sách ds có SV có mã là ht hay không? Nếu có trả lại giá trị 1 nếu không có trả lại giá -1, thuật toán sử dụng là thuật toán tìm kiếm nhị phân
D. Thực hiện tìm kiếm trong danh sách ds có SV có mã là ht hay không? Nếu có trả lại giá trị vị trí của phần tử tìm thấy nếu không có trả lại giá -1
- Câu hỏi 305027:
Định nghĩa cấu trúc dữ liệu của danh sách liên kết đơn được mô tả như sau:
struct Node{
int Key;
Node *next;
}OneNode;
Trong đó, khai báo Node *next; dùng để mô tả
A. Con trỏ trỏ tới phần dữ liệu cuối của danh sách
B. Con trỏ trỏ tới phần dữ liệu
C. Vùng liên kết quản lý địa chỉ phần tử kế tiếp
D. Vùng liên kết quản lý địa chỉ phần tử kế tiếp của phần tử cuối
- Câu hỏi 114188:
Các bước thực hiện tìm kiếm nhị phân phần tử x trên dẫy sắp xếp tăng dần được mô tả như sau:
Bước 1: Khởi đầu tìm kiếm trên tất cả các phần tử của dãy c left = …………… và right = ………………
Bước 2: Tính middle = (left + right)/2. So sánh a[middle] với x. Có 3 khả năng:
- a[middle] = x => Tìm thấy => Dừng
- a[middle] > x => tiếp tục tìm x trong dãy con mới với right = middle - 1 (tìm trong nửa đầu)
- a[middle] < x => tiếp tục tìm x trong dãy con mới với left = middle + 1 (tìm trong nửa cuối)
Bước 3:
- Nếu left <= right => dãy còn phần tử, tiếp tục quay lại bước 2 để tìm kiếm tiếp
- Ngược lại => Dãy hiện hành hết phần tử và dừng thuật toán
Giá trị cần điền vào dấu ………….. là bao nhiêu để thuật toán thực hiện đúng
A. n và 0
B. 0 và n-1
C. n-1 và 0
D. 0 và n
- Câu hỏi 114198:
Cho đoạn chương trình:
void QuickSort( int a[ ], int L , int R )
{
int i,j,x;
x= a[(L+R)/2];
i = L; j = R;
do
{
while ( a[i] < x ) i++;
while ( a[j] > x ) j--;
if ( i <= j )
{
Hoanvi (a[i], a[j]);
i++; j--;
}
} while(i<j);
if (L<j) ….
if (i<R) ….
}
Điền giá trị nào vào đoạn …. cho đúng
A. QuickSort(a,L,j);
QuickSort(a,R,i);
B. QuickSort(a,i,R);
QuickSort(a,L,j);
C. QuickSort(a,j,L);
QuickSort(a,i,R);
D. QuickSort(a,L,j);
QuickSort(a,i,R);
- Câu hỏi 114201:
Thủ tục mô tả thuật toán sắp xếp chọn trực tiếp:
void SapXepChonTrucTiep( T M[], int N)
{
int K = 0, posmin;
int Temp;
................................................
{
T Min = M[K];
Posmin = K;
for( int pos = K+1; pos<N; pos++)
if( Min > M[pos])
{
Min = M[pos];
Posmin = pos;
}
Temp = M[k];
M[k] = m[posmin];
M[posmin] = Temp;
}
return;
}
Đoạn mã cần thiết để đặt vào dòng .....................để chương trình sắp xếp đúng
A. for ( k =0; k<n-1; k++)
B. for ( k =n-1; k>0; k--)
C. for ( k =n; k>0; k--)
D. for ( k =0; k<n-1; k--)
- Câu hỏi 241682:
Cho dãy sau: 42, 23, 74, 11, 65, 58. Dùng phương pháp sắp xếp chèn trực tiếp (Insertion Sort) để sắp xếp tăng dần, sau 2 lần lặp kết quả của dãy là thế nào?
A. 11, 23, 58, 65, 42, 74
B. 23, 42, 74, 11, 65, 58
C. 11, 23, 42, 74, 58, 65
D. 11, 23, 42, 65, 74, 58
- Câu hỏi 241694:
Cho dãy sau: 23, 78, 45, 8, 32, 56. Dùng phương pháp sắp xếp chọn trực tiếp (Selection Sort) để sắp xếp tăng dần, sau 3 lần lặp thì kết quả của dãy là thế nào?
A. 8, 23, 32, 78, 45, 56
B. 8, 23, 32, 78, 56, 45
C. 8, 23, 78, 45, 32, 56
D. 23, 78, 45, 8, 32, 56
- Câu hỏi 241695:
Cho dãy sau: 42, 23, 74, 11, 65, 58. Dùng phương pháp sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần, sau 4 lần lặp kết quả của dãy là thế nào?
A. 11, 23, 58, 42, 65, 74
B. 11, 23, 42, 58, 65, 74
C. 11, 23, 58, 42, 74, 65
D. 42, 23, 74, 11, 65, 58
- Câu hỏi 563556:
Để xác định giải thuật đệ quy cần xác định gì?
A. Phần tử neo
B. Cả hai lựa chọn đều đúng
C. Công thức tổng quát
D. Cả hai lựa chọn đều sai
- Câu hỏi 563562:
Cho biết kết quả sau khi thực hiện đoạn chương trình sau:
int main()
{
int a[20], n,i,k;
k = a[n-1];
for(i=n-2; i>=0; i--)
if (a[i] < k)
k = a[i];
}
A. a[k] có giá trị nhỏ nhất
B. a[k] có giá trị lớn nhất
C. k có giá trị nhỏ nhất
D. k có giá trị lớn nhất