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; i
đ 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 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 1.0 - Xây dựng khuôn hình hàm min:
template ………, ngày ………. tháng ……. năm …… Lập trình hướng đối tượng 5/5