早教吧 育儿知识 作业答案 考试题库 百科 知识分享

给fun函数的形参s传送字符串:“]]6354abcc”(其中]表示空格字符,则函数的返回值是longfun(chars[]){longn;intsign;for(;isspace(*s);s++);sign=(*s=='-')?-1:1;if(*s=='+'||*s=='-')s++;for(n=0;isdigit(*s);s++)n=10*n+(*s-'

题目详情
给fun函数的形参s传送字符串:“]]6354abcc”(其中]表示空格字符,则函数的返回值是
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
▼优质解答
答案和解析
首先函数传递一个数组,首地址为S,即']'所在的地址.一个for循环,之后把S移动到非空格,即是数字6之处,然后把一个三元运算符(*s=='-')?-1;1的结果赋值给sign,此时sign结果为1.
if 条件语句执行完之后,s地址任然是6所在处.接下来一个for循环,循环了4次每次的结果为:
n=6
n=63
n=635
n=6354
最后乘以sing=1,
返回6354.
若有纰漏之处,还望指正.