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

đáp án đề thi lí thuyết tốt nghiệp khóa 3 - lập trình máy tính - mã đề thi ltmt - lt (22)

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 (112.49 KB, 5 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Ề 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: DA LTMT - LT22
1/5
Câu Nội dung Điểm
I. Phần bắt buộc 7 điểm
1 Cơ sở dữ liệu 2.5 điểm
A. Ngôn ngữ SQL 1.5 điểm
1. Select nhanvien.manv,nhanvien.hoten
From nhanvien,phongban,chucvu
Where nhanvien.mapb=phongban.mapb and
nhanvien.macv=chucvu.macv and phongban.tenpb=”Kinh
doanh” and chucvu.luongcaonhat Between 300 And 500;
0.5 điểm
2. Select manv,hoten,ngaysinh, nu,luong
From nhanvien
Where mapb In(10,30,50)
Order by mapb ASC,luong DESC ;
0.5 điểm
3. Selectt Nhanvien.manv,nhanvien.hoten,nhanvien.luong*12
AS luongcanam
From nhanvien,chucvu
Where nhanvien.macv=chucvu.macv and chucvu.tencv=”Trưởng
phòng”
0.5 điểm
B. Ngôn ngữ đại số 1 điểm
1. T1=Nhanvien*Phongban*chucvu



=
=
=
),(
)500300^""(
)2(3
)1(2
hotenmanv
AndBetweenatluongcaonhdoanhKinhtenpb
TT
TT
σ
0.3 điểm
2. T1 =
)(
))50,30,10((
Nhanvien
Inmapb
σ
T2 =

),sinh,,,(
)1(
luongnungayhotenmanv
T
0.3 điểm
3. T1=nhanvien*chucvu
T2 =
)1(

")"(
T
PhongTruongtencv=
σ
T3 =

)12*,,(
)2(
luonghotenmanv
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 trộn
(merge-sort)
1 điểm
*) Ý 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, khi
đó ta chỉ việc đưa toàn bộ số phần tử của dãy còn lại vào sau dãy
mới.
0.5 điểm
*) 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<n)&&(j<m)) {

if (a[i]<b[j]) {
c[k]=a[i];
i++;
}
Else {
z[k]=b[j];
j++; }
k++; }
If (i>=n) {
for (i=j; i<m;i++) {
z[k]=b[i];
k++; }
}
else
for (j=i; j<n;j++)
{
z[k]=a[j];
k++;
}
}
0.5 điểm
2/5
2. Tạo danh sách liên kết trong đó mỗi nút là thong 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 của

thành tiền.
1.5 điểm
typedef struct MH
{ char ten[10];
float dongia, thanhtien;
int soluong; };
typedef struct tagNode
{ HS infor;
struct tagNode *link; }
Node;
Node *head, *p, *moi;
int n;
0.3 điểm
void nhap( ) {
HS tg ;
int i ;
head = NULL;
for ( i=0; i<n; 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; } } }
0.3 điểm
3/5
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-
>infor.soluong, p->infor.dongia, p->thanhtien) ;
p=p-> link ;
}
}
0.3 điểm
void sapxep()
{
int tg;
p=head;
while (p !=NULL)
{
q=p->link;
while (q!=NULL)
{
if(q->infor.thanhtien <p->infor.thanhtien)
{
tg=q->infor.thanhtien ;

q->infor.thantien =p->infor.thanhtien;
p->infor =tg;
}
q=q->link;
}
p=p->link;
}
}
0.3 điểm
4/5
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();
}
0.3 điểm
3 Lập trình hướng đối tượng 2 điểm
- Hàm Constructor là hàm dùng để khởi tạo thành phần dữ liệu
của đối tượng khi triệu gọi trong chương trình.
0.5 điểm
- class pointer
{
private:
int x,y;

public:
pointer(int xx,int yy)
{
x=xx;
y=yy;
}
pointer()
{
x=0;
y=0;
}
};
1.5 điểm
Cộng (I)
II. Phần tự chọn, do trường biên soạn 3 Điểm
1
2

Cộng (II)
Tổng cộng (I+II)

………, ngày ………. tháng ……. năm ……
5/5

×