有以下程序: #include int fun(char s[]) { int n=0; while(*s <= ’9’&&*s >=’0’) {n=10*n+*s-’0’;s++; } return(n

admin2021-02-25  16

问题 有以下程序:
    #include
    int fun(char s[])
    {  int n=0;
    while(*s  <=  ’9’&&*s  >=’0’)  {n=10*n+*s-’0’;s++;  }
    return(n);
    }
    main()
    {  char s[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};
    printf("%d\n",fun(s));
    }
    程序的运行结果是(    )。

选项 A、5
B、9
C、61   
D、61490   

答案C

解析 在fun函数中,while循环的功能是:逐个取字符数组s中的字符,并判断其是否是数字。若是则将其作为个位数字保存到变量n中,n的原数据的各个数位将相应左移一个10进制位。当指针s指向数组的第3位时,循环条件不成立,循环结束,返回n的值,输出n的值为61。因此C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/oEtp777K
0

最新回复(0)