CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM<br />
Độc lập – Tự do – Hạnh phúc<br />
<br />
ĐÁP ÁN<br />
ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ II (2008 - 2011)<br />
NGHỀ: LẬP TRÌNH MÁY TÍNH<br />
MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ<br />
Mã đề số: DA LTMT - LT08<br />
Hình thức thi: Viết tự luận<br />
Thời gian: 150 phút (Không kể thời gian giao đề thi)<br />
ĐÁP ÁN<br />
I. PHẦN BẮT BUỘC (7 điểm)<br />
Câu 1: ( 3.0 điểm)<br />
Hướng dẫn chấm<br />
TT<br />
Nội dung<br />
01 Trả lời các câu truy vấn sau bằng ngôn ngữ SQL:<br />
a) Danh sách khách hàng (MAKH, TENKH) lắp đặt điện<br />
thoại loại “Dây cáp”.<br />
Select KHACHHANG.MAKH, KHACHHANG.TENKH<br />
from KHACHHANG, DIENTHOAI<br />
where KHACHHANG.MAKH = DIENTHOAI.MAKH<br />
and DIENTHOAI.LOAIDT = ‘Dây cáp’<br />
b) Với mỗi dịch vụ có khách hàng đăng ký, hãy cho biết mã<br />
dịch vụ, tên dịch vụ và tổng số điện thoại đăng ký dịch vụ<br />
đó.<br />
Select DICHVU.MADV, DICHVU.TENDV, count(SODT) as<br />
SodienthoaiDK<br />
from DICHVU, DANGKY<br />
where DICHVU.MADV = DANGKY.MADV<br />
group by DICHVU.MADV, DICHVU.TENDV<br />
<br />
Điểm<br />
<br />
1.0 điểm<br />
<br />
1.0 điểm<br />
<br />
Trả lời câu truy vấn sau bằng ngôn ngữ đại số quan hệ:<br />
c) Liệt kê các số hợp đồng (SOHD) có đăng ký dịch vụ “Dịch<br />
vụ 108”.<br />
<br />
1.0 điểm<br />
<br />
Trang:1/ 7<br />
<br />
Câu 2: ( 2.0 điểm)<br />
TT<br />
Nội dung<br />
01 Tính thừa kế là gì<br />
Tính thừa kế là việc sử dụng lại các đặc tính của lớp cơ sở<br />
trong các lớp dẫn xuất. Với tính thừa kế, để xây dựng các<br />
đối tượng mới, chỉ cần thêm các đặc tính cần thiết vào lớp<br />
dẫn xuất.<br />
Các loại thừa kế<br />
- Thừa kế đơn<br />
- Thừa kế bội<br />
- Thừa kế ảo<br />
Ví dụ<br />
1. Thừa kế đơn:<br />
Lớp cơ sở ANIMAL có lớp dẫn xuất là ELEPHANT:<br />
class ANIMAL {<br />
public:<br />
void Eat();<br />
void Sleep();<br />
void Breathe();<br />
}<br />
class ELEPHANT : public ANIMAL {<br />
public:<br />
void Trumpet();<br />
void Stampede();<br />
}<br />
2. Thừa kế bội:<br />
Lớp xe đạp BICYCLE kế thừa từ hai lớp khung xe<br />
FRAME và bánh xe WHEEL<br />
class FRAM{<br />
public:<br />
// các chi tiết tạo nên khung xe<br />
};<br />
class WHEEL{<br />
public:<br />
// các chi tiết tạo nên bánh xe<br />
};<br />
class BICYCLE:FRAME,WHEEL{<br />
// và các chi tiết khác<br />
};<br />
Trang:2/ 7<br />
<br />
Điểm<br />
0.25 điểm<br />
<br />
0.25 điểm<br />
<br />
0.5điểm<br />
<br />
0.5điểm<br />
<br />
3. Thừa kế ảo:<br />
Lớp B,C thừa kế ảo lớp A<br />
<br />
0.5điểm<br />
<br />
class A {<br />
public:<br />
// các thuộc tính của A<br />
};<br />
class B: public virtual A {<br />
// …<br />
};<br />
class C: public virtual A {<br />
// …<br />
};<br />
<br />
Câu 3: ( 2.0 điểm)<br />
TT<br />
Nội dung<br />
1. Trình bày ý tưởng và giải thuật của thuật toán sắp xếp<br />
trộn (merge-sort)<br />
*) Ý tưởng:<br />
- Ban đầu có hai dãy khóa a và b đã được sắp xếp<br />
- Trộn hai dãy a, b thành một dãy c vẫn được sắp xếp<br />
- Mỗi lần đưa một phần tử vào dãy mới ta phải so sánh<br />
2 phần tử đầu 2 dãy khóa con, nếu thấy khóa nào nhỏ<br />
hơn ta đưa phần tử đó vào dãy khóa mới.<br />
Thực hiện quá trình trên cho đến khi một trong hai dãy rỗng,<br />
<br />
Điểm<br />
0.5 điểm<br />
<br />
0.25 điểm<br />
<br />
khi đó ta chỉ việc đưa toàn bộ số phần tử của dãy còn lại vào<br />
sau dãy mới.<br />
*) Giải thuật:<br />
void merge-sort (mang a, mang b, mang c , int n, int m)<br />
{<br />
int i=0, j=0, k=0, tg;<br />
while ((i