Determine the output of the following program.
#include<iostream>
using namespace std;
int g=20;
void func(int &x, int y) {
x=x-y;
y=x*5;
cout<<x<<”,”<<y<<endl;
}
int main()
{
int g=10;
func(g,::g);
cout<<g<<”,”<<::g<<endl;
return 0;
}
Answers
Answer:
Question 1:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int ran = rand();
cout << ran << endl;
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:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
cout << RAND_MAX << endl;
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:
#include <iostream>
using namespace std;
int main()
{
void a = 10, b = 10;
int c;
c = a + b;
cout << c;
return 0;
}
Output:
Compile time error
Explanation: void will not accept any values to its type.
Question 4:
#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:
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:
#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: 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:
#include <iostream>
using namespace std;
int main()
{
int array[] = { 10, 20, 30 };
cout << -2 [array];
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:
#include <iostream>
using namespace std;
int main()
{
int const p = 5;
cout << ++p;
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:
#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:
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:
#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: 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:
#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.
HOPE IT IS HELPFULL.