CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐÁP ÁN
ĐỀ THITỐTNGHIỆP CAO ĐẲNG NGHỀ KHOÁ3 (2009 - 2012)
NGHỀ: LẬPTRÌNHMÁY TÍNH
MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ
Mã đề thi: DA LTMT – LT23
Câu Nội dung Điểm
I. Phần bắt buộc
1 Cơ sở dữ liệu 2.5 điểm
A. Ngôn ngữ SQL 1.5 điểm
II. Select thisinh.masv,thisinh.hoten,thisinh.ngaysinh,lop.tenlop
From thisinh,lop,khoa
Where thisinh.malop=lop.malop and lop.makhoa=khoa.makhoa and
khoa.tenkhoa=”Công nghệ 1ircl tin”;
0.5 điểm
2. Select
thisinh.masv,thisinh.hoten,thisinh.ngaysinh,monthi.tenmonthi,ket
qua.diemthi
From thisinh,monthi,ketqua,lop
Where thisinh.masv=ketqua.masv and monthi.mamt=ketqua.mamt
and thisinh.malop=lop.malop and lop.makhoa=”CNTT” and
year(thisinh.ngaysinh) Between 1989 And 1992;
0.5 điểm
3. Select
thisinh.masv,thisinnh.hoten,monthi.tenmonthi,ketqua.diemthi
From thisinh,monthi,ketqua
Where thisinh.masv=ketqua.masv and monthi.mamt=ketqua.mamt
and ketqua.diemthi>=8;
0.5 điểm
1/7
B. Ngôn ngữ đại số 1 điểm
II. T1=thisinh*lop*khoa
∏
=
=
=
)sinh,,,(
")"(
)2(3
)1(2
tenlopngayhotenmasv
tinthongngheCongtenkhoa
TT
TT
σ
0.3 điểm
2. T1=thisinh*monthi*ketqua*lop
∏
=
=
=
),sinh,,,(
)19921989sinh)(^""(
)2(3
)1(2
diemthitenmonthingayhotenmasv
AndBetweenngayyearCNTTmakhoa
TT
TT
σ
0.3 điểm
3. T1=thisinh*monthi*ketqua
T2=
)1(
)8(
T
diemthi>=
σ
T3=
∏
),,,(
)2(
diemthitenmonthihotenmasv
T
0.4 điểm
2 Cấu trúc dữ liệu và giải thuật 2.5 điểm
1. Trình bày ý tưởng và giải thuật của thuật toán sắp xếp nổi bọt
(bubble-sort)
1 điểm
*) Ý tưởng:
- Ban đầu có một dãy khóa k1,k2,k3….kn chưa được sắp
xếp
- Duyệt toàn bộ dãy khóa, tại mỗi bước quét dãy khóa từ
cuối dãy, nếu gặp hai phần tử 2ien tiếp nghịch thế thì tiến
hành đổi chỗ.
- Trong quá trình sắp xếp phần tử nhẹ hơn sẽ nổi lên trên,
phần tử nặng hơn sẽ chìm xuống dưới.
0.5 điểm
*) Giải thuật:
void bubble-sort (mang a, int n)
{ int I,j,m,tg;
for (i=0; i<n; i++)
for (j=n-1; j>=i+1; j )
if (a[j] <a[j-1])
tg=a[j];
a[j]=a[j-1];
a[j-1]=tg; }
0.5 điểm
2. Viết chương trình tạo một danh sách 2irc kết n nút trong đó
mỗi nút là nhân viên gồm các 2ircl tin: họ tên, tuổi, thâm niên.
Duyệt danh sách trên và đưa ra danh sách và số lượng các nhân
viên có thâm niên >10 và tuổi < 40.
1.5 điểm
typedef struct NV
{ char ten[10];
int tuoi, tn;
0.3 điểm
2/7
};
typedef struct tagNode
{ HS infor;
struct tagNode *link; }
Node ;
Node *head, *p, *moi ;
int n ;
3/7
void nhap( ) { HS tg ;
int I ;
head = NULL;
for ( i=0; i<n; i++){
moi = (Node *) malloc (sizeof(Node));
printf ( “ Nhap thong tin cho nut moi:”);
printf ( “ Nhap thong tin ten cua nhan vien:”);
fflush(stdin); gets ( tg.ten); fflush(stdin);
printf ( “ Nhap thong tin tuoi va tham nien cua nhan
vien moi :”) ; scanf(“%d%d”, &tg.tuoi, &tg.tn) ;
moi -> infor =tg;
if (head ==NULL){
head = moi ;
p=moi ;
p -> link =NULL ; }
else{
p -> link = moi ;
p= moi ;
p -> link =NULL; } }}
0.3 điểm
void duyet() {
Node *p;
p=head;
printf ( “ danh sach nhan vien vua nhap la :”) ;
while ( p !=NULL) {
printf(« \n \t %s \t%d \t%d ”, p->infor.ten, p-
>infor.tuoi, p->infor.tn) ;
p=p-> link ; } }
0.3 điểm
void duyet2() {
Node *p;
p=head;
printf ( “ danh sach nhan vien co tham nien >10 va co tuoi <
40 la:”);
while ( p !=NULL) {
if ((p -> infor.tuoi >10)&&( p -> infor.tn >10))
printf(« \n \t %s \t%d \t%d ”, p->infor.ten, p-
>infor.tuoi, p->infor.tn) ;
p=p-> link ; }}
0.3 điểm
void main() { clrscr() ; 0.3 điểm
4/7
printf ( ” nhap so nut ”) ;scanf (“ %d”, &n);
nhap();
duyet();
duyet2();
getch(); }
5/7
3 Lậptrình hướng đối tượng 2 điểm
- Phương pháp khai báo xây dựng hàm bạn cho nhiều lớp:
class B; /* Khai báo dẫn hướng lớp B*/
class A
{
private:
< Khai báo các thành phần riêng lớp A>;
public:
…
friend <Kiểu giá trị của hàm> <Tên hàm bạn>(< Tham số
hàm>);
};
class B
{
private:
< Khai báo các thành phần riêng lớp B>;
public:
…
friend <Kiểu giá trị của hàm> <Tên hàm bạn>(< Tham số
hàm>);
};
/* xây dựng hàm bạn */
<Kiểu giá trị của hàm> <Tên hàm bạn>(<Tham số hàm>)
{
< Thân hàm bạn>;
}
1 điểm
class rectangle;
class 6ircle
{
private:
int x,y;
float r;
public:
…
float getarea()
{
return 3.14*r*r;
}
friend float totalarea(rectangle o1,circle o2);
};
class circle {
private:
int x,y;
float a,b;
public:
1 điểm
6/7
…
float getarea() {
return a*b;
}
friend float totalarea(rectangle o1,circle o2);
};
float totalarea(rectangle o1,circle o2)
{
return (o1.getarea()+o2.getarea());
}
Cộng I 7 điểm
II. Phần tự chọn, do trường biên soạn
1
2
…
Cộng II
Tổng cộng (I+II)
………, ngày ………. tháng ……. năm ……
7/7
. lập – Tự do – Hạnh phúc
ĐÁP ÁN
ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ 3 (2009 - 2012)
NGHỀ: LẬP TRÌNH MÁY TÍNH
MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ
Mã đề thi: .
thisinh.masv,thisinh.hoten,thisinh.ngaysinh,monthi.tenmonthi,ket
qua.diemthi
From thisinh,monthi,ketqua,lop
Where thisinh.masv=ketqua.masv and monthi.mamt=ketqua.mamt
and thisinh.malop=lop.malop