首页 > 试题广场 >

下面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
%取余
/取整
发表于 2018-03-27 22:45:55 回复(0)
注意两点即可
(1)%优先级高于*=
(2)/是截断取整
发表于 2018-03-23 20:40:10 回复(0)
num=26, k=1
loop 1: k = k*26%10=6, num=num/10=2
loop 2:k = k*2%10 = 2, num = num/10=0  while(0) -> exit
k=2, return 2
printf -> 2
anywhere wrong?

发表于 2018-04-20 16:36:42 回复(4)