Upwork/oDesk C++ Programming Test
ยท
1. 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();
2. Which of the following member
functions can be used to add an element in an std::vector?
Answers:
โข add
โข front
โข push
โข push_back
3. 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
4. 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
5. 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
6. 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?
7. Which of the following are NOT
valid C++ casts
Answers:
โข dynamic_cast
โข einterpret_cast
โข static_cast
โข const_cast
โข void_cast
8. 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
9. 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
10. 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
11. 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
12. 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 orde
โข To improve the
speed of class Person's destruction
โข To prevent the
Person class from being instantiated directly making it an abstract base class
13. 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
14. 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)?
15. 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"};
16. Consider the sample code given
below and answer the question that follows:
<font size=2>
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?
</font
Answers:
โข font
size=2>foo = new *char[200];</font
โข font
size=2>foo = new char[200];</font
โข font
size=2>foo = new char[200]*;</font
โข font size=2>foo = new
char*[200];</font
โข font
size=2>foo = new char[][200];</font
17. 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 *
18. 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
19. What access specifier allows only
the class or a derived class to access a data membe
Answers:
โข private
โข protected
โข default
โข virtual
โข public
20. 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
21. 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
22. 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
23. 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
24. 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 pointe
25. What does ADT stand for?
Answers:
โข Accessible
derived type
โข Access to
derived type
โข Abstract data type
โข Abstract
derived type
โข Accessible data
type
26. 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 A
{
public :
B()
{
cout << "Constructor of B\n";
};
~B()
{
cout << "Destructor of B\n";
};
};
int main()
{
B *pB;
pB = new B();
delete pB;
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
27. Consider the following code:
<font size=2>
template<class T> void Kill(T
*& objPtr)
{
delete objPtr;
objPtr = NULL;
}
class MyClass
{
};
void Test()
{
MyClass *ptr = new
MyClass();
Kill(ptr);
Kill(ptr);
}
</font>
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 behavio
28. 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
29. 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;
30. 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 identifie
โข The compilation
will fail with the error - '__LINE__' unresolved identifie
โข The code will compile and
run without errors
โข The code will
crash at runtime
31. Which of the following STL classes
is deprecated (i.e. should no longer be used)?
Answers:
โข ostrstream
โข ostringstream
โข ostream
โข wostream