将十进制数转换为二进制数的递归函数定义如下: void d2b(unsigned int n) { if ((n==0)||(n==1)) cout

admin2015-06-27  33

问题 将十进制数转换为二进制数的递归函数定义如下:
        void d2b(unsigned int n) {
            if ((n==0)||(n==1))
                cout<            else {
                d2b(n/2);
                cout<            }
        }
若执行函数调用表达式d2b(10),函数d2b被调用的次数是

选项 A、1
B、2
C、3
D、4

答案D

解析 递归函数d2b,首先判断参数n是否为0或1,若是,则输出n,函数调用结束;否则递归调用自身,将n/2当做新的参数传入。所以d2b被调用时,参数分别是:10,5,2,1。所以函数d2b被调用4次。答案为D。
转载请注明原文地址:https://kaotiyun.com/show/6DNp777K
0

最新回复(0)