Predict the output of the following C++ programs:
-
Question 1:
CPP
#include <iostream> using namespace std;
int main()
{ void a = 10, b = 10;
int c;
c = a + b;
cout << c;
return 0;
} |
- Output:
1804289383
- Explanation: As the declared number is an integer, It will produce the random number from 0 to RAND_MAX. The value of RAND_MAX is library-dependent but is guaranteed to be at least 32767 on any standard library implementation.
-
Question 2:
CPP
#include <iostream> using namespace std;
int array1[] = { 1200, 200, 2300, 1230, 1543 };
int array2[] = { 12, 14, 16, 18, 20 };
int temp, result = 0;
int main()
{ for (temp = 0; temp < 5; temp++) {
result += array1[temp];
}
for (temp = 0; temp < 5; temp++) {
result += array2[temp];
}
cout << result;
return 0;
} |
- Output:
2147483647
- Explanation: The output is Compiler Dependent. RAND_MAX is a function used by the compiler to create a maximum random number.
-
Question 3:
CPP
#include <iostream> using namespace std;
int main()
{ int a = 5, b = 10, c = 15;
int arr[3] = { &a, &b, &c };
cout << *arr[*arr[1] - 8];
return 0;
} |
- Output:
Compile time error
-
Explanation: void will not accept any values to its type.
-
Question 4:
CPP
#include <iostream> using namespace std;
int main()
{ int array[] = { 10, 20, 30 };
cout << -2 [array];
return 0;
} |
- Output:
6553
- Explanation: In this program we are adding the every element of two arrays. All the elements of array1[] and array2[] will be added and the sum will be stored in result and hence output is 6553.
-
Question 5:
CPP
#include <iostream> using namespace std;
int main()
{ int const p = 5;
cout << ++p;
return 0;
} |
- Output:
Compile time error!
-
Explanation: The conversion is invalid in this array. The array arr[] is declared to hold integer type value but we are trying to assign references(addresses) to the array so it will arise error. The following compilation error will be raised:
cannot convert from ‘int *’ to ‘int’
-
Question 6:
CPP
#include <iostream> using namespace std;
int main()
{ char arr[20];
int i;
for (i = 0; i < 10; i++)
*(arr + i) = 65 + i;
*(arr + i) = '\0' ;
cout << arr;
return (0);
} |
- Output:
-30
- Explanation: -2[array]: this statement is equivalent to -(array[2]). At the zero index 30 is stored hence negation of 30 will be printed due to unary operator (-).
-
Question 7:
CPP
#include <iostream> using namespace std;
int Add( int X, int Y, int Z)
{ return X + Y;
} double Add( double X, double Y, double Z)
{ return X + Y;
} int main()
{ cout << Add(5, 6);
cout << Add(5.5, 6.6);
return 0;
} |
- Output:
Compile time Error!
- Explanation: Constant variables are those whose value can’t be changed throughout the execution. ++p statement try to change the value hence compiler will raise an error.
-
Question 8:
CPP
#include <iostream> using namespace std;
#define PR(id) cout << "The value of " #id " is " << id int main()
{ int i = 10;
PR(i);
return 0;
} |
- Output:
ABCDEFGHIJ
-
Explanation: Each time we are assigning 65 + i. In first iteration i = 0 and 65 is assigned. So it will print from A to J.
-
Question 9:
CPP
- Output:
Compile time error!
- Explanation: Here we want to add two element but in the given functions we take 3 arguments.So compiler doesn’t get the required function(function with 2 arguments)
-
Question 10:
CPP
#include <iostream> using namespace std;
#define PR(id) cout << "The value of " #id " is " << id int main()
{ int i = 10;
PR(i);
return 0;
} |
- Output:
The value of i is 10
- Explanation: In this program, we are just printing the declared value through a macro. Carefully observe that in macro there is no semicolon(;) used as a termination statement.
sing.inbox@gmail.com.
Article Tags :