Q 1 WHAT WIIL BE OUTPUT OF FOLLOWING PROGRAM? 1
#include
# include
void main()
{
clrscr();
int sum(int(*)(int),int);
int square(int);
int cube(int);
cout<
cout<
getch();
}
int sum(int(*ptr)(int k),int n)
{
int s=0;
for(int i=1;i<=n;i++)
{
s+=(*ptr)(i);
}
return s;
}
int square(int k)
{ int sq;
sq=k*k;
return k*k;
}
int cube(int k)
{
return k*k*k;
}
ANS 1> OUTPUT WILL BE
30
100
Q2>How many times will the following program will print “examination”? 1
#include
void main( )
{
while(1)
{
cout<<”examination”
}
}
ANS 2>Unless ^C is pressed ,program will print “examination” infinitely.
Q 3> Will the following programs produce same output? 2
Program 1
# include
# include
void main()
{
int x,y=1;
if((x=y)!=0)
cout<
state state1(temp), state2("Mumbai"), state3("Nagpur"), s1,s2;
s1.replace(state1,state2);
s2.replace(s1,state3);
s1.display();
s2.display();
getch();
}
Ans.: DelhiMumbai
DelhiMumbaiNagpur
Q.3 Find out errors in the following program:-
class number
{
int x=10;
float y;
number(){ x=y=10;}
public:
number(number t)
{
x=t.x; y=t.y;
}
~ (){ cout<<"Object destroyed ";}
}
main()
{
number a1, a2(a1);
}
Ans.: error: int x=10; // class member can not be initialized in the class.
Constructor should be declared in public section of class.
Reference operator is missing in the definition of copy constructor
In destructor class name is missing.
Semicolon is missed after the definition of class.
Q.4 What is the difference between nesting or containership and inheritance? Explain with example?
Ans.: Containership or Nesting: When a class contains object of other class type as its data member is known as containership or nesting.
Inheritance: Inheritance is the process of creating new class by reusing the properties of an existing class by accessing them depending on different visibility mode. The new class is called derived and existing class is called base class.
Q.5 What will be the output of the program?
#include
class base
{ public:
void display()
{
cout<<"It is a base class "<
}
};
class derived: public base
{
public:
void display()
{ cout<<"It is a derived class "<
};
main()
{
derived ob1;
ob1.display();
}
Ans:- The output will be:
It is a derived class.
Q.6 Define a class named Tour in C++ with following description? 4
Private members:
tcode integer (Ranges 6 - 10)
adults, children, distance integer
totalfare float
AssignFare( ) A function which calculates and assign the value to data member
totalfare as follows:-
- For adults Fare Distance
Rs. 500 >=1500
And fare get reduced by 25% if distance is < 1500.
- For Children
For every child a fixed Rs. 50 is charged as fare.
Public members:
• A constructor which initialized initialize all data members with 0
• Function EnterTour() to input the values of the data members tcode, adults, children and call to AssignFare function.
• Function ShowTour() to print all the details of object of Travel type.
Ans.
class tour
{
int tcode,adults,children,distance;
float totalfare;
void assignfare()
{ float cfare=50, afare=1500;
if(distance<1500)
afare=afare-(afare*25/100);
totalfare=(children*cfare)+(adults*afare);
}
public:
travel()
{ tcode=adults=children=distance=totalfare=0; }
void entertour()
{
do
{ cout<<"Enter tcode between 6-10 ";
cin>>tcode;
if (tcode<6
tcode>10)
cout<<"Invalid tcode "<
}while(tcode<6
tcode>10);
cout<<"Enter children, adults, distance";
cin>>children>>adults>>distance;
assignfare();
}
void showtour()
{ cout<<"tcode:"<
cout<<"children:"<
cout<<"adults :"<
cout<<"distance:"<
cout<<"total fare:"<
}
};
Q.7. Define a class named Admission in C++ with following description? 4
Private members:
admno integer (Ranges 10-1500)
name string of 20 characters
cls integer
fees float
Public members:
A constructor which initialized admno with 10, name with “NULL”, cls with 0 & fees with 0
Function getdata() to read the object of Admission type.
Function putdata() to print the details of object of admission type.
Function draw_nos() to generate the admission no. randomly to match with admno and display the detail of object.
Ans.: class admission
{ int admno;
char name[20];
int cls;
float fees;
public:
admission()
{ admno=10;
strcpy(name,"NULL");
cls=0;
fees=0;
}
void getdata()
{
do
{ cout<<"Enter admno between 10-1500 ";
cin>>admn
if (admno<10
admno>1500)
cout<<"Invalid admission no !"<
}while(admno<10
admno>1500);
cout<<"Enter name ";
gets(name);
cout<<"Enter class and fees ";
cin>>cls>>fees;
}
void putdata()
{ cout<<"Admno :"<
cout<<"Name :"<
cout<<"Class :"<
cout<<"Fees :"<
}
void draw_nos()
{ int num;
randomize();
num=random(1491)+10;
if (num==admno)
putdata();
}
};
Q.8
Class testmeout
{ int rollno;
public:
~testmeout() //Function 1
{ cout<
}
testmeout() //Function 2
{ rollno=1;
cout<
}
testmeout(int n, char name[]) //Function 3
{ rollno=n;
cout<
}
testmeout(testmeout & t);//function 4
void mywork() //Function 5
{ cout<
}
};
i) In object oriented programming, what is Function 1 referred as and when does it get invoked?
ii) In object oriented programming, what is Function 2 referred as and when does it get invoked?
iii) In object oriented programming, what is Function 3 referred as and when does it get invoked?
iv) Write a statement so that function 3 gets executed?
Complete the definition of function 4
v) What will be the output of the above code if its main function definition is as given below (assumed the definition of Function 4 is completed ) :
main()
{testmeout ob1;
ob1.mywork();
}
vi) Which feature of object oriented programming is demonstrated using Function 2, Function 3 and Function 4 in the above class testmeout?
vii) What is the scope of data member (rollno) of class testmeout? What does the scope of data members depend upon?
Ans:-
i) It is referred as destructor. It is automatically invoked when an object of concerned class goes out of scope.
ii) It is referred as constructor. It is automatically invoked when an object of concerned class is declared / created.
iii) It is parameterized constructor and gets invoked when an object of concerned class is created / declared with the matched parameters.
iv) testmeout ob1(15, “Vicky”);
testmeout (testmeout & t) { rollno=t.rollno;}
v) output will be :
1 is appearing for examination
1 is attempting questions
1 is Leaving examination hall
vi) It is constructor overloading. It shows Polymorphism feature of the OOP.
vii) The rollno member of object can only be used by the concerned object where that object is declared. Its scope basically depends upon the concerned object.
Data Structure – Array, link List, Stack & Queue
Q. 1 Given two arrays of integers A and B of sizes M and N respectively. Write a function named MIX() which will produce a third array named C, such that the following sequence is followed :
All even numbers of A from left to right are copied into C from left to right.
All odd numbers of A from left to right are copied into C from right to left
All even numbers of B from left to right are copied into C from left to right.
All odd numbers of B from left to right are copied into C from right to left
A, B and C are passed as arguments to MIX().
e.g. : A is {3,2,1,7,6,3} and B is {9,3,5,6,2,8,10}, the resultant array C is {2,6,6,2,8,10,5,3,9,3,7,1,3}
Solution : void mix (int A[], int B[], int n, int m)
{ int c[20],i=0,j=0,k=0,l;
L=m+n-1;
while (i
{ if (A[i]%2==0)
C[k++] = A[i++];
else C[l--] = A[i++];
}
While (j
{ if (B[j]%2==0)
C[k++]=B[j++];
else C[l--]=B[j++];
}
cout<<” \nThe elements of an array C is :”;
for (i=0;i
cout<<”\n”<
}
void main()
{ int A[j= { 3,2,1,7,6,3}, B[]= {9,3,5,6,2,8,10};
Mix(A,B,6,7);
}
Q. 2. Suppose an array P containing float is arranged in ascending order. Write a user defined function in C++ to search for one float from P with the help of binary search method. The function should return an integer 0 to show absence of the number and integer 1 ti show presence of the number in the array. The function should have the parameters as (1) an array (2) the number DATA to be searched (3) number of element N.
Solution : int bsearch (float P[10], float DATA, int N)
{ int beg =0, end = N-1,mid, pos = -1;
while(beg<=end)
{ mid = ( beg+ end )/2;
if (P[mid] == DATA)
{ pos =mid +1;
Break;
}
else if (item > AE[mid] )
beg = mid +1;
else
end = mid-1;
}
return ((pos==-1)? 0:1);
}
Q. 3 Write a function in C++ which accepts an integer array and its size as arguments / parameters and assign the elements into a two dimensional array of integers in the following format :
If the array is 1, 2,3,4,5,6 If the array is 1,2,3
The resultant 2D array is given below The resultant 2D array is
1 2 3 4 5 6 given below
1 2 3 4 5 0 1 2 3
1 2 3 4 0 0 1 2 0
1 2 3 0 0 0 1 0 0
1 2 0 0 0 0
1 0 0 0 0 0
Solution :
void func(int arr[], int size)
{ int a2[20][20], i, j;
for (i=0;i
{ for (j=0;j
{ if ((i+j) >=size)
a2[i][j]=0;
else a2[i][j]= arr[j];
cout<
}
Cout<<”\n”;
}
}
Q-4 Write a function in C++ to perform a PUSH operations on a dynamically allocated stack containing real number?
Ans-
struct Node
{
float data;
Node * next;
};
Void push (Node*Top, float num)
{
Node*nptr = new Node;
nptr -> data = num;
nptr -> next = NULL;
if(Top == NULL)
Top = nptr;
else
{
nptr -> next = Top;
Top = nptr;
}
}
Q-5 Each node of a STACK containing the following information, in addition to required pointer field:
Roll no. of the student
Age of the student.
Gve the structure of node for the linked stack in question.
TOP is a pointer to the topmost node of the STACK. Write the following function:
PUSH() – TO push a node in to the stack which is allocated dynamically.
POP() – Te remove a node from the stack and to release the memory.
Ans-
struct STACK
{
int rollno, age;
STACK*next;
} *top, *nptr, *ptr;
void pop()
{
if (!pop) { cout << ”\nUnderflow!!” ; exit(1); }
else
{ cout << ’\n’ << top -> rollno << ’\t’ << top -> age;
ptr = top;
top = top -> next;
delete ptr;
}
}
Void push()
{
nptr = new stack; //allocate memory
cout << “\n Enter roll number and age to be inserted : “ ;
cin >> nptr-> rollno >> nptr->age ;
nptr -> next = NULL;
if (!top) top = nptr;
else
{
ptr -> next = top;
top = nptr
}
}
Q.6 Write a function MAX in C++ which will return the Largest number stored in a two dimensional array of Integers.
Ans
#include
#include
const r = 100, c = 100;
// Function to find the largest integer in a two-dimensional array
int MAX(int a[r][c], int m, int n)
{
int max = 0;
for(int i= 0;i
for(int j= 0;j
{
if (a[i][j] >max)
max = a[i][j];
}
return max;
}
void main()
{
clrscr();
int ar[r][c];
int rr, cc, mx = 0;
int i, j;
cout << "Enter no. of row : ";
cin >> rr;
cout << "Enter no. of column : ";
cin >> cc;
cout << "Enter the array elements : ";
for (i=0; i
for (j = 0; j
cin >> ar[i][j];
mx = MAX(ar, rr, cc);
cout << "Largest element is : " << max;
}
Q.7 Write a function in c++ which accepts a 2D array of integers and its size as arguments and displays the elements which lies on diagonals.
[ Assuming the2D array to be a square matrix with odd dimensions , i.e 3x3, 5x5,7x7, etc ]
Example if the array content is
5 4 3
6 7 8
1 2 9
Output through the function should be
Diagonal one : 5 7 9
Diagonal two : 3 7 1 .
Ans
// Function to display the elements which lie on diagonals
#include
#include
#include
const M = 10;
const N = 10;
void display_diagonals(int MATRIX[M][N], int r, int c)
{
clrscr();
// Finding the diagonal from left index to right
cout << "Diagonal One : ";
for(int i=0; i
for(int j=0; j
{
cout << MATRIX[i][j] << " ";
i++;
}
cout << endl;
// Finding the diagonal from right index to left
cout << "Diagonal Two : ";
for(i=0; i<=r; i++)
{
for(int j=c-1; j>=0; j--)
{
cout << MATRIX[i][j] << " ";
i++;
}
}
getch();
}
void main()
{
int MATRIX[M][N];
int i, j;
int r, c;
cout << "Enter total no. of rows: ";
cin >> r;
cout << "Enter total no. of columns: ";
cin >> c;
if ((r == c) && ((r%2==1) && (c%2==1)))
{
cout << "Input steps";
cout << "\n\Enter the element in the array\n";
for(i=0; i
for(j=0; j
{
cin >> MATRIX[i][j];
}
}
else
return;
display_diagonals(MATRIX, r, c);
}
Q.8 Write a function in C++ which accepts a 2D array of integers and its size as arguments and displays the elements of the middle row and the elements of middle column.
Example if the array content is
3 5 4
7 6 9
2 1 8
Output through the function should be:
Middle row: 769 Middle column: 5 6 1
Ans
// Function to display the elements which lie on middle of row and column
#include
#include
#include
const M = 10;
const N = 10;
void display_RowCol(int Array[M][N], int r, int c)
{ int row = r / 2;
int col = c / 2;
// Finding the middle row
cout << "Middle Row : ";
for(int j=0; j
cout << Array[row][j] << " ";
cout << endl;
// Finding the middle column
cout << "Middle Column : ";
for(j=0; j
cout << Array[j][col] << " ";
getch();
}
void main()
{ int Array[M][N];
int i, j;
int r, c;
cout << "Enter total no. of rows: ";
cin >> r;
cout << "Enter total no. of columns: ";
cin >> c;
if ((r == c) && ((r%2==1) && (c%2==1)))
{ cout << "Input steps";
cout << "\n\Enter the element in the array\n";
for(i=0; i
for(j=0; j
{ cin >> Array[i][j]; }
}
else
{ cout << "Input row and column not valid";
getch();
return;
}
display_RowCol(Array, r, c);
}
Q. 9. Declare a stack using array that contains int type numbers and define pop and push function using C++ Syntax.
Ans
#include
#include
#include
#include
#include
#define MAX 100 // Shows maximum array length
int stack[MAX]; // Declares array global variable
int top; // Declares integer top
// Function prototypes of add stack, delete stack, and
// show stack in array implementation
void push(int stack[], int val, int &top); // Add stack
int pop(int stack[], int &top); // Delete stack
void show_Stack(int stack[], int top); // Show stack
void main()
{
int choice, val;
char opt = 'Y'; // To continue the do loop in case
top = -1; // Initialization of Queue
clrscr();
do
{
cout << "\n\t\t Main Menu";
cout << "\n\t1. Addition of Stack";
cout << "\n\t2. Deletion from Stack";
cout << "\n\t3. Traverse of Stack";
cout << "\n\t4. Exit from Menu";
cout << "\n\nEnter your choice from above -> ";
cin >> choice;
switch (choice)
{
case 1:
do
{ cout << "Enter the value to be added in the stack ";
cin >> val;
push(stack, val, top);
cout <<"\nDo you want to add more elements
cin >> opt;
} while (toupper(opt) == 'Y');
break;
case 2:
opt = 'Y'; // Initialize for the second loop
do
{ val = pop(stack, top);
if (val != -1)
cout << "Value deleted from statck is " << val;
cout <<"\nDo you want to delete more elements
cin >> opt;
} while (toupper(opt) == 'Y');
break;
case 3:
show_Stack(stack, top);
break;
case 4:
exit(0);
}
}
while (choice != 4);
}
// Function body for add stack with array
void push(int stack[], int val, int &top)
{
if (top == MAX - 1)
{ cout << "Stack Full ";
}
else
{ top = top + 1;
stack[top] = val;
}
}
// Function body for delete stack with array
int pop(int stack[], int &top)
{
int value;
if (top < 0)
{ cout << "Stack Empty ";
value = -1;
}
else
{ value = stack[top];
top = top - 1;
}
return (value);
}
// Function body for show stack with array
void show_Stack(int stack[], int top)
{
int i;
if (top < 0)
{ cout << "Stack Empty";
return;
}
i = top;
clrscr();
cout << "The values are ";
do
{ cout << "\n" << stack[i];
i = i - 1;
}while(i >= 0);
}
Q.10. Define functionstackpush( ) to insert nodes and stack pops ( ) to delete nodes . for a linked list implemented stack having the following structure for each node
struct Node
{
Char name [ 20 ]
Int age ;
Node * link ;
};
Class stuck {
Node * top ;
Public
Stack ( ) { top = null ;} ;
Void stackpush ( );
Void stack pop ( ) ;
}
Ans
#include
#include
#include
#include
#include
// Declares a stack structure
struct node
{
char name[20];
int age;
node *link;
};
class stack
{
node *top;
public :
stack() { top = NULL; }
void stackpush(); // Add stack
void stackpop(); // Delete stack
void show_Stack(); // Show stack
};
// Function body for adds stack elements
void stack::stackpush()
{
int val;
node *temp;
temp = new node;
cout << "Enter name : ";
gets(temp->name);
cout << "Enter age : ";
cin >> temp->age;
temp->link = NULL;
if(top ==NULL)
top = temp;
else
{
temp->link = top;
top = temp;
}
}
// Function body for delete stack elements
void stack::stackpop()
{
node *temp;
if (top == NULL)
{
cout << "Stack Empty ";
}
else
{
temp = top;
top = top->link;
temp->link = NULL;
delete temp;
}
}
// Function body for show stack elements
void stack :: show_Stack()
{
node *temp;
temp = top;
clrscr();
cout << "The values are \n";
while (temp != NULL)
{
cout << "\n" << temp->name << "\t" << temp->age;
temp = temp->link;
}
}
// Main programming logic
void main()
{
int choice;
stack STACK;
char opt = 'Y'; // To continue the do loop in case
clrscr();
do
{
cout << "\n\t\t Main Menu";
cout << "\n\t1. Addition of Stack";
cout << "\n\t2. Deletion from Stack";
cout << "\n\t3. Traverse of Stack";
cout << "\n\t4. Exit from Menu";
cout << "\n\nEnter your choice from above ";
cin >> choice;
switch (choice)
{
case 1:
do
{
STACK.stackpush();
cout<<"Do you want to add more elements
cin >> opt;
} while (toupper(opt) == 'Y');
break;
case 2:
opt = 'Y'; // Initialize for the second loop
do
{
STACK.stackpop();
cout<<"Do you want to delete more element
cin >> opt;
} while (toupper(opt) == 'Y');
break;
case 3:
STACK.show_Stack();
break;
case 4:
exit(0);
}
}
while (choice != 4);
}
DATA FILE HANDLING
Q1, Assuming the class Vehicle as follows:
Class vehicle
{ char vehicletype[10];
int no_of wheels;
public:
void getdetials()
{ gets(vehicletype);
cin>>no_of_wheels;
}
void showdetails()]
{ cout<<”Vehicle Type”<
cout<<”Number of Wheels=”<
}
}
Write a function showfile() to read all the records present in an already exiting binary file SPEED.DAT and display them on the screen ,also count the number of records present in the file.
Answer:
Void showfile()
{ ifstream fin;
fin.open(“SPEED.DAT”,ios::in
ios::binary);
vehicle v1;
int count=0;
while (!fin.eof())
{ fin.read((char *)&v1,sizeof(v1));
count++;
v1.showdetails();
}
cout<<”Total number of records are “<
}
Q2. Write a program that prints a text file on the printer.
Answer:-
#include
#include
#include
int main()
{ char filename[13], ch;
cout<<”enter the text file name :”;
cin.getline(filename,13);
ifstream fin;
fin.open(filename);
if(!fin)
{cerr<<”\nFile can’t be opened !\n”;
exit(-1);
}
ofstream fout;
fout.open(“PRN”);
while(fin.get(ch)!=0)
fout.put(ch);
return 0;
}
Q3. Write a c++ program ,which initializes a string variable to the content.”Time is a grat teacher but unfortunately it kills all its pupils.Berlioz”and output the string one character at a time to the disk file OUT.TXT .You have to include all the header files required.
Answer:
#include
Int main()
{
ofstream fout(“OUT.TXT”);
Char*str=” Time is a grat teacher but unfortunately it kills all its pupils.Berlioz”;
Int i=0;
If(!fout)
{
cout<<”File cannot be opened “;
return 0;
}
While (str[i]!=’\0’)
{
fout<
i++;
}
fout.close();
}
Q4. Write a program that display the size of a file in bytes.
Answer:
#include
#include
#include
#include
int main()
{
char filename[13];
clrscr();
cout<”Enter Filename:\n”;
cin.getline(filename,13);
ifstream infile(filename);
if(!infile)
{
cout>>”sorry ! Can not open “<
Exit(-1);
}
int no_bytes=0;
char ch;
while(cin.get(ch))
{
no_bytes ++;
}
cout<<”File Size is”<
return 0;
}
Q5. What will be the output produced by the following code?
Answer:
#include
#include
#include
#include
int main()
{
clrscr()
char filename[13];
cout<<”Enter Filename:”;
cin.getline(filename,13);
ifstream in(filename);
if(!in)
{cout<<”Cannot open input file!\n”;
return (0)
}
Char str[255];
While(in)
{in.getline(str,255);
Cout<
}
in.close();
return 0;
}
1 comment:
The Casino at The Wynn | DrmCD
Join Dr.Mcd today to play with 경기도 출장안마 free demo 대구광역 출장안마 or 충청북도 출장샵 purchase a 1X2 gaming card (MCD). Dr.Mcd also offers 남양주 출장안마 a 경기도 출장마사지 free online membership plan
Post a Comment