You are on page 1of 9

Trang 1

B GIO DC V O TO
TRNG I HC CU LONG
CNG HO X HI CH NGHA VIT NAM
c lp T do Hnh phc
P N THI TT NGHIP
NGNH: CNG NGH THNG TIN
MN THI: MN C S
Thi gian: 180 pht

PHN 1. K THUT LP TRNH (5 im)
Cu 1. Cho mng s nguyn A gm n phn t thc hin cc yu cu sau:
a. Vit th tc nhp, xut mng 1 chiu A. (0.5)
/ / Th t c nhp mng
void I nput (int A[ ] , int n) {
f or (int i = 0; i<n ; i++) {
pr int f ("Phan t u %d =",i);
scanf ("%d", &A[ i] );
}
}
/ / Th t c xut mng
void Out put (int A[ ] , int n) {
f or (int i = 0; i<n ; i++)
pr int f ("%d\ t ",A[ i] );
}
b. Vit hm tr v s nguyn tnh tng tt c cc phn t trong mng A. (0.25)
long int Sum(int A[ ] , int n) {
int t emp = 0;
f or (int i = 0; i<n ; i++)
t emp+=A[ i] ;
r et ur n t emp;
}
c. Vit hm tr v s nguyn nh nht trong mng A. (0.25)
int Min(int A[ ] , int n) {
int t emp = A[ 0] ;
f or (int i = 1; i<n ; i++)
if (t emp>A[ i] )
t emp = A[ i] ;
r et ur n t emp;
}
d. Vit hm tr v s nguyn tnh tch cc phn t c gi tr l trong mng A. (0.25)
int Pr oduct (int A[ ] , int n) {
int t emp = 1, k = 0;
Trang 2
f or (int i = 0; i<n ; i++)
if (A[ i] %2) {
t emp* = A[ i] ;
k = 1;
}
if (k)
r et ur n t emp;
else
r et ur n 0;
}
e. Vit hm tr v s nguyn tnh tng tt c cc s nguyn t trong mng A. (0.5)
/ / ham kiem t r a nguyen t o
char Pr imeQ(int n) {
f or (int i = 2; i<= sqr t (n) ; i++)
if (n%i==0)
r et ur n 0;
r et ur n 1;
}
/ / t ong cac so nguyen t o
int SumPr ime(int A[ ] , int n) {
int t emp = 0;
f or (int i = 0; i<n ; i++)
if (Pr imeQ(A[i] ))
t emp+=A[i];
r et ur n t emp;
}
f. Vit hm tr v s nguyn m s ln xut hin ca phn t x trong mng A. (0.25)
int Count (int A[ ] , int n, int x) {
int t emp = 0;
f or (int i = 0; i<n ; i++)
if (A[ i] == x)
t emp++;
r et ur n t emp;
}
g. Vit hm tr v s nguyn tnh tng cc phn t thuc dy con dng di nht trong
mng A. (0.5)
Tng dy con chung di nht v ln nht.
int SumSubAr r ay(int A[ ] , int n) {
int Count = 0, Count 1 = 0;
int Temp = 0, Temp1 = 0;
f or (int i = 0; i<n; i++)
if (A[ i] >=0) {
Trang 3
Count ++;
Temp+=A[ i] ;
}
else {
if (Count >Count 1) {
Temp1 = Temp;
Count 1 = Count ;
}
if (Count == Count 1 && Temp1<Temp)
Temp1 = Temp;
Temp = 0;
Count = 0;
}
if (Count >Count 1 | | (Count == Count 1 && Temp1<Temp))
Temp1 = Temp;
r et ur n Temp1;
}
Cu 2. Cho hm qui tnh t hp chp k ca n phn t c nh ngha nh sau:
( )
( ) ( )

+
= v =
=
k n C k n C
k n k
k n C
, 1 1 , 1
0 , 1
,
a. V cy m t cho qu trnh thc hin quy vi n = 4, k = 3. (0.5)

b. Tnh gi tr ti n = 4, k = 2. (0.5)
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 6 1 , 1 0 , 1 2 2 2 , 2 1 , 2 1 , 2 0 , 2 2 , 3 1 , 3 2 , 4 = + + = + + + = + = C C C C C C C C C
c. Vit chng trnh tnh gi tr ca ( ) k n C , . (0.5)
# include <conio.h>
# include <st dio.h>
/ * C(n,k)=C(n-1,k-1)+c(n-1,k) dk: 0<k<n; c(n,0)=c(n,n)=1* /
long int C(int n, int k) {
if (n==k | | k==0)
r et ur n 1;
else
r et ur n C(n-1,k-1)+C(n-1,k);
}
/ * Chuong t r inh chinh* /
Trang 4
void main() {
clr scr ();
int n, k;
pr int f ("n = ");
scanf (%d,&n);
pr int f ("k = ");
scanf (%d,&k);
pr int f ("C(%d,%d) = %d",n,k,C(n,k));
get ch();
}
Cu 3. S dng thut ton Bubble Sort thc hin cc yu cu sau:
a. Vit th tc sp xp mng A gm n s nguyn theo t t tng dn. (0.5)
/ / hoan vi 2 phan t u
void Swap(int &a, int &b) {
int t emp = a;
a = b;
b = t emp;
}
/ / sap xep cac phan t u t heo t hu t u t ang dan
void BubbleSor t (int A[ ] , int n) {
f or (int i = 0; i <n-1; i++)
f or (int j = n-1; j >i; j --)
if (A[ j ] <A[ j -1] )
Swap(A[ j -1] ,A[ j ] );
}
b. Sp xp danh sch sau theo th t tng dn: (0.5)
6 11 1 16 2 13 1 3 8 7
Th hin thut ton Bubble Sort tng bc theo dng bng
Bc 0 6 11 1 16 2 13 1 3 8 7
Bc 1 1 6 11 1 16 2 13 3 7 8
Bc 2 1 6 11 2 16 3 13 7 8
Bc 3 2 6 11 3 16 7 13 8
Bc 4 3 6 11 7 16 8 13
Bc 5 6 7 11 8 16 13
Bc 6 7 8 11 13 16
Bc 7 8 11 13 16
Bc 8 11 13 16
Bc 9 13 16
Kt qu 1 1 2 3 6 7 8 11 13 16
Danh sch c sp xp gim dn l {1,1,2,3,6,7,8,11,13,16}
Trang 5
PHN 2. CU TRC D LIU (5 im)
Cu 4. (1.) S dng thut ton Heap Sort sp xp theo th t tng dn cho danh sch sau:
7 4 8 1 22 14 9
M t cy sp xp cho danh sch trn theo thut ton Heap Sort:





Trang 6


Danh sch c sp xp l {1,4,7,8,9,14,22}
Cu 5. Cho biu thc ( ) ( ) ( ) k g f d d c b c a E * * * + + = thc hin cc yu cu sau:
a. V cy biu thc. (0.5)

b. Duyt tin t v hu t. (0.5)
- Biu thc duyt tin t (NLR): * + a c b c * + d * d f g k
- Biu thc duyt hu t (LRN): a c b + c * d d f g * + k *
Cu 6. Cho cu trc d liu ci t cy tm kim nh phn nh sau:
t ypedef st ruct Node {
int info;
Node * Left ;
Node * Right ;
} ;
t ypedef Node * Tree;
Thc hin cc yu cu sau:
a. Vit hm tr v s nguyn m s nt trn cy T. (0.25)
Trang 7
int Count Node(Tr ee T) {
if ( T == NULL)
r et ur n 0;
else
r et ur n 1 + Count Node(T->Lef t ) + Count Node(T->Right );
}
b. Vit hm tr v s nguyn tm nt c kha ln nht trn cy T. (0.25)
int MaxNode(Tr ee T) {
if ( T->Right == NULL)
r et ur n T->inf o;
else
r et ur n MaxNode(T->Right );
}
c. Vit hm quy tm kim nh phn phn t c kha x trn cy T. (0.25)
char Sear ch(Tr ee T,int x) {
if (T==NULL)
r et ur n 0;
else
if (T->inf o == x)
r et ur n 1;
else
if (x >T->inf o)
r et ur n Sear ch(T->Right ,x);
else
r et ur n Sear ch(T->Lef t ,x);
}
d. Vit hm tr v s nguyn tnh tng gi tr nt l trn cy T. (0.25)
int SumLeaf Node(Tr ee T) {
if (T == NULL)
r et ur n 0;
else
if (T->Lef t == NULL && T->Right == NULL)
r et ur n T->inf o;
else
r et ur n SumLeaf Node(T->Lef t ) + SumLeaf Node(T->Right );
}
Cu 7. Cho bng t vng:
anh chi em cha me chu bac em di
Tng ng vi bng kha k t:
Kha k t 1 2 3 4 5 6 7 8 9 10
K t a e i u b c d h m n
Trang 8
Cho hm bm vi kha bm ( ) B x x H k % = = . Trong , x l tng kha ca t vng v B l
s phn t trong bng bm.
a. Thc hin vic bm ng cho bng bm T vi vi s t vng 5 = B . (0.5)
Bng kho bm ca t vng:
T vng anh chi em cha me chu bac em di
Tng kho tv 19 17 11 15 11 18 12 11 10
Kho bm ( ) B x x H k % = = 4 2 1 0 1 3 2 1 0
Th hin bng bm ng T trn mng 1 chiu:
0 cha
1 em
2 chi
3 me
4 anh
b. Thc hin vic bm m cho bng bm T vi vi s dng lu tr 4 = B . (0.5)
Bng kho bm ca t vng:
T vng anh chi em cha me chu bac em di
Tng kho tv 19 17 11 15 11 18 12 11 10
Kho bm ( ) B x x H k % = = 3 1 3 3 3 2 0 3 2
Th hin bng bm m T trn danh sch lin kt:

Cu 8. Cho th v hng G nh sau:

a. Hy biu din th G trn ma trn k. (0.5)
Trang 9
|
|
|
|
|
|
|
|
.
|

\
|
=
0 1 1 0 0 0
1 0 1 1 1 0
1 1 0 0 1 0
0 1 0 0 0 1
0 1 1 0 0 1
0 0 0 1 1 0
A
b. S dng thut ton tm kim theo chiu su v cy tm kim mi ng i t nh 1
n nh 6 ca th G. (0.5)
Biu din cy tm kim cho th G tm kim mi ng i t 1 n 6:

ng i t 1 n 6 l:
1 2 4 5 6
1 2 4 6
1 2 5 4 6
1 2 5 6
1 3 5 2 4 6
1 3 5 4 6
1 3 5 6

------------------
Ht

You might also like