国际空间研究组织 | ISRO CS 2020 |问题 34
考虑以下接受两个参数的递归 C函数
unsigned int rer (unsigned int n, unsigned int r) {
if (n > 0) return (n% r + rer(n/r, r));
else return 0;
}
当函数rer 被称为 rer (513, 2) 时,它的返回值是多少?
(一) 9
(乙) 8
(三) 5
(四) 2答案: (D)
解释:
= rer (513, 2)
= 513% 2 + 256% 2 + 128% 2 + 64% 2 + 32% 2 + 16% 2 + 8%2 + 4%2 + 2%2 + 1%2
因此,输出将是,
= 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1
= 2
所以,选项(D)是正确的。
这个问题的测验