Anh (Chị) hãy cho biết, trường dữ liệu tĩnh (static) còn gọi là gì?
Trả lời:
Đáp án đúng: B
Trường dữ liệu tĩnh (static) trong lập trình hướng đối tượng (OOP) còn được gọi là biến lớp. Biến lớp là biến thuộc về lớp chứ không phải một thể hiện cụ thể nào của lớp đó. Tất cả các đối tượng của lớp đều dùng chung một bản sao của biến lớp. Vì vậy, đáp án đúng là B.
A. Biến đại diện (instance variable) là biến thuộc về một đối tượng cụ thể của lớp.
C. Biến cục bộ (local variable) là biến được khai báo bên trong một phương thức hoặc một khối mã.
D. Biến toàn cục (global variable) là biến được khai báo bên ngoài tất cả các hàm hoặc lớp.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: A
Trong lập trình hướng đối tượng (OOP), đối tượng là một thực thể có trạng thái và hành vi. Trạng thái của đối tượng được mô tả bởi các thuộc tính (attributes) hay còn gọi là dữ liệu thành viên (member data). Các dữ liệu thành viên này lưu trữ các giá trị đặc trưng cho đối tượng. Hành vi của đối tượng được định nghĩa bởi các phương thức (methods) hay còn gọi là hàm thành viên (member functions), cho phép đối tượng thực hiện các hành động hoặc tương tác với các đối tượng khác.
Vì vậy, trạng thái của đối tượng trong thế giới thực được mô tả trong lập trình hướng đối tượng của C++ được gọi là dữ liệu thành viên.
Lời giải:
Đáp án đúng: B
Đoạn code này sử dụng vòng lặp `for` để in ra các số từ 1 đến 4, trừ số 3.
- `int i = 5;`: Khởi tạo biến `i` bằng 5. Tuy nhiên, giá trị này sẽ bị ghi đè ngay trong vòng lặp `for`.
- `for (i = 1; i < 5; i++)`: Vòng lặp `for` bắt đầu với `i = 1`, tiếp tục cho đến khi `i < 5`, và tăng `i` lên 1 sau mỗi lần lặp.
- `if (i == 3) continue;`: Nếu `i` bằng 3, lệnh `continue` sẽ bỏ qua phần còn lại của vòng lặp hiện tại và chuyển sang lần lặp tiếp theo, do đó số 3 sẽ không được in ra.
- `cout << i << ", ";`: In giá trị của `i` và dấu phẩy sau mỗi lần lặp (trừ khi `i` bằng 3).
- `cout << “END” << endl;`: Sau khi vòng lặp kết thúc, in ra "END" và xuống dòng.
Như vậy, các số được in ra sẽ là 1, 2, và 4. Kết quả cuối cùng sẽ là "1, 2, 4, END".
- `int i = 5;`: Khởi tạo biến `i` bằng 5. Tuy nhiên, giá trị này sẽ bị ghi đè ngay trong vòng lặp `for`.
- `for (i = 1; i < 5; i++)`: Vòng lặp `for` bắt đầu với `i = 1`, tiếp tục cho đến khi `i < 5`, và tăng `i` lên 1 sau mỗi lần lặp.
- `if (i == 3) continue;`: Nếu `i` bằng 3, lệnh `continue` sẽ bỏ qua phần còn lại của vòng lặp hiện tại và chuyển sang lần lặp tiếp theo, do đó số 3 sẽ không được in ra.
- `cout << i << ", ";`: In giá trị của `i` và dấu phẩy sau mỗi lần lặp (trừ khi `i` bằng 3).
- `cout << “END” << endl;`: Sau khi vòng lặp kết thúc, in ra "END" và xuống dòng.
Như vậy, các số được in ra sẽ là 1, 2, và 4. Kết quả cuối cùng sẽ là "1, 2, 4, END".
Lời giải:
Đáp án đúng: B
Đoạn code C++ này có một số lỗi.
1. Lỗi cú pháp: Dòng `} class quanly:public nhanvien` sai cú pháp. Cần phải có dấu chấm phẩy sau dấu ngoặc nhọn đóng của lớp `nhanvien`. Đúng ra phải là `}; class quanly: public nhanvien`.
2. Thiếu thư viện: Để sử dụng `cout`, bạn cần include thư viện `iostream`. Thiếu dòng `#include`
3. `main` function: Trong C++, hàm `main` nên trả về một giá trị kiểu `int`. Do đó, nên sử dụng `int main()` thay vì `void main()`.
Tuy nhiên, giả sử chúng ta bỏ qua các lỗi này và trình biên dịch có thể biên dịch được (ví dụ, bằng cách tự động thêm `#include` và sửa lỗi cú pháp). Khi đó, chương trình sẽ thực hiện như sau:
* Một đối tượng `q` của lớp `quanly` được tạo.
* Hàm constructor của `quanly` được gọi.
* Trong constructor, `setLuong(100)` được gọi, gán `luong` bằng 100.
* `phucap` được tính bằng `getLuong() * 0.5`, tức là `100 * 0.5 = 50`.
* `cout << phucap` in giá trị của `phucap` ra màn hình.
Do có lỗi cú pháp, chương trình sẽ không biên dịch được và sẽ báo lỗi. Vì vậy, đáp án chính xác nhất là chương trình báo lỗi.
1. Lỗi cú pháp: Dòng `} class quanly:public nhanvien` sai cú pháp. Cần phải có dấu chấm phẩy sau dấu ngoặc nhọn đóng của lớp `nhanvien`. Đúng ra phải là `}; class quanly: public nhanvien`.
2. Thiếu thư viện: Để sử dụng `cout`, bạn cần include thư viện `iostream`. Thiếu dòng `#include
3. `main` function: Trong C++, hàm `main` nên trả về một giá trị kiểu `int`. Do đó, nên sử dụng `int main()` thay vì `void main()`.
Tuy nhiên, giả sử chúng ta bỏ qua các lỗi này và trình biên dịch có thể biên dịch được (ví dụ, bằng cách tự động thêm `#include
* Một đối tượng `q` của lớp `quanly` được tạo.
* Hàm constructor của `quanly` được gọi.
* Trong constructor, `setLuong(100)` được gọi, gán `luong` bằng 100.
* `phucap` được tính bằng `getLuong() * 0.5`, tức là `100 * 0.5 = 50`.
* `cout << phucap` in giá trị của `phucap` ra màn hình.
Do có lỗi cú pháp, chương trình sẽ không biên dịch được và sẽ báo lỗi. Vì vậy, đáp án chính xác nhất là chương trình báo lỗi.
Lời giải:
Đáp án đúng: D
Đoạn code khai báo một lớp `nhanvien` với một thuộc tính `luong` kiểu `double` (số thực dấu phẩy động) và các phương thức `setLuong`, `getLuong`, và `tangLuong` để thao tác với thuộc tính này.
Trong hàm `main`, một đối tượng `A` thuộc lớp `nhanvien` được tạo ra. Sau đó, một con trỏ `p` kiểu `nhanvien*` được gán địa chỉ của `A` (`p = &A`). Câu lệnh `p->setLuong(100)` sử dụng con trỏ `p` để gọi phương thức `setLuong` của đối tượng `A`, gán giá trị 100 cho thuộc tính `luong` của `A`. Cuối cùng, `cout << p->luong;` in ra giá trị của thuộc tính `luong` thông qua con trỏ `p`. Vì `luong` đã được gán giá trị 100, kết quả in ra sẽ là 100.
Do đó, đáp án đúng là A. 100.
Trong hàm `main`, một đối tượng `A` thuộc lớp `nhanvien` được tạo ra. Sau đó, một con trỏ `p` kiểu `nhanvien*` được gán địa chỉ của `A` (`p = &A`). Câu lệnh `p->setLuong(100)` sử dụng con trỏ `p` để gọi phương thức `setLuong` của đối tượng `A`, gán giá trị 100 cho thuộc tính `luong` của `A`. Cuối cùng, `cout << p->luong;` in ra giá trị của thuộc tính `luong` thông qua con trỏ `p`. Vì `luong` đã được gán giá trị 100, kết quả in ra sẽ là 100.
Do đó, đáp án đúng là A. 100.
Lời giải:
Đáp án đúng: A
Hàm constructor (hàm tạo) là một hàm đặc biệt trong lập trình hướng đối tượng. Nó có các đặc điểm sau:
* Tên hàm: Tên của constructor trùng với tên của lớp.
* Thời điểm gọi: Constructor tự động được gọi khi một đối tượng mới của lớp được tạo ra (khởi tạo).
* Mục đích: Constructor được sử dụng để khởi tạo các thuộc tính (biến thành viên) của đối tượng, gán giá trị ban đầu cho chúng, hoặc thực hiện các công việc cần thiết khác để đối tượng sẵn sàng sử dụng.
Phân tích các đáp án:
* A. Là hàm tự động được gọi bất kỳ khi nào một đối tượng mới của lớp được tạo ra. - Đây là định nghĩa chính xác về constructor. Constructor đảm bảo đối tượng được khởi tạo đúng cách trước khi sử dụng.
* B. Là hàm được gọi sau khi thực hiện xong tất cả các hàm thành viên của lớp. - Sai. Constructor được gọi *trước* khi bất kỳ hàm thành viên nào khác được gọi trên đối tượng.
* C. Là hàm được định nghĩa ở bên ngoài lớp và chịu trách nhiệm xoá các thành viên của lớp. - Sai. Constructor được định nghĩa bên trong lớp. Hàm chịu trách nhiệm giải phóng bộ nhớ (xoá đối tượng) thường được gọi là destructor (hàm hủy), không phải constructor. Destructor cũng được định nghĩa bên trong lớp.
* D. Là hàm được gọi sau khi xóa đối tượng. - Sai. Đây là đặc điểm của destructor (hàm hủy), không phải constructor.
Vì vậy, đáp án đúng là A.
* Tên hàm: Tên của constructor trùng với tên của lớp.
* Thời điểm gọi: Constructor tự động được gọi khi một đối tượng mới của lớp được tạo ra (khởi tạo).
* Mục đích: Constructor được sử dụng để khởi tạo các thuộc tính (biến thành viên) của đối tượng, gán giá trị ban đầu cho chúng, hoặc thực hiện các công việc cần thiết khác để đối tượng sẵn sàng sử dụng.
Phân tích các đáp án:
* A. Là hàm tự động được gọi bất kỳ khi nào một đối tượng mới của lớp được tạo ra. - Đây là định nghĩa chính xác về constructor. Constructor đảm bảo đối tượng được khởi tạo đúng cách trước khi sử dụng.
* B. Là hàm được gọi sau khi thực hiện xong tất cả các hàm thành viên của lớp. - Sai. Constructor được gọi *trước* khi bất kỳ hàm thành viên nào khác được gọi trên đối tượng.
* C. Là hàm được định nghĩa ở bên ngoài lớp và chịu trách nhiệm xoá các thành viên của lớp. - Sai. Constructor được định nghĩa bên trong lớp. Hàm chịu trách nhiệm giải phóng bộ nhớ (xoá đối tượng) thường được gọi là destructor (hàm hủy), không phải constructor. Destructor cũng được định nghĩa bên trong lớp.
* D. Là hàm được gọi sau khi xóa đối tượng. - Sai. Đây là đặc điểm của destructor (hàm hủy), không phải constructor.
Vì vậy, đáp án đúng là A.
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