- Câu hỏi 305025:
Đoạn mã cài đặt chèn thêm một phần tử mới vào đầu của danh sách liên kết đơn:
void insertFirst ( LIST &Q, Node *new_element ){
if ( Q.Head == NULL ) //nếu danh sách rỗng
{
[1] ……..
[2] ……..
}
else//danh sách không rỗng
{
new_element -> next = Q.Head;
Q.Head = new_element;
}
}
Đoạn mã còn thiếu để đặt vào dòn số [1] và [2].
A. Q.Tail = Q.Head;
Q.Head = new_element;
B. Q.Tail = NULL;
Q.Head = NULL;
C. Q.Head = new_element;
Q.Tail = Q.Head;
D. Q.Head = Q.Head;
Q.Tail = new_element;
- Câu hỏi 305028:
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ự giảm 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.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; }
}
}
C. 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; }
}
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.hsl < q->info.hsl) { tg = p->info; p->info = q->info; q->info = tg; }
}
- Câu hỏi 305029:
Đoạn mã cài đặt hủy phần tử đầu của danh sách liên kết đơn:
void RemoveHead ( LIST &Q ){
Node *p;
if (Q.Head != NULL)
{
p = Q.Head;
[1] …………………..
free(p);
if ( Q.Head == NULL )
Q.Tail = NULL;
}
}
Dòng lệnh cần thiết được đặt vào chỗ trống tại dòng số [1]:
A. Q.Head -> next = Q.Head;
B. Q.Head = NULL;
C. Q.Head -> next = NULL;
D. Q.Head = Q.Head -> next;
- Câu hỏi 114187:
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 <=> left = 0 và right = n-1
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 ............................ (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. right = midle + 1
B. right = middle - 1
C. left = middle - 1
D. left = middle + 1
- Câu hỏi 114190:
Cho đoạn mô tả 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
(left = 0 và right = n - 1)
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 thì thông báo Tìm thấy => Dừng
a[middle] > x thì right = middle - 1
a[middle] < x thì left = middle + 1
Bước 3:
Nếu left <= right và quay lại bước 2 để tìm kiếm tiếp
Ngược lại thông báo không tìm thấy và dừng thuật toán
A. Các đáp án đưa ra đều sai
B. Mô tả thuật toán tìm kiếm tuyến tính
C. Mô tả thuật toán tìm kiếm nhị phân
D. Các đáp án trên đều đúng
- Câu hỏi 241683:
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 5 lần lặp kết quả của dãy là thế nào?
A. 11, 23, 42, 74, 58, 65
B. 11, 23, 42, 65, 58, 74
C. 11, 23, 58, 65, 42, 74
D. 11, 23, 42, 58, 65, 74
- Câu hỏi 241687:
Giả sử cần sắp xếp mảng M có N phần tử sau theo phưuơng pháp sắp xếp chèn trực tiếp:
11 16 12 75 51 54 5 73 36 52 98
Cần thực hiện bao nhiêu lần chèn các phần tử vào dãy con đã có thứ tự tăng dần đứng đầu dãy M để sắp xếp mảng tăng dần:
A. 10 lần
B. 7 lần
C. 8 lần
D. 9 lần
- Câu hỏi 563557:
Thuật toán được biểu diễn bằng cách nào
A. Sơ đồ khối
B. Tất cả các cách được liệt kê
C. Giả mã
D. Liệt kê từng bước
- Câu hỏi 563559:
Cho biết kết quả của đoạn chương trình sau:
long f5(int n)
{
if (2*n==2)
return 2;
else
return 2*n + f5(n-1);
}
int main()
{
long x = f5(3);
printf("%ld", x);
getch();
}
- Câu hỏi 563563:
Đây là định nghĩa của độ phức nào? “Được tính là tổng số chi phí về mặt không gian (bộ nhớ) cần thiết sử dụng cho thuật toán”
A. Thời gian
B. Cả hai lựa chọn đều sai
C. Cả hai lựa chọn đều đúng
D. Không gian