函数作业2
A
开始时,i=0,执行i=fac(i),i为0;for循环开始,i=0,后i=1,执行i+=fac(i),i=2;第二轮,i=1,后执行函数,i=6;第三轮,i=2,执行函数,i=36+6=42;第四轮i大于3跳出循环,打印i=3
再次调用函数时,用static修饰的变量会保留上一次的值。

A

A

C

C
开始 num=26
k=k*(26%10)=6 num=2
然后num!=0 继续循环
k=6*(2%10)=12 num=0
while(num); // 判断 num 是否为0,为0 则终止循环,不为0 则继续循环

D

A

B
与之前不一样的是,int i=1前面 没有static,再次调用函数时,用static修饰的变量会保留上一次的值。这里没有static修饰,所以i一直被初始化

C

C

D

B
调用fun(int x)(即fun(3))
判断x/2大于是否0,3/2=1大于0,则将1除2再次调用自己
1/2=0
将1输出
回到最初fun(3)输出3
得到结果13

C
当x=0或x=1时,返回值为3,否则执行y的表达式
当x=3时,执行3*3-f(1)=3*3-3=6

浙公网安备 33010602011771号