首页 > 试题广场 >

下面C程序的输出结果是 unsigned fun(unsig

[单选题]
下面C程序的输出结果是()
unsigned fun(unsigned);
int main() {
    unsigned num = 26;
    printf("%d", fun(num));
    return 0;
}
unsigned fun(unsigned num) {
    unsigned k = 1;
    do {
        k *= num % 10;
        num /= 10;
    } while (num);
    return(k);
}


  • 12
  • 无限循环
  • 1
  • 26
当num不等于0时,k=k*(num%10),num=num/10 当num==0时 返回K; 开始 num=26 k=k*(26%10)=6 num=2 然后num!=0 继续循环 k=6*(2%10)=12 num=0 跳出循环 返回k=12。👻
发表于 2020-10-27 17:55:57 回复(0)
26 答案是 12
发表于 2022-05-28 17:12:45 回复(0)
循环第一次结束,num = 6,而不是2第一个没有改变n的值。然后第二次2*(6%10)=12
发表于 2021-12-07 14:30:54 回复(0)
fun()函数是调用主函数的,由于主函数输出为26,所以后边调用sum = 26,在循环中若 sum == 0 则输出k否则继续循环 
k1 = k*sum%10  k1 = 6
sum = 2
k2 = k1*sum%10  k2 = 12
发表于 2021-03-15 20:44:35 回复(0)