Do you know that? For designers $50 - $79 per-hour range. next

Contact Email: teammmrem@yahoo.com

<< All Upwork (oDesk) and Elance Tests << Upwork (oDesk) test answers << General Programming category

Test answers for Programming with C++ Test 2016

(65, CL) Last updated: July 14
Upwork (oDesk) • General Programming
Questions and answers are regularly updated. Answered and not answered tests questions.

This helps getting job: Hundreds of (cover letter examples , interview questions , profile samples ) • Earn on Upwork (oDesk)
Job assistance: jobs popularityfreelance rates

Popular test answers: HTML, .Net, CSS, English, SEO, Photoshop, iOS, Java, Android, Ruby, Python, JavaScript

See all 6 tests answers updated

Find Upwork (oDesk) and Elance test answers on this website:



Collapse | Expand

65 Answered Test Questions:

1. Which of the following operators cannot be overloaded?

Answers:

• +=

• >>

• <

• .

• ::

• &&

• =

• ?:

2. Which of the following statements are FALSE with regard to destructors

Answers:

• A derived class can call the destructor of the parent class explicitly

• A class may have only one destructor

• Destructors cannot be invoked directly

• The return type for a destructor is void

• Destructors cannot accept arguments

3. Which of the following statements about constructors and destructors are true?

Answers:

• In a given class, constructors are always required to be defined, but destructors are not

• Neither constructors nor destructors can take parameters

• Constructors can take parameters, but destructors cannot

• It is illegal to define a destructor as virtual

• It is illegal to define a constructor as virtual

• Both explicitly declared constructors and explicitly declared destructors are required in a class

4. Consider the sample code given below and answer the question that follows.

class X {
  int   i;

protected:
  float f;

public:
  char  c;
};

class Y : private X { };  

Referring to the sample code above, which of the following data members of X are accessible from class Y

Answers:

• c

• f

• i

• None of the above

5. Consider the following code:

class Animal
{
private:
    int weight;

public:
    Animal()
    {
    }

    virtual void Speak()
    {
        cout << "Animal speaking";
    }
};

class Snake : public Animal
{
private:
    int length;

public:
    Snake()
    {
    }

    void Speak()
    {
        cout << "Snake speaking\r\n";
    }
};

int main()
{
    Animal *array = new Snake[10];

    for (int index= 0; index < 10; index++)
    {
        array->Speak();
        array++;
    }
    
    return 0;
}
What happens when the above code is compiled and executed?

Answers:

• The code will generate compilation errors

• The code will compile and run fine. "Animal speaking" will be printed to the output

• The code will compile and run fine. "Snake speaking" will be printed to the output

• The code will crash at runtime

6. Consider the sample code given below and answer the question that follows.

class A
{
public:
A() {}
~A()
{
cout << "in destructor" << endl;
}
};
void main()
{
A a;
a.~A();
}

How many times will "in destructor" be output when the above code is compiled and executed?

Answers:

• 0

• 1

• 2

• A compile time error will be generated because destructors cannot be called directly

7. Consider the sample code given below and answer the question that follows.

class Outer
{
  public:
    class Inner
      {
        int Count;
        public:
        Inner(){};
      };
};
int main()
  {
Inner innerObject;
Outer outObject;
return 0;
  }

What will be the result when the above code is compiled?

Answers:

• The code will compile fine

• There will be errors because classes cannot be defined inside other classes

• There will be an error because Outer does not define a constructor

• There will be an error because in the declaration of innerObject the type Inner must be qualified by Outer

• There will be no errors but a warning that Inner and Outer do not have destructors

8. Consider the sample code given below and answer the question that follows.

1 class Car
2 {
3 private:
4 int Wheels;
5
6 public:
7 Car(int wheels = 0)
8 : Wheels(wheels)
9 {
10 }
11
12 int GetWheels()
13 {
14 return Wheels;
15 }
16 };
17 main()
18 {
19 Car c(4);
20 cout << "No of wheels:" << c.GetWheels();
21 }

Which of the following lines from the sample code above are examples of data member definition?

Answers:

• 4

• 7

• 8

• 14

• 19

9. Consider the following statements relating to static member functions and choose the appropriate options:

1. They have external linkage
2. They do not have 'this' pointers
3. They can be declared as virtual
4. They can have the same name as a non-static function that has the same argument types

Answers:

• All are true

• Only 1, 2 and 4 are true

• Only 1 and 2 are true

• Only 1,3 and 4 are true

• All are false

10. What access specifier allows only the class or a derived class to access a data member

Answers:

• private

• protected

• default

• virtual

• public

11. Consider the line of code given below and answer the question that follows.

class screen;

Which of the following statements are true about the class declaration above?

Answers:

• Incorrect syntax. The body of the class declaration is missing

• Incorrect syntax. {}; is missing

• The syntax is correct

• Incorrect syntax. {} is missing

• Incorrect syntax. Requires a *

12. What will be the output of the following code?
class b
{
    int i;
    public:
    virtual void vfoo()
  {
    cout <<"Base ";
  }
};
class d1 : public b
{
    int j;
    public:
    void vfoo()
  {
    j++;
    cout <<"Derived";
  }
};
class d2 : public d1
{
    int k;
};
void main()
{
    b *p, ob;
    d2 ob2;
    p = &ob;
    p->vfoo();
    p = &ob2;
    p->vfoo();
}

Answers:

• Base Base

• Base Derived

• Derived Base

• Derived Derived

13. Consider the sample code given below and answer the question that follows.

class Shape
{
public:
virtual void draw() = 0;
};

class Rectangle: public Shape
{
public:
void draw()
{
// Code to draw rectangle
}
//Some more member functions.....
};

class Circle : public Shape
{
public:
void draw()
{
// Code to draw circle
}
//Some more member functions.....
};

int main()
{
Shape objShape;
objShape.draw();
}

What happens if the above program is compiled and executed?

Answers:

• Object objShape of Shape class will be created

• A compile time error will be generated because you cannot declare Shape objects

• A compile time error will be generated because you cannot call draw function of class 'Shape'

• A compile time error will be generated because the derived class's draw() function cannot override the base class draw() function

• None of the above

14. Which of the following is NOT a standard sorting algorithm:

Answers:

• std::sort

• std::qsort

• std::stable_sort

• std::partial_sort

15. Consider the sample code given below and answer the question that follows.

class Person
{
    string name;
    int age;
    Person *spouse;
public:
    Person(string sName);
    Person(string sName, int nAge);
    Person(const Person& p);

    Copy(Person *p);
    Copy(const Person &p);
    SetSpouse(Person *s);
};

Which one of the following are declarations for a copy constructor?

Answers:

• Person(string sName);

• Person(string sName, int nAge);

• Copy(Person *p);

• Person(const Person &p);

• Copy(const Person &p)?

16. Consider two classes A and B:

class A

{

private:

    int x;
    float y;

public:

friend class B;
};

class B

{
};

Which of the following is true?

Answers:

• A can access all private data members of B

• B can access all private data members of A

• A cannot access the private members of B

• B cannot access the private members of A

• Both A and B can access each other's private data members

17. Which of the following statements are true for operator overloading in C++?

Answers:

• The * operator can be overloaded to perform division

• The * operator can be overloaded to perform assignment

• ** can be overloaded to perform "to the power of"

• Operators can be overloaded only in inside classes

• Operators can be overloaded globally

18. Consider the following code:

class BaseException
{
   public:
   virtual void Output()
   {
      cout << "Base Exception" << endl;
   }
};

class DerivedException : public BaseException
{
   public:
   virtual void Output()
   {
      cout << "Derived Exception" << endl;
   }
};

void ExceptionTest()
{
   try
   {
      throw new DerivedException();
   }
   catch (DerivedException ex)
   {
      ex.Output();
   }
   catch (...)
   {
      cout << "Unknown Exception Thrown!" << endl;
   }
}

Invoking Exception Test will result in which output?

Answers:

• Base Exception

• Derived Exception

• Unknown Exception Thrown

• No Output will be generated

19. Which of the following statements are true about C++ vector class?

Answers:

• vector::empty deletes all elements of the vector

• vector::erase can be used to delete a single element and a range of elements of the vector

• After calling, vector::erase causes some of the iterators referencing the vector to become invalid

• vector::count returns the number of elements in the vector

• vector::size returns the number of elements in the vector

• vector::capacity returns the number of elements in the vector

20. Consider the following code:

class BaseException
{
public:
    virtual void Output()
    {
    cout << "Base Exception" << endl;
    }
};

class DerivedException : public BaseException
{
public:
    virtual void Output()
    {
    cout << "Derived Exception" << endl;
    }
};

void ExceptionTest()
{
    try
    {
          throw DerivedException();
    }
    catch (BaseException ex)
    {
          ex.Output();
    }
    catch (...)
    {
          cout << "Unknown Exception Thrown!" << endl;
    }
}

Invoking Exception Test will result in which output?

Answers:

• Base Exception

• Derived Exception

• Unknown Exception Thrown

• No Output will be generated

21. Which of the following statements are true?

Answers:

• Inline functions should be preferred over macros because inline functions have better performance

• Macro usage should be avoided because they are error prone

• Normal functions should be preferred over macros because normal functions have better performance

• Macro usage should be avoided because macros do not perform type checking

• Inline functions should be preferred over macros because inline functions perform type checking

22. Base class members are made accessible to a derived class and inaccessible to rest of the program by _____.

Answers:

• public access specifier

• private access specifier

• protected access specifier

• friend access specifier

23. Which of the following are NOT valid C++ casts

Answers:

• dynamic_cast

• reinterpret_cast

• static_cast

• const_cast

• void_cast

24. Sample Code

typedef char *monthTable[3];

Referring to the code above, which of the following choices creates two monthTable arrays and initializes one of the two?

Answers:

• monthTable(winter,spring={"March","April","May"});

• monthTable winter, spring;

• monthTable, winter, spring;

• monthTable, winter,spring={"March","April","May"};

• monthTable winter,spring={"March","April","May"};

25. Consider the sample code given below and answer the question that follows.

class Person
{
public:
   Person();
      virtual ~Person();
};
class Student : public Person
{
public:
   Student();
   ~Student();
};

main()
{
   Person *p = new Student();
   delete p;
}

Why is the keyword "virtual" added before the Person destructor?

Answers:

• To make it impossible for this particular destructor to be overloaded

• To ensure that correct destructor is called when p is deleted

• To ensure that the destructors are called in proper order

• To improve the speed of class Person's destruction

• To prevent the Person class from being instantiated directly making it an abstract base class

26. Consider the following code:

template<class T> void Kill(T *& objPtr)
{
   delete objPtr;
   objPtr = NULL;
}

class MyClass
{
};

void Test()
{
   MyClass *ptr = new MyClass();
   Kill(ptr);
   Kill(ptr);
}

Invoking Test() will cause which of the following?

Answers:

• Code will Crash or Throw and Exception

• Code will Execute, but there will be a memory leak

• Code will execute properly

• Code will exhibit undefined behavior

27. Consider the following class hierarchy:

class Base
{
}

class Derived : public Base
{
}

Which of the following are true?

Answers:

• The relationship between the Base and Derived can be described as: Base is a Derived

• The relationship between the Base and Derived can be described as: Base has a Derived

• Derived can access only public member functions of Base

• Derived can access public and protected member functions of Base

• The following line of code is valid: Base *object = new Derived();

28. What linkage specifier do you use in order to cause your C++ functions to have C linkage

Answers:

• extern "C"

• extern C

• _stdcall

• _cdecl

• _fastcall?

29. Which of the following techniques should you use to handle a destructor that fails?

Answers:

• Return an error code from the destructor

• Throw an exception from the destructor

• Write the error to a log file

• Use "delete this;" in the destructor

• None of the above

30. Which of the following techniques should you use to handle a constructor that fails?

Answers:

• Return an error code from the constructor

• Throw an exception from the constructor

• Write the error to a log file

• Use "delete this;" in the constructor

• None of the above

31. Which of the following statements about function overloading, is true?

Answers:

• C++ and namespaces should be used to replace occurrences of function overloading

• Overloaded functions may not be declared as "inline"

• Although the return types and parameter types of overloaded functions can be different, the actual number of parameters cannot change

• Function overloading is possible in both C and C++

• The parameter lists and const keyword are used to distinguish functions of the same name declared in the same scope

32. Consider the following code:

#include<stdio.h>

int main(int argc, char* argv[])
{
        enum Colors
        {
                red,
                blue,
                white = 5,
                yellow,
                green,
                pink
        };

        Colors color = green;
        printf("%d", color);
        return 0;
}

What will be the output when the above code is compiled and executed?

Answers:

• 4

• 5

• 6

• 7

• 8

• 9

• The code will have compile time errors

33. Consider the following code:

        class A {
              typedef int I;      // private member
              I f();
              friend I g(I);
              static I x;
          };

Which of the following are valid:

Answers:

• A::I A::f() { return 0; }

• A::I g(A::I p = A::x);

• A::I g(A::I p) { return 0; }

• A::I A::x = 0;

34. In the given sample Code, is the constructor definition valid?

class someclass
{
   int var1, var2;
   public:
      someclass(int num1, int num2) : var1(num1), var2(num2)
      {
      }
};

Answers:

• Yes, it is valid

• No, we cannot assign values like this

• No, the parenthesis cannot be empty

• No, var1 and var2 are not functions but are variables

35. Consider the following code:

class BaseException
{
public:
   virtual void Output()
   {
      cout << "Base Exception" << endl;
   }
};

class DerivedException : public BaseException
{
public:
   virtual void Output()
   {
      cout << "Derived Exception" << endl;
   }
};

void ExceptionTest()
{
   try
   {
      throw DerivedException();
   }
   catch (BaseException& ex)
   {
      ex.Output();
   }
   catch (...)
   {
      cout << "Unknown Exception Thrown!" << endl;
   }
}

Invoking Exception Test will result in which output?

Answers:

• Base Exception

• Derived Exception

• Unknown Exception Thrown

• No Output will be generated

36. Consider the following code:

#define SQ(a) (a*a)

int  answer = SQ(2 + 3);

What will be the value of answer after the above code executes?

Answers:

• 10

• 11

• 25

• 13

• None of the above

37. Consider the following class hierarchy:

class Base
{
}

class Derived : private Base
{
}

Which of the following are true?

Answers:

• The relation between Base and Derived can be described as: Base is a Derived

• The relation between Base and Derived can be described as: Base has a Derived

• Derived can access private member functions of Base

• Derived can access public and protected member functions of Base

38. Consider the sample code given below and answer the question that follows:

char **foo;
/* Missing code goes here */
for(int i = 0; i < 200; i++)
{
foo[i] = new char[100];
}

Referring to the sample code above, what is the missing line of code?

Answers:

• foo = new *char[200];

• foo = new char[200];

• foo = new char[200]*;

• foo = new char*[200];

• foo = new char[][200];

39. What will be the output of the following code?

class A
{
public:
      A():pData(0){}
      ~A(){}
      int operator ++()
      {
            pData++;
            cout << "In first ";
            return pData;
      }
      int operator ++(int)
      {
            pData++;
            cout << "In second ";
            return pData;
      }
private:
      int pData;
};
void main()
{
     A a;
     cout << a++;
     cout << ++a;
}

Answers:

• In first 1 In second 2

• In second 1 In first 2

• In first 0 In second 2

• In second 0 In first 2

40. Which of the following are true about class member functions and constructors?

Answers:

• A constructor can return values but a member function cannot

• A member function can declare local variables but a constructor cannot

• A member function can return values but a constructor cannot

• A constructor can declare local variables but a member function cannot

• A member function can throw exceptions but a constructor cannot

41. How many arguments can be passed to an overloaded binary operator?

Answers:

• 4

• 3

• 2

• 1

• 0

42. What will happen when the following code is compiled and executed?

#include<iostream>
using namespace std;

class myclass
{
private:
    int number;
public:
    myclass()
    {
        number = 2;
    }
    int &a()
    {
        return number;
    }
};

int main()
{
    myclass m1,m2;
    m1.a() = 5;
    m2.a() = m1.a();
    cout << m2.a();
    return 0;
}

Answers:

• Compile time errors will be generated because right hand side of expressions cannot be functions

• The printed output will be 5

• The printed output will be 2

• The printed output will be undefined

43. You want the data member of a class to be accessed only by itself and by the class derived from it. Which access specifier will you give to the data member?

Answers:

• Public

• Private

• Protected

• Friend

• Either Public or Friend

44. If input and output operations have to be performed on a file, an object of the _______ class should be created.

Answers:

• fstream

• iostream

• ostream

• istream

• None

45. State which of the following is true.

Answers:

• Function templates in C++ are used to create a set of functions that apply the same algorithm to different data types

• Classes in C++ are used to develop a set of type-safe classes

• C++ is useful for developing collection classes

• C++ is useful for developing smart pointers

• All of the above

46. Consider the sample code given below and answer the question that follows.

class SomeClass
{
int x;
public:
SomeClass (int xx) : x(xx) {}
};
SomeClass x(10);
SomeClass y(x);

What is wrong with the sample code above?

Answers:

• SomeClass y(x); will generate an error because SomeClass has no copy constructor

• SomeClass y(x); will generate an error because SomeClass has no default constructor

• SomeClass y(x); will generate an error because SomeClass has no public copy constructor

• x(xx) will generate an error because it is illegal to initialize an int with that syntax

• The code will compile without errors

47. Which of the following statements regarding functions are false?

Answers:

• Functions can be overloaded

• Functions can return the type void

• Inline functions are expanded during compile time to avoid invocation overhead

• You can create arrays of functions

• You can pass values to functions by reference arguments

• You can return values from functions by reference arguments

• A function can return a pointer

48. State whether True or False.

Unary operator overloaded by means of a friend function takes one reference argument.

Answers:

• True

• False

49. What does ADT stand for?

Answers:

• Accessible derived type

• Access to derived type

• Abstract data type

• Abstract derived type

• Accessible data type

50. A pure virtual function can be declared by _______.

Answers:

• equating it to 1

• equating it to 0

• equating it to NULL

• the 'pure' keyword

• the 'abstract' keyword

51. Which of the following are true about class and struct in C++:

Answers:

• A class can have destructor but a struct cannot

• A class can have inheritance but a struct cannot

• In a class all members are public by default, whereas in struct all members are private by default

• In a class all members are private by default, whereas in struct all members are public by default

52. What is the output of the following code segment?
int n = 9;
int *p;
p=&n;
n++;
cout << *p+2 << "," << n;

Answers:

• 11,9

• 9,10

• 12,10

• 11,10

53. What will be the output of the following code?

#include<iostream>
using namespace std;

class b
{
int i;
public:
void vfoo()
{ cout <<"In Base "; }
};

class d : public b
{
int j;
public:
void vfoo()
{
cout<<"In Derived ";
}
};

void main()
{
b *p, ob;
d ob2;
p = &ob;
p->vfoo();
p = &ob2;
p->vfoo();
ob2.vfoo();
}

Answers:

• In Base In Base In Derived

• In Base In Derived In Derived

• In Derived In Derived In Derived

• In Derived In Base In Derived

• In Base In Base In Base

54. Which of the following sets of functions do not qualify as overloaded functions?

Answers:

• void fun(int, char *) void fun(char *,int)

• void x(int,char) int *x(int,char)

• int get(int) int get(int,int)

• void F(int *) void F(float *)

• All of the above are overloaded functions

55. Consider the sample code given below and answer the question that follows.

template <class T> Run(T process);

Which one of the following is an example of the sample code given above?

Answers:

• A non-template member function

• A template function definition

• A template function declaration

• A template class definition

• A template class declaration

56. Suppose MyClass is a class that defines a copy constructor and overloads the assignment operator. In which of the following cases will the copy constructor of MyClass be called?

Answers:

• When an object of MyClass is passed by value to a function

• When an object of MyClass is returned by value from a function

• MyClass object1; MyClass object2; object2 = object1;

• MyClass object1; MyClass *object2 = new MyClass(object1);

• MyClass object1; MyClass object2 = object1;

57. Which of the following STL classes is deprecated (ie should no longer be used)

Answers:

• ostrstream

• ostringstream

• ostream

• wostream

58. Which of the following is a  function that returns a non zero value to indicate an I/O stream error?

Answers:

• bad

• good

• fail

• eof

• err

• error

• filerror

• None of the above

59. Consider the following code:

#include<iostream>
using namespace std;

class A
{
public:
  A()
  {
    cout << "Constructor of A\n";
  };
  ~A()
  {
    cout << "Destructor of A\n";
  };
};

class B
{
public:
  B()
  {
    cout << "Constructor of B\n";
  };
  ~B()
  {
    cout << "Destructor of B\n";
  };
};

class C
{
public:
  A objA;
  B objB;
};

int main()
{
  C *pC;
  pC = new C();
  delete pC;
  return 0;
}

What will be the printed output?

Answers:

• Constructor of B Constructor of A Destructor of A Destructor of B

• Constructor of A Constructor of B Destructor of B Destructor of A

• Constructor of B Constructor of A Destructor of B Destructor of A

• Constructor of A Constructor of B Destructor of A Destructor of B

• The sequence of construction and destruction of A and B will be compiler specific

60. Which of the following is not a standard STL header?

Answers:

• <array>

• <deque>

• <queue>

• <list>

61. Which of the following member functions can be used to add an element in an std::vector?

Answers:

• add

• front

• push

• push_back

62. Which of the following is a predefined object in C++ and used to insert to the standard error output?

Answers:

• std::err

• std::error

• std::cerror

• std::cerr

• std::cin

• std::clog

63. Consider the following code:

#include<iostream>
using namespace std;

int main()
{
cout << "The value of __LINE__ is " <<__LINE__;

return 0;
}

What will be the result when the above code is compiled and executed?

Answers:

• The compilation will fail with the error - '__LINE__' : undeclared identifier

• The compilation will fail with the error - '__LINE__' unresolved identifier

• The code will compile and run without errors

• The code will crash at runtime

64. In C++, the keyword auto can be used for:

Answers:

• Automatic assignment of data to objects during instantiation

• Automatic call of a function

• Declaration of a local variable

• Automatically erasing an object when it is no longer needed

• Automatic handling of run-time errors in the program

• Automatic termination of a program in case the user does not respond within a given time period

• Automatic creation of variables

65. If a matching catch handler (or ellipsis catch handler) cannot be found for the current exception, then the following predefined runtime function is called ______.

Answers:

• abort

• set_terminate

• terminate

• close