C Programming - Arrays - Discussion
Discussion Forum : Arrays - Find Output of Program (Q.No. 3)
3.
What will be the output of the program ?
#include<stdio.h>
int main()
{
void fun(int, int[]);
int arr[] = {1, 2, 3, 4};
int i;
fun(4, arr);
for(i=0; i<4; i++)
printf("%d,", arr[i]);
return 0;
}
void fun(int n, int arr[])
{
int *p=0;
int i=0;
while(i++ < n)
p = &arr[i];
*p=0;
}
Answer: Option
Explanation:
Step 1: void fun(int, int[]); This prototype tells the compiler that the function fun() accepts one integer value and one array as an arguments and does not return anything.
Step 2: int arr[] = {1, 2, 3, 4}; The variable a is declared as an integer array and it is initialized to
a[0] = 1, a[1] = 2, a[2] = 3, a[3] = 4
Step 3: int i; The variable i is declared as an integer type.
Step 4: fun(4, arr); This function does not affect the output of the program. Let's skip this function.
Step 5: for(i=0; i<4; i++) { printf("%d,", arr[i]); } The for loop runs untill the variable i is less than '4' and it prints the each value of array a.
Hence the output of the program is 1,2,3,4
Discussion:
25 comments Page 3 of 3.
Lingam said:
8 years ago
Please explain the while loop condition not used please explain.
Preeti said:
6 years ago
In fun(4, arr) function , there is no printf statement. So it does not affect output.
Aamir said:
5 years ago
In fun function, only changes are made to p and *p, arr is unaffected. It is not being used on the left-hand side of any statement. So the line fun(4, arr) has no effect on the code.
Anon said:
3 years ago
fun(4,arr) can have an effect on the code.
It doesn't in this case due to the way the while loop is defined, which changes arr[4] (which doesn't concern us).
Replace i++ with ++i to see if the while loop has an effect on the values of the array.
It doesn't in this case due to the way the while loop is defined, which changes arr[4] (which doesn't concern us).
Replace i++ with ++i to see if the while loop has an effect on the values of the array.
Vignesh J said:
3 years ago
fun(4,arr) does not have an effect on the code because at the termination of the while loop.
while(i++ < n)
p = &arr[i];
n will be 4 and p = &arr[4] (which is outside the size of the array)
So, when *p = 0;, value at arr[4] will be 0 which is outside the limit of the array so it function call will not have any effect.
while(i++ < n)
p = &arr[i];
n will be 4 and p = &arr[4] (which is outside the size of the array)
So, when *p = 0;, value at arr[4] will be 0 which is outside the limit of the array so it function call will not have any effect.
(2)
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers