问题
填空题
若给fun函数的形参s传送字符串“∪∪6354’abc"(其中∪表示空格字符),则函数的返回值是 。
long fun(char s[])
long n; int sign;
for(;isspace(*s);s++);
sign=(*s==’-’) -1:1;
if(*s==’+’||*s==’-’) s++;
for(n=0;isdigit(*s);s++)
n=10*n+( *s-’0’);
return sign*n;
答案
参考答案:6354
解析: 函数fun的第一个for循环跳过字符串的前导空白符,接着判断第一个非空白符是否是负号,若是,则置变量sign为-1;否则,置变量sign为1。接着的if语句在第一个非空白字符是负号或正号时,跳过该字符。以后的for循环将后面的数字符当作十进制数的各位数字转换为一个长整数n,当遇字符a时,结束循环。最后,函数返回sign与n的乘积。所以若调用函数时提供的实参是“∪∪6354abc”,则函数的返回值是6354。