有以下程序    void f(int n,int *r)    { int r1=0;      if(n%3==0)    r1=n/3;      else if(n%5==0)    r1=n/5;      else  f(--n,&r1);  

admin2009-03-17  26

问题 有以下程序    void f(int n,int *r)    { int r1=0;      if(n%3==0)    r1=n/3;      else if(n%5==0)    r1=n/5;      else  f(--n,&r1);      *r=r1;    }    main()    { int m=7,r;      f(m,&r);printf("%d",r);    }    程序运行后的输出结果是

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

答案A

解析 本题考查了函数的递归调用。在f函数中,当m=7时,程序执行“f(--n,&r1);”语句,递归调用f(6,&r1),程序执行“r1=n/3;”语句,即r1= 6/3=2,然后执行“*r=r1;”语句,所以输出结果为2。
转载请注明原文地址:https://jikaoti.com/ti/bpK0FFFM
0

最新回复(0)