thumbnail

Đề thi Lập trình Hướng đối tượng

Đề thi năm 2011, không sử dụng tài liệu

Số câu hỏi: 3 câuSố mã đề: 1 đềThời gian: 2 giờ

217 lượt xem 5 lượt làm bài


Bạn chưa làm đề thi này!!!

 

Xem trước nội dung:

Câu 1: 1 điểm

Máy lọc ly tâm là một loại máy lọc nước hoạt động bằng xăng. Người ta thuê máy sử dụng với đơn giá thuê 50.000 đồng/h. Mỗi máy lọc ly tâm có công suất lọc (m3/h) và tốc độ hao xăng (lít/h) khác nhau nhưng không đổi trong suốt thời gian hoạt động (h) của máy. Đơn giá xăng là 20.000 đồng/lít.

#include <iostream>
using namespace std;

class MayLoc {
private:
  float m_tgian;
protected:
  virtual float congSuat();
  void setTgian(float t);
public:
  MayLoc();
  float tinhLuongNuoc();
};

MayLoc::MayLoc() {
  this->m_tgian = 0;
}
void MayLoc::setTgian(float t) {
  this->m_tgian = t;
}
float MayLoc::tinhLuongNuoc() {
  return congSuat() * m_tgian;
}
float MayLoc::congSuat() {
  return 0;
}

class MayLyTam: public MayLoc {
private:
  float m_cs;
protected:
  float congSuat();
public:
  MayLyTam(float cs, float t);
};

MayLyTam::MayLyTam(float cs, float t) {
  this->m_cs = cs;
  this->m_tgian = t; /*1*/
}
float MayLoc::congSuat() {
  return this->cs;
}

void main() {
  MayLoc *pm = new MayLoc();
  if (pm->congSuat() < 5) /*2*/
  {
    MayLyTam ml(81.9, 10);
    pm = &ml; /*3*/
    cout << "Luong nuoc = " << pm->tinhLuongNuoc();
  }
  delete pm; /*4*/
}

a) Hãy cho biết trong hàm main(), có những constructor (phương thức khởi tạo/thiết lập) và destructor (phương thức hủy) nào được gọi, ở những dòng nào?

b) Hãy cho biết các dòng có chú thích từ /*1*/ đến /*4*/ có những lỗi (cú pháp, thực thi) gì?

c) Hãy sửa lại dòng /*1*/ cho hết lỗi mà vẫn thực hiện được việc cập nhật tgian.

d) Nếu xoá đi dòng /*2*/ (cho hết lỗi) rồi chạy chương trình, kết quả xuất ra màn hình là gì?

e) Hãy dời vị trí dòng /*4*/ sao cho đối tượng đã tạo bằng toán tử new được giải phóng bộ nhớ một cách an toàn (chỉ dời dòng, không sửa nội dung).

Câu 2: 1 điểm

Máy lọc xúc tác là một loại máy lọc nước hoạt động bằng hóa chất. Người ta thuê máy với đơn giá thuê 80.000 đồng/h. Mỗi máy có công suất lọc (m3/h) khác nhau. Để lọc nước, ta cho một lượng hóa chất (g) vào từ đầu và sử dụng trong suốt thời gian sử dụng (h) của máy. Công suất lọc thực tế được tính theo hai trường hợp như sau:

  • công suất lọc * (lượng hóa chất / 100g) nếu thời gian sử dụng < 10h, hoặc
  • công suất lọc * (lượng hóa chất / 100g) / (thời gian hoạt động / 10h) nếu thời gian hoạt động ≥ 10h.

Lượng nước mỗi máy lọc được = công suất lọc thực tế * thời gian hoạt động.

Chi phí thuê mỗi máy = đơn giá thuê * thời gian hoạt động.

Chi phí sử dụng máy = chi phí thuê + chi phí nhiên/vật liệu (đơn giá hóa chất là 10.000 đồng/g).

Hãy cài đặt lớp đối tượng cần thiết với thuộc tính và phương thức vừa đủ để đoạn chương trình sau có thể hoạt động được theo đúng những gì đã mô tả.

#include <iostream>
using namespace std;

void main() {
  cout << "Don gia hoa chat: " << MayXucTac::DON_GIA_HOA_CHAT << endl;
  MayXucTac m;
  m.nhap(); // Nhập thông tin sử dụng của máy xúc tác này
  cout << "Chi phi su dung may: " << m.tinhChiPhi() << endl;
  cout << "Luong nuoc loc duoc: " << m.tinhLuongNuoc() << endl;
}
Câu 3: 1 điểm

Một cái ao chứa M mét khối (m3) nước. Để lọc nước trong ao, người ta thuê N máy lọc (vừa xúc tác vừa ly tâm) để sử dụng. Thông tin các loại máy lọc và các công thức tính như đã được mô tả ở các câu 1 và 2 bên trên.

Bảng tóm tắt thông tin các loại máy lọc:

Loại máyĐơn giá thuêCông suất lọcChi phí nhiên/vật liệu
Máy ly tâm50.000 đồng/hKhông đổiLượng xăng * 20.000
Máy xúc tác80.000 đồng/hThay đổi theo lượng hóa chất và thời gian sử dụng hóa chấtLượng hóa chất * 10.000

a. Vẽ sơ đồ lớp thiết kế chương trình có tính tái sử dụng (reuse) và khả năng mở rộng (scalable).

b. Xây dựng chương trình cho phép:

  1. Nhập vào danh sách N máy lọc (với đầy đủ thông tin sử dụng).
  2. Nhập vào lượng nước M (số m3) trong ao. Chương trình cho biết với số máy lọc được sử dụng, ao có được lọc hết hay không, và tính tổng chi phí sử dụng các máy lọc.

Đề thi tương tự

Đề Thi Trắc Nghiệm Lập Trình Hướng Đối Tượng OOP 1 HUBT

2 mã đề 78 câu hỏi 1 giờ

87,772 xem6,742 thi

Đề Thi Lập Trình PLC Phần 3 Đại Học Điện Lực (EPU)

1 mã đề 25 câu hỏi 40 phút

90,757 xem6,977 thi