recategorized by
9,562 views
13 votes
13 votes

Consider the following C program :

#include<stdio.h>
int jumble(int x, int y){
    x = 2*x+y;
    return x;
}
int main(){
    int x=2, y=5;
    y=jumble(y,x);
    x=jumble(y,x);
    printf("%d \n",x);
    return 0;
}

The value printed by the program is ______________.

recategorized by

4 Answers

Best answer
31 votes
31 votes
$x = 2, y = 5$

$y =$ jumble$(5,2)$ //call by value and $y$ will hold return value. After this call $x = 2, \: y = 12$

$x =$ jumble$(12, 2)$ //call by value and $x$ will hold return value. After this call $x = 26, \: y = 12$

$x=26$
edited by
1 votes
1 votes

jumble function is just taking 2 arguments say arg1 and arg2. and returning (2*arg1) + arg2

in main function we have below:

y=jumble(5,2);---main called jumble function with arguments 5,2 initially  and result was stored in variable y

here y becomes 12  i.e: (2*10)+2

x remains same which is 2

x=jumble(12, 2);----main again called jumble function with arguments 12,2  and stored in variable x

so x becomes 26   i.e: (2*12)+2

finally x will be printed
output: 26

 

1 votes
1 votes
1st jumble will return 12 that will be stored in y.

this y will be passed as parameter in 2nd jumble that will return 26 in x.
Answer:

Related questions

14 votes
14 votes
6 answers
1
Arjun asked Feb 7, 2019
13,407 views
Consider the following C program:#include <stdio.h int main() { int arr[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 5}, *ip=arr+4; printf(“%d\n”, ip ); return 0; }The numb...
21 votes
21 votes
3 answers
3
18 votes
18 votes
2 answers
4
Arjun asked Feb 7, 2019
15,348 views
Consider the following C program:#include <stdio.h int main() { int a[] = {2, 4, 6, 8, 10}; int i, sum=0, *b=a+4; for (i=0; i<5; i++) sum=sum+(*b-i)-*(b-i); printf("%d\n"...