Consider the following C code. Assume that unsigned long int type length is 64 bits

Q. Consider the following C code. Assume that unsigned long int type length is 64 bits.

The value returned when we call fun with the input 240 is

(A) 4                           (B) 5                           (C) 6                           (D) 40

Ans: 5

Sol:

// n takes 2^40
unsigned long int fun(unsigned long int n) {

    // initialized sum = 0
    unsigned long int i, j = 0, sum = 0;

    //First it takes i = n = 2^40,
    //then it divides i by 2 and incremented once j
    //each time, that's will make makes j = 40,
    for( i=n; i>1; i=i/2) j++;

    //Now the value of j = 40,
    //it divides j by 2 and incremented once sum
    //each time, that's will make makes sum = 5,
    for( ; j>1; j=j/2) sum++;

    //returns sum = 5
    return sum;

}

Take Mock Tests

Government Schemes Mock Test Start Test!
Political Science Mock Test – 42 Start Test
History Test – 190 Start Test
Quantitative Aptitude Test Start Test!
Data Interpretation - Mock Test Start Test!
General Awareness - Mock Test Start Test!
Reasoning Ability - Mock Test Start Test!
We will be happy to hear your thoughts

Leave a reply

Gkseries.com
Logo
Register New Account