- Câu hỏi 313104:
Cho đoạn mã sau:
struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc,tt;};struct Node{ CB info; struct Node *next, *pre;};
struct List{ Node *head, *tail;};
Khai báo CTDL trên là khai báo CTDL dạng gì?
A. Danh sách liên kết vòng
B. Danh sách liên kết đơn
C. Danh sách liên kết đôi
D. Danh sách liên kết vòng đôi
- Câu hỏi 170768:
Ứng dụng cơ bản của ngăn xếp gồm
A. Tính giá trị biểu thức
B. Chuyển đổi cơ số
C. Đảo ngược xâu ký tự
D. Tất cả các phương án đều đúng
- Câu hỏi 170820:
Các trường hợp thực hiện hủy phần tử khỏi danh sách liên kết đơn gồm:
A. Hủy phần tử đầu danh sách, hủy phần tử đứng sau phần tử q và hủy phần tử có giá trị xác định k
B. Hủy phần tử có giá trị xác định k và hủy phần tử đứng sau phần tử q
C. Hủy phần tử đầu danh sách và hủy phần tử đứng sau phần tử q
D. Hủy phần tử đầu danh sách và hủy phần tử có giá trị xác định k
- Câu hỏi 83251:
Cho biết kết quả của đoạn chương trình sau:
int F(int a[], int n)
{
if (n==1)
return a[0];
else
return 1 + F(a,n-1);
}
int main()
{
int a[] = {2, 3, 4, 5, 6};
printf("%d",F(a,5));
getch();
}
- Câu hỏi 305016:
Đoạn mã cài đặt hủy bỏ một phần tử đứng sau một phần tử q trong danh sách liên kết đơn:
void RemoveAfter ( LIST &Q , Node *q ){
Node *p;
if (q != NULL)
{
p = q -> next;
if (p != NULL)
{
if (p == Q.Tail)
{
q->next = NULL;
Q.Tail = q;
}
[1] ………………….
free(p);
}
}
else RemoveHead(Q);
}
Dòng lệnh cần thiết được đặt vào chỗ trống tại dòng số [1]:
A. q -> next = p -> next;
B. p = q;
C. q = p;
D. p -> next = q -> next;
- Câu hỏi 305019:
Cho khai báo CTDL như sau:
struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc;};struct Node{ CB info; struct Node *next;};
struct List{ Node *head, *tail;};
Đâu là đoạn mã để sắp xếp danh sách Cán bộ theo thứ tự tăng dần của hệ số lương (hsl);
A. void SXCBThanhTien(List &Q)
{ Node *p,*q; CB tg; for(p=Q.Head; p!=NULL; p=p->next) for(q=p->next; q!=NULL; q=q->next) if(p->info.hsl > q->info.hsl) { tg = p->info; p->info = q->info; q->info = tg; }
}
B. void SXCBThanhTien(List &Q)
{ Node *p,*q; CB tg; for(p=Q.Head; p!=NULL; p=p->next) for(q=p->next; q!=NULL; q=q->next) if(p->info.hsl < q->info.hsl) { tg = p->info; p->info = q->info; q->info = tg; }
}
C. void SXCBThanhTien(List &Q)
{ Node *p=Q.Head,*q; CB tg; while(p!=NULL)
{
q=p->next; while(q!=NULL) if(p->info.pc > q->info.pc) { tg = p->info; p->info = q->info; q->info = tg; }
}
}
D. void SXCBThanhTien(List &Q)
{ Node *p,*q; CB tg; for(p=Q.Head; p!=NULL; p=p->next) for(q=p->next; q!=NULL; q=q->next) if(p->info.pc < q->info.pc) { tg = p->info; p->info = q->info; q->info = tg; }
}
- Câu hỏi 305023:
Các loại danh sách liên kết gồm:
A. Danh sách liên kết đơn và danh sách liên kết kép
B. Danh sách liên kết kép và danh sách liên kết vòng
C. Danh sách liên kết đơn và danh sách liên kết vòng
D. Danh sách liên kết đơn, danh sách liên kết kép và danh sách liên kết vòng
- Câu hỏi 305030:
Đoạn mã để tạo ra nút mới có thành phần là x trong danh sách liên kết đơn với mỗi nút gồm hai thành phần (infor, next) sau:
Node* get_node( Data x ){
Node *p;
p = (Node*)malloc(sizeof(Node));
if ( p == NULL )
{
printf(“Ko du bo nho”);
exit(1);
}
p -> infor = x;
p -> ….. = NULL;
return p;
}
Điền phần còn thiếu vào chỗ …………..
A. next
B. data
C. link
D. infor
- Câu hỏi 114196:
Cho đoạn chương trình:
void QuickSort( int a[ ], int L , int R )
{
int i,j,x;
x=……..;
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) QuickSort(a,L,j);
if (i<R) QuickSort(a,i,R);
}
Điền giá trị nào vào đoạn …. cho đúng
A. a[R/2]
B. a[(L-R)/2]
C. a[(L+R)/2]
D. a[(L+R)]
- Câu hỏi 241681:
Các phương pháp tìm kiếm là
A. Tất cả các đáp án đều sai
B. Tìm kiếm tuyến tính và nhị phân
C. Tìm kiếm nhị phân
D. Tìm kiếm tuyến tính