联想笔试(真题题目)
1.设计函数 int atoi(char *s)。
int atoi(char *s)
{
char sign;
char sign_val $denghao$ 1;
int val $denghao$ 0;
int n $denghao$ 0;
/* skip spaces */
while (isspace(*s))
++s;
if (*s $denghao$$denghao$ ~-~ || *s $denghao$$denghao$ ~+~)
/* skip ~-~ and ~+~ sign */
{
sign $denghao$ *s;
if (sign $denghao$$denghao$ ~-~)
sign_val $denghao$ -1;
++s;
}
/* when goes here, it is not space or sign */
while ((*s !$denghao$ ~\0~) && isdigit(*s))
{
val $denghao$ 10 * n + (*s - ~0~);
n $denghao$ val;
s++;
}
if (*s !$denghao$ ~\0~)
{
printf("non digit in your input!!\n");
exit(-1);
}
/* non error occured */
return (sign_val * val);
}
2.int i$denghao$(j$denghao$4,k$denghao$8,l$denghao$16,m$denghao$32); printf("%d", i); 输出是多少?