• 2021-04-14
    改错题:
    下列给定程序中,函数fun的功能是计算正整数num的各位上的数字之平方和。
    例如,输入352,则输出应该是38;若输入328,则输出应该是77。
    请改正程序中的错误,使它能得出正确的结果。
    注意,不要改动main函数,不得增行或删行,也不得更改程序的结构。只改动下划线中的语句。
    程序代码:
    #include
    long fun(long num)
    {
    long k=1 ;
    do
    {
    k+=(num%10)*(num%10) ;
    num-=10 ;
    }while(num);
    return(k) ;
    }
    void main()
    {
    long n;
    printf("
    Please enter a number:");
    scanf ("%ld",&n);
    printf("
    %ld
    ",fun(n));
    }
  • long k=0 --- num/=10

    内容

    • 0

      下面程序的输出结果为______ 。long fun( long n ){ long t, s=0;while(n) { t=n%10; s=s*10+t; n=n/10; }return s;}void main( ){ long int a = 2345, b;b = fun( a ) ; printf( "%ld", b );}

    • 1

      下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环,请填空。main(){longintnum;scanf("%ld",&num);do{if(______)printf("%ld",num);scanf("%ld",&num);}while(______);}

    • 2

      下列程序接受一个整数n(1<=n<=12),计算n!,然后输出n!中非0数字的个数。其中函数fac( )用于计算阶乘,函数nzero( )用于计算非0数字的个数。 long fac(int n) /* 计算n!并返回 */ { long m=n; while(_________) m*=n; return m; } int nzero(long m) /*计算m中有几个非0数字并返回 */ { int num=_____________; while(m>0L) { if(_________) num++; m/=10L; } return num; /* num是m中非0数字个数 */ } void main( ) { int n; do{ printf(“输入一个1和12之间的整数:”); scanf(“%d”,&n); }while(____________); /*如果输入不正确,则重复输入 */ n<1||n>12 printf(“%d!中有%d个非0数字。\n”,n,_________); }

    • 3

      下面程序的输出结果是( )。#include <;stdio.h>;int num=10;int func(){int num=4;return ++num;}int main(){printf("%d\n",func());return 0;} A: 1 B: 4 C: 5 D: 10

    • 4

      下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为7531。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构! #include <stdio.h> /* * * * * * * * * * found* * * * * * * * * * / void fun(long s, long t) { longsl=10; *t=s% 10; while(s>0) {s = s/100; *t = s%10 * sl + *t; /* * * * * * * * * * found* * * * * * * * * * / sl=sl*100; } } main( ) { long s, t; printf(" \nPlease enter s:"); scanf("%ld", &s); fun(s, &t); printf("The result is: %ld\n", t); }