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- LT48
Câu Nội dung Điểm
I. Bắt buộc
1
#include <conio.h>
#include <iostream.h>
#include <math.h>
class DT
{
private:
double a[20];// Mang chua cac he so da
thuc a0, a1,
int n ;// Bac da thuc
public:
void nhap();
void hienthi();
DT operator+(const DT &d2);
double operator^(double x);// Tinh gia tri
da thuc
};
0.25
void DT::hienthi()
{
cout<<a[0]<<"X^0";
for (int i=1 ;i<= n ;++i)
cout<<"+"<< a[i] <<"X^"<<i ;
}
0.25
void DT::nhap()
{
cout << "Bac da thuc:";
cin >> n;
cout << "Nhap cac he so da thuc:" ;
for (int i=0 ;i<=n ;++i)
{
cout << "\n He so bac"<<i<<":" ;
cin >> a[i] ;
}
}
0.25
DT DT::operator+(const DT &d2)
{
DT d;
int k,i;
k = (n > d2.n)?n:d2.n ;
for (i=0;i<=k ;++i)
0.75
Trang:1/ 4
if (i<=n && i<=d2.n)
d.a[i] = a[i] + d2.a[i];
else
if (i<=n)
d.a[i] =a[i];
else
d.a[i] = d2.a[i];
i = k;
while (i>0 && d.a[i]==0.0) i;
d.n=i;
return d ;
}
double DT::operator^(double x)
{
double s=0.0 , t=1.0;
for (int i=0 ;i<= n ;++i)
{
s+= a[i]*t;
t *= x;
}
return s;
}
0.25
void main()
{
DT p,q,f;
double x,g;
clrscr();
cout <<"\n Nhap da thuc P :" ;p.nhap();
cout <<"\n Nhap da thuc Q :" ;q.nhap();
cout << "\n Nhap so thuc x :" ;cin >> x;
f = (p+q);
g = f^x;
cout << "\n Da thuc f ";
f.hienthi();
cout<<"\n x =" << x;
cout << "\n f(x) = "<<g;
getch();
}
0.25
2 Nêu đặc điểm chung của mảng, cách khai báo và cách
truy xuất mảng 1 chiều. Cho một mảng 1 chiều gồm các
số nguyên đã có thứ tự tăng, hãy viết hàm chèn một số x
vào mảng sao cho mảng vẫn bảo đảm thứ tự tăng.
Mảng là một dãy liên tục các ô nhớ có cùng kiểu dữ liệu và
cùng tên. Do đó để truy xuất các thành phần, ta dùng cơ chế
chỉ mục.
Khai báo mảng 1 chiều :
- Cách 1<kiểu dữ liệu> <Tên mảng> [Số phần tử tối đa];
Ví dụ: int A[10];
- Cách 2: Con trỏ
1
Trang:2/ 4
<Kiểu dữ liệu> *<Tên mảng >;
Ví dụ :
int *p; // khai bao con tro p
Lưu ý: Khi sử dụng biến con trỏ theo cách như trên thì thực
chất con trỏ p chỉ chiếm 2 byte bộ nhớ để chứa địa chỉ mà
thôi. Để tạo mảng chứa dữ liệu thành phần thì ta phải cấp
phát vùng nhớ cho con trỏ p. Dùng hàm : malloc trong thư
viện <stdlib.h> để cấp phát vùng nhớ.
Tên con trỏ = (kiểu dữ liệu *) malloc(100);
Ví dụ:
int *px; //Khai báo con trỏ px
px = (int *) malloc (100); //Cấp phát 100 ô nhớ kiểu
int cho con trỏ px
Truy xuất mảng 1 chiều: Tên mảng[chỉ số];
Ví dụ: printf(“%d”,A[3]);
Hàm chèn một số x:
A là mảng 1 chiều, n là số phần tử và x là phần tử cần chèn.
Hàm chèn x vào mảng A
void(int A[], int &n, int x)
{
int i = n - 1 ;
while((A[i] > x) && (i>=0))
{
A[i +1] = A[i];
i - -;
}
A[i+1] = x;
n ++;
}
1
3 a. Cho biết tên và địa chỉ của cán bộ thuộc phòng “Kế toán”
Select TenCB, DiaChi
From CB, CQ
Where (CQ.PHONG#=CB.PHONG#)
And (CQ.TenP=”Kế toán”)
1
b. Cho biết tên những nhân viên có số năm công tác là 15 1
Trang:3/ 4
năm
Select TenCB
From CB
Where (SoNamCT>15)
c. Cho biết tên phòng có nhân viên quê ở “Thái Bình” và sinh
năm 1980
Select TenP
From CB
Where (CQ.PHONG#=CB.PHONG#)
And (CB.DiaChi=”ThaiBinh”)
And (CB.NamSinh=1980)
1
Cộng I 7
II. Tự chọn
Cộng II
Cộng I+Cộng II
………, ngày ………. tháng ……. năm ……
Trang:4/ 4
. 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: . for (int i=1 ;i < = n ;++i)
cout < < "+" < < a[i] < < "X^" < < i ;
}
0.25
void DT::nhap()
{
cout < < "Bac