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Ề KHỐ 3 (2009 - 2012)
NGHỀ: LẬP TRÌNH MÁY TÍNH
MƠN THI: LÝ THUYẾT CHUN MƠN NGHỀ
Mã đề thi: DA LTMT - LT27
Câu
I. Phần bắt buộc
1 Cơ sở dữ liệu
Nội dung
Điểm
2.5
A. Ngôn ngữ SQL
1. Select giaovien.hoten, Count(lop.malop)
From lop, giaovien
Where lop.magv=giaovien.magv
Group by giaovien.hoten;
2. Select * From hocvien
Where ho=”Nguyễn”;
3. Select hocvien.ho,hocvien.ten,bienlai.diem,bienlai.kqua, bienlai.xeploai
From hocvien,bienlai
Where hocvien.mahv=bienlai.mahv And bienlai.tiennop=0
B. Ngôn ngữ đại số
1.
0.5
0.5
T 1 Giaovien
Lop
0.3
giaovien. magv lop. magv
T 2 ( hoten, count ( malop ) (T 1)
2. T= ( ho " Nguyen ") ( Hocvien)
3.
0.5
0.3
T 1 hocvien
bienlai
hocvien .mahv bienlai . mahv
T 2 ( tiennop0 ) (T 1)
0.4
T3= �( ho ,ten ,diem ,kqua , xeploai ) (T 2)
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
- 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 chạy
0.5 điểm
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)
{
int i,j,tg;
for (i=0; i
for (j=i+1; j
if (a[i] >a[j])
0.5 điểm
{
tg=a[i];
a[i]=a[j];
a[j]=tg;
}
}
2. Viết chương trình tạo một danh sách liên kết đơn, …
typedef struct SP{
0.4
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
void nhap( ){
SP tg ;
int i ;
head = NULL;
for ( i=0; i
{ moi = (Node *) malloc (sizeof(Node));
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;
}
}
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 ;
}
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
0.4
0.4
0.1
4
Lập trình hướng đối tượng
- Khai báo cấu trúc khn hình hàm:
template < class <tên dữ liệu tổng quát>> <kiểu dữ liệu hàm> hàm>(< Tham số>)
{
< Thân khn hình hàm>;
}
II.
1
2
….
- Xây dựng khn hình hàm min:
template <class t> t min(t a, t b)
{
if(areturn a;
else
return b;
}
void main()
{
int a=10.b=-120;
cout<<” Min 2 so nguyen=”<float x=-157.24,y=77.56;
cout<<” Min 2 so thuc=”<}
Cộng (I)
Phần tự chọn
Cộng (II)
Tổng cộng (I + II)
………, ngày ………. tháng ……. năm ……
5/5
2.0
1.0
1.0