西安华为c语言面试题
以下CN人才网小编为大家提供了西安华为c语言面试题,仅供参考!希望可以帮到你!
1、写一个“标准”宏,这个宏输入两个参数并返回较小的一个。 答:#defineMin(X,Y)((X)>(Y)?(Y):(X))//结尾没有;
2、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。 答:while(1){}或者for(;;)//前面那个较好
3、关键字static的作用是什么? 答:1)定义静态局部变...
1、写一个“标准”宏,这个宏输入两个参数并返回较小的一个。
答:#define Min(X, Y) ((X)>(Y)?(Y):(X)) //结尾没有;
2、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。
答:while(1){}或者for(;;) //前面那个较好
3、关键字static的作用是什么?
答:1)定义静态局部变量,作用域从函数开始到结束.
2) 在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;
3) 在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝
4、关键字const有什么含意?
答 :1)表示常量不可以修改的变量。
2)可以修饰参数,作为输入参数.
3)修饰函数,防止以外的改动.
4)修饰类的成员函数,不改变类中的数据成员.
5、关键字volatile有什么含意?并举出三个不同的例子?
答: 提示编译器对象的值可能在编译器未监测到的情况下改变。
例子: 硬件时钟;多线程中被多个任务共享的.变量等
6. int (*s[10])(int) 表示的是什么啊
int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。
1.有以下表达式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a;
请问下列表达式哪些会被编译器禁止?为什么?
答:*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
*c 这是个什么东东,禁止
*d 说了是const, 禁止
e = &a 说了是const 禁止
const *f const =&a; 禁止
2.交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3;
答:有两种解法, 一种用算术算法, 一种用^(异或)
a = a + b;
b = a - b;
a = a - b;
or
a = a^b;// 只能对int,char..
b = a^b;
a = a^b;
or
a ^= b ^= a;
3.c和c++中的struct有什么不同?
答: c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private.
4.#include
#include
void getmemory(char *p)
{
p=(char *) malloc(100);
}
int main( )
{
char *str=NULL;
getmemory(str);
strcpy(p,"hello world");
printf("%s/n",str);
free(str);
return 0;
}
答: 程序崩溃,getmemory中的malloc 不能返回动态内存, free()对str操作很危险
5.char szstr[10];
strcpy(szstr,"0123456789");
产生什么结果?为什么?
答;正常输出,长度不一样,会造成非法的OS,覆盖别的内容.
6.列举几种进程的同步机制,并比较其优缺点。
答:原子操作
信号量机制
自旋锁
管程,会合,分布式系统
7.进程之间通信的途径
答 共享存储系统
消息传递系统
管道:以文件系统为基础
【西安华为c语言面试题】相关文章:
华为公司面试题04-29
华为C++笔试题05-20
经典c++面试题06-03
华为的Java面试题及答案11-22
华为面试参考面试题答案11-12
有趣的C语言笔试题06-09
C语言的论文致谢词01-09
C语言论文致谢11-25
C语言学习社会实践报告12-09
关于C语言游戏开发笔试题06-19