- Câu hỏi 83245:
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 giảm dần bằng thuật toán Selection Sort
A. 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 }}
B. void SXDSSV( int n, SV ds[]){ int max, i, j; SV tg; for( i=0 ; i<n-1 ; i++ ) { max = i; for( j=i+1 ; j<n ; j++ ) if ( ds[j].DTB > ds[max].DTB ) max = j; if(max!= i )
{ tg = ds[max];
ds[max] = ds[i];
ds[i] = tg; } }}
C. 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; } }}
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 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 305024:
Cho khai báo cấu trúc 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;};
Đoạn mã sau đây thực hiện yêu cầu xử lý gì?
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;}
A. Thực hiện tìm kiếm trong DSLK đôi chứa các CanBo xem có CanBo nào có mã là k hay không? Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL
B. Thực hiện tìm kiếm Cán bộ theo mã cán bộ
C. Thực hiện tìm kiếm trong DSLK đơn có chứa Cán bộ với tên là k nào đó hay không?
D. Thực hiện tìm kiếm trong DSLK đơn chứa các CanBo xem có CanBo nào có mã là k hay không? Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL
- 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 114197:
Hàm mô tả sắp xếp nổi bọt (Bubble Sort) trên mảng M có N phần tử:
1. void BubbleSort(int M[ ], int N)
2. {
3.int i,j,tg;
4.for( i = 0 ; i < N-1 ; i++ )
5.........................................
6.if ( M[j] < M[j-1] )
7.{
8.tg = M[j];
9.M[ j] = M[j-1];
10.M[ j-1] = tg;
11.}
12.}
Lệnh nào sau đây sẽ được đưa vào dòng số [5] của đoạn mã trên
A. for( j = N-1; j>i; j++)
B. Không có dòng lệnh nào phù hợp, không cần thêm thuật toán vẫn chạy đúng
C. for( j = N; j< i; j--)
D. for( j = N-1; j>i; j--)
- Câu hỏi 114202:
Cho dãy 10, 5, 7, 3, 9, 2, 15, 1. Cho biết kết quả sau lần duyệt thứ nhất của thuật toán sắp xếp tăng dần bằng QuickSort
A. 1, 2, 3, 5, 9, 7, 15, 10
B. 1, 2, 3, 5, 7, 9, 15, 10
C. 1, 2, 5, 7, 9, 3, 15, 10
D. 1, 2, 3,7,9, 5, 15, 10
- Câu hỏi 114203:
Một chương trình cài đặt trên máy tính được xác định bởi thành phần nào
A. Cấu trúc dữ liệu
B. Cả hai thành phần
C. Không phải là các thành phần
D. Thuật toán
- Câu hỏi 241684:
Đoạn mã cài đặt hàm tìm kiếm nhị phân phần tử x trên dãy sắp xếp tăng dần:
int BinarySearch( int a[ ], int n, int x )
{
int left = ……….., right = ……………;
int middle;
do
{
middle = (left+right)/2;
if (x == a[middle]) break;
else if (x<a[middle]) right = middle - 1;
else left = middle + 1;
} while ( left <= right );
if ( left <= right ) return middle;
else return -1;//ko tìm thấy phần tử x
}
Giá trị được điền vào dấu ………... để đoạn mã cài đặt thực hiện đúng:
A. 0 và n-1
B. n và 1
C. n-1 và 0
D. 1 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();
}
- 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