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

Increment, Non Zero, Document Store, Crop Ratio, Increment, Babushka Doll, Chicken, Chain Link, Node, Battery, Hobbies, Out of Range, Tiles, Needle, Username, Internal Nodes, Entry, Window Manager, Moving Total, Max Sum, Unique Name, Paper Strip, Friend, Unique Numbers, Train, Archive, Platformer, Shipping, Weighted Average, Paragraph, Function Cache, Stack to Vector, Read Write Execute, Limits, Stories, Rare, Runner, Date Transform, Segment
C++ Language Bug fixing Memory management OOP Data structures Pointers Iteration Vector Exceptions Stream Strings Algorithmic thinking Searching Graphs Arithmetic Conditional statements Dynamic programming
Score Distribution
Pricing For Premium Questions