A-A+
若给fun函数的形参s传送字符串“∪∪6354abc(其中∪表示空格字符) 则函数的返回值
问题详情
若给fun函数的形参s传送字符串“∪∪6354abc"(其中∪表示空格字符),则函数的返回值是【 】。 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。