Monday, June 28, 2021

C Interview Questions & Answers-1

 

C Interview Questions and Answers

 

1)  How do you construct an increment statement or decrement statement in C?

Answer:There are actually two ways you can do this. One is to use the increment operator ++ and decrement operator –. For example, the statement “x++” means to increment the value of x by 1. Likewise, the statement “x –” means to decrement the value of x by 1. Another way of writing increment statements is to use the conventional + plus sign or – minus sign. In the case of “x++”, another way to write it is “x = x +1?.

 

2) Some coders debug their programs by placing comment symbols on some codes instead of deleting it. How does this aid in debugging?

Answer:Placing comment symbols /* */ around a code, also referred to as “commenting out”, is a way of isolating some codes that you think maybe causing errors in the program, without deleting the code. The idea is that if the code is in fact correct, you simply remove the comment symbols and continue on. It also saves you time and effort on having to retype the codes if you have deleted it in the first place.

 

3) What is the equivalent code of the following statement in WHILE LOOP format?
[c]
for (a=1; a<=100; a++)
printf ("%d\n", a * a);
[/c]

Answer:[c]
a=1;
while (a<=100) {
printf ("%d\n", a * a);
a++;
}
[/c]

 

4) What is spaghetti programming?

Answer:Spaghetti programming refers to codes that tend to get tangled and overlapped throughout the program. This unstructured approach to coding is usually attributed to lack of experience on the part of the programmer. Spaghetti programing makes a program complex and analyzing the codes difficult, and so must be avoided as much as possible.

 

5) In C programming, how do you insert quote characters (‘ and “) into the output screen?

Answer:This is a common problem for beginners because quotes are normally part of a printf statement. To insert the quote character as part of the output, use the format specifiers \’ (for single quote), and \” (for double quote).

 

6) What is the use of a ‘\0' character?

Answer:It is referred to as a terminating null character, and is used primarily to show the end of a string value.

 

7) What is the difference between the = symbol and == symbol?

Answer:The = symbol is often used in mathematical operations. It is used to assign a value to a given variable. On the other hand, the == symbol, also known as “equal to” or “equivalent to”, is a relational operator that is used to compare two values.

 

8) Which of the following operators is incorrect and why? ( >=, <=, <>, ==)

Answer:<> is incorrect. While this operator is correctly interpreted as “not  equal to” in writing conditional statements, it is not the proper operator to be used in C programming. Instead, the operator  !=  must be used to indicate “not equal to” condition.

 

9) Can the curly brackets { } be used to enclose a single line of code?

Answer:While curly brackets are mainly used to group several lines of codes, it will still work without error if you used it for a single line. Some programmers prefer this method as a way of organizing codes to make it look clearer, especially in conditional statements. 

 

10) What are header files and what are its uses in C programming?

Answer:Header files are also known as library files. They contain two essential things: the definitions and prototypes of functions being used in a program. Simply put, commands that you use in C programming are actually functions that are defined from within each header files. Each header file contains a set of functions. For example: stdio.h is a header file that contains definition and prototypes of commands like printf and scanf. 

 

11) Can I use  “int” data type to store the value 32768? Why?

Answer:No. “int” data type is capable of storing values from -32768 to 32767. To store 32768, you can use “long int” instead. You can also use “unsigned int”, assuming you don’t intend to store negative values.

 

12) Can two or more operators such as \n and \t be combined in a single line of program code

Answer:Yes, it’s perfectly valid to combine operators, especially if the need arises. For example: you can have a code like ” printf (“Hello\n\n\’World\’”) ” to output the text “Hello” on the first line and “World” enclosed in single quotes to appear on the next two lines. 

 

13) Why is it that not all header files are declared in every C program?

Answer:The choice of declaring a header file at the top of each C program would depend on what commands/functions you will be using in that program. Since each header file contains different function definitions and prototype, you would be using only those header files that would contain the functions you will need. Declaring all header files in every program would only increase the overall file size and load of the program, and is not considered a good programming style.

 

14) When is the “void” keyword used in a function?

Answer:When declaring functions, you will decide whether that function would be returning a value or not. If that function will not return a value, such as when the purpose of a function is to display some outputs on the screen, then “void” is to be placed at the leftmost part of the function header. When a return value is expected after the function execution, the data type of the return value is placed instead of “void”.

 

15) What are compound statements?

Answer:Compound statements are made up of two or more program statements that are executed together. This usually occurs while handling conditions wherein a series of statements are executed when a TRUE or FALSE is evaluated. Compound statements can also be executed within a loop. Curly brackets { } are placed before and after compound statements.

 

16) Write a loop statement that will show the following output:
1
12
123
1234
12345
Answer:[c]
for (a=1; a<=5; i++) {
for (b=1; b<=a; b++)
printf("%d",b);
printf("\n");
}
[/c]

 

17) What is wrong in this statement?  scanf(“%d”,whatnumber);

Answer:An ampersand & symbol must be placed before the variable name whatnumber. Placing & means whatever integer value is entered by the user is stored at the “address” of the variable name. This is a common mistake for programmers, often leading to logical errors.

 

18) How do you generate random numbers in C?

Answer:Random numbers are generated in C using the rand() command. For example: anyNum = rand() will generate any integer number beginning from 0, assuming that anyNum is a variable of type integer.

 

19) What could possibly be the problem if a valid function name such as tolower() is being reported by the C compiler as undefined?
The most probable reason behind this error is that the header file for that function was not indicated at the top of the program. Header files contain the definition and prototype for functions and commands used in a C program. In the case of
“tolower()”, the code “#include ” must be present at the beginning of the program.

 

20) What does the format %10.2 mean when included in a printf statement?

Answer:This format is used for two things: to set the number of spaces allotted for the output number and to set the number of decimal places. The number before the decimal point is for the allotted space, in this case it would allot 10 spaces for the output number. If the number of space occupied by the output number is less than 10, addition space characters will be inserted before the actual output number. The number after the decimal point sets the number of decimal places, in this case, it’s 2 decimal spaces. 

 

21) What is wrong with this statement? myName = “Robin”;

Answer:You cannot use the = sign to assign values to a string variable. Instead, use the strcpy function. The correct statement would be: strcpy(myName, “Robin”);


22) How do you determine the length of a string value that was stored in a variable?

Answer:To get the length of a string value, use the function strlen(). For example, if you have a variable named FullName, you can get the length of the stored string value by using this statement: I = strlen(FullName); the variable I will now have the character length of the string value.

 

23) Is it possible to initialize a variable at the time it was declared?

Answer:Yes, you don’t have to write a separate assignment statement after the variable declaration, unless you plan to change it later on.  For example: char planet[15] = “Earth”; does two things: it declares a string variable named planet, then initializes it with the value “Earth”.

 

24) What are the different file extensions involved when programming in C?

Answer:Source codes in C are saved with .C file extension. Header files or library files have the .H file extension. Every time a program source code is successfully compiled, it creates an .OBJ object file, and an executable .EXE file. 

 

25) What are reserved words?

Answer:Reserved words are words that are part of the standard C language library. This means that reserved words have special meaning and therefore cannot be used for purposes other than what it is originally intended for. Examples of reserved words are int, void, and return.

 

26) What are linked list?

Answer:A linked list is composed of nodes that are connected with another. In C programming, linked lists are created using pointers. Using linked lists is one efficient way of utilizing memory for storage.

 

27) What are binary trees?

Answer:Binary trees are actually an extension of the concept of linked lists. A binary tree has two pointers, a left one and a right one. Each side can further branch to form additional nodes, which each node having two pointers as well.

 

28) Not all reserved words are written in lowercase. TRUE or FALSE?

Answer:FALSE. All reserved words must be written in lowercase; otherwise the C compiler would interpret this as unidentified and invalid.

 

29) What is wrong with this program statement? void = 10;

Answer:The word void is a reserved word in C language. You cannot use reserved words as a user-defined variable.

 

30) Is this program statement valid? INT = 10.50;

Answer:Assuming that INT is a variable of type float, this statement is valid. One may think that INT is a reserved word and must not be used for other purposes. However, recall that reserved words are express in lowercase, so the C compiler will not interpret this as a reserved word.

 

31) What is a newline escape sequence?

Answer:A newline escape sequence is represented by the \n character. This is used to insert a new line when displaying data in the output screen. More spaces can be added by inserting more \n characters. For example, \n\n would insert two spaces. A newline escape sequence can be placed before the actual output expression or after. 

 

32) What is output redirection?

Answer:It is the process of transferring data to an alternative output source other than the display screen. Output redirection allows a program to have its output saved to a file. For example, if you have a program named COMPUTE, typing this on the command line as COMPUTE >DATA can accept input from the user, perform certain computations, then have the output redirected to a file named DATA, instead of showing it on the screen.

 

33) What is the difference between functions abs() and fabs()?

Answer:These 2 functions basically perform the same action, which is to get the absolute value of the given value. Abs() is used for integer values, while fabs() is used for floating type numbers. Also, the prototype for abs() is under , while fabs() is under .

 

34) Write a simple code fragment that will check if a number is positive or negative.

Answer:[c]

If (num>=0)
printf("number is positive");
else
printf ("number is negative");
[/c]

 

35) What does the function toupper() do?

Answer:It is used to convert any letter to its upper case mode. Toupper() function prototype is declared in . Note that this function will only convert a single character, and not an entire string.

 

36) Which function in C can be used to append a string to another string?

Answer:The strcat function. It takes two parameters, the source string and the string value to be appended to the source string.

 

37) Dothese two program statements perform the same output? 1) scanf(“%c”, &letter);  2) letter=getchar()

Answer:Yes, they both do the exact same thing, which is to accept the next key pressed by the user and assign it to variable named letter.

 

38) What is the difference between text files and binary files?

Answer:Text files contain data that can easily be understood by humans. It includes letters, numbers and other characters. On the other hand, binary files contain 1s and 0s that only computers can interpret. 

 

39) is it possible to create your own header files?

Answer:Yes, it is possible to create a customized header file. Just include in it the function prototypes that you want to use in your program, and use the #include directive followed by the name of your header file.

 

40) What is dynamic data structure?

Answer:Dynamic data structure provides a means for storing data more efficiently into memory. Using dynamic memory allocation, your program will access memory spaces as needed. This is in contrast to static data structure, wherein the programmer has to indicate a fix number of memory space to be used in the program.

 

41) The % symbol has a special use in a printf statement. How would you place this character as part of the output on the screen?

Answer:You can do this by using %% in the printf statement. For example, you can write printf(“10%%”) to have the output appear as 10% on the screen. 

 

42) What are the advantages and disadvantages of a heap?

Answer:Storing data on the heap is slower than it would take when using the stack. However, the main advantage of using the heap is its flexibility. That’s because memory in this structure can be allocated and remove in any particular order. Slowness in the heap can be compensated if an algorithm was well designed and implemented

 

Tuesday, January 5, 2021

Cpp Lab programs 1,2,3,4 & 5



Exercise -1 (Classes Objects)

AIM : To write a main function to create objects of DISTANCE class. Input two distances and output the sum.

Source code:

#include <iostream.h>
class Distance
{
private:
int feet,inches;
public:
void inputDistance()
{
cout<<"Enter feet & inches?";
cin>>feet>>inches;
}

void outputDistance()
{
cout<<"feet="<<feet<<"\t Inches="<<inches<<endl;
}

void addDistances(Distance d1,Distance d2)
{
int f,i;
f=d1.feet+d2.feet;
i=d1.inches+d2.inches;
if(i>=12){
f=f+i/12;}
i=i%12;
cout<<"feet="<<f<<"\t Inches="<<i<<endl;
}
};

int main()
{
Distance d1,d2;
d1.inputDistance();
d2.inputDistance();
Distance d3;
d3.addDistances(d1,d2);
return 0;
}

output:
Enter feet & inches?1 1
Enter feet & inches?1 12
feet=3 Inches=1


AIM: To  write a C++ Program to illustrate the use of Constructors and Destructors (using the above program.)

Source code:

#include <iostream.h>
class Distance
{
private:
int feet,inches;
public:
Distance()
{
feet=0;
inches=0;
cout<<"default constructor...."<<endl;
}
Distance(int f,inti)
{
feet=f;
inches=i;
cout<<"argument constructor...."<<endl;
}

void outputDistance()
{
cout<<"feet="<<feet<<"\t Inches="<<inches<<endl;
}
void addDistances(Distance d1,Distance d2)
{
int f,i;
f=d1.feet+d2.feet;
i=d1.inches+d2.inches;
if(i>=12){
f=f+i/12;}
i=i%12;
cout<<"feet="<<f<<"\t Inches="<<i<<endl;
}

~Distance()
{
feet=inches=0;
cout<<"distructor...."<<endl;
}
};

int main()
{
Distance d1(2,9),d2(2,9);
Distance d3;
d3.addDistances(d1,d2);
return 0;
}


output:

argument constructor....
argument constructor....
default constructor....
feet=5 Inches=6
distructor....
distructor....
distructor....
distructor....
distructor....

AIM : To write a program for illustrating function overloading in adding the distance between objects 

Source code:

class Distance
{
private:
int feet,inches;
public:
Distance()
{
feet=0;
inches=0;
cout<<"default constructor...."<<endl;
}

Distance(int f,inti)
{
feet=f;
inches=i;
cout<<"argument constructor...."<<endl;
}

void outputDistance()
{
cout<<"feet="<<feet<<"\t Inches="<<inches<<endl;
}

//overloaded functions
void addDistances(Distance d2)
{
int f,i;
f=this->feet+d2.feet;
i=this->inches+d2.inches;
if(i>=12){
f=f+i/12;}
i=i%12;
cout<<"feet="<<f<<"\t Inches="<<i<<endl;
}

void addDistances(Distance d1,Distance d2)
{
int f,i;
f=d1.feet+d2.feet;
i=d1.inches+d2.inches;
if(i>=12){
f=f+i/12;}
i=i%12;
cout<<"feet="<<f<<"\t Inches="<<i<<endl;
}
~Distance()
{
feet=inches=0;
cout<<"distructor...."<<endl;
}
};

int main()
{
Distance d1(2,9),d2(2,9);
Distance d3;
d1.addDistances(d2); // calling addSistance(Distance);
d3.addDistances(d1,d2); //calling addSistance(Distance,Distance);
return 0;
}

output:
argument constructor....
argument constructor....
default constructor....
feet=5 Inches=6
distructor....
distructor....
distructor....
distructor....
distructor....
distructor....



Exercise – 2 

Write a program for illustrating Access Specifiers public, private, protected

AIM : To write a program implementing Friend Function

Source code:

#include <iostream>
using namespace std;
class Box {
double width;
public:
friend void printWidth( Boxbox );
void setWidth( doublewid );
};

// Member function definition
void Box::setWidth( double wid ) {
width = wid;
}

void printWidth( Boxbox ) {
cout<< "Width of box : " <<box.width<<endl;
}

int main() {
Box box;
box.setWidth(10.0);
printWidth( box );
return 0;
}

output:
Width of box : 10



AIM: To write a program to illustrate this pointer

Source code:

#include <iostream>
using namespace std;

class Box {
public:

Box(double l = 2.0, double b = 2.0, double h = 2.0) {
cout<<"Constructor called." <<endl;
length = l;
breadth = b;
height = h;
}

double Volume() {
return length * breadth * height;
}

int compare(Box box) {
return this->Volume() >box.Volume();
}

private:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};



int main(void) {
Box Box1(3.3, 1.2, 1.5); // Declare box1
Box Box2(8.5, 6.0, 2.0); // Declare box2
if(Box1.compare(Box2)) {
cout<< "Box2 is smaller than Box1" <<endl;
else
 {
cout<< "Box2 is equal to or larger than Box1" <<endl;
}
return 0;
}

output:
Constructor called.
Constructor called.
Box2 is equal to or larger than Box1

AIM:  To write a Program to illustrate pointer to a class

Source code:

#include <iostream>
using namespace std;
class Box {
public:
Box(double l = 2.0, double b = 2.0, double h = 2.0) {
cout<<"Constructor called." <<endl;
length = l;
breadth = b;
height = h;
}

double Volume() {
return length * breadth * height;
}
private:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};

int main(void) {
Box Box1(3.3, 1.2, 1.5); // Declare box1
Box Box2(8.5, 6.0, 2.0); // Declare box2
Box *ptrBox; // Declare pointer to a class.

// Save the address of first object
ptrBox = &Box1;

// Now try to access a member using member access operator

cout<< "Volume of Box1: " <<ptrBox->Volume() <<endl;

// Save the address of second object
ptrBox = &Box2;

// Now try to access a member using member access operator
cout<< "Volume of Box2: " <<ptrBox->Volume() <<endl;

return 0;
}

output:
Constructor called.
Constructor called.
Volume of Box1: 5.94
Volume of Box2: 102



Exercise -3 (Operator Overloading)

To write a program to Overload Unary, and Binary Operators as Member Function

AIM:    To write a program to illustrate Unary operator as member function

Source code:

#include <iostream>
using namespace std;
class Distance {
private:
int feet; // 0 to infinite
int inches; // 0 to 12

public:
// required constructors
Distance() {
feet = 0;
inches = 0;
}
Distance(int f, int i) {
feet = f;
inches = i;
}

// method to display distance
void displayDistance() {
cout << "F: " << feet << " I:" << inches <<endl;
}


Distance operator++ () {
++feet;
++inches;
if(inches>=12)
{
feet++;
inches-=12;
}
return Distance(feet, inches);
}

};

int main() {
Distance D1(11, 10);
Distance D3=++D1;
D3.displayDistance(); // display D1
return 0;
}

output:
 F: 12 I:11

AIM : To write a program to illustrate Binary operator as a member function

Source code:

#include <iostream.h>
class Distance {
private:
int feet; // 0 to infinite
int inches; // 0 to 12
public:
// required constructors
Distance() {
feet = 0;
inches = 0;
}
Distance(int f, int i) {
feet = f;
inches = i;
}

// method to display distance
void displayDistance() {
cout << "F: " << feet << " I:" << inches <<endl;
}


Distance operator+ (Distance d) {
feet+=d.feet;
inches+=d.inches;
if(inches>=12)
{
feet++;
inches-=12;
}
return Distance(feet, inches);
}
};

int main() {
Distance D1(11, 10),D2(14,5);
Distance D3=D1+D2;
D3.displayDistance(); // display D3
return 0;
}

AIM : To overload the assignment operator "="

Source code:

#include <iostream.h>
class Distance {
private:
int feet; // 0 to infinite
int inches; // 0 to 12
public:
// required constructors
Distance() {
feet = 0;
inches = 0;
}
Distance(int f, int i) {
feet = f;
inches = i;
}

void operator = (const Distance &D ) {
feet = D.feet;
inches = D.inches;
}


// method to display distance

void displayDistance() {
cout << "F: " << feet << " I:" << inches << endl;
}
};

int main() {
Distance D1(11, 10), D2(5, 11);
cout << "First Distance : ";
D1.displayDistance();
cout << "Second Distance :";
D2.displayDistance();
// use assignment operator
D1 = D2;
cout << "First Distance :";
D1.displayDistance();
return 0;
}

output:

First Distance : F: 11 I:10
Second Distance :F: 5 I:11
First Distance :F: 5 I:11

Exercise -4 (Inheritance)

 To write C++ Programs and incorporating various forms of Inheritance

AIM :To implement Single Inheritance

Source code:

# include <iostream.h>
// base class or parent class
class student
{
protected:
int sno;
char sname[20];
};

//derived class or child class
class mpc: public student
{
int maths,phy,che;
public:
void getdata()
{
cout<<”Enter no and name?”;
cin>>sno>>sname;
cout<<”Enter MPC marks?”;
cin>>maths>>phy>>che;
}
void disdata()
{
cout<<sno<<”\t”<<sname<<endl;
cout<<maths<<”\t”<<phy<<”\t”<<che;
}
};

int main()
{
mpc s1;
s1.getdata();
s1.disdata();
return 0;
}

output:
Enter no and name?101 Raj
Enter MPC marks?70 80 90
101 Raj
70 80 90

AIM : To Implement  multiple inheritance

Source code:

// deriving derived class from more than one base class
//base class
# include <iostream.h>
class Father
{
protected:
int age;
char name[20];
public:
void getdata()
{
cout<<"Enter Father age & name?";
cin>>age>>name;
}
};

//base class
class Mother
{
protected:
int age;
char name[20];
public:
void getdata()
{
cout<<"Enter Mother age & name?";
cin>>age>>name;
}
};

// derived class
class Child :public Father,Mother
{
protected:
int age;
char name[20];
public:
void getdata()
{
Father::getdata();
Mother::getdata();
cout<<"Enter Child age & name?";
cin>>age>>name;
}
void disdata(){
cout<<Father::age<<"\t"<<Father::name<<endl;
cout<<Mother::age<<"\t"<<Mother::name<<endl;
cout<<age<<"\t"<<name<<endl;
}
};

int main()
{
Child obj;
c.getdata();
c.disdata();
return 0;
}

output:
Enter Father age & name?rao 32                                                                                             
Enter Mother age & name?Rani 30
Enter Child age & name?balu 2
rao 32
Rani 30
balu 2


AIM: To Implement multi level inheritance:

Source code:

# include <iostream.h>
class A1
{
protected:
int age;
char name[20];
};

class A2:public A1
{
protected:
int height;
};

class A3:public A2
{
protected:
int weight;
public:
void getdata()
{
cout<<"Enter age & name?";
cin>>age>>name;
cout<<"Enter height & weight?";
cin>>height>>weight;
}

void disdata()
{
cout<<age<<"\t"<<name<<endl;
cout<<height<<"\t"<<weight<<endl;
}
};

int main()
{
A3 obj;
obj.getdata();
obj.disdata();
return 0;
}

output:
enter age & name? 18 Raj
enter height & weight? 167 60
18 Raj
167 60



AIM : To Implement hierarchical inheritance

Source code:

# include <iostream.h>
class student
{
protected:
int rno;
};

class engg:public student
{
protected:
int eng,maths,total;
public:
void getdata()
{
cout<<"Enter rno,eng & maths marks?";
cin>>rno>>eng>>maths;
}
};

class cse:public engg
{
private:
int cpp;
public:
void getcsedata()
{
getdata(); // calling parent function
cout<<"Enter cpp marks?";
cin>>cpp;
}

void disdata()
{
cout<<rno<<" "<<eng<<" "<<
maths<<" "<<cpp<<endl;
total=eng+maths+cpp;
cout<<"Total = "<<total<<endl;
}

};

class ece:public engg
{
private:
int dld;
public:
void getecedata()
{
getdata(); // calling parent function
cout<<"Enter dld marks?";
cin>>dld;
}

void disdata()
{
cout<<rno<<" "<<eng<<" "<<
maths<<" "<<dld<<endl;
total=eng+maths+dld;
cout<<"Total = "<<total<<endl;
}
};


int main()
{
cse c;
c.getcsedata();
c.disdata();
ece e;
e.getecedata();
e.disdata();
return 0;
}

output:

Enter rno,eng & maths marks? 101 77 99
Enter cpp marks? 88
Total = 264

AIM : To implement hybrid inheritance

Source code:

# include <iostream.h>

//base class
class student
{
protected:
int rno;
};

//der class
class test:public student
{
protected:
int sub1,sub2;
};

//base class
class sports
{
protected:
int score;
};

//der class
class result:public test,sports
{
int total;
public:
void getdata()
{
cout<<"Enter rno?";
cin>>rno;
cout<<"Enter ,sub1,sub2 and score?";
cin>>sub1>>sub2>>score;
}

void display()
{
cout<<rno<<" "<<sub1<<" "<<sub2<<endl;
cout<<score<<endl;
total=sub1+sub2+score;
cout<<"Total = "<<total<<endl;
}
};

int main()
{
result r;
r.getdata();
r.display();

output:
Enter rno?101
Enter ,sub1,sub2 and score?77 99 88
Total = 264

AIM : To Illustrate constructor and destructor invokation order in single inheritance

source code:

#include<iostream>
using namespace std;
class base
{
public:
    base()
    {
        cout<<"base class constructor"<<endl;
    } ~base()
    {
        cout<<"base class destructor"<<endl;
    }
};
class derived:public base
{
public:
    derived()
    {
        cout<<"derived class constructor"<<endl;
    } ~derived()
    {
        cout<<"derived class destructor"<<endl;
    }
};
int main()
{
    derived d;
    return 0;
}

output:
cons



Exercise -5(Templates, Exception Handling)


AIM : To write a C++ Program to illustrate template class

Source code

#include <iostream>
using namespace std;
template<class T1, class T2>
class A
{
T1 a;
T2 b;
public:
A(T1 x,T2 y)
{
a = x;
b = y;
}

void display()
{
std::cout << "Values of a and b are : " << a<<" ,"<<b<<std::endl;
}
};
int main()
{
A<int,float> d(5,6.5);
d.display();
return 0;
}
Output:
values of a and b are : 5,6.5


AIM : To write a Program to illustrate member function templates

Source code :

#include <iostream>
using namespace std;
template<class T> T add(T &a,T &b)
{
T result = a+b;
return result;
}
int main()
{
int i =2;
int j =3;
float m = 2.3;
float n = 1.2;
cout<<"Addition of i and j is :"<<add(i,j);
cout<<'\n';
cout<<"Addition of m and n is :"<<add(m,n);
return 0;
}


output:
Addition of i and j is :5 Addition of m and n is :3.5


AIM : To write a Program for Exception Handling Divide by zero

Source code :

#include <iostream>
using namespace std;
double division(int a, int b) {
if( b == 0 ) {
throw "Division by zero condition!";
}
return (a/b);
}

int main () {
int x = 50;
int y = 0;
double z = 0;
try {
z = division(x, y);
cout << z << endl;
}
catch (const char* msg) {
cerr << msg << endl;
}

return 0;
}

output:

Division by zero condition!


AIM : To write a Program to re throw an Exception

Source code :

#include <iostream>
using namespace std;
// Function for Exception Thrown
void exceptionFunction() {
// try block - inside Function
try {
throw 0;
}
catch (int i) {
cout << "\nIn Function : Wrong Input :" << i;
throw;
}
}

int main() {
int var = 0;
cout << "Simple C++ Program for Re throwing Exception Handling : In Function\n";
try {
exceptionFunction();
}

catch (int ex) {
cout << "\nIn Main : Wrong Input :" << ex;
}
return 0;
}

output:

Simple C++ Program for Re throwing Exception Handling : In Function                                                           
                                                                                                                              
In Function : Wrong Input :0                                                                                                  
In Main : Wrong Input :0  













Monday, December 21, 2020

TEST -3 FOR CRT

 

Question – 1:

Mahirl is a little girl who loves to play. Today she is playing by moving some stones between two piles of stones. Initially, one of the piles has A and the other has B stones in it.

Mahirl has decided to perform a sequence of K operations. In each operation she will double the size of the currently smaller pile. Formally, if the current pile sizes are labeled X and Y in such a way that X <= Y, she will move X stones from the second pile to the first one. After this move the new pile sizes will be X+X and Y-X.

Given the ints AB, and write a program to determine the size of the smallest pile after Mahirl finishes all her operations.
 

Input and Output Format:

Input consists of 3 integers – A, B and K .

The first integer corresponds to A, the number of stones in the first pile.

The second integer corresponds to B, the number of stones in the second pile.

The third integer corresponds to K, the number of operations performed.
 

Output consists of an integer that corresponds to the size of the smallest pile.

 

Sample Input :

4

7

2

 

Sample Output :

5

1

t7

1
1
2000

0

2

t3

2
6
1

4

3

t2

5
5
3

0

4

t4

2
8
1

4

5

t10

231
5
10

 

 

Question – 2:

 

A man is doing a something experiment with the device that he built newly. The structure of the device is shown as below diagram



B to E is a sloping surface with n holes, labeled H1, H2, H3... Hn, on it. Holes are of different diameters & depths. The man is releasing m number of balls of different diameters from the point B one after the other. He wants to find the positions of each ball after the experiment.  The specialties of the device are as follow:

1.      A ball will fall into a hole, if and only if its diameter is less than or equal to the diameter of the hole. 

2.      A hole Hi will become Non-empty i.e Full, if i no. of balls fall into it. For ex hole labeled as H3 will become full if THREE balls fall into it.

3.      If a hole is full then no more balls can fall into that hole.

4.      A ball will reach the bottom point E from B, only if it is not falling into any 1 of the holes.

Please help him in finding the eventual position of the balls. If a ball is in hole Pi, then take its position as i. If a ball reached the bottom point E, then take its position as 0. 

Constraints

·                  0 < N <= 50

·                  0 < Diameter of holes <= 10^9

·                  0 < M <= 1000

·                  0 < M <= 1000

Input Format

Line 1: total number of holes, N

Line 2: N space separated integers denoting the diameters of N holes, from bottom to top

Line 3: total number of balls, M 

Line 4: M space separated integers denoting the diameters of balls in the order of release. 

Output 

Line 1: Positions of each ball in the order of ball release separated by space 

Explanation 

Input

3

21 3 6 

11 

20 15 5 7 10 4 2 1 3 6 8

Output

1 0 3 0 0 3 3 2 2 0 0