2022-02-07 78jz.com 热度:2376
很多毕业生都很想进华为公司,因为该公司的待遇比较好,虽然工作压力比较大,但是对学计算机专业的人来说,就更想进去了。以下是几道华为笔试题目及答案,希望能供你参考。
(1)什么是预编译,何时需要预编译:
答案:
1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。
(2)char * c***t p char c***t * p c***t char *p 上述三个有什么区别?
答案:
char * c***t p; //常量指针,p的值不可以修改
char c***t * p;//指向常量的指针,指向的常量值不可以改 c***t char *p; //和char c***t *p
(3)char str1[] = "abc"; char str2[] = "abc"; c***t char str3[] = "abc"; c***t char str4[] = "abc"; c***t char *str5 = "abc"; c***t char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout < < ( str7 == str8 ) < < endl;
结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。
4关键字c***t有什么含意?
答案:
表示常量不可以修改的变量。
5。关键字volatile有什么含意?并举出三个不同的例子?
答案:
提示编译器对象的值可能在编译器未监测到的情况下改变。
6。int (*s[10])(int) 表示的是什么啊?
答案:
int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。
7。有以下表达式: int a=248; b=4;int c***t c=21;c***t int *d=&a; int *c***t e=&b;int c***t *f c***t =&a; 请问下列表达式哪些会被编译器禁止?为什么?
答案:
*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f; *c 这是个什么东东,禁止 *d 说了是c***t, 禁止 e = &a 说了是c***t 禁止 c***t *f c***t =&a; 禁止
8交换两个变量的值,不使用第三个变量。即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;
9(void *)ptr 和 (*(void**))ptr的结果是否相同?其中ptr为同一个指针
答案:
.(void *)ptr 和 (*(void**))ptr值是相同的
10:int main() { int x=3; printf("%d",x); return 1; } 问函数既然不会被其它函数调用,为什么要返回1?
答案:
mian中,c标准认为0表示成功,非0表示错误。具体的值是某中具体出错信息
上一篇: 别让你的生活,毁在了“不耐烦”上
下一篇: 自查!六类HR最不喜欢的求职者
猜你喜欢