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
No comments:
Post a Comment