15 expert-level C++ programming interview questions and answers

In this article, TipsMake.com will summarize the 16 most common C++ programming interview questions at the expert level (Experienced).

Interviewing is an important step for both employees and businesses. For employees, you need to answer interview questions well to get hired. Meanwhile, businesses wishing to recruit must create a suitable set of questions to most accurately assess a candidate's capabilities.

In this article, TipsMake.com will summarize the 16 most common C++ programming interview questions at the expert level (Experienced). TipsMake.com hopes that this article will be useful to both expert level programmers looking for jobs and employers.

Question 1: Write a program to check a number to see if it is a palindrome number or not?

Reply:

15 expert-level C++ programming interview questions and answers Picture 115 expert-level C++ programming interview questions and answers Picture 1

 

Question 2: What is the copy initialization function?

Answer: A copy function is a member function that uses another object from the same class to instantiate something new. Simply put, a copy function is a function that creates an object by initializing it with another object of the same constructed class.

Sample code:

#include using namespace std; class A { Public: int x; A(int a) // parameterized constructor. { x=a; } A(A &i) // copy constructor { x = i.x; } }; int main() { A a1(20); // Calling the parameterized constructor. A a2(a1); // Calling the copy constructor. cout< 

Câu 3: Viết chương trình tìm giai thừa của một số?

Trả lời: 

15 expert-level C++ programming interview questions and answers Picture 215 expert-level C++ programming interview questions and answers Picture 2

Câu 4: Kế thừa là gì?

Trả lời: Kế thừa là cơ chế mà trong đó bạn có thể tạo ra một lớp mới hay còn gọi là lớp con từ lớp hiện tại hay còn gọi là lớp cha. Lớp con này còn được gọi là lớp dẫn xuất và lớp cha còn được gọi là lớp cơ sở.

15 expert-level C++ programming interview questions and answers Picture 315 expert-level C++ programming interview questions and answers Picture 3

Câu 5: Trừu tượng là gì?

Trả lời: Trừu tượng có thể được định nghĩa là một kỹ thuật trong đó bạn chỉ hiển thị chức năng cho người dùng, tức là các chi tiết mà bạn muốn người dùng nhìn thấy, ẩn đi các chi tiết bên trong hoặc các chi tiết của quá trình triển khai.

Câu 6: Đoạn code sau đây trả về kết quả là gì?

15 expert-level C++ programming interview questions and answers Picture 415 expert-level C++ programming interview questions and answers Picture 4

A: 5.

B: 4.

C: 7.

D: 6.

Trả lời: Kết quả là D, 6. Toán tử bậc ba được sử dụng, giá trị của a nhỏ hơn b vi phạm điều kiện nên 6 là câu trả lời cuối cùng.

Câu 7: Viết chương trình tìm tần suất của một số trong C++?

Trả lời:

15 expert-level C++ programming interview questions and answers Picture 515 expert-level C++ programming interview questions and answers Picture 5

Câu 8: Đoạn code sau đây trả về kết quả là gì?

15 expert-level C++ programming interview questions and answers Picture 615 expert-level C++ programming interview questions and answers Picture 6

A: 1010.

B: 1001.

C: 11.

D: 1000.

Trả lời: Kết quả là A, 1010. Giá trị của j được tăng lên 11, sau đó giá trị j được thêm vào 100 nhưng không được gán và cuối cùng, giá trị của j (là 11) được thêm vào 999 và cho ra kết quả cuối cùng là 1010.

Câu 9: Tuyên bố nào sau đây về các đối tượng chuỗi trong C++ là chính xác?

A: Các đối tượng chuỗi luôn phải được kết thúc bằng ký tự null.

B: Các đối tượng chuỗi có kích thước tĩnh.

C: Các đối tượng chuỗi có kích thước động.

D: Các đối tượng chuỗi sử dụng nhiều bộ nhớ hơn yêu cầu.

Trả lời: Kết quả là C, các đối tượng chuỗi có kích thước động.

Câu 10: So sánh sự khác biệt giữa shallow copy và deep copy.

Trả lời:

Shallow Copy Deep Copy
Nó lưu trữ các tham chiếu của đối tượng đến địa chỉ bộ nhớ ban đầu Nó tạo ra một bản sao mới và riêng biệt của toàn bộ đối tượng và địa chỉ bộ nhớ duy nhất của nó
Nhanh hơn Tương đối chậm
Nó phản ánh những thay đổi được thực hiện đối với đối tượng mới/được sao chép trong đối tượng ban đầu Nó không phản ánh những thay đổi được thực hiện đối với đối tượng mới/được sao chép trong đối tượng ban đầu

Câu 11: Hàm ảo với hàm ảo thuần túy khác nhau như thế nào?

Trả lời: Hàm ảo là hàm thành viên của lớp cơ sở mà lớp dẫn xuất có thể sửa đổi. Hàm thành viên của lớp cơ sở là hàm ảo thuần túy phải được định nghĩa trong kiểu dẫn xuất; nếu không lớp dẫn xuất cũng trở nên trừu tượng.

class interface Woocommerce{ void print(); } class Bat implements Woo{ public void print(){System.out.println("Woo!");} public static void main(String args[]){ Bat obj = new Bat(); obj.print(); } } 

Câu 12: Lớp D được dẫn xuất từ lớp cơ sở B. Nếu tạo đối tượng kiểu D thì hàm tạo của lớp này sẽ được gọi theo thứ tự nào?

Trả lời: Lớp dẫn xuất bao gồm hai phần: Phần cơ sở và phần dẫn xuất. C++ xây dựng các đối tượng dẫn xuất theo từng giai đoạn. Quá trình bắt đầu với việc xây dựng lớp cơ sở nhiều nhất (ở trên cùng của cây thừa kế), tiếp theo là xây dựng từng lớp con theo thứ tự và sau đó là lớp con nhiều nhất. Do đó, đầu tiên, hàm khởi tạo của lớp B sẽ được gọi, sau đó là hàm khởi tạo của lớp D.

Câu 13: Hàm ảo có thể được gọi từ một hàm khởi tạo không?

Trả lời: Một quy trình ảo được gọi là một hàm Object nhưng hãy thận trọng. Nó có thể hoạt động khác với những gì bạn mong đợi. Cơ chế gọi ảo trong một hàm Object bị vô hiệu hóa do việc ghi đè từ các lớp dẫn xuất chưa xảy ra. Các khối xây dựng được sử dụng để tạo ra các đối tượng, "cơ sở trước khi dẫn xuất".

class Dog{ void make(){ System.out.println("labrador"); } } public class Big extends Dog{ void make(){ System.out.println("Big Dog labrador "); } public static void main(String args[]){ Dog ob1 = new Big(); ob1.make(); } }

Câu 14: Con trỏ void là gì?

Trả lời: Trong C++, một con trỏ void không có kết nối với bất kỳ kiểu dữ liệu cụ thể nào. Nó chỉ định một vị trí cho dữ liệu cụ thể trong bộ lưu trữ. Điều này chỉ ra rằng nó đang trỏ đến địa chỉ của một biến. Nó cũng có tên là "con trỏ mục đích chung".

#include using namespace std; int main() { int a = 10; char b = 'x'; void* p = &a; // void pointer holds address of int 'a' p = &b; // void pointer holds address of char 'b' }

Câu 15: Làm cách nào để giải phóng và cấp phát bộ nhớ trong C++?

Trả lời: Trong C++, heap được sử dụng để cấp phát bộ nhớ động và các hàm này là một phần của thư viện chuẩn. Malloc() và free() là hai thao tác quan trọng với bộ nhớ động. Kích thước của vùng bộ nhớ mong muốn tính bằng byte, tham số duy nhất được chấp nhận bởi hàm malloc().

TipsMake.com hy vọng rằng bài viết này sẽ có ích đối với bạn.

5 ★ | 1 Vote