MCQs
f(int a, int b) The variable a is declared in the function argument statement.
int a; Here again we are declaring the variable a. Hence it shows the error "Redeclaration of a"
Step 1: int fun(int); This is prototype of function fun(). It tells the compiler that the function
fun() accept one integer parameter and returns an integer value.
Step 2: int i=3; The variable i is declared as an integer type and initialized to value 3.
Step 3: fun(i=fun(fun(i)));. The function fun(i) increements the value of i by 1(one) and return it.
Lets go step by step,
=> fun(i) becomes fun(3) is called and it returns 4.
=> i = fun(fun(i)) becomes i = fun(4) is called and it returns 5 and stored in variable i.(i=5)
=> fun(i=fun(fun(i))); becomes fun(5); is called and it return 6 and nowhere the return value is stored.
Step 4: printf("%d`setminus`n", i); It prints the value of variable i.(5)
Hence the output is '5'.
No answer description available for this question.
No answer description available for this question.
Since C is a machine dependent language sizeof(int) may return different values.
The output for the above program will be cd in Window (Turbo C) and gh in Linux (GCC).
To understand it better, compile and execute the above program in Windows (with Turbo C
compiler) and in Linux (GCC compiler).
Step 1: int check(int); This prototype tells the compiler that the function check()accepts one
integer parameter and returns an integer value.
Step 2: int l=45, c; The variable i and c are declared as an integer type and i is initialized to 45.
The function check(i) return 100 if the given value of variable i is >=(greater than or equal to) 45,
else it will return 10.
Step 3: c = check(i); becomes c = check(45); The function check() return 100 and it get stored in
the variable c.(c = 100)
Step 4: printf("%d`setminus`n", c); It prints the value of variable c.
Hence the output of the program is '100'.
Step 1: int k=35; The variable k is declared as an integer type and initialized to 35.
Step 2: k = func1(k=func1(k=func1(k))); The func1(k) increement the value of k by 1
and return it. Here the func1(k) is called 3 times. Hence it increements value of k = 35
to 38. The result is stored in the variable k = 38.
Step 3: printf("k=%d`setminus`n", k); It prints the value of variable k "38".
Step 1: int i; The variable i is declared as an global and integer type.
Step 2: int fun1(int); This prototype tells the compiler that the fun1() accepts the one integer
parameter and returns the integer value.
Step 3: int fun2(int); This prototype tells the compiler that the fun2() accepts the one integer
parameter and returns the integer value.
Step 4: extern int j; Inside the main function, the extern variable j is declared and defined in
another source file.
Step 5: int i=3; The local variable i is defines as an integer type and initialized to 3.
Step 6: fun1(i); The fun1(i) increements the given value of variable i prints it. Here fun1(i) becomes
fun1(3) hence it prints '4' then the control is given back to the mainfunction.
Step 7: printf("%d,", i); It prints the value of local variable i. So, it prints '3'.
Step 8: fun2(i); The fun2(i) increements the given value of variable i prints it. Here fun2(i) becomes
fun2(3) hence it prints '4' then the control is given back to the mainfunction.
Step 9: printf("%d,", i); It prints the value of local variable i. So, it prints '3'.
Hence the output is "4 3 4 3".
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`setminus`n", k, l); It prints the value of k and l
Hence the output is "12, 12".
No answer description available for this question.