CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ĐÁP ÁN ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ 2 (2008 - 2011) NGHỀ: Lập trình máy tính MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ Mã đề thi: DA LTMT - LT27 Nội dung

Câu

Điểm

1 Cơ sở dữ liệu

2.5

A. Ngôn ngữ SQL

1. Select giaovien.hoten, Count(lop.malop)

0.5

From lop, giaovien Where lop.magv=giaovien.magv Group by giaovien.hoten;

0.5 2. Select * From hocvien Where ho=”Nguyễn”;

3. Select hocvien.ho,hocvien.ten,bienlai.diem,bienlai.kqua, bienlai.xeploai

0.5

From hocvien,bienlai Where hocvien.mahv=bienlai.mahv And bienlai.tiennop=0

T

1

B. Ngôn ngữ đại số

Giaovien

Lop

giaovien .

magv

lop

.

magv

T )1(

T

2

,

)

(

(

hoten

count

malop

1. 0.3

)

"

T

1

0.3 2. T= (

   ho Nguyen Hocvien ") (  hocvien

bienlai

hocvien

.

bienlai

.

mahv

T

2

 mahv T )1(

)0

(

tiennop

3.

0.4

T ( 2)

(

ho ten diem kqua xeploai ,

,

,

,

)

T3=

   

1/5

2 Cấu trúc dữ liệu & giải thuật

2.5

1. Trình bày giải thuật sắp xếp đổi chỗ trực tiếp (Interchange sort) trên dãy số nguyên n phần tử *) Ý tưởng 0.5

- Ban đầu có một dãy khóa k1,k2,k3....kn chưa được sắp xếp - Chương trình thực hiện 2 vòng lặp, vòng lặp i chạy trước và vòng lặp j

đ i ể m chạy ngay sau i, nếu phát hiện một nghịch thế thì tiến hành đổi chỗ ngay. Như vậy sau mỗi bước của vòng lặp i thì phần tử nhỏ nhất (lớn nhất) được đưa lên vị trí thứ i

*) Giải thuật: Void Interchange-sort (mang a, int n) {

0.5

int i,j,tg; for (i=0; ia[j]) {

đ i ể m

tg=a[i]; a[i]=a[j]; a[j]=tg;

}

}

0.4

2. Viết chương trình tạo một danh sách liên kết đơn, …

typedef struct SP{ char ten[10]; char ma[5]; int soluong; float giaban, thanhtien;

}; typedef struct tagNode{

SP infor; struct tagNode *link;

}Node; Node *head, *p, *moi; int n;

2/5

0.4

void nhap( ){

SP tg ; int i ; head = NULL; for ( i=0; i

printf ( “ Nhap thong tin cho nut moi:”); printf ( “ Nhap thong tin ten san pham:”); fflush(stdin); gets ( tg.ten); fflush(stdin); printf ( “ Nhap ma san pham:”); fflush(stdin); gets ( tg.ma); fflush(stdin); printf ( “ Nhap so luong san pham:”); scanf(“%d”, &tg.soluong); printf ( “ Nhap giaban san pham:”); scanf(“%f”, &tg.giaban); tg.thanhtien=tg.soluong * tg.dongia; moi -> infor =tg; if (head ==NULL){

head = moi; p=moi; p -> link =NULL;

} else{

p -> link = moi; p= moi; p -> link =NULL;

}}}

3/5

0.4

void sapxep() { SP tg; p=head; while (p !=NULL){ q=p->link; while (q!=NULL){

if(q->infor.thanhtien infor.thanhtien){

tg=q->infor; q->infor =p->infor; p->infor =tg;

} q=q->link;

} p=p->link;

}

0.4

} float maxthanhtien() {

Node *p; float max; p=head; max=p->infor.thanhtien; while ( p !=NULL) {

if ((p -> infor.thanhtien>max) max=p->infor.thanhtien ; p=p-> link ;

0.1

} return max;

} void main(){ clrscr() ; printf ( ” nhap so nut ”) ;scanf (“ %d”, &n); nhap(); sapxep(); prinft(“ thanh tien cao nhat la %f”, maxthanhtien()); getch();

}

4/5

4

2.0

1.0

- Khai báo cấu trúc khuôn hình hàm: template < class > (< Tham số>) { < Thân khuôn hình hàm>; }

1.0

- Xây dựng khuôn hình hàm min: template t min(t a, t b) { if(a

………, ngày ………. tháng ……. năm ……

Lập trình hướng đối tượng

5/5