C++ Online Test

TestDome skill assessments are used by more than 5,000 companies and 450,000 individual test takers.

Jobseekers: Get a Certificate

Take a Practice Test

Companies: Try First, Pay Later

Sign Up To Use This Test

The C++ online test assesses candidates' knowledge of programming in the C++ language and their ability to leverage commonly used parts of the C++ Standard Library.

It's an ideal test for pre-employment screening. A good C++ developer needs to be able not only to solve problems using C++ but also recognize when to leverage the functionality provided by the Standard Library to write robust and maintainable code.

This online test requires candidates to solve coding problems in C++ and find and fix bugs in a C++ program.

Recommended Job Roles
Back-End Developer
C++ Developer
Sample Candidate Report

Sample Free Questions

Merge Names


C++ Arrays Public

Implement the unique_names method. When passed two vectors of names, it will return a vector containing the names that appear in either or both vectors. The returned vector should have no duplicates.

For example, calling unique_names(std::vector<std::string>{"Ava", "Emma", "Olivia"}, std::vector<std::string>{"Olivia", "Sophia", "Emma"}) should return a vector containing Ava, Emma, Olivia, and Sophia in any order.

User Input


C++ Inheritance OOP Public

User interface contains two types of user input controls: TextInput, which accepts all characters and NumericInput, which accepts only digits.

Implement the following methods:

  • add on class TextInput - adds the given character to the current value
  • getValue on class TextInput - returns the current value
  • add on class NumericInput - overrides the base class method so that each non-numeric character is ignored

For example, the following code should output "10":

TextInput* input = new NumericInput();
std::cout << input->getValue();



C++ Closures Higher order function Public

As part of a data processing pipeline, complete the implementation of the makePipeline method:

  • The method should accept a vector of functions, and it should return a new function that accepts one parameter arg.
  • The returned function should call the first function in the makePipeline with the parameter arg, and call the second function with the result of the first function.
  • The returned function should continue calling each function in the makePipeline in order, following the same pattern, and return the value from the last function.

For example,

std::vector<std::function<int (int)>> functions;
functions.push_back([] (int x) -> int { return x * 3; });
functions.push_back([] (int x) -> int { return x + 1; });
functions.push_back([] (int x) -> int { return x / 2; });
std::function<int (int)> func = makePipeline(functions);

calling the func(3) should return 5.

Use Free Questions On a Trial Plan

Premium Questions

The premium question library contains our unique, hand-crafted questions. We offer a refund if you find any of them answered online.

Non Zero, Document Store, Babushka Doll, Out of Range, Tiles, Needle, Max Sum, Paper Strip, Shipping, Read Write Execute, Limits, Stories, Runner, Segment, Archive, Chain Link, Chicken, Crop Ratio, Date Transform, Veterinarian, Hobbies, Increment, Increment, Internal Nodes, Moving Total, Node, Paragraph, Platformer, Stack to Vector, Ship, Unique Product, Unique Numbers, Username, Weighted Average, Window Manager, Battery, Book Sale, Friend, Function Cache
C++ Bug fixing Language Memory management Exceptions Vector Stream Strings Algorithmic thinking Arithmetic Conditional statements Dynamic programming Destructors Linked list Higher order function Interfaces OOP Integer division Regex Queue Iteration Map Pointers Arrays Tree Unordered set Recursion Data structures Complexity Stack Unordered map Sorting Graphs Hash and equals
Score Distribution
Pricing For Premium Questions