华为面试题库c语言,C语言面试题大汇总之华为面试题

《C语言面试题大汇总之华为面试题》由会员分享,可在线阅读,更多相关《C语言面试题大汇总之华为面试题(53页珍藏版)》请在人人文库网上搜索。

1、1.局部变量可以和全局变量同名吗?是的,有些部分会遮住整个。要使用全局变量,需要“:3360”。局部变量可以与全局变量同名。在函数中引用该变量时,将使用同名的局部变量代替全局变量。对于某些编译器,可以在同一个函数中定义多个同名的局部变量,例如,在两个循环中定义一个同名的局部变量,并且该局部变量的范围在该循环中。2.如何引用已定义的全局变量?答:extern可以引用头文件或extern关键字。如果您通过引用头文件来引用头文件中声明的全局参数,如果您写错了,在编译期间将会报告一个错误。如果您通过extern引用它,假设您犯了相同的错误,则在编译期间,而是在连接期间,不会报告错误。3.全局变量可以在。

2、头文件中定义吗?c文件?为什么?答:是的,具有相同名称的全局变量可以在不同的C文件中以静态形式声明。具有相同名称的全局变量可以在不同的C文件中声明,前提是只有一个C文件可以为该变量分配初始值,并且连接不会出错。4.请写出下列代码的输出内容#包括int main(空)int a,b,c,d;a=10b=a。c=a。d=10 * a;printf(b,c,d:%d,%d,%d ,b,c,d);返回0;回答:10,12,1205.静态全局变量和普通全局变量有什么区别?静态局部变量和普通局部变量有什么区别?静态函数和普通函数有什么区别?答案: 1)全局变量(外部变量)的描述前面是静态的,形成静态的全局。

3、变量。全局变量本身是静态存储方法,静态全局变量当然是静态存储方法。两者在存储方法上没有区别。两者的区别在于非静态全局变量的范围是整个源程序。当一个源程序由多个源文件组成时,非静态全局变量在每个源文件中都是有效的。静态全局变量限制了它的范围,也就是说,它只在定义变量的源文件中有效,不能在同一源程序的其他源文件中使用。由于静态全局变量的范围仅限于一个源文件,并且只能由该源文件中的函数共享,因此可以避免其他源文件中的错误。2)从以上分析可以看出,将局部变量变为静态变量会改变其存储模式,即改变其寿命。将全局变量更改为静态变量会更改其范围并限制其使用范围。STATIC函数的范围不同于普通函数,仅在本文档。

4、中有所不同。仅在当前源文件中使用的函数应该被描述为静态的,内部函数应该在当前源文件中被描述和定义。可以在当前源文件之外使用的函数应该在头文件中解释,使用这些函数的源文件应该包含这个头文件。总而言之,静态全局变量和普通全局变量有什么区别?静态全局变量只初始化一次,以防止它们在其他文件单元中被引用。静态局部变量和普通局部变量有什么区别?静态局部变量只初始化一次,下一次是基于以前的结果值。静态函数和普通函数有什么区别?静态函数在内存中只有一个副本,而普通函数在每次调用中维护一个副本。6.程序的局部变量存在于堆栈中,全局变量存在于静态区域中,动态应用程序数据存在于堆中。7、有以下说明和定义:typed。

5、ef联合长I;int k5;char c;日期。结构数据int catDATE cow。双狗;也是;最大日期。然后语句printf(“% d”,size of(struct data)size of(max);的执行结果为:_ _ _ 52 _ _ _检查中心:区分结构和联合(通常假设在32位机器上)答:DATE是一个联合的、可变的公共空间。其中最大的变量类型是int5,它占用了20个字节。所以它的尺寸是20。数据是一种结构。每个变量分别占用空间。int4 DATE20 double8=32。结果是20 32=52。当然可以.在一些16位编辑器中,int可能是2字节,因此结果是int 2 DA。

6、TE 10 DOUBLE 8=20队列和堆栈之间有什么区别?队列先进先出,堆栈后进先出9、编写以下代码的输出#包括int inc(int a)返回(a);int multi(int*a,int*b,int*c) return(* c=* a * * b);typedef int(FUNC1)(int in);typedef int(FUNC2) (int*、int*、int *);void show(FUNC2 fun,int arg1,int*arg2)FUNC1 p=inc。int temp=p(arg 1);fun(temp,arg1,arg 2);printf(“% dn”,* arg。

7、 2);main()int a;/局部变量a为0;显示(多,10,a);返回0;回答:11010.请找出以下代码中的所有错误(标题很好,值得一看)注意:下面的代码颠倒了字符串的顺序,例如“abcd”到“dcba”#包含“string.h”main()char*src=你好,世界;char * dest=空;int len=strlen(src);dest=(char *)malloc(len);char * d=destchar * s=srclen;同时(len -!=0)d=s-;printf(“% s”,dest);返回0;回答:方法1:共4个错误;int main()char* src。

8、=你好,世界;int len=strlen(src);char * dest=(char *)malloc(len 1);/为其分配一个空格字符* d=destchar * s=srclen-1;/指向最后一个字符同时(len -!=0)* d=* s-;* d=0;/在末尾添加 0 printf(“% sn”,目标);免费(dest);/使用后,释放空间,避免内存池泄漏。dest=空;/防止生成通配符指针返回0;方法2:(方法1需要额外的存储空间,效率低下。)好主意#包括#包括main()char str=“你好,世界”;int len=strlen(str);char t;对于(int I=0;i。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值