201
87.2k

90+ Object Oriented Programming (OOP) Solved MCQs

These multiple-choice questions (MCQs) are designed to enhance your knowledge and understanding in the following areas: Computer Science Engineering (CSE) , Information Technology Engineering (IT) , Bachelor of Science in Computer Science TY (BSc CS) , Bachelor of Science in Computer Science (BSc CS) , Programming Languages .

51.

Empty parentheses following a function name in a function prototype indicate that the function does not require any parameters to perform its task.

A. true
B. false
Answer» A. true
52.

C++ programmers concentrate on creating , which contain data members and the member functions that manipulate those data members and provide services to clients.

A. structures
B. classes
C. objects
D. function
Answer» B. classes
53.

Which of the following is FALSE about references in C++

A. a reference must be initialized when declared
B. once a reference is created, it cannot be later made to reference another object; it cannot be reset
C. references cannot be null
D. references cannot refer to constant value
Answer» D. references cannot refer to constant value
54.

What will be the output of following program?
#include <iostream> using namespace std;
class Test{
public:
Test() { cout <<"Hello from Test() "; }
} a;
int main()
{
cout <<"Main Started "; return 0;
}

A. main started
B. main started hello from test()
C. hello from test() main started
D. compiler error: global objects are not allowed
Answer» C. hello from test() main started
55.

Which of the following is true about constructors.
They cannot be virtual.
 They cannot be private.
They are automatically called by new operator

A. all 1, 2, and 3
B. only 1 and 3
C. only 1 and 2
D. only 2 and 3
Answer» B. only 1 and 3
56.

Which of the following operators are overloaded by default by the compiler?
1) Comparison Operator ( == )
2) Assignment Operator ( = )

A. both 1 and 2
B. only 1
C. only 2
D. none of the two
Answer» C. only 2
57.

Which of the following is true about inline functions and macros.

A. inline functions do type checking for parameters, macros don't
B. macros cannot have return statement, inline functions can
C. macros are processed by pre-processor and inline functions are processed in later stages of compilation.
D. all of the above
Answer» D. all of the above
58.

In C++, const qualifier can be applied to
Member functions of a class
Function arguments
To a class data member which is declared as static
Reference variables

A. only 1, 2 and 3
B. only 1, 2 and 4
C. all
D. only 1, 3 and 4
Answer» C. all
59.

Which type is best suited to represent the logical values?

A. integer
B. boolean
C. character
D. all of the mentioned
Answer» B. boolean
60.

The following is the C++ style comment

A. //
B. /*..*/
C.
D. none of above
Answer» A. //
61.

Which of the following statements is false?

A. every c++ program must have a main().
B. in c++, white spaces and carriage returns are ignored by the compiler.
C. c++ statements terminate with semicolon.
D. main() terminates with semicolon.
Answer» D. main() terminates with semicolon.
62.

Functions can returns

A. arrays
B. references
C. objects
D. all of above
Answer» D. all of above
63.

Which of the following control expressions are valid for an if statement?

A. an integer expression
B. a boolean expression
C. either a or b
D. neither a nor b
Answer» C. either a or b
64.

What will be the values of x, m and n after execution of the following statements? Int x, m, n;
m=10; n=15;
x= ++m + n++;

A. x=25, m=10, n=15
B. x=27, m=10, n=15
C. x=26, m=11, n=16
D. x=27, m=11, n=16
Answer» C. x=26, m=11, n=16
65.

Which of the following approach is adapted by C++?

A. top-down
B. bottom-up
C. right-left
D. left-right
Answer» B. bottom-up
66.

Which of the following is the correct class of the object cout?

A. iostream
B. istream
C. ostream
D. ifstream
Answer» C. ostream
67.

Which of the following functions are performed by a constructor?

A. construct a new class
B. construct a new object
C. construct a new function
D. initialize objects
Answer» D. initialize objects
68.

Which of the following ways are legal to access a class data member using this pointer?

A. this->x
B. this.x
C. *this.x
D. *this-x
Answer» A. this->x
69.

Which operator is having right to left associativity in the following?

A. array subscripting
B. function call
C. addition and subtraction
D. type cast
Answer» D. type cast
70.

Which operator is having the highest precedence?

A. postfix
B. unary
C. shift
D. equality
Answer» A. postfix
71.

#include <iostream>
using namespace std;
int main()
{
int a;
a = 5 + 3 * 5;
cout <<a; return 0;
}

A. 35
B. 20
C. 25
D. 30
Answer» B. 20
72.

In procedural programming the focus in on …...........

A. data
B. structure
C. function
D. pointers
Answer» C. function
73.

In object oriented programming the focus is on ….......

A. data
B. structure
C. function
D. pointers
Answer» A. data
74.

Which of the following feature of procedure oriented program is false?

A. makes use of bottom up approach
B. functions share global data
C. the most fundamental unit of program is function
D. all of these
Answer» A. makes use of bottom up approach
75.

Which of the following feature of object oriented program is false?

A. data and functions can be added easily
B. data can be hidden from outside world
C. object can communicate with each other
D. the focus is on procedures
Answer» D. the focus is on procedures
76.

C++ was originally developed by ….......

A. donald knuth
B. bjarne sroustrups
C. dennis ritchie
D. none of these
Answer» B. bjarne sroustrups
77.

Which of the following approach is adopted in C++?

A. top down
B. bottom up
C. horizontal
D. vertical
Answer» B. bottom up
78.

Which feature of C++ contain the concept of super class and subclass?

A. class and object
B. encapsulation
C. abstraction
D. inheritance
Answer» D. inheritance
79.

The main intention of using inheritance is ….........

A. to help in converting one data type to other
B. to hide the details of base class
C. to extend the capabilities of base class
D. to help in modular programming
Answer» C. to extend the capabilities of base class
80.

If particular software can be used in some other application than the one for which it is created then it reveals ….........

A. data binding
B. data reusability
C. data encapsulation
D. none of these
Answer» B. data reusability
81.

Which of the following data type does not return anything?

A. int
B. short
C. long
D. void
Answer» D. void
82.

How many objects can be created from an abstract class?

A. zero
B. one
C. two
D. as many as we want
Answer» A. zero
83.

Which of the following statements is correct for a static member function?
1. It can access only other static members of its class.
 It can be called using the class name, instead of objects

A. only 1 is correct
B. only 2 is correct
C. both 1 and 2 are correct
D. both 1 and 2 are incorrect
Answer» C. both 1 and 2 are correct
84.

What happens when a class with parameterized constructors and having no default constructor is used in a program and we create an object that needs a zero-argument constructor?

A. compile-time error
B. preprocessing error
C. runtime error
D. runtime exception
Answer» A. compile-time error
85.

Which of the following interface determines how your program will be used by other program?

A. public
B. private
C. protected
D. none of these
Answer» A. public
86.

What is the difference between struct and class in C++?

A. all members of a structure are public and structures don't have constructors and destructors
B. members of a class are private by default and members of struct are public by default. when deriving a struct from a class/struct, default access-specifier for a base class/struct is public and when deriving a class, default access specifier is private.
C. all members of a structure are public and structures don't have virtual functions
D. all above
Answer» B. members of a class are private by default and members of struct are public by default. when deriving a struct from a class/struct, default access-specifier for a base class/struct is public and when deriving a class, default access specifier is private.
87.

Predict the output of following C++ program
#include<iostream> using namespace std;
class Empty {}; int main()
{
cout <<sizeof(Empty); return 0;
}

A. a non zero value
B. 0
C. compile time error
D. runtime error
Answer» A. a non zero value
88.

class Test { int x;
};
int main()
{
Test t; cout <<t.x; return 0;
}

A. 0
B. garbage value
C. compile time error
Answer» C. compile time error
89.

Which of the following is true?

A. all objects of a class share all data members of class
B. objects of a class do not share non-static members. every object has its own copy
C. objects of a class do not share codes of non-static methods, they have their own copy
D. none
Answer» B. objects of a class do not share non-static members. every object has its own copy
90.

Which of the following is true about the following program
#include <iostream> class Test
{
public:
int i;
void get();
};
void Test::get()
{
std::cout <<"Enter the value of i: "; std::cin >>i;
}
Test t; // Global object int main()
{
Test t; // local object t.get();
std::cout <<"value of i in local t: "<<t.i<<'\n';
::t.get();
std::cout <<"value of i in global t: "<<::t.i<<'\n'; return 0;
}

A. compiler error: cannot have two objects with same class name
B. compiler error in line "::t.get();"
C. compiles and runs fine
Answer» C. compiles and runs fine
91.

Which of the following is true about new when compared with malloc. 1) new is an operator, malloc is a function 2) new calls constructor, malloc doesn't 3) new returns appropriate pointer, malloc returns void * and pointer needs to typecast to appropriate type.

A. 1 and 3
B. 2 and 3
C. 1 and 2
D. all 1,2,3
Answer» C. 1 and 2
92.

Predict the output?
#include <iostream> using namespace std;
class Test
{
int x;
Test() { x = 5;}
};
int main()
{
Test *t = new Test; cout <<t->x;
}

A. compile time error
B. garbage
C. 0
D. 5
Answer» A. compile time error
93.

What happens when delete is used for a NULL pointer? int *ptr = NULL; delete ptr;

A. compile time error
B. run time error
C. no effect
Answer» C. no effect
94.

Is it fine to call delete twice for a pointer?
#include<iostream> using namespace std;
int main()
{
int *ptr = new int; delete ptr;
delete ptr; return 0;
}

A. yes
B. no
Answer» B. no
95.

Which of the followings is/are automatically added to every class, if we do not write our own.

A. copy constructor
B. assignment operator
C. a constructor without any parameter
D. all
Answer» D. all
96.

When a copy constructor may be called?

A. when an object of the class is returned by value
B. when an object of the class is passed (to a function) by value as an argument
C. when an object is constructed based on another object of the same class
D. all
Answer» D. all
97.

Output of following program?
#include<iostream> using namespace std; class Point {
Point() { cout <<"Constructor called"; }
};
int main()
{
Point t1; return 0;
}

A. compile time error
B. run time error
C. constructor called
Answer» A. compile time error
98.

#include<iostream> using namespace std; class Point {
public:
Point() { cout <<"Constructor called"; }
};
int main()
{
Point t1, *t2; return 0;
}

A. compiler error
B. constructor called constructor called
C. constructor called
Answer» C. constructor called
99.

#include<iostream> using namespace std;
class X
{
public:
int x;
};
int main()
{
X a = {10};
X b = a;
cout <<a.x <<" " <<b.x; return 0;
}

A. compiler error
B. 10 followed by garbage value
C. 10 10
D. 10 0
Answer» D. 10 0

Done Studing? Take A Test.

Great job completing your study session! Now it's time to put your knowledge to the test. Challenge yourself, see how much you've learned, and identify areas for improvement. Don’t worry, this is all part of the journey to mastery. Ready for the next step? Take a quiz to solidify what you've just studied.