有以下程序: #include<stdio.h> unsigned fun(unsigned num) { unsigned k=1: do{ k*=num%10; num/=10; }while(num); return

admin2021-02-25  10

问题 有以下程序:
#include<stdio.h>
unsigned fun(unsigned num)
{
  unsigned k=1:
  do{
    k*=num%10;
    num/=10;
  }while(num);
  return k;
  }
  main()
  {
  unsigned n=26;
  printf("%d\n",fun(n));
  }
  程序运行后的输出结果是(    )。

选项 A、12
B、10
C、16
D、8

答案A

解析 程序首先执行main函数,执行printf(”%d\n”,fun(n));即输出表达式fun(6)的值,为了计算该表达式,需要调用函数func。此时main将n中的26作为实参传递给fun的num,即num值为26,接着执行d0—while语句。第1次循环.执行k*=num%10,即k=k*(num%10)=1*(26%10)=6;执行num/=10.即num=num/10=26/10=2;while后面循环条件为num,此时num为2,是非0值,即表示循环条件成立,继续执行循环体。此时k为6,num为2,执行d0—while中的语句后,k为12,num为0。由于while后面循环条件为num,此时num为0,表示循环条件不成立,结束循环,执行return k,即返回至main函数中的被调用处,执行main函数,执行printf语句,输出结果为12。
转载请注明原文地址:https://kaotiyun.com/show/XLtp777K
0

随机试题
最新回复(0)