联想(Lenovo)笔试题目(附参考答案)

联想(Lenovo)笔试题目(附参考答案)

联想(Lenovo)笔试题目(附参考答案)

1.设计函数 int atoi(char *s)。int atoi(char *s){ char sign; char sign_val = 1; int val = 0; int n = 0; /* skip spaces */ while (isspace(*s)) ++s; if (*s == ‘-‘ || *s == ‘+’) /* skip ‘-‘ and ‘+’ sign */ { sign = *s; if (sign == ‘-‘) sign_val = -1; ++s; } /* when goes here, it is not space or sign */ while ((*s != ‘’) && isdigit(*s)) { val = 10 * n + (*s – ‘0’); n = val; s++; } if (*s != ‘’) { printf("non digit in your input!!n"); exit(-1); } /* non error occured */ return (sign_val * val);}2.int i=(j=4,k=8,l=16,m=32); printf("%d", i); 输出是多少?结果为: 32.3.解释局部变量、全局变量和静态变量的含义。 局部变量包括函数的形参,包含在函数体或者语句块内的变量,局部变量的生存期在退出函数或语句块后结束。全局变量是指在所有函数和语句块之外的变量,它对于整个程序均可见,全局变量的生存期与程序的生存期相同. 静态变量指由关键字static声明的变量,它的作用域和其他变量一样,由它所在的位置决定,如在函数体或语句块中声明,则只在函数体或语句块可见,其他地方均不可见.它的生存期与程序相同.4.解释堆和栈的区别。简述如下:栈上分配的内存,由系统自动分配,系统会自动收回.如果需要动态分配内存,则只能通过malloc/new在堆上分配的内存,使用完毕后,通过free/delete来释放内存。5.论述含参数的宏与函数的优缺点。含参数的’宏优点:省去了函数调用的开销,运行效率高.含参数的缺点:由于宏本质上是字符串的替换,所有可能会由于一些参数的副作用导致得出错误的结果.如:#define max(a, b)( ((a) > (b)) ? (a) : (b) )如果程序中出现这样的调用: max(a++, b);将导致a被计算2次,从而可能得到错误的结果,而函数调用不会出现这种问题.另外,如果程序中有多次宏替换的话,可能导致代码体积变大.函数的优点是:没有带参数宏可能导致的副作用,计算的正确性较宏更有保证.函数调用的缺点:函数调用需要一些参数,返回地址等入栈,出栈的开销,效率没有宏函数高.

为了避免权属纠纷,特做如下说明:本站内容作品来自用户分享及互联网,仅供参考,无法核实真实出处,并不代表本网站赞同其观点和对其真实性负责,本网站仅提供信息存储空间服务,我们致力于保护作者版权,如果发现本站有涉嫌侵权的内容,欢迎发送邮件至youxuanhao@qq.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

原文标题:联想(Lenovo)笔试题目(附参考答案)

(0)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:youxuanhao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信