[Unable to find Component]

Cấu trúc dữ liệu và giải thuật - IT05 (255)

Câu hỏi 114194:

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 3 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, 74, 58
C. 11, 23, 42, 74, 65, 58
D. 11, 23, 58, 65, 42, 74

Câu hỏi 114193:

Đoạn mã dưới đây mô tả thuật toán gì: B1: k = 1 B2: if M[k] == X and k !=n

B2.1: k++

B2.2: Lặp lại bước 2

B3: if (k<N) thông báo tìm thấy tại vị trí thứ k

B4: else thông báo không tìm thấy

B5: Kết thúc

A. Tìm kiếm tuyến tính phần tử X trong mảng
B. Tìm kiếm nhị phân phần tử có giá trị X
C. Tất cả các lựa chọn trên đều sai
D. Tìm phần tử nhỏ nhất của mảng M gồm N phần tử

Câu hỏi 114189:

Cho thông tin của SV gồm: MaSV, HoTen, Tuoi, DTB

Đâu là đoạn mã để Sắp xếp danh sách SV theo ĐTB tăng dần bằng thuật toán Selection Sort

A. void SXDSSV( int n, SV ds[]){ int min, i, j; SV tg; for( i=0 ; i<n-1 ; i++ ) { min = i; for( j=i+1 ; j<n ; j++ ) if ( ds[j].DTB > ds[min].DTB ) min = j; if( min != i )
{ tg = ds[min];
ds[min] = ds[i];
ds[i] = tg; } }}
B. void SXDSSV( int n, SV ds[]){ int min, i, j; SV tg; for( i=0 ; i<n-1 ; i++ ) { min = i; for( j=i+1 ; j<n ; j++ ) if ( ds[j].DTB < ds[min].DTB ) min = j; if( min != i )
{ tg = ds[min];
ds[min] = ds[i];
ds[i] = tg; } }}
C. void SXDSV_InsertionSort( int n, SV ds[]){ int pos,i; SV x; for(i=1;i<n;i++) { x = ds[i]; pos = i-1; while((pos>=0)&&(ds[pos].DTB<x.DTB)) { ds[pos+1] = ds[pos]; pos--; } ds[pos+1] = x; //chèn x vào dãy }}
D. void SXDSV_InsertionSort( int n, SV ds[]){ int pos,i; SV x; for(i=1;i<n;i++) { x = ds[i]; pos = i-1; while((pos>=0)&&(ds[pos].DTB>x.DTB)) { ds[pos+1] = ds[pos]; pos--; } ds[pos+1] = x; //chèn x vào dãy }}

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 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();

}

A. 12
B. 6
C. 10
D. 2

Câu hỏi 563560:

Để tính biểu thức s = xn với n>=0 ta chọn hàm

A. long F(int x, int n)
{
if (n==1)
return 1;
else
return x*F(x,n-1);
}
B. long F(int x, int n)
{
if (n==0)
return 1;
else
return x*x*F(x,n-1);
}
C. long F(int x, int n)
{
if (n==0)
return 1;
else
return x*F(x,n-1);
}
D. long F(int x, int n)
{
if (n==0)
return 1;
else
return x*F(x,n);
}

Câu hỏi 305022:

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ã để tính tổng phụ cấp của tất cả các cán bộ và in ra màn hình?

A. void TinhPC (List Q)
{
Node *p;
float s=0;
for(p=Q.Head; p!=NULL; p=p->next)
s = s + p->info.pc;

}

B. void TinhPC (List Q)
{
Node *p;
float s=0;
for(p=Q.Head; p!=NULL; p=p->next)
printf(“%10.0f”, p->info.pc)

}

C. void TinhPC (List Q)
{
Node *p;
float s=0;
for(p=Q.Head; p!=NULL; p=p->next)
s = s + p->info.pc;

printf(“\n Tong phu cap:%f”, s);
}

D. void TinhPC (List Q)
{
Node *p;
float s=0;
for(p=Q.Head; p!=NULL; p=p->next)
s = s + p->info.hsl;

printf(“\n Tong phu cap:%f”, s);
}

Câu hỏi 305020:

Cho thông tin của Hang Hoa gồm: mã hàng, tên hàng, số lượng và đơn giá.

Đâu là đoạn mã khai báo Cấu trúc dữ liệu dạng danh sách liên kết đơn để lưu trữ danh sách Hang Hoa

A. struct HH{ int mHang; char tenHang [20]; float soLuong, donGia;};struct Node{ HH info; struct Node *next, *pre;};
struct List{ Node *head, *tail;};
B. struct HH{ int mHang; char tenHang [20]; float soLuong, donGia;};struct List{ HH *head, *tail;};
C. struct HH{ int mHang; char tenHang [20]; float soLuong, donGia;};struct Node{ HH info; struct Node *next;};
struct List{ Node *head, *tail;};
D. struct HH{ int mHang; char tenHang [20]; float soLuong, donGia;};HH ds[10];

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 305018:

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ã để in ra màn hình thông tin đầy đủ của các Cán Bộ có trong danh sách liên kết.

A. void InDSCanBo (List Q)
{
Node *p;
for(p=Q.Head; p!=NULL; p=p->next)
if(p->info.hsl > 4)
{
System.out.print(“%5d”, p->info.mcb);
System.out.print(“%15s”, p->info.hoten);
System.out.print(“%10s”, p->info.ns);
System.out.print(“%7.1f”, p->info.hsl);
System.out.print(“%7.0f”, p->info.pc);
}
}
B. void InDSCanBo (List Q)
{
Node *p;
for(p=Q.Head; p!=NULL; p=p->next)
System.out.print(“%15s”, p->info.hoten);
}
C. void InDSCanBo (List Q)
{
float s;
for(p=Q.Head; p!=NULL; p=p->next)
s = s + p->info.hsl;
}
D. void InDSCanBo (List Q)
{
Node *p;
for(p=Q.Head; p!=NULL; p=p->next)
{
System.out.print(“%5d”, p->info.mcb);
System.out.print(“%15s”, p->info.hoten);
System.out.print(“%10s”, p->info.ns);
System.out.print(“%7.1f”, p->info.hsl);
System.out.print(“%7.0f”, p->info.pc);
}
}

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

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

Câu hỏi 563564:

Đâu là công thức tổng quát để tính giai thừa dựa vào giải thuật đệ quy

A. GiaithuaKhông = n* GiaithuaKhông
B. GiaithuaKhông = n* Giaithua(n+1)
C. GiaithuaKhông = n* Giaithua(n-1)
D. GiaithuaKhông = (n-1)* GiaithuaKhông

Câu hỏi 305012:

Cho Danh sách liên kết đơn chứa danh sách Cán Bộ (CB), Đoạn mã sau đây thực hiện gì?

void InDSCanBo (List Q)

{

Node *p;

for(p=Q.Head; p!=NULL; p=p->next)

{

System.out.print(“%5d”, p->info.mcb);

System.out.print(“%15s”, p->info.hoten);

System.out.print(“%10s”, p->info.ns);

System.out.print(“%7.1f”, p->info.hsl);

System.out.print(“%7.0f”, p->info.pc);

}

}

A. Nhập vào từ bàn phím thông tin đầy đủ của các cán bộ vào danh sách Q
B. In thông tin của các cán bộ có trong danh sách mà có hệ số lương lớn hớn 3.5
C. In đầy đủ thông tin tất cả các cán bộ đang chứa trong danh sách Q
D. In họ tên và mã của các cán bộ đang chứa trong danh sách

Câu hỏi 563565:

Cho biết kết quả của đoạn chương trình sau:

long f3(int n)

{

if (n==1)

return 1;

else

return n*n + f3(n-1);

}

int main()

{

long x = f3(3);

printf("%ld", x);

getch();

}

A. 14
B. 13
C. 16
D. 12

Câu hỏi 563566:

Cho mảng a có N (N>=2) phần từ, x là một biến, xét đoạn mã sau cho biết đoạn mã biểu diễn thuật toán gì?

Bước 1: Khởi gán i = 0, s = 0, qua bước 2;

Bước 2: Nếu a[i] == x thì

s++; qua bước 3

Bước 3: i = i + 1;

Nếu i == n: hết mảng. Dừng, in s ra màn hình

Ngược lại: Lặp lại bước 2

A. Đếm số phần tử có giá trị bằng x trong mảng
B. Đếm số phần tử trong mảng đầu tiên trong mảng
C. Đếm số phần tử có giá trị bằng phần tử đầu tiên trong mảng
D. Tìm kiếm tuyến tính phần tử mang giá trị x trong mảng

Câu hỏi 170826:

Cho khai báo CTDL như sau:

struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc,tt;};struct Node{ CB info; struct Node *next;};

struct List{ Node *head, *tail;};

Đâu là đoạn mã tìm kiếm CanBo theo mã cán bộ trong DSLK đơn

A. Node *TimCBMa(List Q,char k[]){ Node *p; for(p=Q.Head; p!=NULL; p=p->next) if(strcmp(p->info.ns,k)==0) break; return p;}
B. Node *TimCBMa(List Q,int k){ Node *p; for(p=Q.Head; p!=NULL; p=p->next) if(p->info.mcb == k) break;
return p;}
C. Node *TimCBMa(List Q,char k[]){ Node *p; for(p=Q.Head; p!=NULL; p=p->next) if(strcmp(p->info.hoten,k)==0) break; return p;}
D. void TimCBMa(List Q,char k[]){ Node *p; for(p=Q.Head; p!=NULL; p=p->next) if(p->mcb == k) break;}

Câu hỏi 170824:

Các thành phần của danh sách đơn gồm:

A. Dữ liệu (data)
B. Liên kết (link)
C. Số phần tử của danh sách (number)
D. Dữ liệu (data) và liên kết (link)

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 170819:

Để sắp xếp các phần tử của danh sách liên kết đơn sử dụng phương án nào?

A. Tất cả các đáp án đều sai
B. Hoán vị nội dung của phần tử
C. Cả hai phương án trên đều đúng
D. Thay đổi mối liên kết của phần tử
Trung tâm giáo dục thể chất và quốc phòng an ninh
Khoa kinh tế
Khoa đào tạo từ xa
Trung tâm đào tạo trực tuyến
Khoa đào tạo cơ bản
Khoa điện - điện tử
Khoa du lịch
Khoa Công nghệ thông tin
Viện Công nghệ sinh học và Công nghệ thực phẩm
Trung tâm đại học Mở Hà Nội tại Đà Nẵng
Khoa tiếng Trung Quốc
Khoa tạo dáng công nghiệp
Khoa tài chính ngân hàng
Khoa Tiếng anh
Khoa Luật

Bản tin HOU-TV số 07 năm 2026

Tuyển sinh đại học Mở Hà Nội - HOU

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.