Gate CS-2017-2 Question Paper With Solutions

Q. 38 Consider the C program fragment below which is meant to divide x by y using repeated subtractions. The variable x, y, q and r are all unsigned int.

while(r >= y)
{
r = r - y;
q = q + 1;
}

Which of the following conditions on the variables x, y, q and r before the execution of the fragment will ensure that the loop terminates in a state satisfying the condition x == (y*q + r)?
(A) ( q == r ) && ( r == 0)

(B) ( x > 0 ) && ( r == x ) && ( y > 0 )

(C) ( q == 0 ) && ( r == x ) && ( y > 0 )

(D) ( q == 0 ) && ( y > 0 )

Answer: (C)

Explanation:

Gate CS-2017-2 Question Paper With Solutions

Learn More:   Gate CS-2014-1 Question Paper With Solutions

LEAVE A REPLY

Please enter your comment!
Please enter your name here