Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
double bac3 (double a, int x) {
for (int i = 0; i < x; i++)
a = a * a;
return a;
}
int main() {
int i = 3;
cout << i << “, “ << bac3(i,2);
return 0;
}
Trả lời:
Đáp án đúng: A
Đoạn chương trình trên thực hiện tính toán lũy thừa bậc 2 của một số thực.
Trong hàm `main`, biến `i` được khởi tạo bằng 3. Sau đó, giá trị của `i` (là 3) được in ra màn hình. Tiếp theo, hàm `bac3(i, 2)` được gọi.
Hàm `bac3(double a, int x)` tính lũy thừa bậc `x` của `a` bằng cách nhân `a` với chính nó `x` lần trong vòng lặp `for`. Trong trường hợp này, `a` là 3.0 và `x` là 2. Vòng lặp sẽ chạy hai lần:
- Lần 1: `a = a * a = 3.0 * 3.0 = 9.0`
- Lần 2: `a = a * a = 9.0 * 9.0 = 81.0`
Hàm `bac3` trả về giá trị 81.0. Cuối cùng, giá trị này được in ra màn hình sau dấu phẩy và khoảng trắng. Vì vậy, kết quả cuối cùng là `3, 81`.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: C
Đoạn mã C++ định nghĩa một lớp `CRect` biểu diễn hình chữ nhật. Lớp này có hai thuộc tính `height` (chiều cao) và `width` (chiều rộng), cùng với một hàm tạo `CRect(int, int)` để khởi tạo các thuộc tính này và một phương thức `DT()` để tính diện tích của hình chữ nhật. Trong hàm `main()`, một đối tượng `cn` của lớp `CRect` được tạo với chiều cao và chiều rộng đều là 7. Sau đó, diện tích của hình chữ nhật này (7 * 7 = 49) được in ra màn hình. Vậy đáp án đúng là C.
Lời giải:
Đáp án đúng: C
Đoạn code định nghĩa một lớp `CRect` với hai thuộc tính `height` (chiều cao) và `width` (chiều rộng), cùng hai hàm tạo (constructor): một hàm tạo không tham số và một hàm tạo có hai tham số. Hàm `DT` trả về diện tích của hình chữ nhật.
Trong hàm `main`, một đối tượng `cn1` của lớp `CRect` được tạo bằng cách sử dụng hàm tạo có hai tham số (3, 4), do đó `cn1.height` là 3 và `cn1.width` là 4. Một đối tượng `cn2` của lớp `CRect` được tạo bằng cách sử dụng hàm tạo không tham số, do đó `cn2.height` và `cn2.width` đều là 5.
Giá trị được in ra là `cn1.DT() + cn2.DT()`. `cn1.DT()` trả về 3 * 4 = 12. `cn2.DT()` trả về 5 * 5 = 25. Vậy, 12 + 25 = 37.
Do đó, kết quả của đoạn code là 37.
Trong hàm `main`, một đối tượng `cn1` của lớp `CRect` được tạo bằng cách sử dụng hàm tạo có hai tham số (3, 4), do đó `cn1.height` là 3 và `cn1.width` là 4. Một đối tượng `cn2` của lớp `CRect` được tạo bằng cách sử dụng hàm tạo không tham số, do đó `cn2.height` và `cn2.width` đều là 5.
Giá trị được in ra là `cn1.DT() + cn2.DT()`. `cn1.DT()` trả về 3 * 4 = 12. `cn2.DT()` trả về 5 * 5 = 25. Vậy, 12 + 25 = 37.
Do đó, kết quả của đoạn code là 37.
Lời giải:
Đáp án đúng: A
Đoạn chương trình trên có lỗi ở dòng số 6.
Dòng 6: `int DT (void) { return (height * width); }`
Giải thích:
* `height` và `width` là các con trỏ (`int *`). Để lấy giá trị mà chúng trỏ tới, cần phải sử dụng toán tử `*`.
* Phép nhân `height * width` thực hiện phép nhân trên địa chỉ bộ nhớ mà `height` và `width` đang lưu giữ, thay vì nhân giá trị số nguyên mà chúng trỏ tới. Điều này dẫn đến kết quả sai lệch hoặc không xác định.
* Để tính diện tích đúng, cần phải truy cập giá trị mà `height` và `width` trỏ tới bằng cách sử dụng `*height * *width`.
Sửa lại:
Sửa dòng 6 thành: `int DT (void) { return (*height * *width); }`
Vậy đáp án đúng là A.
Dòng 6: `int DT (void) { return (height * width); }`
Giải thích:
* `height` và `width` là các con trỏ (`int *`). Để lấy giá trị mà chúng trỏ tới, cần phải sử dụng toán tử `*`.
* Phép nhân `height * width` thực hiện phép nhân trên địa chỉ bộ nhớ mà `height` và `width` đang lưu giữ, thay vì nhân giá trị số nguyên mà chúng trỏ tới. Điều này dẫn đến kết quả sai lệch hoặc không xác định.
* Để tính diện tích đúng, cần phải truy cập giá trị mà `height` và `width` trỏ tới bằng cách sử dụng `*height * *width`.
Sửa lại:
Sửa dòng 6 thành: `int DT (void) { return (*height * *width); }`
Vậy đáp án đúng là A.
Lời giải:
Đáp án đúng: A
Đoạn chương trình C++ này định nghĩa một lớp `CRect` với các thuộc tính `height` (chiều cao) và `width` (chiều rộng), cùng phương thức `setGiatri` để gán giá trị cho các thuộc tính này và phương thức `DT` để tính diện tích. Trong hàm `main`, chương trình khởi tạo các đối tượng `CRect` theo nhiều cách khác nhau, gán giá trị và in ra diện tích của đối tượng `a` thông qua con trỏ `c`. Vì `c` trỏ đến `a`, và `a` được gán `height = 1` và `width = 2`, diện tích là `1 * 2 = 2`.
Lời giải:
Đáp án đúng: A
Đoạn code định nghĩa một lớp `CRect` với các thuộc tính `height` và `width`, cùng các phương thức `setGiatri` để gán giá trị cho các thuộc tính và `DT` để tính diện tích.
Hàm `main` thực hiện các bước sau:
1. Khai báo các biến thuộc lớp `CRect`: `a`, `*b`, `*c`, và `d` (là một mảng các đối tượng `CRect`).
2. Cấp phát bộ nhớ cho `d` (mảng 2 phần tử), `b` (một đối tượng).
3. Gán địa chỉ của `a` cho `c`.
4. Gán giá trị cho các đối tượng `CRect`:
* `a.setGiatri(1, 2)`: `a.height = 1`, `a.width = 2`
* `b->setGiatri(3, 4)`: `b->height = 3`, `b->width = 4`
* `d->setGiatri(5, 6)`: `d[0].height = 5`, `d[0].width = 6`
* `d[1].setGiatri(7, 8)`: `d[1].height = 7`, `d[1].width = 8`
5. Tính và in ra kết quả của biểu thức `c->DT() * (*b).DT()`.
* `c->DT()` tương đương với `a.DT()`, vì `c` trỏ tới `a`. `a.DT()` là `1 * 2 = 2`.
* `(*b).DT()`: Diện tích của đối tượng mà `b` trỏ tới. `b->DT()` là `3 * 4 = 12`.
* Vậy `c->DT() * (*b).DT()` là `2 * 12 = 24`.
6. Giải phóng bộ nhớ đã cấp phát cho `b` và `d`.
Vậy, kết quả in ra màn hình là 24.
Hàm `main` thực hiện các bước sau:
1. Khai báo các biến thuộc lớp `CRect`: `a`, `*b`, `*c`, và `d` (là một mảng các đối tượng `CRect`).
2. Cấp phát bộ nhớ cho `d` (mảng 2 phần tử), `b` (một đối tượng).
3. Gán địa chỉ của `a` cho `c`.
4. Gán giá trị cho các đối tượng `CRect`:
* `a.setGiatri(1, 2)`: `a.height = 1`, `a.width = 2`
* `b->setGiatri(3, 4)`: `b->height = 3`, `b->width = 4`
* `d->setGiatri(5, 6)`: `d[0].height = 5`, `d[0].width = 6`
* `d[1].setGiatri(7, 8)`: `d[1].height = 7`, `d[1].width = 8`
5. Tính và in ra kết quả của biểu thức `c->DT() * (*b).DT()`.
* `c->DT()` tương đương với `a.DT()`, vì `c` trỏ tới `a`. `a.DT()` là `1 * 2 = 2`.
* `(*b).DT()`: Diện tích của đối tượng mà `b` trỏ tới. `b->DT()` là `3 * 4 = 12`.
* Vậy `c->DT() * (*b).DT()` là `2 * 12 = 24`.
6. Giải phóng bộ nhớ đã cấp phát cho `b` và `d`.
Vậy, kết quả in ra màn hình là 24.
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy
89 tài liệu310 lượt tải

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin
125 tài liệu441 lượt tải

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông
104 tài liệu687 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán
103 tài liệu589 lượt tải

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp
377 tài liệu1030 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
99 tài liệu1062 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng