• 2022-06-30
    下列给定程序中,函数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); }
  • void fun(long s, long *t) sl=s1*10[解析] 本题考查:函数定义,指针型变量;数值n和其各个位如何表示。 (1)主函数中调用函数的参数为地址,因此函数fun的形式参数应为指针类型。 (2)重新组合一个数,从个位开始,然后十位,依次类推,因此每增加一位数,原数值需乘以10,即s1=s1*10;。

    举一反三

    内容

    • 0

      2、给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中.高位仍在高位,低位仍在低位.

    • 1

      下面程序的输出结果为______ 。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 );}

    • 2

      程序填空: 以下程序中,函数fun的功能是:将数组s中的所有素数复制到数组t中。 例如:当数组s中值为:21,17,9,59,77,67,49,99,35,83时,则数组t中的值应为:17,59,67,83。 #include void fun(int s[],int t[]) { int i,j,k,y=0; for(i=0;i<=9;i++) { k=s[i]/2; /************found************/ for(j= ____1____ ; j<=k; j++) if(s[i]%j==0) break; /************found************/ if(j ____2____ k) { /************found************/ t[ ____3____ ]=s[i]; } } t[y]=0; } main() { int i,s[10]={21,17,9,59,77,67,49,99,35,83}, t[10]; fun(s, t); for(i=0;t[i]!=0;i++)printf("%d ", t[i]); printf(" "); }

    • 3

      功能:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。

    • 4

      中国大学MOOC: 输入hello↙,写出下面程序的运行结果。#include <stdio.h>#include <string.h>int main(){char s[80],t[200]; int i,sl ;gets(s);sl = strlen(s);for(i=0 ;i<sl ;i++) t[i]=s[sl-i-1] ;for (i=0; i<sl; i++) t[sl+i] = s[i];t[sl+i]=\0 ;puts(t); return 0;}