📜  门| GATE-CS-2017(Set 2)|第38章

📅  最后修改于: 2021-06-29 06:35:47             🧑  作者: Mango

考虑下面的C程序片段,该片段用于使用重复的减法将x除以y。变量x,y,q和r均为无符号int。

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

在执行片段之前,变量x,y,q和r的以下哪个条件将确保循环在满足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)答案: (C)
说明: x ==(y * q + r)
x =乘积,y =被乘数,q =商,r =余数

  • 要终止循环,商必须为0,因此仅保留选项C和D
  • 如果q = 0-> r = x应该适用

因此,选项C最合适
这个问题的测验