Home / C Programming / Functions :: Discussion

Discussion :: Functions

  1. What will be the output of the program?

    #include
     void fun(int*, int*); 
     int main() 
    {   
        int i=5, j=2;    
        fun(&i, &j);    
        printf("%d, %d", i, j);    
        return 0;
     }
     void fun(int *i, int *j) 
     {   
        *i = *i**i;    
        *j = *j**j; 
     } 
    

  2. A.

    5, 2

    B.

    10, 4

    C.

    2, 5

    D.

    25, 4

    View Answer

    Workspace

    Answer : Option D

    Explanation :

    Step 1: int i=5, j=2; Here variable i and j are declared as an integer type and initialized to 5 and 2 respectively.

    Step 2: fun(&i, &j); Here the function fun() is called with two parameters &i and &j (The & denotes call by reference. So the address of the variable i and j are passed. )

    Step 3: void fun(int *i, int *j) This function is called by reference, so we have to use * before the parameters.

    Step 4: *i = *i**i; Here *i denotes the value of the variable i. We are multiplying 5*5 and storing the result 25 in same variable i.

    Step 5: *j = *j**j; Here *j denotes the value of the variable j. We are multiplying 2*2 and storing the result 4 in same variable j.

    Step 6: Then the function void fun(int *i, int *j) return back the control back to main() function.

    Step 7: printf("%d, %d", i, j); It prints the value of variable i and j.

    Hence the output is 25, 4.


Be The First To Comment