maipu 笔试

逻辑:

1.1 :  0,4,18,(),100:

0=1 ^ 2 *(1-1);

4=2^ 2  *(2-1);

18=3^2 *(3-1);

100=5^2 *(5-1)

?()=4^2 *(4-1)=48

 

1.2: 0,1,3,10,()

0;

1=0^2 +1 ;

3= 1^2  +2;

10= 3^2 +1;

?()=10^2  +2=102

 

2.1 define 定义的宏和inline定义的宏有什么区别?

答:

编译态:

内联函数参数类型和返回值类型被指定

宏无类型概念,展开后有编译器检查语法。

执行态:

    宏对参数不运算,直接替换,

    内联函数是函数,进行表达式运算,参与函数运算。

 

2.2:  volatile在C,C++,Java的区别是什么?

java 中:支持volatilt,但是用于其他的用途:

1.读和写一个volatile变量有全局的排序,也就是说:

每个线程访问一个volatile作用域会在继续执行之前读取他的当前值。即先读后操作。

而不是使用一个缓存的数值。但是并不能保证经常读写volatilt作用域读和写的顺序。

2.(适用于java 5之后):

volatile的读和写建立一个happens-before关系,类似于happens-before关系,申请一个释放一个互斥锁。

 

c/C++中:volatile 关键字的作用:

1.允许访问内存的映射设备

2.允许在stejmp 和longjmp之间使用变量

3.允许使用信号处理函数中使用sig_atomicb变量:

 

 

 

3.1  memcpy函数内部实现:

从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

refence:

http://blog.csdn.net/asdjy123/article/details/7993040

你可能感兴趣的:(maipu 笔试)