Search This Blog

Saturday, February 13, 2010

Chapterwise Revision Questions - Computer Science XII (083)

Question 1. REVISION TOUR C++, OOPs Concepts & POINTERS




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:

yashodharacadoret said...

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