问题
填空题
以下程序的输出结果是______。
#include<stdio.h>
main()
fint x=0;
sub(&x,16,2);
printf("%d\n",x);
sub(int*a,int n,int k)
if(k<=n) sub(a,n/2,2*k);
*a+=k;
答案
参考答案:N
解析: 本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k<=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k<=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k<=n不成立,因此,最后得x=2+4+8=14。