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

admin2015-07-31  22

问题 有以下程序
#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/NhDp777K
0

最新回复(0)