JavaScript is required
Danh sách đề

400+ câu hỏi trắc nghiệm Lập trình hướng đối tượng kèm đáp án và lời giải minh họa - Đề 5

50 câu hỏi 60 phút

Thẻ ghi nhớ
Luyện tập
Thi thử
Nhấn để lật thẻ
1 / 50

Hãy xem xét đoạn mã sau có lỗi ở dòng nào:

1. class Lopl

2. {

3. private:

4. int a,b;

5. friend voidNhap();

6. };

7. class Lop2

8. {

9. private:

10. float x,y;

11. friend void Nhap( );

12.              };

13. void nhap()

14. {

15. Lop 1 obj 1; Lop2 obj 2;

16. cout«"\n\t Nhap a ="; cin»objl.a;

17. cout«"\n\t Nhap x cin»obj2.x;

18.              }

A.

Không lỗi ở dòng nào

B.

Lỗi tại dòng 15

C.

Lỗi tại dòng 13

D.

Lỗi tại dòng 16, 17

Đáp án
Đoạn mã có một số lỗi sau: 1. **Dòng 5 và 11:** `friend voidNhap();` và `friend void Nhap( );` khai báo hàm bạn `Nhap` (có thể có ý định là `nhap`) nhưng không có kiểu trả về và tên lớp nào được chỉ định để hàm này là bạn. Điều này là không hợp lệ. 2. **Dòng 13:** `void nhap()` định nghĩa một hàm `nhap` (viết thường). Tuy nhiên, trong C++, tên hàm phân biệt chữ hoa chữ thường, nên hàm `Nhap` (viết hoa chữ N) được khai báo là friend ở trên khác với hàm `nhap` này. 3. **Dòng 15:** `Lop 1 obj 1; Lop2 obj 2;` có lỗi chính tả. Tên lớp là `Lopl` (chữ l chứ không phải số 1). Ngoài ra, các biến cần được phân tách bằng dấu chấm phẩy (`;`). Sửa lại là `Lopl obj1; Lop2 obj2;`. 4. **Dòng 16 và 17:** `cout«"\n\t Nhap a ="; cin»objl.a;` và `cout«"\n\t Nhap x cin»obj2.x;` có một số lỗi: * Toán tử xuất (`<<`) và nhập (`>>`) bị viết sai. * `objl` và `obj2` phải là `obj1` và `obj2` (lỗi chính tả). * Hàm `nhap` (viết thường) được định nghĩa, không phải `Nhap` (viết hoa). Như vậy, dòng 16 và 17 chứa nhiều lỗi nhất.

Danh sách câu hỏi:

Lời giải:
Đáp án đúng: A
Đoạn mã có một số lỗi sau: 1. **Dòng 5 và 11:** `friend voidNhap();` và `friend void Nhap( );` khai báo hàm bạn `Nhap` (có thể có ý định là `nhap`) nhưng không có kiểu trả về và tên lớp nào được chỉ định để hàm này là bạn. Điều này là không hợp lệ. 2. **Dòng 13:** `void nhap()` định nghĩa một hàm `nhap` (viết thường). Tuy nhiên, trong C++, tên hàm phân biệt chữ hoa chữ thường, nên hàm `Nhap` (viết hoa chữ N) được khai báo là friend ở trên khác với hàm `nhap` này. 3. **Dòng 15:** `Lop 1 obj 1; Lop2 obj 2;` có lỗi chính tả. Tên lớp là `Lopl` (chữ l chứ không phải số 1). Ngoài ra, các biến cần được phân tách bằng dấu chấm phẩy (`;`). Sửa lại là `Lopl obj1; Lop2 obj2;`. 4. **Dòng 16 và 17:** `cout«"\n\t Nhap a ="; cin»objl.a;` và `cout«"\n\t Nhap x cin»obj2.x;` có một số lỗi: * Toán tử xuất (`<<`) và nhập (`>>`) bị viết sai. * `objl` và `obj2` phải là `obj1` và `obj2` (lỗi chính tả). * Hàm `nhap` (viết thường) được định nghĩa, không phải `Nhap` (viết hoa). Như vậy, dòng 16 và 17 chứa nhiều lỗi nhất.
Lời giải:
Đáp án đúng: A

Trong đoạn mã C++ đã cho, Lop2 kế thừa từ Lopl và đồng thời chứa một đối tượng p thuộc kiểu Lopl. Câu hỏi đặt ra là làm thế nào để đối tượng objLop2 (thuộc lớp Lop2) có thể truy xuất hàm nhap() của lớp Lopl.

Phân tích các phương án:

  • Phương án 1: objLop2.nhap{)
    objLop2.p.nhap()
    . Cách viết objLop2.nhap{) không hợp lệ trong C++, dấu ngoặc nhọn không đúng. Tuy nhiên, biểu thức objLop2.p.nhap() là đúng. Vì Lop2 chứa một đối tượng p kiểu Lopl, ta có thể truy cập hàm nhap() của p bằng cách này.
  • Phương án 2: objLop2.nhap(). Vì Lop2 kế thừa từ Lopl, đối tượng objLop2 có thể trực tiếp truy cập các thành viên public của Lopl, bao gồm cả hàm nhap(). Do đó, phương án này đúng.
  • Phương án 3: objLop2.p ^nhap(). Toán tử ^ không được sử dụng để truy cập thành viên của một đối tượng trong C++. Phương án này sai.
  • Phương án 4: Tất cả đều sai.

Vì cả phương án 1 (một phần) và phương án 2 đều đúng, ta cần chọn phương án đúng nhất. Phương án 2 là ngắn gọn và trực tiếp nhất. Tuy nhiên, phương án 1 cũng đúng một phần (objLop2.p.nhap()). Vì đề bài hỏi "cú pháp nào sau đây là đúng nhất?", ta chọn phương án 2.

Câu 3:

Từ khoá protected trong một lớp có ý nghĩa:

Lời giải:
Đáp án đúng: A
Trong lập trình hướng đối tượng, từ khóa `protected` được sử dụng để khai báo các thành viên (biến hoặc phương thức) của một lớp mà chỉ có thể được truy cập từ bên trong lớp đó, từ các lớp con (lớp kế thừa) của lớp đó, và từ các lớp trong cùng một package (nếu ngôn ngữ lập trình hỗ trợ khái niệm package). Điều này có nghĩa là các thành viên `protected` không thể được truy cập trực tiếp từ bên ngoài lớp hoặc từ các lớp không phải là lớp con và không nằm trong cùng package. * **Đáp án 1:** Sai. Mặc dù `protected` liên quan đến thừa kế, nhưng nó không chỉ đơn thuần là "được thừa kế". Nó còn liên quan đến việc các lớp con có thể *truy cập* các thành viên đó. * **Đáp án 2:** Đúng. `protected` có nghĩa là các thành viên được bảo vệ, tức là chỉ có một số đối tượng/lớp nhất định mới có quyền truy cập. * **Đáp án 3:** Sai. `private` mới là từ khóa chỉ ra các thành viên chỉ được dùng riêng trong lớp đó. * **Đáp án 4:** Sai. `protected` không có nghĩa là dùng chung cho tất cả, mà chỉ giới hạn cho lớp con và các lớp cùng package.
Lời giải:
Đáp án đúng: A
Khi tạo đối tượng `objLop` bằng cú pháp `Lop objLop(4, 5)`, trình biên dịch sẽ tìm một hàm dựng phù hợp để khởi tạo đối tượng này. Trong trường hợp này, hàm dựng `Lop(int m, int n)` phù hợp vì nó nhận hai tham số kiểu `int`. Do đó, hàm dựng 2 sẽ được gọi để khởi tạo đối tượng `objLop` với `m = 4` và `n = 5`. Hàm dựng 1 `Lop()` không được gọi vì nó không có tham số, trong khi cú pháp tạo đối tượng cung cấp hai tham số. Do đó, đáp án đúng là hàm dựng 2.

Câu 5:

Phương pháp lập trình cấu trúc là:

Lời giải:
Đáp án đúng: B
Phương pháp lập trình cấu trúc là một phương pháp lập trình tập trung vào việc cấu trúc hóa dữ liệu và cấu trúc hóa chương trình. Mục tiêu chính là tránh sử dụng các lệnh nhảy (GOTO) một cách tùy tiện, thay vào đó sử dụng các cấu trúc điều khiển như tuần tự, rẽ nhánh (IF-THEN-ELSE), và lặp (FOR, WHILE) để làm cho chương trình dễ đọc, dễ hiểu, dễ bảo trì và ít lỗi hơn. Việc cấu trúc hóa chương trình giúp giảm độ phức tạp và tăng tính modularity, cho phép các phần của chương trình có thể được phát triển và kiểm tra độc lập.

Câu 6:

Đoạn chương trình sau khi biên dịch phát sinh ra lỗi không khai báo biến x tại dòng:

                                                                    

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

Câu 7:

Thành phần protected của lớp là thành phần:

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

Câu 8:

Phân tích mối quan hệ giữa lớp Điểm và lớp Hình tròn ta có thể xác định:

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

Câu 10:

Ta khai báo lớp cơ sở ảo khi nào: 

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

Câu 11:

Trong kế thừa, có thể:

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

Câu 13:

Trong kế thừa nhiều mức có cho phép:

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

Câu 14:

Cho biết các ví dụ sau ví dụ chứng tỏ tính kế thừ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

Câu 18:

Trong kế thừa, lớp dẫn xuất có thể kế thừa các phương thức và thuộc tính của lớp cơ sở nhưng không:

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

Câu 19:

Bắt buộc phải xây dựng hàm tạo lớp khi:

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

Câu 20:

Mối quan hệ giữa lớp Môn Học và lớp Sinh viên là:

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

Câu 22:

Cho khai báo sau: 

                                                        

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

Câu 23:

Một bạn xây dựng lại lớp số nguyên như trên, tại dòng số 5 bạn khai báo:

                                                                        

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

Câu 24:

Một bạn xây dựng lớp Ciclre(hình tròn) kế thừa lớp point (điểm) như trên. Một bạn nhận xét chương trình sẽ bị lỗi tại dòng số 6 vì bạn chưa khai báo lớp point. Theo bạn nhận xét này:

                                                                  

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

Câu 26:

Đoạn chương trình trên xây dựng template tìm giá trị lớn nhất. Việc sử dụng template này để xác định giá trị lớn nhất của hai biến ten1, ten2 là:

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

Câu 27:

OOP là viết tắt củ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

Câu 28:

Trong kế thừa. Lớp mới có thuật ngữ tiếng Anh là:
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

Câu 29:

Phương pháp lập trình cấu trúc là:
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

Câu 30:

Khi khai báo và xây dựng thành công lớp đối tượng, để truy cập vào thành phần của lớp ta phải:
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

Câu 31:

Thành phần private của lớp là thành phần:
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

Câu 32:

Cho lớp Điểm trong hệ tọa độ xOy. Các phương thức có thể có của lớp điểm là:
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

Câu 33:

Hàm tạo trong ngôn ngữ C++:
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

Câu 34:

Cho đoạn chương trình sau:
class Diem {
float x,y;
public:

};
class Doanthang{
Diem A,B;
public:

};
Lớp Doanthang được gọi là:
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

Câu 36:

Tính chất kế thừa dạng Public là:
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

Câu 37:

Khai báo các phương thức trong lớp cơ sở trừu tượng phải:
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

Câu 40:

Trong kế thừa, lớp dẫn xuất có thể kế thừa các phương thức và thuộc tính của lớp cơ sở nhưng không:
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

Câu 41:

Khi xây dựng lớp đối tượng công việc cần làm là:
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

Câu 42:

Cho đoạn chương trình sau:
class Phanso
{
private:
int ts,ms;
public:
Phanso(int ts1, int ms1)
{ts=ts1;ms=ms1;}
};
void main()
{
Phan so P1,P2(3,4);
}
Câu lệnh khai báo Phanso P1 bị báo lỗi vì:
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

Câu 43:

Xây dựng lớp Time trong java như hình trên, phương thức là:
Xây dựng lớp Time trong java như hình trên, phương thức là (ảnh 1)
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

Câu 44:

Cấu trúc thông thường của lớp trong C# là:
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

Câu 45:

Cho lớp Lophoc được khai báo như trên, nếu thay câu lệnh private string maLop thành public string maLop thì:
Cho lớp Lophoc được khai báo như trên, nếu thay câu lệnh private string maLop thành public string maLop thì: (ảnh 1)
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

Câu 46:

Cần In danh sách thí sinh dự thi theo phòng gồm các thông tin: SBD, Họ và tên, Ngày sinh, Giới tính, Phòng thi, Giờ thi. Người ta xây dựng hai lớp đối tượng là lớp đối tượng Thí sinh, lớp đối tượng Danh sách thí sinh theo phòng. Thuộc tính của lớp Danh sách thí sinh có thể là:
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

Câu 48:

class A là bạn của class B, class B là bạn của class C thì:
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

Câu 49:

Chọn phát biểu đúng trong các phát biểu sau:
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

Câu 50:

Đoạn chương trình trên sẽ in ra giá trị là:
Đoạn chương trình trên sẽ in ra giá trị là: (ảnh 1)
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