联想笔试题
来源:互联网 发布:工业数据采集器 编辑:程序博客网 时间:2024/04/30 06:27
联想笔试题----如需转载请注明出处,谢谢!
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 != '/0') && isdigit(*s))
{
val = 10 * n + (*s - '0');
n = val;
s++;
}
if (*s != '/0')
{
printf("non digit in your input!!/n");
exit(-1);
}
/* non error occured */
return (sign_val * val);
}
{
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 != '/0') && isdigit(*s))
{
val = 10 * n + (*s - '0');
n = val;
s++;
}
if (*s != '/0')
{
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.
结果为: 32.
3.解释局部变量、全局变量和静态变量的含义。
局部变量包括函数的形参,包含在函数体或者语句块内的变量,局部变量的生存期
在退出函数或语句块后结束。
全局变量是指在所有函数和语句块之外的变量,它对于整个程序均可见,全局变量
的生存期与程序的生存期相同.
静态变量指由关键字static声明的变量,它的作用域和其他变量一样,由它所在的
位置决定,如在函数体或语句块中声明,则只在函数体或语句块可见,其他地方均不
可见.
它的生存期与程序相同.
它的生存期与程序相同.
4.解释堆和栈的区别。
简述如下:
栈上分配的内存,由系统自动分配,系统会自动收回.
如果需要动态分配内存,则只能通过malloc/new在堆上分配的内存,
使用完毕后,通过free/delete来释放内存。
栈上分配的内存,由系统自动分配,系统会自动收回.
如果需要动态分配内存,则只能通过malloc/new在堆上分配的内存,
使用完毕后,通过free/delete来释放内存。
5.论述含参数的宏与函数的优缺点。
含参数的宏优点:
省去了函数调用的开销,运行效率高.
含参数的缺点:
由于宏本质上是字符串的替换,所有可能会由于一些参数的副作用导致得出
错误的结果.
如:
#define max(a, b) ( ((a) > (b)) ? (a) : (b) )
如果程序中出现这样的调用: max(a++, b);
将导致a被计算2次,从而可能得到错误的结果,而函数调用不会出现这种问题.
省去了函数调用的开销,运行效率高.
含参数的缺点:
由于宏本质上是字符串的替换,所有可能会由于一些参数的副作用导致得出
错误的结果.
如:
#define max(a, b) ( ((a) > (b)) ? (a) : (b) )
如果程序中出现这样的调用: max(a++, b);
将导致a被计算2次,从而可能得到错误的结果,而函数调用不会出现这种问题.
另外,如果程序中有多次宏替换的话,可能导致代码体积变大.
函数的优点是:
没有带参数宏可能导致的副作用,计算的正确性较宏更有保证.
函数调用的缺点:
函数调用需要一些参数,返回地址等入栈,出栈的开销,效率没有宏函数高.
来至
http://blog.chinaunix.net/u/19481/showart_138359.html
没有带参数宏可能导致的副作用,计算的正确性较宏更有保证.
函数调用的缺点:
函数调用需要一些参数,返回地址等入栈,出栈的开销,效率没有宏函数高.
来至
http://blog.chinaunix.net/u/19481/showart_138359.html
- 联想笔试题
- 联想笔试题
- 联想笔试题和答案
- 联想公司笔试题【1】
- 面试题解(五)之联想笔试题
- 联想2015校园招聘笔试题
- 联想五道笔试题 答案
- 联想笔试题(附简单答案)
- 北京联想利泰软件有限公司 c++项目经理笔试题
- 华为、联想等名企笔试题总汇
- 解释局部变量、全局变量和静态变量的含义-联想笔试题
- JAVA面试题和笔试题总汇(含答案)-联想lenovo
- 联想的服务器支持的笔试
- 联想笔试2011,顺时针输出矩阵
- 一道多线程笔试题目的联想
- 联想
- 联想
- 联想
- 在WinForm中,设置Visio控件的界面布局
- 大家常碰到的一个IIS设置问题
- VB.NET DMO SQL SERVER备份恢复
- 怎样把同一个库中的源表A的数据导入到目的表B中
- 如何使用jsp自定义标签
- 联想笔试题
- VB6使用API下载文件
- UML基础: 统一建模语言简介
- 计算机专业英语大全
- S60第三版上启动浏览器并打开指定网页
- 动态创建SQL Server数据库、表、存储过程等架构信息
- 感悟点滴
- 马云:阿里巴巴设七个分公司是因为讲究风水
- 高精度整数除法