联想(Lenovo)笔试题目(附参考答案)
面试笔试3.34W
本帖最后由 shiyan 于 2009-3-16 11:17 编辑
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);
}
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次,从而可能得到错误的结果,而函数调用不会出现这种问题.另外,如果程序中有多次宏替换的话,可能导致代码体积变大.函数的优点是:没有带参数宏可能导致的副作用,计算的正确性较宏更有保证.
函数调用的缺点:函数调用需要一些参数,返回地址等入栈,出栈的开销,效率没有宏函数高.
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);
}
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次,从而可能得到错误的结果,而函数调用不会出现这种问题.另外,如果程序中有多次宏替换的话,可能导致代码体积变大.函数的优点是:没有带参数宏可能导致的副作用,计算的正确性较宏更有保证.
函数调用的缺点:函数调用需要一些参数,返回地址等入栈,出栈的开销,效率没有宏函数高.
-
苏宁财务笔试
今天是比较匆忙的一天了,上午去校医院打吊瓶,打完便去食堂吃午饭,吃完午饭呢就跟小陆去自习室看了一小会书,来迎接下午两点的笔试。看来应聘财务工作是比别的岗位复杂而困难了点,别的岗位只考综合题,而我们要考半个小时的综合题,两个小时的专业题,考完的感觉就是要给自...
-
交通银行笔经(北京大学)
数字部分:重点是做例题的时候,不要做完就完了,要对图表进行进一步的分析。比如说今天的折线图,一条线表示总产量,另一条表示其中一种产品的产量,那么我们要做的就是在草稿纸上算出另外一种产品的产量。其他类似。因为例题中的图表在后面会再次出现,这样做能够节省很多...
-
奇码(Magima)笔试题目(收集篇)
收集一:一.填空1.集成电路的分类,按材料,工艺2.集成电阻的计算,以及其制造工艺,Vtn的正负判断,分别对于增强型和耗尽型电路功耗包括哪两个部分,功耗设计主要考虑的因素……(还有几道不记得了)二.填表全定制,门阵列,FPGA各自单元模块,连线的性质……三.填图CMOS工艺流程填图...
-
思科笔试归来
思科笔试归来发信站:北大未名站(2007年11月10日17:35:11星期六),站内信件攒rp,呵呵下午两点在北航。90分钟,全英文。网络基础知识,逻辑和常识,英语阅读,以上都是选择题,最后一个中译英。常识里还有嫦娥一号升天和奥运五环颜色的顺序。题量不是很多,时间应该够用。但对...