1. Trang chủ
  2. » Công Nghệ Thông Tin

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

5 306 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 99 KB

Nội dung

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Á II (2008 - 2011) NGHỀ: LẬP TRÌNH MÁY TÍNH MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ Mã đề số: DA LTMT - LT08 TT Nội dung Điểm I. Phần bắt buộc 7 điểm Câu 1 1,5 điểm 1 Trình bày giải thuật tìm kiếm nhị phân không đệ quy. 0,75 điểm function TKNP(k,n,x); 1. l:=1; r:=n; 0,25 điểm 2. while l <= r do begin m := [(l + r)/2]; if X < k[m] then r := m-1 else if X > k[m] then l:= m+1 else return(m); end; 3. return(0); 0.5 điểm 2 Hãy đưa ra một dãy khoá bất kỳ gồm ít nhất 10 phần tử , sau đó mô tả các bước tìm kiếm một khoá nào đó theo thuật toán tìm kiếm nhị phân không đệ quy. 0,75 điểm Cho một dãy khoá, chẳng hạn10, 15, 25, 30, 45, 50, 60, 75, 80, 90. Minh hoạ tìm khoá X=80 Bắt đầu với l =1; r = 10; bước 1: tính m = 5, a[5] <80 => r = 10, l = 6; 0,25 điểm bước 2: tính m = 8, a[8] <80=> l =9; r = 10, 0,25 điểm bước 3: tính m =9, a[9] = 80=>kết thúc 0,25 điểm Câu 2 3,5 điểm Trang:1/ 5 a Định nghĩa hàm thiết lập để tạo đối tượng sao cho tử số là số nguyên và mẫu số phải là số nguyên dương và phân số được tối giản. 0,5 điểm #include<iostream.h> #include<conio.h> class PhanSo { int ts,ms; void rutgon(); public: PhanSo(int x=0,int y=1):ms(y),ts(x) { rutgon(); } operator int(); operator float(); PhanSo operator -() const { return PhanSo(-ts,ms); } //Cac phep toan co so friend int operator ==(const PhanSo&, const PhanSo&); friend PhanSo operator +(const PhanSo&,const PhanSo&); //Phep toan ket xuat du lieu cua mot phan so friend ostream& operator << (ostream& out,const PhanSo& ps); }; int uscln(int n,int m) { if(n>m) { if(m==0) return n; return uscln(n%m,m); } if(n==0) return m; return uscln(m%n,n); } void PhanSo::rutgon() { if(ms<0) { ms=-ms; 0,25 điểm 0,25 điểm Trang:2/ 5 ts=-ts; } //tim uscln int usc=(ts>0)?uscln(ts,ms):uscln(-ts,ms); ts=ts/usc; ms=ms/usc; } b Xây dựng toán tử chuyển kiểu, toán tử so sánh hai phân số bằng nhau, toán tử cộng hai phân số kết quả phải được tối giản. 0,75 điểm //Toan tu chuyen kieu int tra ve phan chia nguyen cua phan so PhanSo::operator int() { return ts/ms; } //chuyen kieu thuc tra ve phan chia thuc PhanSo::operator float() { return float(ts)/ms; } //thuc hien cac toan tu cho lop phan so int operator = =(const PhanSo& ps1,const PhanSo& ps2) { return(ps1.ts==ps2.ts&&ps1.ms==ps2.ms); } PhanSo operator +(const PhanSo& ps1,const PhanSo& ps2) { return PhanSo(ps1.ts*ps2.ms+ps2.ts*ps1.ms,ps1.ms*ps2.ms); } 0,25 điểm 0,25 điểm 0,25 điểm c Xây dựng toán tử xuất dữ liệu của một phân số. 0,25 điểm ostream& operator << (ostream& out, const PhanSo& ps) { return (out << ps.ts <<"/" << ps.ms); } d Viết hàm main thực hiện - Nhập hai phân số và hiển thị ra màn hình tổng của hai phân số đó. - Nhập vào một dãy gồm n phân số và hiển thị ra màn hình dãy phân số đó 2 điểm Trang:3/ 5 - Đếm xem có bao nhiêu phân số có giá trị bằng một phân số được nhập vào từ bàn phím. Nhập hai phân số và hiển thị ra màn hình tổng của hai phân số đó. 0,5 điểm void main() { clrscr(); int i,a,b,n; cout<<"Nhap vao hai phan so"<<endl; cout<<"Nhap thong tin cho phan so thu nhat:"<<endl; cout<<"tu so=";cin>>a; cout<<"mau so=";cin>>b; PhanSo ps1(a,b); cout<<"Nhap thong tin cho phan so thu hai:"<<endl; cout<<"tu so=";cin>>a; cout<<"mau so=";cin>>b; PhanSo ps2(a,b); cout<<ps1<<"+"<<ps2<<"="<<(ps1+ps2)<<"\n"; 0,25 điểm 0,25 điểm Nhập vào một dãy gồm n phân số và hiển thị ra màn hình dãy phân số đó 1 điểm cout<<"Nhap n="; cin>>n; PhanSo *PS=new PhanSo[n]; for(i=1;i<=n;i++) { cout<<"Nhap thong tin cho phan so thu "<<i<<":"<<endl; cout<<"tu so=";cin>>a; cout<<"mau so=";cin>>b; PhanSo k(a,b); PS[i]=k; } cout<<"Day phan so vua nhap vao la:\n"; for(i=1;i<=n;i++) { cout<<PS[i]<<" "; } 0,25 điểm 0,5 điểm 0,25 điểm Đếm xem có bao nhiêu phân số có giá trị bằng một phân số được nhập vào từ bàn phím. 0,5 điểm cout<<"Nhap thong tin cho phan so can so sanh gia tri:"<<endl; cout<<"tu so=";cin>>a; 0,25 điểm Trang:4/ 5 cout<<"mau so=";cin>>b; PhanSo k(a,b); int dem; dem=0; for(i=1;i<=n;i++) { if(PS[i]==k) dem=dem+1; } Cout<<"Co "<<dem<<" phan so bang phan so da nhap vao"; getch(); } 0,25 điểm II. Phần tự chọn, do trường biên soạn 3 điểm 1 2 Tổng cộng (I + II) ……… , Ngày…………Tháng……… Năm………… Trang:5/ 5 . do – Hạnh phúc ĐÁP ÁN ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ II (2008 - 2011) NGHỀ: LẬP TRÌNH MÁY TÍNH MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ Mã đề số: DA LTMT. usc=(ts>0)?uscln(ts,ms):uscln(-ts,ms); ts=ts/usc; ms=ms/usc; } b Xây dựng toán tử chuyển kiểu, toán tử so sánh hai phân số bằng nhau, toán tử cộng hai phân số kết quả phải được tối

Ngày đăng: 17/03/2014, 17:56

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w