GATE CS 2018 Set 1 — Question 42
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+2 / -0.67MediumControl FlowC ProgrammingProgramming & Data StructuresFunctions & Recursion
Programming & Data Structures → C Programming → Control Flow
Last updated
Question
Consider the following C code. Assume that
The value returned when we call
unsigned long int type length is 64 bits.unsigned long int fun(unsigned long int n){
unsigned long int i, j = 0, sum = 0;
for (i = n; i > 1; i = i/2) j++;
for ( ; j > 1; j = j/2) sum++;
return(sum);
}
The value returned when we call
fun with the input is ____.Correct answer
(B) 5
Solution
The function
2.
3.
4.
5.
6.
The function returns
Therefore, the value returned is 5.
fun is called with n = 2^40.First loop: for (i = n; i > 1; i = i/2) j++;- This loop calculates how many times
ncan be divided by 2 until it becomes 1. This is equivalent to calculating . jis initialized to 0.istarts at .- The loop runs for . The condition
i > 1is true for all these values. - The number of iterations is 40.
- After this loop, the value of
jwill be 40.
for ( ; j > 1; j = j/2) sum++;- This loop takes the value of
j(which is 40) and calculates how many times it can be divided by 2 until it becomes 1. This is equivalent to calculating . sumis initialized to 0.- The loop executes as follows:
j = 40. 40 > 1 is true. sum becomes 1. j becomes 40/2 = 20.2.
j = 20. 20 > 1 is true. sum becomes 2. j becomes 20/2 = 10.3.
j = 10. 10 > 1 is true. sum becomes 3. j becomes 10/2 = 5.4.
j = 5. 5 > 1 is true. sum becomes 4. j becomes 5/2 = 2 (integer division).5.
j = 2. 2 > 1 is true. sum becomes 5. j becomes 2/2 = 1.6.
j = 1. 1 > 1 is false. The loop terminates.The final value of sum is 5.The function returns
sum.Therefore, the value returned is 5.
Continue learning with Success Tracker
A step still unclear? Work through it with support
Use Success Tracker to ask about the reasoning, then try another GATE CS question to check your understanding.
AI-powered practice· Unlimited practice on eligible plans
- PYQs with solutions
- Attempt available previous-year questions, then compare your reasoning with the worked solution. Coverage varies by stream.
- Practice that adapts
- Choose a topic, work on weaker areas and bookmark questions to revisit. Your attempts feed your progress tracking.
- AI doubt support
- Ask follow-up questions about a step or concept while practising, instead of stopping at the final answer.
Unlimited practice is available on eligible plans. Free practice and AI usage have limits; check the current plan allowances before choosing.
This page stays readable without an account. AI responses can be wrong; check them against the solution and source material.
More questions on C Programming
2026 Set 2 Q12The set T represents various traversals over binary tree. The set S represents the order of…2026 Set 2 Q19Consider the following three ANSI-C programs, P1, P2, and P3. P1 [code] P2 [code] **P3**…2026 Set 1 Q23Let be an odd number greater than 100. Consider a binary minheap with elements stored in an…2026 Set 1 Q24Consider a hash table that is initially empty. The hash table is maintained…2026 Set 1 Q27Consider the following C statements: Which of the following options is/are correct? [figure]