Refer to CBSE Class 12 Computer Science HOTs Programming in C++ Two mark Questions. We have provided exhaustive High Order Thinking Skills (HOTS) questions and answers for Class 12 Computer Science Programming in C++. Designed for the 2025-26 exam session, these expert-curated analytical questions help students master important concepts and stay aligned with the latest CBSE, NCERT, and KVS curriculum.
Programming in C++ Class 12 Computer Science HOTS with Solutions
Practicing Class 12 Computer Science HOTS Questions is important for scoring high in Computer Science. Use the detailed answers provided below to improve your problem-solving speed and Class 12 exam readiness.
HOTS Questions and Answers for Class 12 Computer Science Programming in C++
<p></p>
2 Marks Questions
Programming in C++
Q.1. Rewrite the following codes after removing errors, if any, in the following snippet.
Explain each error.
#include<iostream.h>
void main( )
{
int x[5], *y, z[5]
for (i = 0; i < 5; i ++
{
x[i] = i;
z[i] = i + 3;
y = z;
x = y;
}
Ans.1. In this question first we have to write complete program after removing all the errors.
#include<iostream.h>
void main( )
{
int x[5], *y, z[5] ; // semi colon must be used here
for ( int i = 0; i < 5; i ++) // data type of i and closing ) should be there.
{
x[i] = i;
z[i] = i + 3;
*y = z; // wrong assignment ( integer to pointer)
x = *y; // wrong assignment ( Pointer to integer)
}
Q.2. Rewrite the following program after removing the error(s), if any. Underline each
correction.
#include <iostream.h>
void main( )
{
int x, sum =0;
cin>>n;
for (x=1;x<100, x+=2)
if x%2=0
sum+=x;
cout<< “sum=” >>sum;
}
Ans 2. Corrected code:
#include <iostream.h>
void main()
{
int x, sum =0;
cin >> x ; // x in place of n
for (x=1; x<100 ; x+=2) //semicolon
if x%2= = 0 // double =due to assignment
sum+=x;
cout<< “sum=” << sum; //<<
}
Q.3. Rewrite the following program after removing the syntactical error(s), if any Underline
each correction:
#include <iostream.h>
void main( )
{
struct Book
{
char Book_name[20];
char Publisher_name[20];
int Price = 170;
} New Book;
gets(Book_name);
gets(Publisher_name);
}
Ans.3. #include <iostream.h>
#include<stdio.h>
void main( )
{
struct Book
{
char Book_name[20];
char Publisher_name[20];
int Price;
} Book New;
gets(New. Book_name);
gets(New. Publisher_name);
}
Q.4. Rewrite the following program after removing the syntactical errors (if any).
Underline each correction.
#include [iostream.h]
class MEMBER
{
int Mno;float Fees;
PUBLIC:
void Register(){cin>>Mno>>Fees;}
void Display{cout<<Mno<<" : "<<Fees<<endl;}
};
void main()
{
MEMBER M;
Register();
M.Display();
}
Ans.4. #include <iostream.h>
class MEMBER
{
int Mno;float Fees;
public:
void Register(){cin>>Mno>>Fees;}
void Display(){cout<<Mno<<":"<<Fees<<endl;}
};
void main()
{
MEMBER M;
M.Register();
M.Display();
}
Q.5. Rewrite the following program after removing the syntactical errors (if any). Underline
each correction.
#include <iostream.h>
struct Pixels
{ int Color,Style;}
void ShowPoint(Pixels P)
{ cout<<P.Color,P.Style<<endl;}
void main()
{
Pixels Point1=(5,3);
ShowPoint(Point1);
Pixels Point2=Point1;
Color.Point1+=2;
ShowPoint(Point2);
}
Ans 5. #include <iostream.h>
struct Pixels
{ int Color,Style;} ;
void ShowPoint(Pixels P)
{ cout<<P.Color<<P.Style<<endl;}
void main()
{
Pixels Point1={5,3};
ShowPoint(Point1);
Pixels Point2=Point1;
Point1.Color+=2;
ShowPoint(Point2);
}
Q.6. Rewrite the following program after removing the error(s), if any. Underline each
correction.
#include <iostream.h>
void main( )
{
int x, sum =0;
cin>>n;
for (x=1;x<100, x+=2)
if x%2=0
sum+=x;
cout<< “sum=” >>sum;
}
Ans.6. #include <iostream.h>
void main( )
{
int x, sum =0;
cin >> x ; // x in place of n
for (x=1; x<100 ; x+=2) //semicolon
if x%2= = 0 // double =
sum+=x;
cout<< “sum=” << sum; //<<
Q.7. Will the following program execute successfully? If no, state the reason(s) :
#include<iostream.h>
#include<stdio.h>
#define int M=3;
void main( )
{
const int s1=10;
int s2=100;
char ch;
getchar(ch);
s1=s2*M;
s1+M = s2;
cout<<s1<<s2 ;
}
Ans.7. #include<iostream.h>
#include<stdio.h>
#define int M=3;
void main( )
{
const int s1=10;
int s2=100;
char ch;
getchar(ch);
s1=s2*M;
s1+M = s2;
cout<<s1<<s2 ;
}
Q. 8. Rewrite the following program after removing the syntactical errors (if any). Underline
each correction.
#include<iostream.h>
void main()
{
char arr{} = {12, 23, 34, 45};
int ptr = arr;
int val = *ptr; cout << *val << endl;
val = *ptr++; cout << val << endl;
val = *ptr : cout << val >> endl;
val = *++ptr; cout << val << endl;
}
Ans.8. include<iostream.h>
void main()
{
int arr[ ] = {12, 23, 34, 45};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = *ptr++; cout << val << endl;
val = *ptr ; cout << val >> endl;
val = *++ptr; cout << val << endl;
}
Q.9. Rewrite the following program after removing the syntactical error (s), if any. Underline
each correction.
#include<iostream.h>
const int dividor 5;
void main( )
{ Number = 15;
for(int Count=1;Count=<5;Count++,Number -= 3)
if(Number % dividor = 0)
{
cout<<Number / Dividor;
cout<<endl;
}
else
cout<<Number + Dividor <<endl;
}
Ans.9. #include<iostream.h>
const int dividor= 5;
void main( )
{
int Number = 15;
for(int Count=1;Count<=5;Count++,Number -= 3)
if(Number % dividor = = 0)
{
cout<<Number / Dividor;
cout<<endl;
}
else
cout<<Number + Dividor <<endl; }
Q.10 Rewrite the following program after removing the syntactical error(s) if any. Underline
each correction.
#include<iostream.h>
void main( )
{
First = 10, Second = 30;
Jumpto(First;Second);
Jumpto(Second);
}
void Jumpto(int N1, int N2 = 20)
{
N1=N1+N2;
count<<N1>>N2;
}
Ans.10. #include<iostream.h>
void Jumpto(int N1,int N2=20); //Prototype missing
void main( )
{
int First = 10, Second = 30; //Data type missing
Jumpto(First , Second); //Comma to come instead of ;
Jumpto(Second);
}
void Jumpto(int N1, int N2=20)
{
N1=N1+N2;
cout<<N1<<N2; //Output operator << required
}
Q.11. Rewrite the following program after removing the syntactical error(s) if any. Underline
each correction.
#include<iostream.h>
const int Max 10;
void main()
{
int Numbers[Max];
Numbers = {20,50,10,30,40};
for(Loc=Max-1;Loc>=10;Loc--)
cout>>Numbers[Loc];
}
Ans.11. #include<iostream.h>
const int Max = 10; //Constant Variable ‘Max’ must be
//initialized. Declaration Syntax Error
void main( )
{
int Numbers[Max]={20,50,10,30,40};
for(Loc=Max-1;Loc>=0;Loc--)
cout>>Numbers[Loc];
}
Q.12. Rewrite the following program after removing the syntactical error(s), if any. Underline
each correction.
#include<iostream.h>
const int Multiple 3;
void main( )
{
value = 15;
for(int Counter = 1;Counter = <5;Counter ++, Value -= 2)
if(Value%Multiple = = 0)
{
cout<<Value * Multiple;
cout<<end1;
}
else
cout<<Value + Multiple <<endl; }
Ans.12. #include<iostream.h>
const int Multiple=3;
void main( )
{
int Value = 15;
for(int Counter = 1;Counter <=5;Counter ++, Value -= 2)
if(Value%Multiple == 0)
{
cout<<Value * Multiple;
cout<<endl;
}
else
cout<<Value + Multiple <<endl;}
Q.13. Will the following program execute successfully? If not, state the reason(s). 2
#include<stdio.h>
void main( )
{ int s1,s2,num;
s1=s2=0;
for(x=0;x<11;x++)
{
cin<<num;
If(num>0)s1+=num;else s2=/num;
}
cout<<s1<<s2; }
Ans.13. The program will not execute successfully. Because some syntax errors are there in the program. They are
(i) cin and cout, stream objects used but iostream.h header file is not included in the program.
(ii) x is not declared, it should be declared as int.
(iii) With cin, we should use >> instead of <<.
(iv) The shorthand operator /=, is given wrongly as =/.
So the corrected program is as follows:
#include<iostream.h>
void main( )
{ int s1,s2,num;
s1=s2=0;
for(int x=0;x<11;x++)
{
cin>>num;
if(num>0)s1+=num;else s2/=num;
}
cout<<s1<<s2; }
Q.14. Identify the errors if any. Also give the reason for errors.
#include<iostream.h>
void main()
{
const int i =20;
const int * ptr=&i;
(*ptr)++;
int j=15;
ptr =&j;
}
Ans.14. #include<iostream.h>
void main()
{
const int i=20;
int * ptr=&i;
(*ptr)++; //can not modify a const object
int j=15;
ptr =&j;
}
15. Identify the errors if any. Also give the reason for errors.
#include<iostream.h>
void main()
{
const int i =20;
const int * const ptr=&i;
(*ptr)++;
int j=15;
ptr =&j;
}
Ans.15. #include<iostream.h>
void main()
{
const int i =20;
const int * const ptr=&i; //can not modify a const object
(*ptr)++;
int j=15;
ptr =&j; //can not modify a const pointer
}
Q.16. Identify errors on the following code segment
float c[ ] ={ 1.2,2.2,3.2,56.2};
float *k,*g;
k=c;
g=k+4;
k=k*2;
g=g/2;
cout<<”*k=”<<*k<<”*g=”<<*g;
Ans.16. The error statements are
k=k*2; g=g/2; as pointer multiplication and division is not possible.
Q.17.. Write the output of the following program. 2
void main( )
{
int x=5,y=5;
cout<<x- -;
cout<<”,”;
cout<- - x;
cout<<”,”;
cout<<y- -<<”,”<<- -y;
}
Ans.17. 5,3,4,4
Q.18. Predict the output of the following code:
# include<iostream.h>
#include<conio.h>
void main()
{
int arr[] = {12, 23, 34, 45};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = *ptr++; cout << val << endl;
val = *ptr; cout << val << endl;
val = *++ptr; cout << val << endl;
}
Ans.18. int arr[] = {12, 23, 34, 45};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = *ptr++; cout << val << endl; // first print value then increment the
address(post
// increment in value)
val = *ptr; cout << val << endl; // only values are changing
val = *++ptr; cout << val << endl; // first increment the address and then print the
value.
}
Coding only for explanation. Don’t write coding in answer
t. Write only the correct output.
12
12
23
34
Q.19. Find the output of the following code.
#include<iostream.h>
#include<conio.h>
void main()
{
int arr[] = {12, 23, 34, 45};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = *ptr++; cout << val << endl;
val = *ptr; cout << val << endl;
val = *++ptr; cout << val << endl;
val = ++*ptr; cout << val << endl;
}
Ans.19. int arr[] = {12, 23, 34, 45};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = *ptr++; cout << val << endl; // first print value then increment the address(post
//increment in value)
val = *ptr; cout << val << endl; // only values are changing
val = *++ptr; cout << val << endl; // first increment the address and then print the
value.
val = ++*ptr; cout << val << endl;
}
12
12
23
34
35
Q.20. . #include<iostream.h>
#include<conio.h>
void main()
{
int arr[] = {12, 23, 34, 45};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = (*ptr)++; cout << val << endl;
val = *ptr; cout << val << endl;
val = *++ptr; cout << val << endl;
}
Ans.20.
int arr[] = {12, 23, 34, 45};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = (*ptr)++; cout << val << endl; // (post increment in value)
val = *ptr; cout << val << endl; // only values are changing
val = *++ptr; cout << val << endl; // first increment the address and then print the
//value.
}
12
12
13
23
Q.21. #include<iostream.h>
#include<conio.h>
void main()
{
int arr[] = {2, 33, 44, 55};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = *++ptr ; cout << val << endl;
val = *ptr; cout << val << endl;
val = * ptr++; cout << val << endl;
}
Ans.21. int arr[] = {2, 33, 44, 55};
int *ptr = arr;
int val = *ptr; cout << val << endl;
val = *++ptr ; cout << val << endl;
val = *ptr; cout << val << endl;
val = * ptr++; cout << val << endl;
}
2
33
33
33
Q.22. Write the output of the following program:
#include<iostream.h>
#include<conio.h>
void main( )
{
clrscr( );
int a =32;
int *ptr = &a;
char ch = ‘A’;
char *cho=&ch;
cho+=a; // it is simply adding the addresses.
*ptr + = ch;
cout<< a << “” <<ch<<endl;
}
Ans.22. 97A
Q.23. Write the output of the following program:
#include<iostream.h>
#include<conio.h>
void main( )
{
clrscr( );
int a =32;
int *ptr = &a;
char ch = ‘A’;
char *cho=&ch;
*cho+=a; // it is adding the values.
cout<< a << “” <<ch<<endl;
}
Ans.23. The meaning of line *cho+=a is:
*cho= *cho +32
= A+32
=97
=’a’ ( ASCII value of character a)
cho contains the address of ch so ch =’a’;
Therefore output would be : 32a
Q.24. Write the output of the following program:
#include<iostream.h>
#include<conio.h>
void main( )
{
clrscr( );
int a =32;
int *ptr = &a;
char ch = 'A';
char *cho=&ch;
*cho+=a;
*ptr += ch;
cout<< a << "" <<ch<<endl;
}
Ans.24. 129a
ch =97 ( from *cho+=a)
*ptr+=ch
*ptr= *ptr+ch
= 32+ ‘a’ (Character a)
=32+97
=129
Since *ptr or variable a both are same so variable a =129 and ch = ‘a’.
Q.25. Write a function in C++ to print the count of the word the as an independent
word in a text file STORY.TXT.
For example, if the content of the file STORY.TXT is
There was a monkey in the zoo.
The monkey was very naughty.
Then the output of the program should be 2.
Ans.25. void thewordCount()
{
ifstream Fil(“STORY.TXT”);
char String[20];
int C=0;
while(Fil)
{
Fil>>String;
if(strcmpi(String,”the”)==0)//case insensitive
C=C+1;
}
cout<<C<<endl;
Fil.close();
}
OR
void thewordCount()
{
ifstream Fil(“STORY.TXT”);
char String[20];
int C=0;
while(Fil)
{
Fil>>String;
if(strcmp(String,”the”)==0 || strcmp(String,”The”)==0)
C=C+1;
}
cout<<C<<endl;
Fil.close();
}
OR
void thewordCount()
{
ifstream F(“STORY.TXT”);
char Str[4];
int C=0;
while(F.getline(Str,4,’ ‘))
{
if(strcmp(Str,”the”)==0 || strcmp(Str,”The”)==0)
C=C+1;
}
cout<<C<<endl;
F.close();
}
Q.26. Assume a text file “coordinate.txt” is already created. Using this file create a C++function to count the number of words having first character capital. Example:
Do less Thinking and pay more attention to your heart. Do Less Acquiring and pay more Attention to what you already have. Do Less Complaining and pay more Attention to giving. Do Less criticizing and pay more Attention to Complementing. Do less talking and pay more attention to SILENCE. Output will be : Total words are 16
Ans.26. Hint: Use isupper(word[0])
Q.27. Write a function in C++ to count the number of lines present in a text file
“STORY.TXT”.
Ans.27. void CountLine()
{
ifstream FIL(“STORY.TXT”);
int LINES=0;
char STR[80];
while (FIL.getline(STR,80))
LINES++;
cout<<”No. of Lines:”<<LINES<<endl;
FIL.close();
}
Q.28. Write a function in C++ to count the number of alphabets present in a text file
“NOTES.TXT”.
Ans.28. void CountAlphabet()
{
ifstream FIL(“NOTES.TXT”);
int CALPHA=0;
char CH=FIL.get();
while (FIL)
{
if (isalpha(CH)) CALPHA++;
CH=FIL.get();
}
cout<<”No. of Alphabets:”<<CALPHA<<endl;
FIL.close();
}
Q.29. Write a function in C++ to write the characters entered through the keyboard into the file“myfile.txt”, until a ‘#’ character is entered.
Ans.29. void entercharacter{
ofstream fout;
fout.open("string.txt");
if(!fout) {
cout<<"\n Unable to open file";
exit(1);
}
char c;
while((c=cin.get())!='#') // or while((c=getchar())!= ‘#’)
{
fout.put(c);
}
fout.close();
}
Q.30. Answer the questions (i) and (ii) after going through the following class:
class Seminar
{
int Time;
public:
Seminar() //Function 1
{
Time=30;cout<<"Seminar starts now"<<end1;
}
void Lecture() //Function 2
{
cout<<"Lectures in the seminar on"<<end1;
}
Seminar(int Duration) //Function 3
{
Time=Duration;cout<<"Seminar starts now"<<end1;
}
~Seminar()
//Function 4
{
cout<<"Vote of thanks"<<end1;
}
};
i) In Object Oriented Programming, what is Function 4 referred as and when does it get
invoked/ called?
ii) In Object Oriented Programming, which concept is illustrated by Function 1 and Function 3 together? Write an example illustrating the calls for these functions.
Ans.30. i) Destructor, it is invoked as soon as the scope of the object gets over.
ii) Constructor Overloading (or Function Overloading or Polymorphism)
Seminar S1; //Function 1
Seminar S2(90); //Function 3
Q.31. Answer the questions (i) and (ii) after going through the following program
#include<iostream.h>
#include<string.h>
class Bazar
{
char Type[20];
char Product[20];
int Qty;
float Price;
Bazar() //Function 1
{
strcpy (Type,”Electronic”);
strcpy (Product,”Calculator”);
Qty = 10;
Price=225;
}
public:
void Disp( ) //Function 2
{
cout<<Type<<”-“<<Product<<”:“<<Qty
<<”@“<<Price<<endl;
}
};
void main( )
{
Bazar B; //Statement 1
B.Disp(); //Statement 2
}
(i) Will Statement 1 initialize all the data members for object B with the values given in the Function 1? (Yes OR No). Justify your answer suggesting the correction(s) to be made in the above code.
(ii) What shall be the possible output when the program gets executed?
(Assuming, if required – the suggested correction(s) are made in the
program)
Ans.31.
(i) No, since the constructor Bazar has been defined in private section or constructor has not been defined in public section. Suggested Correction: Constructor Bazar() to be defined in public
(ii)If the constructor is defined as a public member, the following output shall be generated:
Electronic-Calculator:10@225
Q.32. Given a class as follows:
class Match
{
int Time;
int Points;
public:
Match(int y, int p) //Conctructor1
{
Time=y;
Points =p;
}
Match(Match &M); // Constructor 2
};
(i) Create an object, such that it invokes Constructor 1.
(ii) Write complete definition for Constructor 2.
Ans.32. (i) Match M1(0,0);
(ii) Match (Match &M)
{
Time=M.Time;
Points=M.Points;
}
Q.33. Answer the questions (i) and (ii) after going through the following class:
class player
{
int health;
int age;
public:
player() { health=7; age=17 } //Constructor1
player(int h, int a) {health =h; age = a ; } //Constructor2
player( player &p) { } //Constructor3
~player() { cout<<”Memory Free”; } //Destructor
};
void main(){
player p1(9,26); //Statement1
player p3 = p1; //Statement3
}
(i) When p3 object created specify which constructor invoked and why?
(ii) Write complete definition for Constructor3?
Ans.33. (i)When p3 object created , Constructor 3 will be invoked since it is copy
constructor.
(ii) complete definition for Constructor 3
player( player &p)
{
health = p.health;
age= p.age;
}
34.. Assume a text file “Test.TXT” is already created. Using this file, create a function to create three files “LOWER.TXT” which contains all the lowercase vowels and UPPER.TXT” which contains all the uppercase vowels and “DIGIT.TXT” which contains all digits.
35. Assume that a text file named text1.txt already contains some text written into it, write a function named vowelwords(), that reads the file text1.txt and create a new file named text2.txt, which shall contain only those words from the file text1.txt which don’t start with an uppercase vowel(i.e., with ‘A’,’E’,’I’,’O’,’U’). for example if the file text1.txt contains:
Take One Apple And one glass milk daily.
Then the file text2.txt shall contain :
Take one glass milk daily.
36. Assume a text file “Test.TXT” is already created. Using this file, create a function to create three files “LOWER.TXT” which contains all the lowercase vowels and UPPER.TXT” which contains all the uppercase vowels and “DIGIT.TXT” which contains all digits.
37. Write a function in C++ to calculate the average word size in a text file “Report.txt”, each word is separated by single space or full stop.
38. Create a function FileLowerShow() in c++ which take file name(text files)as a argument and display its all data into lower case.
| CBSE Class 12 Computer Science 1 Marks HOTs |
| CBSE Class 12 Computer Science HOTs Boolean Algebra |
| CBSE Class 12 Computer Science HOTs Communication and Network |
| CBSE Class 12 Computer Science HOTs Communication and Networking |
| CBSE Class 12 Computer Science HOTs Data Structures |
| CBSE Class 12 Computer Science HOTs Data Structures Set A |
| CBSE Class 12 Computer Science HOTs Database and SQL |
| CBSE Class 12 Computer Science HOTs Database and SQL |
Important Practice Resources for Free Printable Worksheets PDF
HOTS for Programming in C++ Computer Science Class 12
Students can now practice Higher Order Thinking Skills (HOTS) questions for Programming in C++ to prepare for their upcoming school exams. This study material follows the latest syllabus for Class 12 Computer Science released by CBSE. These solved questions will help you to understand about each topic and also answer difficult questions in your Computer Science test.
NCERT Based Analytical Questions for Programming in C++
Our expert teachers have created these Computer Science HOTS by referring to the official NCERT book for Class 12. These solved exercises are great for students who want to become experts in all important topics of the chapter. After attempting these challenging questions should also check their work with our teacher prepared solutions. For a complete understanding, you can also refer to our NCERT solutions for Class 12 Computer Science available on our website.
Master Computer Science for Better Marks
Regular practice of Class 12 HOTS will give you a stronger understanding of all concepts and also help you get more marks in your exams. We have also provided a variety of MCQ questions within these sets to help you easily cover all parts of the chapter. After solving these you should try our online Computer Science MCQ Test to check your speed. All the study resources on studiestoday.com are free and updated for the current academic year.
You can download the teacher-verified PDF for CBSE Class 12 Computer Science HOTs Programming in C++ Two mark Questions from StudiesToday.com. These questions have been prepared for Class 12 Computer Science to help students learn high-level application and analytical skills required for the 2025-26 exams.
In the 2026 pattern, 50% of the marks are for competency-based questions. Our CBSE Class 12 Computer Science HOTs Programming in C++ Two mark Questions are to apply basic theory to real-world to help Class 12 students to solve case studies and assertion-reasoning questions in Computer Science.
Unlike direct questions that test memory, CBSE Class 12 Computer Science HOTs Programming in C++ Two mark Questions require out-of-the-box thinking as Class 12 Computer Science HOTS questions focus on understanding data and identifying logical errors.
After reading all conceots in Computer Science, practice CBSE Class 12 Computer Science HOTs Programming in C++ Two mark Questions by breaking down the problem into smaller logical steps.
Yes, we provide detailed, step-by-step solutions for CBSE Class 12 Computer Science HOTs Programming in C++ Two mark Questions. These solutions highlight the analytical reasoning and logical steps to help students prepare as per CBSE marking scheme.