Trả lời:
Đáp án đúng: B
Trong lập trình hướng đối tượng (OOP), lớp (class) là một khái niệm cơ bản và quan trọng. Lớp là một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng. Nó định nghĩa các thuộc tính (dữ liệu) và phương thức (hành vi) mà các đối tượng thuộc lớp đó sẽ có. Do đó, khẳng định "Lớp là một đơn vị cơ bản của lập trình hướng đối tượng" là đúng.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: A
Câu hỏi này kiểm tra sự hiểu biết về cơ chế xử lý ngoại lệ trong lập trình. Khi một ngoại lệ (exception) được ném (thrown), chương trình sẽ tìm kiếm một khối `catch` phù hợp để xử lý ngoại lệ đó. Nếu không tìm thấy, chương trình có thể kết thúc hoặc chuyển giao việc xử lý ngoại lệ cho một trình xử lý mặc định của hệ thống.
Tuy nhiên, một khi ngoại lệ đã được ném và không có khối `catch` nào xử lý nó ngay tại điểm ném, chương trình sẽ không quay trở lại điểm ném đó. Thay vào đó, nó sẽ tiếp tục "unwind" stack (gỡ ngăn xếp) cho đến khi tìm thấy một trình xử lý ngoại lệ phù hợp hoặc kết thúc chương trình.
Vì vậy, câu trả lời là TRUE (Đúng).
Tuy nhiên, một khi ngoại lệ đã được ném và không có khối `catch` nào xử lý nó ngay tại điểm ném, chương trình sẽ không quay trở lại điểm ném đó. Thay vào đó, nó sẽ tiếp tục "unwind" stack (gỡ ngăn xếp) cho đến khi tìm thấy một trình xử lý ngoại lệ phù hợp hoặc kết thúc chương trình.
Vì vậy, câu trả lời là TRUE (Đúng).
Lời giải:
Đáp án đúng: A
Câu trả lời đúng là A. TRUE. Khi một đối tượng lớp được truyền cho một template hàm, template đó có thể sử dụng các toán tử (ví dụ: +, -, *, /, ==, !=, <, >, [], (), v.v.) trên đối tượng đó. Để điều này hoạt động, lớp đối tượng phải định nghĩa chồng (overload) các toán tử tương ứng. Nếu không, trình biên dịch sẽ không biết cách thực hiện các phép toán đó trên đối tượng của lớp, dẫn đến lỗi biên dịch. Việc overloading cho phép định nghĩa hành vi của các toán tử khi chúng được áp dụng cho các đối tượng của lớp cụ thể đó, giúp template hàm hoạt động chính xác với các kiểu dữ liệu khác nhau.
Lời giải:
Đáp án đúng: B
Trong đoạn chương trình C++ này, chúng ta cần xác định số lần mà constructor của lớp `Base` được gọi.
- Lớp `Sub1` kế thừa `Base` theo kiểu `virtual`. Điều này có nghĩa là nếu có nhiều lớp kế thừa `Base` thông qua `Sub1`, chỉ có một bản sao của `Base` được tạo ra.
- Lớp `Sub2` kế thừa `Base` theo kiểu thông thường (không `virtual`). Do đó, một bản sao mới của `Base` sẽ được tạo ra khi `Sub2` được khởi tạo.
- Lớp `Multi` kế thừa cả `Sub1` và `Sub2`. Khi một đối tượng `Multi` được tạo ra, constructor của `Base` sẽ được gọi một lần thông qua kế thừa `virtual` từ `Sub1`, và một lần nữa thông qua kế thừa thông thường từ `Sub2`.
Vì vậy, constructor của `Base` sẽ được gọi tổng cộng 2 lần.
- Lớp `Sub1` kế thừa `Base` theo kiểu `virtual`. Điều này có nghĩa là nếu có nhiều lớp kế thừa `Base` thông qua `Sub1`, chỉ có một bản sao của `Base` được tạo ra.
- Lớp `Sub2` kế thừa `Base` theo kiểu thông thường (không `virtual`). Do đó, một bản sao mới của `Base` sẽ được tạo ra khi `Sub2` được khởi tạo.
- Lớp `Multi` kế thừa cả `Sub1` và `Sub2`. Khi một đối tượng `Multi` được tạo ra, constructor của `Base` sẽ được gọi một lần thông qua kế thừa `virtual` từ `Sub1`, và một lần nữa thông qua kế thừa thông thường từ `Sub2`.
Vì vậy, constructor của `Base` sẽ được gọi tổng cộng 2 lần.
Lời giải:
Đáp án đúng: A
Đoạn code C++ có một số vấn đề. Lớp `Base` định nghĩa một phương thức ảo thuần túy `Method` bằng `= 0`. Điều này có nghĩa là `Base` là một lớp trừu tượng (abstract class). Một lớp trừu tượng không thể được khởi tạo trực tiếp, và bất kỳ lớp con nào của nó phải cung cấp một định nghĩa cho tất cả các phương thức ảo thuần túy của nó, nếu không lớp con đó cũng sẽ là một lớp trừu tượng. Trong trường hợp này:
- Lớp `D1` kế thừa từ `Base`, nhưng không định nghĩa lại phương thức `Method`. Do đó, `D1` cũng là một lớp trừu tượng.
- Lớp `D2` kế thừa từ `D1`, và *có* định nghĩa lại phương thức `Method`. Tuy nhiên, lớp `D2` định nghĩa lại `Method` ở chế độ `private`, điều này khiến nó không thể được gọi từ bên ngoài lớp `D2` (nhưng vẫn thỏa mãn yêu cầu phải định nghĩa lại `Method` để không còn là abstract class nữa).
Mấu chốt của vấn đề là lớp `D1` phải định nghĩa lại phương thức `Method` (hoặc làm cho `D1` trở thành abstract class một cách tường minh nếu không muốn định nghĩa lại, nhưng trong trường hợp này thì `D2` vẫn phải định nghĩa lại).
Vậy đáp án đúng là: D. Class D1 must define “Method”
- Lớp `D1` kế thừa từ `Base`, nhưng không định nghĩa lại phương thức `Method`. Do đó, `D1` cũng là một lớp trừu tượng.
- Lớp `D2` kế thừa từ `D1`, và *có* định nghĩa lại phương thức `Method`. Tuy nhiên, lớp `D2` định nghĩa lại `Method` ở chế độ `private`, điều này khiến nó không thể được gọi từ bên ngoài lớp `D2` (nhưng vẫn thỏa mãn yêu cầu phải định nghĩa lại `Method` để không còn là abstract class nữa).
Mấu chốt của vấn đề là lớp `D1` phải định nghĩa lại phương thức `Method` (hoặc làm cho `D1` trở thành abstract class một cách tường minh nếu không muốn định nghĩa lại, nhưng trong trường hợp này thì `D2` vẫn phải định nghĩa lại).
Vậy đáp án đúng là: D. Class D1 must define “Method”
Lời giải:
Đáp án đúng: B
Biến toàn cục là biến được khai báo bên ngoài tất cả các hàm, bao gồm cả hàm `main`. Điều này có nghĩa là biến toàn cục có thể được truy cập và sử dụng bởi bất kỳ hàm nào trong chương trình.
* Đáp án A: Sai. Biến khai báo trong thân một hàm hoặc một khối lệnh là biến cục bộ, chỉ có thể được truy cập trong phạm vi hàm hoặc khối lệnh đó.
* Đáp án B: Đúng. Biến khai báo bên ngoài tất cả các hàm (bao gồm cả `main`) là biến toàn cục.
* Đáp án C: Sai. Vì đáp án A sai.
Vậy, đáp án đúng là B.
* Đáp án A: Sai. Biến khai báo trong thân một hàm hoặc một khối lệnh là biến cục bộ, chỉ có thể được truy cập trong phạm vi hàm hoặc khối lệnh đó.
* Đáp án B: Đúng. Biến khai báo bên ngoài tất cả các hàm (bao gồm cả `main`) là biến toàn cục.
* Đáp án C: Sai. Vì đáp án A sai.
Vậy, đáp án đúng là B.
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