问答题 给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。 例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include long fun (long num) { /************found************/ long k; do { k*=num%10 ; /************ found************/ num/=10 ; } while(num); return (k); ) main () { long n ; printf ("/nPlease enter a number:") scanf("%ld",&n); printf("/n%ld/n",fun(n)); }
【正确答案】正确答案:(1)long k=1; (2)num/=10;
【答案解析】解析:(1)第一个错误标识下的k是函数的返回值,子函数fun中在执行“k*=num%10:”之前,只进行了定义,却没有赋初值,编译时会警告变量在使用之前没有初始化k。k代表了各个位上的数字之积,其初值应为1。因此,第一个标识下的“longk;”改为“longk=1:”。 (2)第二个标识下的符号“\”是非法字符,根据题意,这里应该是进行除法运算,所以“num\=10:”应该改为“num/=10;”。