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

admin2021-07-09  10

问题 有以下程序
     #include <stdio.h>
     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://jikaoti.com/ti/87z0FFFM
0

相关试题推荐
最新回复(0)