华为面试经历简记
2016-07-20 19:40
561 查看
无线部门
(1) 最长公共子序列
(2) 交换两个数
void myswap(int *a, int *b){
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
int main(){
int a = 10;
int b = 20;
myswap(&a, &b);
cout << "a=" << a << endl;
cout << "b=" << b << endl;
system("pause");
return 0;
}(3) 定义宏Max(a,b)
#define Max(a,b) a>b?a:b
(4) 一个二进制数a,将其第N位置(低位)为1:
x = a | (1 <<n);将其第N位置为0:
int change(int x, int n) { // 这里的n都是从0开始的
// 高位的话插一句 n = sizeof(int)*8-n-1
return x & ~(1 << n);
}
先把1左移n位,得到00010000形式的一个数字,然后取反得到11101111形式的数字,然后和原来的数进行“位与”操作。与0得0,与1不变。所以第n位就变成0其他位不变。
int main(){
int a = 15;
int n = 1;//位数从0开始
int x = a &~ (1 << n);
cout << x << endl;//13
system("pause");
return 0;
}
(5) struct,union大小
struct 简单来说就是一些相互关联的元素的集合,说是集合,其实它们在内存中的存放是有先后顺序的,并且每个元素都有自己的内存空间。那么按照什么顺序存放的呢?其实就是按你声明的变量顺序来存放的,下面先看一个例子:
struct sTest{
int a; //sizeof(int) = 4
char b; //sizeof(char) = 1
shot c; //sizeof(shot) = 2
}x;
所以在内存中至少占用 4+1+2 = 7 byte。然而实际中占用的内存并不是7 byte,这就涉及到了字节对齐方式。
union 的不同之处就在于,它所有的元素共享同一内存单元,且分配给union的内存size 由类型最大的元素 size 来确定,如下的内存就为一个double 类型 size :
所以分配的内存 size 就是8 byte。
既然是内存共享,理所当然地,它不能同时存放多个成员的值,而只能存放其中的一个值,就是最后赋予它的值,如:
x.a = 3; x.b = 4.5; x.c = ‘A’;
这样你只看到x.c = ‘A’,而其它已经被覆盖掉,失去了意义。
(6) C和C++的不同
视频监控部门
(1) 彩色图像、灰度图像和索引图像的定义
(2) 1024*1024的RGB彩色图像、灰度图像所占的空间大小
(1) 最长公共子序列
(2) 交换两个数
void myswap(int *a, int *b){
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
int main(){
int a = 10;
int b = 20;
myswap(&a, &b);
cout << "a=" << a << endl;
cout << "b=" << b << endl;
system("pause");
return 0;
}(3) 定义宏Max(a,b)
#define Max(a,b) a>b?a:b
(4) 一个二进制数a,将其第N位置(低位)为1:
x = a | (1 <<n);将其第N位置为0:
int change(int x, int n) { // 这里的n都是从0开始的
// 高位的话插一句 n = sizeof(int)*8-n-1
return x & ~(1 << n);
}
先把1左移n位,得到00010000形式的一个数字,然后取反得到11101111形式的数字,然后和原来的数进行“位与”操作。与0得0,与1不变。所以第n位就变成0其他位不变。
int main(){
int a = 15;
int n = 1;//位数从0开始
int x = a &~ (1 << n);
cout << x << endl;//13
system("pause");
return 0;
}
(5) struct,union大小
struct 简单来说就是一些相互关联的元素的集合,说是集合,其实它们在内存中的存放是有先后顺序的,并且每个元素都有自己的内存空间。那么按照什么顺序存放的呢?其实就是按你声明的变量顺序来存放的,下面先看一个例子:
struct sTest{
int a; //sizeof(int) = 4
char b; //sizeof(char) = 1
shot c; //sizeof(shot) = 2
}x;
所以在内存中至少占用 4+1+2 = 7 byte。然而实际中占用的内存并不是7 byte,这就涉及到了字节对齐方式。
union 的不同之处就在于,它所有的元素共享同一内存单元,且分配给union的内存size 由类型最大的元素 size 来确定,如下的内存就为一个double 类型 size :
union uTest{ int a; //sizeof(int) = 4 double b; //sizeof(double) = 8 char c; //sizeof(char) = 1 }x;
所以分配的内存 size 就是8 byte。
既然是内存共享,理所当然地,它不能同时存放多个成员的值,而只能存放其中的一个值,就是最后赋予它的值,如:
x.a = 3; x.b = 4.5; x.c = ‘A’;
这样你只看到x.c = ‘A’,而其它已经被覆盖掉,失去了意义。
(6) C和C++的不同
视频监控部门
(1) 彩色图像、灰度图像和索引图像的定义
(2) 1024*1024的RGB彩色图像、灰度图像所占的空间大小
相关文章推荐
- 面试题44:扑克牌的顺子
- Android面试题集锦(一)
- 从程序员到项目经理(二十一):谁都需要成就感
- 从程序员到项目经理(二十二):以德服人才能口服心服
- 从程序员到项目经理(二十六):项目管理不能浑水摸鱼
- 面试感悟----一名3年工作经验的程序员应该具备的技能
- 从程序员到项目经理
- 一个程序员的过去10年的心得体会(时刻提醒自己)
- 面试题27:二叉搜索树与双向链表转换
- 面试题43:n个骰子的点数
- Java进阶之路——从初级程序员到架构师,从小工到专家
- 2016校招百度美团360机器学习岗面试经历
- 程序员学习交流网站
- Android 面试题不含答案
- 经典算法面试题目-翻转一个C风格的字符串(1.2)
- 经典算法面试题目-翻转一个C风格的字符串(1.2)
- 腾讯 美团 百度 网易游戏 2015校园招聘南京笔试面试之总结分析
- 整一张图片记录不同游戏职业,好玩儿~
- 【那些年遇到过的面试题】pthread_cond
- 黑马程序员: PHP零基础土木研究生,如何做到毕业年薪20万?