大学生毕业面试联想C语言笔试题!

联想笔试

大学生毕业面试联想C语言笔试题!

1.设计函数 int atoi(char *s)。

int atoi(const char *nptr);

函数说明

atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,

而再 遇到非数字或字符串结束时()才结束转换,并将结果返回。

返回值 返回转换后的整型数。

#include

#include

int myAtoi(const char* s){

int result = 0;

int flag = 1;

int i = 0;

while(isspace(s[i]))

i++;

if(s[i] == -){

flag = -1;

i++;

}

if(s[i] == +)

i++;

while(s[i] != ){

if((s[i] > 9) || (s[i] < 0))

break;

int j = s[i] - 0;

result = 10 * result + j;

i++;

}

result = result * flag;

return result;

}

int main(){

char* a = " -1234def";

char* b = "+1234";

int i = myAtoi(a);

int j = myAtoi(b);

printf("%d n",i);

printf("%d",j);

return 0;

}

i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 输出是多少?

输出32

3.解释局部变量、全局变量和静态变量的含义。

他们是相对于生命周期说的,全局变量伴随着程序直到最后,局部变量离开的作用域就会销毁

静态变量分为静态局部变量和静态全局变量,他们的生命周期伴随着程序直到最后,二者的区别

在可见性

4.解释堆和栈的区别。

栈的存储容量比堆的存储容量小

栈上的数据可以自动释放,堆上的必须由程序员释放

5.论述含参数的宏与函数的优缺点。

宏的优点:执行效率高

宏的缺点:容易出错

函数的优点:不容易出错

函数的确定 执行效率低

普天C++笔试题

1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。

2.写一个函数,将其中的t都转换成4个空格。

ows程序的入口是哪里?写出Windows消息机制的流程。

4.如何定义和实现一个类的成员函数为回调函数?

5.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。

6.C++里面如何声明const void f(void)函数为C程序中的库函数?

7.下列哪两个是等同的

int b;

A const int* a = &b;

B const* int a = &b;

C const int* const a = &b;

D int const* const a = &b;

8.内联函数在编译时是否做参数类型检查?

void g(base & b){

;

}

void main(){

son s;

g(s);

return;

}

6对 16 Bits colors的处理,要求:

(1)Byte转换为RGB时,保留高5、6bits;

(2)RGB转换为Byte时,第2、3位置零。

7一个链表的操作,注意代码的健壮和安全性。要求:

(1)增加一个元素;

(2)获得头元素;

(3)弹出头元素(获得值并删除)。

8一个给定的数值由左边开始升位到右边第N位,如

0010<<1 == 0100

或者

0001 0011<<4 == 0011 0000

请用C或者C++或者其他X86上能运行的程序实现。

附加题(只有在完成以上题目后,才获准回答)

In C++, what does "explicit" mean? what does "protected" mean?

1。在C++中有没有纯虚构造函数?

2。在c++的'一个类中声明一个static成员变量有没有用?

3。在C++的一个类中声明一个静态成员函数有没有用?

4。如何实现一个非阻塞的socket?

5。setsockopt, ioctl都可以对socket的属性进行设置,他们有什么不同?

6。解释一下进程和线程的区别?

7。解释一下多播(组播)和广播的含义?

8。多播采用的协议是什么?

9。在c++中纯虚析构函数的作用是什么?请举例说明。

10。编程,请实现一个c语言中类似atoi的函数功能(输入可能包含非数字和空格)