C Programming - Functions - Discussion

Discussion Forum : Functions - Find Output of Program (Q.No. 15)
15.
What will be the output of the program?
#include<stdio.h>

int addmult(int ii, int jj)
{
    int kk, ll;
    kk = ii + jj;
    ll = ii * jj;
    return (kk, ll);
}

int main()
{
    int i=3, j=4, k, l;
    k = addmult(i, j);
    l = addmult(i, j);
    printf("%d, %d\n", k, l);
    return 0;
}
12, 12
7, 7
7, 12
12, 7
Answer: Option
Explanation:

Step 1: int i=3, j=4, k, l; The variables i, j, k, l are declared as an integer type and variable i, j are initialized to 3, 4 respectively.

The function addmult(i, j); accept 2 integer parameters.

Step 2: k = addmult(i, j); becomes k = addmult(3, 4)

In the function addmult(). The variable kk, ll are declared as an integer type int kk, ll;

kk = ii + jj; becomes kk = 3 + 4 Now the kk value is '7'.

ll = ii * jj; becomes ll = 3 * 4 Now the ll value is '12'.

return (kk, ll); It returns the value of variable ll only.

The value 12 is stored in variable 'k'.

Step 3: l = addmult(i, j); becomes l = addmult(3, 4)

kk = ii + jj; becomes kk = 3 + 4 Now the kk value is '7'.

ll = ii * jj; becomes ll = 3 * 4 Now the ll value is '12'.

return (kk, ll); It returns the value of variable ll only.

The value 12 is stored in variable 'l'.

Step 4: printf("%d, %d\n", k, l); It prints the value of k and l

Hence the output is "12, 12".

Discussion:
33 comments Page 2 of 4.

Dileep kumar Kotha said:   1 decade ago
Checked, it won't end up as error, the right most value is returned.

Himansu singh said:   1 decade ago
Thanks!!!!!!!
@@ potnuru for your nice explanation.

Sana said:   2 decades ago
We didnt got why only l value is taken. Why 12 12 why not 7 12 ?

Sia jill said:   4 years ago
If I want an output 7,12, then how to proceed? Please tell me.

Velantina said:   6 years ago
When we call the function it will take the latest value of k.

Jhansi said:   1 decade ago
How can we return two values in the return statement?

Ravitheja.j said:   1 decade ago
@potnuru.

Thanks for the explanation dude. ! :).

Sak said:   1 decade ago
I have the same question. Can anybody answer ?

Devam said:   1 decade ago
@potnuru.

Thanks for nice explanation........

Gaurav said:   7 years ago
Great explanation man thanks for it @Potnuru.
(1)


Post your comments here:

Your comments will be displayed after verification.