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 />
Câu<br />
1<br />
<br />
ĐÁP ÁN<br />
ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ 2 (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ã đề thi: DA LTMT - LT26<br />
Nội dung<br />
<br />
Điểm<br />
<br />
Cơ sở dữ liệu<br />
A. Ngôn ngữ SQL<br />
1. Select * From danhsach Where gioitinh=”Nữ”;<br />
<br />
0.5<br />
<br />
2. Select<br />
danhsach.manv,danhsach.hoten,danhsach.gioitinh,danhsach.diachi,danhsach.ngay<br />
sinh<br />
<br />
From danhsach,chucvu,luong<br />
Where danhsach.macv=chucvu.macv And luong,manv=danhsach.manv<br />
And luong.heso>2.5 And chucvu.tencv=”Trưởng Phòng”;<br />
3. Select manv,hoten,diachi,macv<br />
From danhsach<br />
Where gioitinh=”Nam” And month(ngaysinh)=3;<br />
<br />
0.5<br />
<br />
0.5<br />
<br />
B. Ngôn ngữ đại số<br />
1. T1= ( gioitinh"Nu ") ( Danhsach)<br />
0.3<br />
<br />
T2= ( manv,hoten ,diachi, ngay sinh, macv ) (T 1)<br />
2. T1=danhsach*chucvu*luong<br />
T2= ( heso2.5 ^ tencv "Truong phong") (T 1)<br />
<br />
0.4<br />
<br />
T3= ( manv,hoten, giotinh,diachi,ngay sinh) (T 2)<br />
3. T1= ( gioitinh" Nam" ^ month( ngay sinh) 3) ( Danhsach)<br />
0.3<br />
<br />
T2= ( manv , hoten, diachi, macv ) (T 1)<br />
<br />
1/8<br />
<br />
1. Trình bày giải thuật sắp xếp trộn trực tiếp (Insert sort) trộn dãy số nguyên<br />
<br />
n phần tử<br />
*) Ý tưởng:<br />
- Ban đầu có một dãy khóa k1,k2,k3....kn chưa được sắp xếp<br />
- Đầu tiên ta có phần tử k1, khi thêm k2 thì ta phải so sánh với k để tìm vị trí<br />
chèn<br />
- Khi thêm k3 thì ta phải so sánh với k1 và k2 để tìm vị trí chèn<br />
- Thực hiện tương tự cho tất cả các phần tử khác đến khi gặp phẩn tử cuối<br />
cùng thì toàn bộ dãy khóa được sắp xếp<br />
*) Giải thuật:<br />
void Insert-sort (mang a, int n)<br />
{<br />
int i, j, x;<br />
a[-1]=-32768;<br />
for( i=1;ix)<br />
{<br />
a[j+1]=a[j];<br />
j--;<br />
}<br />
a[j+1]=x;<br />
}<br />
}<br />
<br />
2/8<br />
<br />
0.5<br />
<br />
0.5<br />
<br />
2. Viết chương trình tạo một danh sách liên kết đơn,…<br />
typedef struct SP{<br />
char ten[10];<br />
char ma[5];<br />
int soluong;<br />
float giaban, thanhtien;<br />
};<br />
typedef struct tagNode{<br />
SP infor;<br />
struct tagNode *link;<br />
}<br />
Node;<br />
Node *head, *p, *moi;<br />
int n;<br />
<br />
0.4<br />
<br />
3/8<br />
<br />
void nhap( )<br />
{<br />
SP tg ;<br />
int i ;<br />
head = NULL;<br />
for ( i=0; i infor =tg;<br />
if (head ==NULL)<br />
{<br />
head = moi;<br />
p=moi;<br />
p -> link =NULL;<br />
}<br />
else<br />
{<br />
p -> link = moi;<br />
p= moi;<br />
p -> link =NULL;<br />
}<br />
}<br />
}<br />
<br />
4/8<br />
<br />
0.4<br />
<br />
void sapxep() {<br />
SP tg;<br />
p=head;<br />
while (p !=NULL)<br />
{<br />
q=p->link;<br />
while (q!=NULL)<br />
{<br />
if(q->infor.giaban > p->infor.giaban)<br />
{<br />
tg=q->infor;<br />
q->infor =p->infor;<br />
p->infor =tg;<br />
}<br />
q=q->link;<br />
}<br />
p=p->link;<br />
}<br />
}<br />
float maxgiaban() {<br />
Node *p; float max;<br />
p=head;<br />
max=p->infor.giaban;<br />
while ( p !=NULL)<br />
{<br />
if ((p -> infor.giaban>max)<br />
max=p->infor.giaban ;<br />
p=p-> link ;<br />
}<br />
Return max;<br />
}<br />
void main(){<br />
clrscr() ;<br />
printf ( ” nhap so nut ”) ;scanf (“ %d”, &n);<br />
nhap();<br />
sapxep();<br />
prinft(“gia ban cao nhat la %f”, maxgiaban());<br />
getch();<br />
}<br />
<br />
5/8<br />
<br />
0.4<br />
<br />
0.4<br />
<br />
0.1<br />
<br />