若给fun函数的形参s传送字符串“∪∪6354’abc"(其中∪表示空格字符),则函数的返回值是【 】。 long fun(char s[]) { long n; int sign; for(;isspace(*s);s++);

admin2013-06-11  29

问题 若给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。
转载请注明原文地址:https://kaotiyun.com/show/yfJp777K
0

最新回复(0)