Đáp án đúng: A
Câu trả lời đúng là B. FALSE. Bạn hoàn toàn có thể sử dụng enumeration (enum) bên trong một class trong nhiều ngôn ngữ lập trình như C++, Java, và C#. Enum giúp định nghĩa một tập hợp các hằng số có tên, làm cho code dễ đọc và dễ bảo trì hơn. Việc sử dụng enum trong class giúp nhóm các hằng số liên quan đến class đó lại với nhau, tăng tính tổ chức và rõ ràng của code.
Câu hỏi liên quan
Giải thích:
* Base class (Lớp cơ sở): Là một lớp mà các lớp khác kế thừa (inherit) từ nó. Nó cung cấp các thuộc tính và phương thức chung mà các lớp con (derived classes) có thể sử dụng hoặc ghi đè (override).
* Top of the inheritance hierarchy (Đầu hệ thống phân cấp kế thừa): Trong một hệ thống phân cấp kế thừa, lớp cơ sở thường nằm ở trên cùng, là lớp gốc mà từ đó các lớp khác phát triển.
* Abstract class (Lớp trừu tượng): Là một lớp không thể tạo đối tượng trực tiếp từ nó. Lớp trừu tượng thường chứa ít nhất một phương thức trừu tượng (pure virtual function), phương thức này phải được định nghĩa lại trong các lớp con.
Trong ngữ cảnh này, một "base class" thường là một lớp trừu tượng nằm ở đỉnh của hệ thống phân cấp kế thừa, định nghĩa các hành vi và thuộc tính chung mà tất cả các lớp con phải tuân theo. Mặc dù một base class có thể không nhất thiết phải là abstract, lựa chọn A là mô tả chính xác nhất về vai trò điển hình của một base class trong thiết kế hướng đối tượng.
Các lựa chọn khác không đúng vì:
* B. A class with a pure virtual function in it.: Một lớp có pure virtual function là một lớp trừu tượng (abstract class), nhưng không phải tất cả các base class đều là abstract.
* C. A class that inherits from another class: Đây là định nghĩa của một lớp con (derived class), không phải base class.
* D. A class that is inherited by another class, and thus is included in that class.: Mặc dù đúng là một base class được kế thừa bởi các lớp khác, nhưng mô tả này không đầy đủ vì nó không đề cập đến vai trò của base class trong việc cung cấp các thuộc tính và phương thức chung.
Trong lập trình hướng đối tượng, một ngoại lệ (exception) được tạo ra (generated) khi có một sự kiện bất thường xảy ra trong quá trình thực thi chương trình, làm gián đoạn luồng thực thi bình thường. Điều này thường xảy ra khi một điều kiện lỗi hoặc không mong muốn phát sinh. Các phương án được đánh giá như sau:
- A. Trong khối catch: Khối
catch
dùng để bắt và xử lý các ngoại lệ đã được ném ra, chứ không phải là nơi ngoại lệ được tạo ra. - B. Trong mệnh đề throw: Mệnh đề
throw
được sử dụng để chủ động ném ra một ngoại lệ. Đây chính là nơi ngoại lệ được tạo ra và "ném" đi để báo hiệu một vấn đề. - C. Trong constructor của một lớp: Constructor của một lớp có thể tạo ra ngoại lệ nếu có lỗi xảy ra trong quá trình khởi tạo đối tượng, ví dụ như không đủ bộ nhớ hoặc dữ liệu đầu vào không hợp lệ.
- D. Chỉ khi cấp phát bộ nhớ thất bại: Việc cấp phát bộ nhớ thất bại chỉ là một trong nhiều nguyên nhân có thể dẫn đến ngoại lệ. Ngoại lệ có thể xảy ra do nhiều nguyên nhân khác như chia cho 0, truy cập vào một vị trí bộ nhớ không hợp lệ, hoặc do logic nghiệp vụ của chương trình.
Như vậy, đáp án chính xác nhất là B và C. Tuy nhiên, vì câu hỏi yêu cầu chọn MỘT đáp án, đáp án B mang tính tổng quát hơn vì `throw` là cách trực tiếp tạo ra exception, còn constructor chỉ là một trường hợp cụ thể. Trong một số ngôn ngữ, việc ném exception trong constructor được khuyến khích để báo hiệu việc khởi tạo không thành công.
Tuy nhiên, theo đề bài này, ta nên chọn B là đáp án đúng nhất.
* A. The class must not have method: Sai. Abstract class có thể có method, thậm chí cả method đã được implement.
* B. The class must have a constructor that takes no arguments: Sai. Abstract class có thể có constructor có tham số hoặc không tham số.
* C. The class must have a function definition equal to zero: Có vẻ như đang ám chỉ đến pure virtual function (ví dụ `virtual void foo() = 0;` trong C++). Nếu một class chứa ít nhất một pure virtual function, thì class đó là abstract. Đây có lẽ là đáp án đúng nhất trong các lựa chọn.
* D. The class may only exist during the planning phase: Sai. Abstract class là một khái niệm lập trình cụ thể, không chỉ tồn tại trong giai đoạn planning.
Do đó, đáp án C có vẻ phù hợp nhất, dù câu hỏi và các đáp án đều không rõ ràng.
* Phương án A sai: Vì mảng phải được đặt trên các vị trí bộ nhớ *liên tiếp* nhau.
* Phương án B sai: Vì các phần tử trong mảng phải có *cùng* kiểu dữ liệu.
* Phương án C đúng: Đáp án này mô tả chính xác khái niệm mảng: một chuỗi các phần tử *cùng kiểu*, được đặt trên các vị trí bộ nhớ *liên tiếp* và có thể truy cập thông qua chỉ số và tên mảng.
* Phương án D sai: Vì có một đáp án đúng (phương án C).
Vậy đáp án đúng là C.
* Đáp án A: Đúng. Biến được khai báo bên trong các hàm hoặc thủ tục, kể cả hàm `main()`, là biến địa phương.
* Đáp án B: Sai. Biến được khai báo bên trong các hàm *ngoại trừ* hàm `main()` không bao quát hết các trường hợp biến địa phương.
* Đáp án C: Sai. Biến được khai báo bên trong hàm `main()` chỉ là một trường hợp cụ thể của biến địa phương.
* Đáp án D: Sai. Biến được khai báo bên ngoài các hàm là biến toàn cục (global variable), không phải biến địa phương.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂ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.