Tải bản đầy đủ (.doc) (6 trang)

Đáp án đề thi tốt nghiệp cao đẳng nghề khóa 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: DA LTMT-LT37

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (69.07 KB, 6 trang )

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ã đề số: DA LTMT – LT37
Hình thức thi: Viết tự luận
Thời gian: 150 phút (Không kể thời gian giao đề thi)
ĐÁP ÁN
Câu 1: ( 3.0 điểm)
Hướng dẫn chấm
Nội dung

TT
01 Trả lời các câu truy vấn sau bằng ngôn ngữ SQL:
Danh sách khách hàng (MAKH, TENKH)
lắp đặt điện thoại loại “Dây cáp”.
Select KHACHHANG.MAKH, KHACHHANG.TENKH
from KHACHHANG, DIENTHOAI
where KHACHHANG.MAKH = DIENTHOAI.MAKH
and DIENTHOAI.LOAIDT = ‘Dây cáp’

Điểm

a)

Với mỗi dịch vụ có khách hàng đăng ký, hãy
cho biết mã dịch vụ, tên dịch vụ và tổng số điện thoại đăng
ký dịch vụ đó.


Select DICHVU.MADV, DICHVU.TENDV, count(SODT) as
SodienthoaiDK
from DICHVU, DANGKY
where DICHVU.MADV = DANGKY.MADV
group by DICHVU.MADV, DICHVU.TENDV

1.0 điểm

b)

1.0 điểm

Trả lời câu truy vấn sau bằng ngôn ngữ đại số quan hệ:
c)
Liệt kê các số hợp đồng (SOHD) có đăng ký
dịch vụ “Dịch vụ 108”.

1.0 điểm

Trang:1/ 6


Câu 2: ( 2.0 điểm)
TT
Nội dung
01 Tính thừa kế là gì
Tính thừa kế là việc sử dụng lại các đặc tính của lớp cơ sở
trong các lớp dẫn xuất. Với tính thừa kế, để xây dựng các
đối tượng mới, chỉ cần thêm các đặc tính cần thiết vào lớp
dẫn xuất.

Các loại thừa kế
- Thừa kế đơn
- Thừa kế bội
- Thừa kế ảo
Ví dụ
1. Thừa kế đơn:
Lớp cơ sở ANIMAL có lớp dẫn xuất là ELEPHANT:
class ANIMAL {
public:
void Eat();
void Sleep();
void Breathe();
}
class ELEPHANT : public ANIMAL {
public:
void Trumpet();
void Stampede();
}
2. Thừa kế bội:
Lớp xe đạp BICYCLE kế thừa từ hai lớp khung xe
FRAME và bánh xe WHEEL
class FRAM{
public:
// các chi tiết tạo nên khung xe
};
class WHEEL{
public:
// các chi tiết tạo nên bánh xe
};
class BICYCLE:FRAME,WHEEL{

// và các chi tiết khác
};
Trang:2/ 6

Điểm
0.25 điểm

0.25 điểm

0.5điểm

0.5điểm


3. Thừa kế ảo:
Lớp B,C thừa kế ảo lớp A

0.5điểm

class A {
public:
// các thuộc tính của A
};
class B: public virtual A {
// …
};
class C: public virtual A {
// …
};
Câu 3: ( 2.0 điểm)

TT
Nội dung
1. Trình bày ý tưởng và giải thuật của thuật toán sắp xếp
trộn (merge-sort)
*) Ý tưởng:
- Ban đầu có hai dãy khóa a và b đã được sắp xếp
- Trộn hai dãy a, b thành một dãy c vẫn được sắp xếp
- Mỗi lần đưa một phần tử vào dãy mới ta phải so sánh
2 phần tử đầu 2 dãy khóa con, nếu thấy khóa nào nhỏ
hơn ta đưa phần tử đó vào dãy khóa mới.
Thực hiện quá trình trên cho đến khi một trong hai dãy rỗng,

Điểm
0.5 điểm

0.25 điểm

khi đó ta chỉ việc đưa tồn bộ số phần tử của dãy còn lại vào
sau dãy mới.
*) Giải thuật:
void merge-sort (mang a, mang b, mang c , int n, int m)
{
int i=0, j=0, k=0, tg;
while ((i{
if (a[i]{
c[k]=a[i];
i++;


Trang:3/ 6

0.25 điểm


}
Else
{
z[k]=b[j];
j++;
}
k++;
}
If (i>=n)
{
for (i=j; i{
z[k]=b[i];
k++;
}
}
else
for (j=i; j{
z[k]=a[j];
k++;
}
}

2. Tạo danh sách liên kết trong đó mỗi nút là thơng tin các

mặt hàng, mặt hàng bao gồm: Tên hàng, đơn giá, số lượng,
thành tiền (thành tiền = đơn giá * số lượng)
- Khai báo cấu trúc dữ liệu cho danh sách
- Viết hàm nhập thơng tin danh sách các mặt hàng từ
bàn phím
- Viết hàm duyệt và hiển thị danh sách
- Viết hàm sắp xếp lại danh sách theo thứ tự tăng dần

1.5 điểm

của thành tiền.
typedef struct MH
{ char ten[10];
float dongia, thanhtien;
int soluong;
};
typedef struct tagNode
{ HS infor;
struct tagNode *link;

0.3 điểm

Trang:4/ 6


}
Node;
Node *head, *p, *moi;
int n;
void nhap( )

{
HS tg ;
int i ;
head = NULL;
for ( i=0; i{
moi = (Node *) malloc (sizeof(Node));
printf ( “ Nhap thong tin cho cac mat hang:”);
printf ( “ Nhap thong tin ten mat hang:”); fflush(stdin);
gets ( tg.ten); fflush(stdin);
printf ( “ Nhap thong tin so luong va don gia cua mat
hang:”); scanf(“%d%f”, &tg.soluong, &tg.dongia);
tg.thanhtien=tg.dongia*tg.soluong;
moi -> infor =tg;
if (head ==NULL)
{
head = moi;
p=moi;
p -> link =NULL;
}
else
{
p -> link = moi;
p= moi;
p -> link =NULL;
}
}
}
void duyet()
{

Node *p;
p=head;
printf ( “ danh sach cac mat hang vua nhap la:”);
while ( p !=NULL)
{
printf(« \n \t %s \t%d \t%f \t %f ”, p->infor.ten, p-

Trang:5/ 6

0.3 điểm

0.3 điểm


>infor.soluong, p->infor.dongia, p->thanhtien) ;
p=p-> link ;
}
}
void sapxep()
{
int tg;
p=head;
while (p !=NULL)
{
q=p->link;
while (q!=NULL)
{
if(q->infor.thanhtien infor.thanhtien)
{
tg=q->infor.thanhtien ;

q->infor.thantien =p->infor.thanhtien;
p->infor =tg;
}
q=q->link;
}
p=p->link;
}
}
void main()
{
clrscr() ;
printf ( ” nhap so nut ”) ;scanf (“ %d”, &n);
nhap();
duyet();
sapxep();
printf(“ danh sach cac mat hang sau sap xep la:”);
duyet();
getch();
}

Trang:6/ 6

0.3 điểm

0.3 điểm



×