有下列程序 #include<stdio.h> int fun2(int*dt,int n); int fun1(int n,int*dt) { int i=0,num; while(n) { dt[

admin2019-01-11  42

问题 有下列程序
    #include<stdio.h>
    int fun2(int*dt,int n);
  int fun1(int n,int*dt)
  {
    int i=0,num;
    while(n)
    {
    dt=n%10;
    n/=10:
    i++:
    }
    num=fun2(dt,i);
    return num;
    }
    int fun2(int*dt,int n)
    {
    int i,t=0;
    for(i=0;i<n;i++)
    t=t*10+dt
    return t;
    }
    void main()
    {
    int data[100];
    printf(’’%d\n’’,fun1(12345,data));
    }
    程序执行后的输出结果是(    )。

选项 A、13524
B、12345
C、54321
D、42531

答案C

解析 函数fun1()中while循环的功能即为将12345这个五位数拆分成五个数字并且将它们的顺序颠倒存人数组dt中,当i=0时,dt[0]=12345%10=5,即数组中第一个元素为5,12345/10,经强制转化变为1234,然后依次执行把所有数字存入数组,函数fun2()的功能即为把这五个数分别乘以它们所在的数位的权,将这五个数重新组成一个五位数,最后的输出结果为54321,选项C正确;本题答案为C。
转载请注明原文地址:https://jikaoti.com/ti/XMa0FFFM
0

最新回复(0)