JavaScript is required
Danh sách đề

100+ câu hỏi trắc nghiệm Lập trình nâng cao có lời giải chi tiết - Đề 2

50 câu hỏi 60 phút

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

Anh (Chị) hãy cho biết, lớp là gì?

A.

Là một khuôn mẫu hoặc bản vẽ định nghĩa trạng thái và hành vi của tất cả các đối tượng thuộc về lớp đó

B.

Là một khuôn mẫu định nghĩa trong phần mềm

C.

Là một dạng hàm của chương trình

D.

Là khuôn mẫu hoặc bản vẽ định nghĩa các hàm giao tiếp với người dùng của chương trình hướng đối tượng

Đáp án
Đáp án đúng: A
Lớp (Class) là một khái niệm quan trọng trong lập trình hướng đối tượng. Nó đóng vai trò như một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng (Object). Lớp đị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ó.

Phương án A là đáp án đúng nhất vì nó bao hàm đầy đủ ý nghĩa của lớp trong lập trình hướng đối tượng: Lớp là một khuôn mẫu hoặc bản vẽ định nghĩa trạng thái (thông qua thuộc tính) và hành vi (thông qua phương thức) của tất cả các đối tượng thuộc về lớp đó.

Phương án B chỉ đúng một phần vì lớp không chỉ là khuôn mẫu định nghĩa trong phần mềm, mà còn quy định trạng thái và hành vi.

Phương án C sai vì lớp không phải là một dạng hàm của chương trình. Lớp là một cấu trúc dữ liệu phức tạp hơn, bao gồm cả dữ liệu và các hàm (phương thức) thao tác trên dữ liệu đó.

Phương án D sai vì lớp không chỉ định nghĩa các hàm giao tiếp với người dùng, mà còn định nghĩa các thuộc tính và phương thức khác để xử lý dữ liệu và thực hiện các chức năng khác của chương trình.

Danh sách câu hỏi:

Câu 1:

Anh (Chị) hãy cho biết, lớp là gì?

Lời giải:
Đáp án đúng: A
Lớp (Class) là một khái niệm quan trọng trong lập trình hướng đối tượng. Nó đóng vai trò như một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng (Object). Lớp đị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ó.

Phương án A là đáp án đúng nhất vì nó bao hàm đầy đủ ý nghĩa của lớp trong lập trình hướng đối tượng: Lớp là một khuôn mẫu hoặc bản vẽ định nghĩa trạng thái (thông qua thuộc tính) và hành vi (thông qua phương thức) của tất cả các đối tượng thuộc về lớp đó.

Phương án B chỉ đúng một phần vì lớp không chỉ là khuôn mẫu định nghĩa trong phần mềm, mà còn quy định trạng thái và hành vi.

Phương án C sai vì lớp không phải là một dạng hàm của chương trình. Lớp là một cấu trúc dữ liệu phức tạp hơn, bao gồm cả dữ liệu và các hàm (phương thức) thao tác trên dữ liệu đó.

Phương án D sai vì lớp không chỉ định nghĩa các hàm giao tiếp với người dùng, mà còn định nghĩa các thuộc tính và phương thức khác để xử lý dữ liệu và thực hiện các chức năng khác của chương trình.

Câu 2:

Anh (Chị) hãy cho biết, câu nào sau đây là SAI?

Lời giải:
Đáp án đúng: B
Câu hỏi yêu cầu tìm phát biểu SAI về lớp và đối tượng trong lập trình hướng đối tượng.

* A. Lớp là một mô hình khái niệm: Đúng. Lớp là một bản thiết kế hoặc khuôn mẫu, một khái niệm trừu tượng để mô tả các đối tượng có cùng thuộc tính và hành vi.
* B. Lớp là một thực thể trong thế giới thực: SAI. Lớp không phải là một thực thể vật lý tồn tại trong thế giới thực. Nó là một khái niệm trừu tượng.
* C. Đối tượng là một vật thể thực: Đúng. Đối tượng là một thể hiện cụ thể của một lớp, và nó có thể được xem như một "vật thể" trong chương trình.
* D. Đối tượng là một đại diện của lớp: Đúng. Đối tượng là một instance (thể hiện) của lớp, nó đại diện cho lớp đó trong bộ nhớ máy tính.

Vậy, đáp án SAI là B.

Câu 3:

Anh (Chị) hãy cho biết, trong các khai báo dưới đây, lệnh nào khai báo số nguyên có dấu?

Lời giải:
Đáp án đúng: B
Câu hỏi yêu cầu xác định cách khai báo biến số nguyên có dấu trong C/C++.

* A. `unsigned short number;`: `unsigned` có nghĩa là không dấu, vậy khai báo này tạo ra một số nguyên kiểu `short` *không có dấu*.
* B. `short number;`: Khi chỉ khai báo `short`, mặc định trình biên dịch sẽ hiểu là `signed short`, tức là số nguyên kiểu `short` *có dấu*.
* C. `unsigned long;`: Tương tự như trên, `unsigned` nghĩa là không dấu, vậy khai báo này tạo ra một số nguyên kiểu `long` *không có dấu*.
* D. `signed byte number`: Trong C/C++ không có kiểu `byte` chuẩn. Tuy nhiên, một số trình biên dịch có thể cung cấp kiểu `byte` hoặc tương đương (ví dụ `uint8_t` từ ``). Nếu xem như `byte` là một kiểu có sẵn thì `signed byte` sẽ tạo ra một số nguyên kiểu `byte` *có dấu*. Tuy nhiên, vì kiểu `byte` không chuẩn và cách khai báo không phổ biến nên phương án B vẫn là lựa chọn tốt nhất.

Vậy, đáp án B là chính xác nhất.

Câu 4:

Anh (Chị) hãy chọn chọn phát biểu ĐÚNG?

Lời giải:
Đáp án đúng: A
Câu hỏi này kiểm tra kiến thức về các khái niệm cơ bản trong lập trình hướng đối tượng, cụ thể là sự khác biệt giữa trường dữ liệu và hàm thành viên trong một lớp.

- Phương án A: Sai. Hàm thành viên (methods) biểu diễn hành vi (behavior) của lớp, tức là các thao tác mà đối tượng của lớp có thể thực hiện.

- Phương án B: Đúng. Trường dữ liệu (data fields, attributes) biểu diễn trạng thái (state) của một đối tượng. Trạng thái này được định nghĩa bởi các giá trị mà các trường dữ liệu nắm giữ.

- Phương án C: Sai. Trường dữ liệu là thành phần của một đối tượng, không phải đại diện cho cả lớp. Lớp là khuôn mẫu, còn đối tượng là thể hiện cụ thể của khuôn mẫu đó.

- Phương án D: Sai. Hàm thành viên biểu diễn hành vi, không phải trạng thái của đối tượng.

Vì vậy, đáp án đúng là B.
Lời giải:
Đáp án đúng: B

Trong C++, các biến thành viên của một lớp (class) nếu không được chỉ định rõ quyền truy cập (public, private, protected) thì mặc định sẽ có quyền truy cập private. Trong đoạn code trên, hai biến ab được khai báo bên trong lớp tinhtong nhưng không có từ khóa public, private, hay protected đứng trước. Vì vậy, mặc định chúng sẽ là private.

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:

Anh (Chị) hãy chọn phát biểu đúng về tính kế thừa trong lập trình hướng đối tượng của 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 8:

Anh (Chị) hãy cho biết, con trỏ là gì?

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 9:

Anh (Chị) hãy cho biết, trường dữ liệu tĩnh (static) còn gọi là gì?

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

Câu 14:

Anh (Chị) hãy cho biết hàm constructor là gì?

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
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

Câu 45:

Anh (Chị) hãy cho biết đoạn lệnh sau thực hiện công việc gì?

int main() {

int k=0,n,dem,j=0;

while(j<3) {

k++;

dem=0;

for(n=2;n<=k;n++)

if(k%n==0) dem++;

if(dem==1)

{ cout << k << “\t”; j++;

}

} return

0;

}

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