1. One of the new data types introduced by ANSI C++ standard is
Explanation:
Correct answer: c) bool
Option c is the correct answer. The ANSI C++ standard introduced the boolean data type, which represents logical values true (1) and false (0). The boolean data type is commonly used in C++ to store and manipulate Boolean (true/false) values.
2. Which of the following operators is normally used to change a pointer type object to integer type object
Explanation:
Correct answer: a) static_cast operator
Option a is the correct answer. The static_cast operator in C++ is used to perform safe and explicit type conversions between compatible types. It can be used to convert a pointer type object to an integer type object or vice versa. For example, you can use static_cast<int>(ptr) to convert a pointer ptr to an integer.
3. Consider the following code segment:
int x = 10, y = 20;
bool b1, b2;
b1 = x == y;
b2 = x < y;
bool b3 = 15;
y = x + y + b1 + b2 + b3;
cout << y;
Explanation:
Correct answer: c) 33
The code calculates the value of y based on the boolean variables b1 and b2 along with the integer value b3. Here's the step-by-step explanation:
b1 = x == y;assignstrue(1) tob1becausexis not equal toy.b2 = x < y;assignstrue(1) tob2becausexis less thany.bool b3 = 15;is incorrect because you cannot assign an integer value (15) directly to a boolean variable (bool b3). The correct statement should bebool b3 = true;orbool b3 = false;to represent the boolean value.y = x + y + b1 + b2 + b3;calculates the value ofyas 10 + 20 + 1 + 1 + true (which is treated as 1). So,ybecomes 33.
4. Which of the following operators is used to obtain the type of an object?
Explanation:
Correct answer: b) typeid
Option b is the correct answer. The typeid operator in C++ is used to obtain the type of an object at runtime. It returns a reference to a type_info object that contains information about the type of the object. The type_info class is part of the typeinfo header and is used for type identification and dynamic type comparison (RTTI - Run-Time Type Information) in C++.
5. What will be the output of the following code, when executed?
class X { };
class Y { };
int main()
{
X x1, x2;
Y y1, y2;
if (typeid(x1) == typeid(y1))
cout << "Same types";
else
cout << "Different types";
}
Explanation:
Correct answer: b) Same types
The code uses the typeid() operator to compare the types of objects x1 and y1. Since x1 and y1 are of different classes (class X and class Y), the condition in the if statement evaluates to false. Therefore, the else part will be executed, and the output will be "Different types". So, the correct answer is option a) Different types.
6. Consider the code segment:
class Test
{
float x;
public:
explicit Test(float y)
{
x = y;
}
};
What are the changes required in the definition of the class Test, if it is to be implemented by the main ( ) as given below.
int main()
{
Test t1 = 35.65;
cout << x;
}
Explanation:
Correct answer: b. The keyword explicit should be removed
Option b is the correct answer. The explicit keyword is used to declare a constructor as an explicit constructor, which means that the constructor cannot be used for implicit type conversions. When the keyword explicit is used with a constructor, it prevents the compiler from automatically invoking the constructor during implicit conversions.
In the given code, the constructor Test(float y) is marked as explicit. Therefore, the line Test t1 = 35.65; will result in a compilation error because it tries to perform an implicit conversion from float to Test, but the constructor is explicit.
To make it work without any compilation errors, the explicit keyword should be removed from the constructor declaration in the class definition. After that, the line Test t1 = 35.65; will create a Test object and initialize its data member x with the value 35.65.
Additionally, to access the data member x in the main() function, it should be accessed using the object t1, like t1.x.
7. We can modify the value of a data member of an object declared constant by declaring it using the keyword
Explanation:
Correct answer: d) mutable
Option d is the correct answer. The mutable keyword in C++ is used to modify data members of a constant (const) object. When a data member is declared as mutable, it can be modified even if the object itself is constant. This is useful when you have a constant object, but there are certain data members that you want to be modifiable even for constant objects.
For example:
class MyClass
{
mutable int counter; // mutable data member
public:
MyClass() : counter(0) {}
void increment() const
{
++counter; // Allowed even for const objects
}
int getCount() const
{
return counter; // Allowed even for const objects
}
};
8. The correct format for defining a namespace is:
Explanation:
Correct answer: b. namespace namespace_name {…}
Option b is the correct answer. The correct format for defining a namespace in C++ is namespace namespace_name { … }, where namespace_name is the name of the namespace, and the code to be included within the namespace is enclosed within the curly braces.
For example:
namespace MyNamespace
{
// code here
}
This defines a namespace called MyNamespace in which you can put C++ code. Namespaces are used to avoid naming conflicts and to organize code into logical groups.
9. We use namespaces to
Explanation:
Correct answer: a) divide a long program into different modules
Option a is the correct answer. Namespaces in C++ are used to divide a long program into different logical modules or units. By placing related code within a namespace, we can avoid naming conflicts between different parts of the program. Namespaces provide a way to group related classes, functions, variables, and other program elements together and provide better organization and management of code. For example:
namespace MathLib
{
// code related to math operations
}
namespace FileSystem
{
// code related to file system operations
}
int main()
{
MathLib::calculate(); // Using function from MathLib namespace
FileSystem::readFile(); // Using function from FileSystem namespace
}
10. Given the namespace definition
namespace S
{
int count;
}
How can we access the variable count outside the namespace?
Explanation:
Correct answer: a) S::count = 10;
Option a is the correct answer. To access the variable count outside the namespace S, you should use the scope resolution operator :: along with the namespace name. The correct statement to access and modify the variable is S::count = 10;. This way, you can access the variable count from the namespace S without the need for any using directives. The other options are incorrect because using namespace S; will make all the elements of namespace S available directly without the need to qualify them with S::, and using namespace ::count; is not a valid syntax for accessing a variable outside the namespace.
THE STUDENT FRIENDLY BOOK TO LEARN C++. Let us C++ by Famous author Yashavant Kanetkar Indian writer |
Topic wise C++ MCQs Index ≡
- Principles of Object-Oriented Programming
- Beginning with C++
- Tokens, Expressions, and Control Structures
- Functions in C++
- Classes and Objects
- Constructors and Destructors
- Operator Overloading
- Inheritance
- Pointers, Virtual Functions, and Polymorphism
- Managing Console I/O Operations
- Working with Files
- Templates
- Exception Handling
- Standard Template Library
- Manipulating Strings
- New Features in ANSI C++ Standards
- Object-Oriented System Development
Comments
Post a Comment