Nothing Special   »   [go: up one dir, main page]

Cs201 Important 202 - Vu Assistance

Download as pdf or txt
Download as pdf or txt
You are on page 1of 33

CS201 VIVA Important Questions And Answer

CS201 Introduction to Programming VIVA is scheduled every semester in which the


instructor goes 1 on 1 with every student and ask them a few questions from the syllabus
covered.

The questions are usually conceptual and require an understanding of the subject to
answer well.

Here are more than 100 important questions that have been asked to various students on
VIVA sessions., with appropriate answers too.

Make sure you read them all and understand the core concepts before you attend your
VIVA session.

Note : Viva dety wqt Chup nahi rehna Ans dyna ha beshak galat he q na ho.

1. What is a program?

A program is a precise sequence of steps to solve a particular problem.

2. What is a class?

We write a C++ program using data members, and functions. We call this program
“class”.

Define Polymorphism?
Polymorphism means one name, multiple forms. It allows us to have more than one function
with the same name in a program.It allows us to have overloading of operators so that an
operation can exhibit different behaviors in different instances.

Translator

A translator is a computer program that performs the translation of a program


written in a given programming language into a functionally equivalent program in
a different computer language, without losing the functional or logical structure of
the original code (the "essence" of each program).

Why use pointer?

Because pointers allow you to access memory addresses and passes by reference.

FOR and While Loop

While: we don't know exactly how many times the loop will run.

FOR: we know exactly how many times the loop will run.

Do While: body of the loop is always executed first. Then, the test condition is evaluated
Array

An array is a series of elements of the same type placed in contiguous memory


locations that can be individually referenced by adding an index to a unique
identifier.

What are the features of C++ different from C?

§ All the features of C are similar to C++ except some features, such as polymorphism, operator
overloading which are supported in C++ but not in C language.

§ Both C and C++ language is similar in their functionality but C++ provides with more tools
and options.

What is encapsulation?

The wrapping up of data and functions into a single unit (called class) is known as encapsulation.
Encapsulation containing and hiding information about an object, such as internal data structures
and code.

What is message passing?

An object oriented program consists of a set of objects that communicate with each other.
Message passing involves specifying the name of the object, the name of the function and the
information to be sent.
What are tokens in C++?

The smallest individual units of a program is known as tokens. c++ has the following tokens : §
Keywords
§ Identifiers
§ Constants

§ Strings

§ Operators

What is the use of enumerated data type?

An enumerated data type is another user defined type which provides a way for attaching names
to numbers thereby increasing comprehensibility of the code. The enum keyword automatically
enumerates a list of words by assigning them values 0,1,2, and so on.

What is the use of default constructor?

A constructors that accepts no parameters is called the default constructor.If no user-defined


constructor exists for a class A and one is needed, the compiler implicitly declares a default
parameter-less constructor A::A(). This constructor is an inline public member of its class. The
compiler will implicitly define A::A() when the compiler uses this constructor to create an object
of type A. The constructor will have no constructor initializer and a null body.

Define Constructors?

A constructor is a member function with the same name as its class. The constructor is invoked
whenever an object of its associated class is created.It is called constructor because it constructs
the values of data members of the class.
How variable declaration in c++ differs that in c?

C requires all the variables to be declared at the beginning of a scope but in c++ we can declare
variables anywhere in the scope. This makes the programmer easier to understand because the
variables are declared in the context of their use.

Define destuctors?

§ A destructor is called for a class object when that object passes out of scope or is explicitly
deleted.

§ A destructor as the name implies is used to destroy the objects that have been created by a
constructors.

§ Like a constructor , the destructor is a member function whose name is the same as the class
name but is preceded by a tilde.

3. What are data members?

The data members, functions and nested classes are called class members.

4. What is class layout?

The way in which data class members are arranged in a class object is called class
layout.

5. What is class template?

A template is used for generating class types.


6. What is comment in Programming language?

Comments are used to explain the functioning of the programs. It helps to


understand the code. C style of commenting is /*……..*/ also used in C++. And
new line oriented C++ style is //………

7. What is a constructor?
A constructor initializes the data member of an object in the scope. It has no return
type, and has the same name as class. We use many types of constructor by
overloading them.

8. What is destructor?

A function called when a class object goes out of scope. It cleans up the object,
freeing resources like dynamic storage. The name of the destructor is the same as
that of a class with preceding tilde sign (~). It could not be overloaded. It has no
return type, and takes no argument

9. Define #include?

The #include directive instructs the preprocessor to read and include a file into a
source code file. The file name is typically enclosed with if the file is a system
provided file, or in quotes “….” if the file is user provided.

10. For which purpose we use Cout and Cin?

If we want to print something on the screen we use cout (<<) for this purpose. And
we enter a value in system or assign a value to any variable we use Cin (>>)
11. What are Variables?

Variables are locations in memory for storing data. We call them variables because
they can contain different values at different times. The variable name in C may be
started with a character or an underscore ( _ ).But in C++ we did not use
underscore _ . In a program every variable has:

• Name
• Type
• Size
• Value
12. What are data types?
A variable must have a data type associated with it. It can have data types like
integers, decimal numbers, characters etc. Different data types have different size
in memory.

13. Types of Operators:

1. Assignment operator: “ = ” is used to assign a value to a specific location.


2. Compound assignment operators: “+=” “-=” “*=” “/=” “%=”
3. Modulus Operator: “%” is used to get the remainder. (For division)
4. Relational Operators: “” used for decision making (in if statement) “>”
greater than “==” equal to “=” greater than or equal to “<=” less than or
equal to
5. Logical Operators: (These are binary operators and take two operands)
“&&” AND operator “||” OR operator “!” Logical Negation
6. Increment and decrement operator: “++” Increment operator (unary
operator) that increases the value of its operator by 1. “- - (with no space
between)“ decrement operator that decrease the value by 1.
7. Address operator: “&” to get the address of a memory location.

14. What is operator overloading?

Operator overloading is to allow the same operator to be bound to more than one
implementation, depending on the types of the operands.

15. What is if statement?

The statement used for decision in “C” language is known as the “if statement” it
also called conditional statement. It has a simple structure: If (condition) Statement
(or group of statements)

For example: If(Ali’s height is greater than six feet) Ali can be a member of team

16. What is “if/else statement structure? If (condition){ statement(s);

}Else{
Statement(s);

18. What is break statement?


The break statement interrupts the flow of control. In switch statement all
statements are executed. But we want that only statements of true case should be
executed and remaining should be skipped.

19. What is the purpose of “continue” statement?


Continue statement is related to loop. When we have lot of code in the body of
loop and we need some code to be executed every time and some code in certain
cases. For this purpose we use continue statement. It one line statement like break
statement. continue;
The statements of the loop body after continue are not executed. And loop starts
from the next iteration when a continue statement is encountered in the body of the
loop.

20. When will be used “while” Loop?


“While” means “do it until the condition is true”. Use of “while” construct can be
helpful in repeating of a set of instructions under some condition.
The syntax of while construct is:
While (logical expression){
Statement 1;
Statement 2;
Statement 3;
…………
}
21. What is the difference between “while” and “do-while loop”?
In “while loop” the condition is tested first and the statement in the body executed
only when the condition is true, the loop can executed zero or more times.
In “do-while loop” condition is tested after execution the statement of the loop
body. Thus, the loop body executed at least once and then the condition in do while
stamen is tested.
Syntax of do while Loop:
do{
statement(s);
}
while(condition);

22. What are functions?


Functions are like subtasks. They receive some information, do some process and
provide a result.
There are two categories of function:
• Functions that returns a value
• Functions that do not return a value

23. What is the difference between “call by value” and “call by reference”?
Call by Value:
Call by value
We pass a copy of arguments instead of original variables. The copy reaches to the
function that uses it and returns it back to the calling function. (C language use call
by value by default).
Call by Reference:
In call by reference we pass the reference of original variable. And use original
variable.
24. What is array?

Array is a special data type. Arrays can be used to store a collection of data of
same data type. Every array has a data type name and size. Arrays start from index
Index Always start from zero

25. Define keyword “const”.


The keyword “const” is the construct. If we want to change the size of an array
suppose from 10 to 100 we can use this keyword to deal this situation. It can be
used for any data type and is written before the data type as: const int arraySize
= 100;
Whenever we use the word key word const the value of that variable becomes
constant and no other value can be assigned to it later on.

26. What are pointers?


Pointers are a special type of variables in which a memory address is stored. (They
contain memory address not the value of the variable). Pointers works by pointing
to a particular data type i.e. Int, char, double, float etc.
27. What is the relationship between pointers and arrays?
The name of array is a constant pointer which contains the memory address of the
first element of the array.

28. What is the role of a back slash (\) in C and C++?


Whenever a back slash (\) is used, the compilers consider both the characters as
single (also known as escape characters).
“\n” for new line
“\t” for tab
“\0” null

29. Which header file we use for file handling in our programs?
Whenever using files in our programs, we will include this header file <fstream.h>

30. What is a structure?


“A structure is a collection of variables under a single name. These variables can
be of different types, and each has a name that is used to select it from the
structure”. It is defined with the key word struct. (Keyword “struct” cannot be
used as variable.)

31. What is static memory allocation?


When we write the things like int i, j, k these will reserve three integers in memory.
Similarly the typing of char s[20] will result in the allocation of space for
20characters in the memory. This type of memory allocation is called static
allocation. It is also called compile time allocation.

32. Which functions are used for memory allocation in C?


“calloc()”, “malloc()” and “realloc()” functions are used for memory allocation in
C.

33. What is different between pointers and variable?


Normal variable contains the value of variable either Int or float whereas pointer
variable contains the address of another variable.

34. What is function overloading?


In function overloading, the functions have the same name but differ either by the
number of arguments or the type of the arguments.
35. System Software
The system software controls the computer. It communicates with computer’s
hardware (key board, mouse, modem, sound card etc) and controls different
aspects of operations. Sub categories of system software are:
1. Operating system
2. Device drivers
3. UtilitiesEditor:
We use editor to write our code
Compiler and Interpreter
Both are translator. These translators translate our program which is written in
CLanguage into Machine language. Interpreters translates the program line by line
meaning it reads one line of program and translates it, then it reads second line,
translate it and so on
The Compiler read the whole program and translates it into machine language
completely. The difference between interpreter and compiler is that compiler will
stop translating if it finds an error and there will be no executable code generated
whereas Interpreter will execute all the lines before error and will stop at the line
which contains the error.
Debugger:
Debugger is used to debug the program i.e. to correct the logical errors. Using
debugger we can control our program while it is running.
Loader:
Loader loads the program into memory and then instructs the processor to start the
execution of the program from the first instruction

Page 2

What is C++?

C++ is created by Bjarne Stroustrup of AT&T Bell Labs as an extension of C, C++ is an object-
oriented computer language used in the development of enterprise and commercial applications.
Microsoft’s Visual C++ became the premier language of choice among developers and
programmers.

What are the basic concepts of object oriented programming?

It is necessary to understand some of the concepts used extensively in object oriented


programming. These include

§ Objects
§ Classes
§ Data abstraction and encapsulation § Inheritance
§ Polymorphism
§ Dynamic Binding
§ Message passing

Define inheritance?

The mechanism of deriving a new class (derived) from an old class (base class) is called
inheritance. It allows the extension and reuse of existing code without having to rewrite the code

from scratch. Inheritance is the process by which objects of one class acquire properties of
objects of another class.

What is a class?

A class is a collection of objects.

what is the difference between c & c++?


C++ is an object oriented programing but C is a procedure oriented programing.

C is super set of C++.

C can’t support inheritance, function overloading, method overloading etc. but c++ can do this.

In c program the main function could not return a value but in the c++ the main function should
return a value.

What are the few advantages of Inline function?

§ It offers an improved macro facility.

§ By using the inline functions, the user can split a large function with many nested modules of
statement blocks into many small inline functions.

What is copy constructor?

Copy constructor is a constructor function with the same name as the class and used to make
deep copy of objects.

What is default constructor?

A default constructor is a constructor that either has no parameters, or if it has parameters, all the
parameters have default values.

What is a scope resolution operator?

The scope resolution operator permits a program to reference an identifier in the global scope
that has been hidden by another identifier with the same name in the local scope.

What is the difference between Object and Instance?


§ An instance of a user-defined type is called an object. We can instantiate many objects from
one class.

§ An object is an instance of a class.

What is the difference between macro and inline?

Inline follows strict parameter type checking, macros do not.

Macros are always expanded by preprocessor, whereas compiler may or may not replace the
inline definitions.

How variable declaration in c++ differs that in c?

C requires all the variables to be declared at the beginning of a scope but in c++ we can declare
variables anywhere in the scope. This makes the programmer easier to understand because the
variables are declared in the context of their use.

What is multiple inheritance?

A class can inherit properties from more than one class which is known as multiple inheritance.

what is the use of virtual destructor in c++?

§ A destructor is automatically called when the object is destroyed.

§ A virtual destructor in C++ is used primarily to prevent resource leaks by performing a clean-
up of the object.

What do you mean by reference variable in c++?


A reference variable provides an alias to a previously defined variable. Data -type & reference-
name = variable name

What is iterator class?

§ Iterator class provides an access to the class which are inside the containers(it holds a group of
objects in an organized way).

§ The containers include the data structure, class and abstract data type.

What are the types of declarations in C++?

There are so many types of declaration in C++ are : § Variable declaration


§ Constant declaration
§ Function declaration

§ Object declaration

What are Smart pointers?

Smart pointers are almost similar to pointers with additional features such as automatic
destruction of a variable when it becomes out of scope and the throwing of exceptions that
ensures the proper destruction of the dynamically allocated objects.

Explain function template?

Function template provides a means to write generic functions for different data types such as
integer, long, float or user defined objects.

Explain class template?


Class template provides a means to write a generic class for different types so that a class can
have members based on generic types that do not need to be defined at the moment of creating
the class or whose members use these generic types.

What is difference between function overloading and operator overloading?

A function is overloaded when same name is given to different function.


While overloading a function, the return type of the functions need to be the same.

What are the advantages of inheritance?

§ Code re-usability
§ Saves time in program development.

What is a dynamic constructor?

§ The constructor can also be used to allocate memory while creating objects.

§ Allocation of memory to objects at the time of their construction is known as dynamic


construction of objects.

§ The memory is allocated with the help of the new operator.

What is the difference between an Array and a List?

The main difference between an array and a list is how they internally store the data. whereas
Array is collection of homogeneous elements. List is collection of heterogeneous elements.

What is the use of ‘using’ declaration?


A using declaration makes it possible to use a name from a namespace.

What is the difference between a template class and class template?

Template class: A generic definition or a parameterized class not instantiated until the client
provides the needed information. It’s jargon for plain templates.

Class template: A class template specifies how individual classes can be constructed much like
the way a class specifies how individual objects can be constructed. It’s jargon for plain classes.

What is friend function?

§ The function declaration should be preceded by the keyword friend.


§ The function definitions does not use either the keyword or the scope operator :: § The
functions that are declared with the keyword friend as friend function.
§ Thus, a friend function is an ordinary function or a member of another class.

What is a scope resolution operator?

A scope resolution operator (:Smile, can be used to define the member functions of a class
outside the class.

What do you mean by pure virtual functions?

A pure virtual member function is a member function that the base class forces derived classes to
provide. Any class containing any pure virtual function cannot be used to create object of its own
type.

What is a conversion constructor?


§ A converting constructor is a single-parameter constructor that is declared without the function
specifier explicit.

§ The compiler uses converting constructors to convert objects from the type of the first
parameter to the type of the converting constructor’s class.

What is a container class? What are the types of container classes

§ A container class is a class that is used to hold objects in memory or external storage.

§ A container class acts as a generic holder.

§ A container class has a predefined behavior and a well known interface.

§ A container class is a supporting class whose purpose is to hide the topology used for
maintaining the list of objects in memory.

§ When a container class contains a group of mixed objects, the container is called a
heterogeneous container; when the container is holding a group of objects that are all the same,
the container is called a homogeneous container.

What is Associative container?

Associative containers are designed to support direct access to elements using keys. They are not
sequential. There are four types of associative containers :

§ Set
§ Multiset § Map
§ Multimap

What is an iterator?
Iterators are like pointers. They are used to access the elements of containers thus providing a
link between algorithms and containers. Iterators are defined for specific containers and used as
arguments to algorithms.

What are the defining traits of an object-oriented language?

The defining traits of an object-oriented language are: § Encapsulation


§ Inheritance

§ Polymorphism

What is this pointer?

It is a pointer that points to the current object. This can be used to access the members of the
current object with the help of the arrow operator.

Name some pure object oriented languages?

§ Smalltalk § Java
§ Eiffel
§ Sather

What is encapsulation?

Encapsulation (or information hiding) is the process of combining data and functions into a
single unit called class.

What is problem with Run-time type identification?


The run time type identification comes at a cost of performance penalty. Compiler maintains the
class.

What are the differences between new and malloc?

§ New initializes the allocated memory by calling the constructor. Memory allocated with new
should be released with delete.

§ Malloc allocates uninitialized memory.

§ The allocated memory has to be released with free.new automatically calls the constructor
while malloc(dosen’t)

What is conversion operator?

You can define a member function of a class, called a conversion function, that converts from
the type of its class to another specified type.

What do you mean by implicit conversion?

§ Whenever data types are mixed in an expression then c++ performs the conversion
automatically.

§ Here smaller type is converted to wider type.


§ Example : in case of integer and float integer is converted into float type.

What are virtual functions?


§ The virtual functions must be members of some class. § They cannot be static members.
§ They are accessed by using object pointers.
§ A virtual function can be a friend of another class.

What is the main purpose of overloading operators?

§ The main purpose of operator overloading is to minimize the chances of occurrence of errors in
a class that is using the overload operators.

§ It also helps in redefining the functionalities of the operators to improve their performance.

§ Operator overloading also makes the program clearer, readable and more understandable by
using common operators, such as +, =, and [].

What is a friend?

Friends can be either functions or other classes. The class grants friends unlimited access
privileges.

What is stack unwinding?

Stack unwinding is a process in which a destructor is invoked in a particular program for


destroying all the local objects in the stack between throwing and catching of an exception.

What is the form of assignment statement?

Variable = expression ( or constant )

What is the main purpose of overloading operators?


The main purpose of operator overloading is to minimize the chances of occurrence of errors in a
class that is using the overloaded operators.

What is this pointer?

When a member function is invoked, the invoking objects pointer is passed implicitly as an
argument. This pointer is called this pointer.

What is scope resolution operator?

The Scope resolution operator(:Smile can be used to define the member functions of a program
outside the boundary of a class and not within the class specifier.

What are static members and static functions?

Static members are


§ Created and initialized only once.
§ Shared among all the class objects.
Static functions are
§ Similar to the static variables and are associated with the class. § Can only access static
variables of a class.
§ Can also be called using the scope resolution operator.
What are the components of a class?
A class consists of two components,
§ Data members
§ Methods

What is the advantage of using templates?

Templates provide a means to write generic functions and classes for different data types.
Templates are sometimes called parameterized types.
Templates can significantly reduce source code size and increase code flexibility without
reducing type safety.

Can a function overloading depend only on passing by value and passing by reference?

No, the reason is that whether a function is called the passing a parameter as a value or by
reference, it appears similar to the caller of the function.

Is it possible to use a new for the reallocation of pointers?

The reallocation of pointers cannot be done by using new. It can be done by using the realloc()
operator.

What are data members?

Data members are variables of any type(in-built or user defined).

What are the types of statements in c++?

A program in any language basically consists of statements. Statements symbolize instructions.


There are many categories of statements.

§ Expression statement § Assignment statement § Selection statement


§ Iteration statement

§ Jump statement

What is initialization?

Initialization is a process of assigning a value to a variable at the time of declaration.


Explain copy constructor?

A copy constructor is a special type of constructor which initializes all the data members of the
newly created object by copying the contents of an existing object. The compiler provides a
default copy constructor.

Class_name new _ object ( existing object);

What are the advantages of operator overloading?

Operator overloading is used to provide some extra features, behaviors and abilities to the users
of a particular class. This feature in C++ helps in controlling the functions performed by an
operator and reduces the chance of occurrence of errors in a program.

What is a dangling pointer?

When the location of the deallocated memory is pointed by the pointer even after the deletion or
allocation of objects is done, without the modification in the value of the pointer, then this type
of pointer is called a dangling pointer.

What is the difference between prefix and postfix versions of operator++()?

§ The prefix and postfix versions of operator ++() can be differentiated on the basis of arguments
defined.

§ The postfix operator ++() consists of a dummy parameter of int datatype; whereas, a dummy
parameter is not found in the prefix operator ++().

Can a static member function access member variable of an object?


No, because to access the member variable of an object inside its member function, this pointer
is required. Since static functions are class functions, this pointer will not be passed as its
arguments.

What is the advantages of using the Inline function?

§ An inline keyword before a function suggests the compiler to insert the complete body of the
function wherever that function is invoked.

§ Inline expansion is typically used to eliminate the inherent cost involved in calling a function.
§ It is typically used for functions that need quick execution.

What are all the operators that cannot be overloaded?

§ Direct member access operator


§ De–reference pointer to class member operator.* § Scope resolution operator::
§ Conditional operator ?:
§ Sizeof operator sizeof

Can a function be overloaded based on return types?

Function signature does not depend on the return type. So overloading cannot be resolved by the
return type alone.

What do you mean by a public member?

A member declared as public is a public member. It can be accessed freely in a program.

Is recursion allowed in inline functions?


The recursion is allowed in inline function but practically, the inline functions and their
properties do not remain inside the program. Moreover, the compiler is not sure about the depth
of the recursion at the time of compilation.

What is virtual function?

A virtual function is a member function that is declared within a base class and redefined by a
derived class .To create a virtual function, the function declaration in the base class is preceded
by the keyword virtual.

How can a struct in C++ differs from a struct in C?

The differences between struct in C++ and C are listed in the following points:

In C, the concept of inheritance is not supported. In C++, the concept of inheritance is fully
supported.

On declaring a struct in C, the addition of the struct keyword is must. On the contrary, there is no
need of the struct keyword on declaring struct in C++.

In C, the initialization cannot be done outside the scope of a structure. However, in C++, the
initialization can be done outside the scope of a structure.

In C, structures do not have direct functions or methods.

How the keyword struct is different from the keyword class in C++?

In C++, a class is similar to a struct with the exception that, by default, all the members of a class
are private; while the members of a struct are public. Encapsulation is not supported by
structures but supported by classes.
Define pure virtual function?

Pure virtual function is defined as a virtual function in a base class. It is implemented in a


derived class. A program may not declare an instance of a class that has a pure virtual function.

Define a conversion constructor?

A conversion constructor is a single argument constructor. It is used by the compiler to convert a


type of objects as an argument to a class type.

What is a default constructor?

A zero argument constructor or a constructor in which all the arguments have default values is
called a default constructor.

What is difference between template and macro?

A template can be used to create a family of classes or function.A template describes a set of
related classes or set of related functions in which a list of parameters in the declaration describe
how the members of the set vary.

Identifiers that represent statements or expressions are called macros.

What is reference?

Reference is a name that acts as an alias, or alternative name, for a previously defined variable or
an object.

What are the access specifier in c++?


There are three types of access specifier in c++ . They are § Public
§ protected
§ private
What is difference between C++ and Java?

§ C++ has pointers Java does not.

§ Java is the platform independent as it works on any type of operating systems.

§ java has no pointers where c ++ has pointers.

§ Java has garbage collection C++ does not.

What is namespace?

The C++ language provides a single global namespace. Namespaces allow to group entities like
classes, objects and functions under a name.

What is an explicit constructor?

A conversion constructor declared with the explicit keyword. The compiler does not use an
explicit constructor to implement an implied conversion of types. It’s purpose is reserved
explicitly for construction.Explicit constructors are simply constructors that cannot take part in
an implicit conversion.

What is the use of storage class specifiers?

A storage class specifier is used to refine the declaration of a variable, a function, and
parameters. The following are storage class specifiers :

§ auto
§ register

§ static

§ extern

what is the assignment operator in c++ and what is its function?

Equal sign '=' is the assignment operator in C++. Default assignment operator handles assigning
one object to another of the same class. Member to member copy (shallow copy).

Can destructor be private?

Yes destructors can be private. But it is not advisable to have destructors as private.

What is strstream?

string-stream provides an interface to manipulate strings as if they were input/output streams.

‹strstream› to define several classes that support iostreams operations on sequences stored in an
allocated array of char object.

What is the difference between method overloading and method overriding?

Overloading a method (or function) in C++ is the ability for functions of the same name to be
defined as long as these methods have different signatures (different set of parameters).

Method overriding is the ability of the inherited class rewriting the virtual method of the base
class.

You might also like