问答题
下列给定程序中函数fun的功能 是:计算正整数num各位上的数字之积。 例如,若输入252,则输出应该是20。若输入202,则输出应该是0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#2nclude < stdio.h >#include < conio.h >long fun(long num){/*********found*********/ long k; do { k*=num%10;/*********found*********/ num/=10; }while(num); return(k);}main(){ long n; printf("/n please enter anumber:"); scanf("%ld",&n); printf("/n%id/n",fun(n));}
【正确答案】正确答案:(1)long k=1; (2)num/=10;
【答案解析】解析:本题考查:数据类型;保存乘积的变量初始化;除法运算符。 (1)k用来存放各位数字的积,初始值应为1。 (2)此处是一个符号错误,除号用“/”来表示。 明确一下C语言中的算术运算符: 加法运算符“+”:为双目运算符,即应有两个量参与加法运算。 减法运算符“一”:为双目运算符。但“一”也可作为负值运算符,此时为单目运算,例如一x,一5等具有左结合性。 乘法运算符“*”:为双目运算符,具有左结合性。 除法运算符“/”:为双目运算符,具有左结合性。 参与运算量均为整型时,结果也为整型,舍去小数。 如果运算量中有一个是实型,则结果为双精度实型。 求余运算符(模运算符)“%”:为双目运算符,具有左结合性。要求参与运算的量均为整型。求余运算的结果等于两数相除后的余数。