M010

02-程序修改题 飞快学 395浏览

所属年份:2010.9;2011.3;2012.3;2013.9

下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。
例如,若输入252,则输出应该是20。若输入202,则输出应该是0。

请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

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用来存放各位数字的积,初始值应为1。
(2)这里是一个符号错误,除号用”/”来表示。

【解题宝典】
明确C语言中的算术运算符:
加法运算符”+”:为双目运算符,即应有两个量参与加法运算。
减法运算符”-”:为双目运算符。但”-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。
乘法运算符”*”:双目运算,具有左结合性。
除法运算符”/”:双目运算,具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。
求余运算符(模运算符)”%”:双目运算,具有左结合性。要求参与运算的量均为整型。 求余运算的结果等于两数相除后的余数。