Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
class rect {
int x,y;
public:
void setValue(int a,int b) { x = a, y = b; }
int area() { return a * b; }
}; int
main() {
rect r;
r.setValue(2,3);
cout << “Chu vi hinh chu nhat: “ << r.area();
return 0;
}
Trả lời:
Đáp án đúng: A
Đoạn chương trình C++ trên có một số lỗi:
1. **Lỗi cú pháp**: Trong hàm `area()`, biến `a` và `b` không được khai báo. Nó phải là `x` và `y`
2. **Lỗi logic**: Hàm `area()` tính diện tích hình chữ nhật, nhưng trong `main()`, chương trình in ra "Chu vi hinh chu nhat:" Điều này là không chính xác về mặt ngữ nghĩa.
Do có lỗi biên dịch, chương trình sẽ không thể chạy và không đưa ra kết quả nào cả. Vì vậy, đáp án chính xác nhất là "Lỗi biên dịch".