Viết chương trình con đếm số lần xuất hiện của phần tử x trong mảng cho trước.. Viết chương trình con in ra vị trí xuất hiện của phần tử x trong mảng cho trước.[r]
(1)CHƯƠNG – CÁC GIẢI THUẬT SẮP XẾP
Bài 1a. Viết chương trình đếm số lần xuất phần tử x mảng cho trước int Count1a(int mang[], int n, int x)
Bài 1b. Cho dãy sau: 23 , 78 , 45 , , 32 , 56
Dùng phương pháp xếp (selection sort), sau 2 lần lặp dãy có dạng ?
A. 8,23,78,45,32,56 B. 8,23,32,78,45,56 C. 8,23,32,56,45,78 D. 23,78,45,8,32,56
Bài 2a. Viết chương trình in vị trí xuất phần tử x mảng cho trước void Print2a(int mang[], int n, int x)
Bài 2b. Cho dãy sau: 23 , 78 , 45 , , 32 , 56
Dùng phương pháp xếp (selection sort), sau 3 lần lặp dãy có dạng ?
A. 8,23,78,45,32,56 B. 8,23,32,78,45,56 C. 8,23,32,56,45,78 D. 23,78,45,8,32,56
Bài 3a. Viết chương trình chèn phần tử x vào vị trí mảng void Insert3a(int x, int mang[], int n)
Bài 3b. Cho dãy sau: 23 , 78 , 45 , , 32 , 56
Dùng phương pháp xếp (selection sort), sau 4 lần lặp dãy có dạng ?
A. 8,23,78,45,32,56 B. 8,23,32,45,78,56 C. 8,23,32,56,45,78 D. 23,78,45,8,32,56
(2)Bài 4b. Cho dãy sau: 23 , 78 , 45 , , 32 , 56
Dùng phương pháp xếp (selection sort), sau 5 lần lặp dãy có dạng ?
A. 8,23,78,45,32,56 B. 8,23,32,45,56,78 C. 8,23,32,78,56,45 D. 23,78,45,8,32,56
Bài 5a. Viết chương trình nối mảng thành mảng
void Join5a(int mang1[], int n1, int mang2[], int n2, int mang3[], int &n3)
Bài 5b. Cho dãy sau: 42,23,74,11,65,58
Dùng phương pháp xếp (insertion sort), sau 3 lần lặp dãy có dạng ?
A 11,23,42,74,65,58 B 11,23,42,65,74,58 C 11,23,58,65,42,74 D 11,23,42,74,58,65
Bài 6a. Viết chương trình tách mảng thành mảng : mảng chứa số chẵn mảng chứa số lẻ void Split6a(int mang[], int n, int a[], int &sa, int b[], int &sb)
Bài 6b. Cho dãy sau: 42,23,74,11,65,58
Dùng phương pháp xếp (insertion sort), sau 4 lần lặp dãy có dạng ?
A 11,23,42,74,65,58 B 11,23,42,65,74,58 C 11,23,58,65,42,74 D 11,23,42,74,58,65
Bài 7a. Viết chương trình xố phần tử số chẵn mảng cho trước void Delete7a(int mang[], int &n)
Bài 7b. Cho dãy sau: 42,23,74,11,65,58
Dùng phương pháp xếp (insertion sort), sau 5 lần lặp dãy có dạng ?
(3)CHƯƠNG 3A – CON TRỎ
Bài 1. Cho đoạn code sau, chạy xong giá trị biến a b int a, b, *pa, *pb;
a = 1; b = 2; pa = &a; pb = &b; (*pa)++; (*pb)++; *pa = *pb;
A. a = , b = B. a = , b = C. a = , b = D. a = , b =
Bài 2. Cho đoạn code sau, chạy xong giá trị biến a b int a, b, *pa, *pb;
a = 1; b = 2; pa = &a; pb = &b; *pa = *pb * *pa; (*pb)++;
A. a = , b = B. a = , b = C. a = , b = D. a = , b =
Bài 3. Cho đoạn code sau, chạy xong giá trị biến a b int a, b, *pa, *pb;
a = 1; b = 2; pa = &a; pb = &b; *pa = (*pb)++; (*pa)++;
A. a = , b = B. a = , b = C. a = , b = D. a = , b =
Bài 4. Cho đoạn code sau, chạy xong giá trị biến a b int a, b, *pa, *pb, *pc;
a = 1; b = 2; pa = &a; pb = &b; pc = pa; *pc = *pb; *pc = (*pa)++ + *pb; A. a = , b = B. a = , b = C. a = , b = D. a = , b =
Bài 5. Cho đoạn code sau, chạy xong giá trị biến a b int a, b, *pa, *pb, *pc;
(4)Bài 6. Cho đoạn code sau, chạy xong giá trị biến a b int a, b, *pa, *pb;
a = 1; b = 2; pa = &a; pb = &b; pa = pb; (*pa)++ ; (*pb) ; *pa = *pb * *pa; A. a = , b = B. a = , b = C. a = , b = D. a = , b =
Bài 7. Cho đoạn code sau, chạy xong giá trị biến b int a[3], b, *pa, *pb, *pc;
a[0] = 1; a[1] = 2; a[2] = 3; b = 2;
pa = a; pb = &b; pc = &a[2]; (*pa)++ ; (*pb) ; *pb = *(pa+2) + *(pc-2);
A. b = B. b = C. b = D. b =
CHƯƠNG 3B – LINKED LIST, STACK, QUEUE
Bài 1a. Viết chương trình đếm số lần xuất phần tử x dslk cho trước int Count1a(node *pFirst, int x)
Bài 1b. Khai báo biến S kiểu stack biến Q kiểu queue Hãy vẽ hình biểu diễn chồng stack S
hàng đợi Q sau thực đoạn lệnh sau : Push(S,3);
Push(S,12); Enqueue(Q,5); Enqueue(Q,8); x = GetTop(S); Pop(S);
(5)Bài 2a. Viết chương trình in vị trí xuất phần tử x dslk cho trước void Print2a(node *pFirst, int x)
Bài 2b. Khai báo biến S1 S2 kiểu stack Vẽ hình biểu diễn S1, S2 sau thực đoạn lệnh sau : Push(S1,3);
Push(S1,5); Push(S1,7); Push(S1,9); Push(S1,11); Push(S1,13);
while (!EmptyStack(S1)){ x = GetTop(S1);
Pop(S1);
Push(S2,x); }
Bài 3a. Viết chương trình chèn phần tửx vào vị trí cuối dslk void Insert3a(node* &pFirst, int x)
Bài 3b. Khai báo biến S1 S2 kiểu stack Vẽ hình biểu diễn S1, S2 sau thực đoạn lệnh sau : Push(S1,3);
Push(S1,5); Push(S1,7); Push(S1,9); Push(S1,11); Push(S1,13);
while (!EmptyStack(S1)){
Pop(S1);
x = GetTop(S1);
Pop(S1);
(6)Bài 4a. Viết chương trình xố phần tử vị trí cuối dslk void Delete4a(node* &pFirst)
Bài 4b. Khai báo biến Q1, Q2, Q3 kiểu queue Vẽ hình biểu diễn Q3 sau thực đoạn lệnh sau : MakeNullQueue(Q3);
count = 0;
while (!EmptyQueue(Q1) && !EmptyQueue(Q2)){ count = count + 1;
x = Q1.Front->info; Dequeue(Q1);
y = Q2.Front->info; Dequeue(Q2);
if (y == count) Enqueue(Q3,x); }
Biết liệu lúc đầu Q1 Q2 sau (Front bên phải Rear bên trái) Q1 : 15 12 11 10 14 25 20 19 31 41 30 42
Q2 : 13 10
Bài 5a. Viết chương trình nối dslk vào cuối dslk void Join5a(node* &pList1, node* &pList2)
Bài 5b. Khai báo biến S kiểu stack biến Q kiểu queue Hãy vẽ hình biểu diễn chồng stack S
hàng đợi Q sau thực đoạn lệnh sau : Push(S,12);
Enqueue(Q,8); Push(S,3); Enqueue(Q,5); x = GetTop(S); Pop(S);
(7)Bài 6a. Viết chương trình tách dslk thành dslk : dslk chứa số chẵn dslk chứa số lẻ void Split6a(node *pList, node* &pEvenList, node* &pOddList)
Bài 6b. Khai báo biến S1 S2 kiểu stack Vẽ hình biểu diễn S1, S2 sau thực đoạn lệnh sau : Push(S1,3);
Push(S2,5); Push(S1,7); Push(S2,9); Push(S1,11); Push(S2,13);
while (!EmptyStack(S1)){ x = GetTop(S1);
Pop(S1);
Push(S2,x); }
Bài 7a. Viết chương trình xố phần tử số chẵn dslk cho trước void Delete7a(node* &pList)
Bài 7b. Khai báo biến S kiểu stack biến Q kiểu queue Hãy vẽ hình biểu diễn chồng stack S
hàng đợi Q sau thực đoạn lệnh sau : Enqueue(Q,5);
Enqueue(Q,8); Push(S,3); Push(S,12); x = GetTop(S); Pop(S);
Enqueue(Q,x); y = Q.Front->info; Push(S,2);
(8)CHƯƠNG – TREE
Bài Trình bày kết duyệt theo giải thuật sau:
a) Duyệt LNR:
_ b) Duyệt NLR:
_ c) Duyệt LRN:
_ d) Duyệt RNL:
_
Bài Trình bày kết duyệt theo giải thuật sau:
a) Duyệt LNR:
_ b) Duyệt NLR:
_ c) Duyệt LRN:
_
RNL
2
200
1
100
1
177
3
355
2
255 4422
2
200
1
100
5
5 1177
2
211
3
355
2
222 4422
2
(9)Bài Trình bày kết duyệt theo giải thuật sau:
a) Duyệt LNR:
_ b) Duyệt NLR:
_ c) Duyệt LRN:
_ d) Duyệt RNL:
_
Bài Trình bày kết duyệt theo giải thuật sau:
a) Duyệt LNR:
_ b) Duyệt NLR:
_ c) Duyệt LRN:
_ d) Duyệt RNL:
_
3
355
2
200
2
277
2
255
4
455
3
377
4
400
5
500
3
366
2
200
1
100
5
5 1177
1
155
3
355
2
222
3
300
4
422
1
(10)Bài Trình bày kết duyệt theo giải thuật sau:
a) Duyệt LNR:
_ b) Duyệt NLR:
_ c) Duyệt LRN:
_ d) Duyệt RNL:
_
Bài Trình bày kết duyệt theo giải thuật sau:
a) Duyệt LNR:
_ b) Duyệt NLR:
_ c) Duyệt LRN:
_ d) Duyệt RNL:
_
4
400
3
300
2
200 3355
5
533
5
500
4
455
2
255
5
555
4
433
4
400
3
300
2
200 3355
5
533
5
500
4
455
2
255
5
555
3
377
6