华为电脑c语言总是错误,华为C语言面试题

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

1、c语言面对面考试汉语面对面考试艾迪定理1,局部变量是否可以与全局变量同名?答:是的,部分切断了全部。全局变量需要“33363603360”。局部变量可以与全局变量同名,在函数中引用时,将使用同名的局部变量,而不是全局变量。对于某些编译器,可以在同一函数中定义多个同名的本地变量。例如,两个循环都定义了同名的局部变量,其局部变量的范围在该循环内。2、如何引用已经定义的全局变量?答:extern如果引用头文件的方式,或使用exeten关键字引用头文件中声明的全局变量之一,则假定编写内容有误,并假定在编译期间报告错误,在引用exeten时发生相同错误,则在编译期间不报告错误,在连接期间报告错误。3.多。

2、个。可以在c文件中包含的头文件中定义全局变量吗?怎么了?答:是的。在另一个c文件中将同名的全局变量声明为static。如果只有一个c文件可以为此变量指定初始值,则可以在不同的c文件中声明同名的全局变量。此时连接不会发生错误。4、填写以下代码的输出#includeInt main(void)Int a、b、c、d;A=10b=a;c=a;d=10 * a;Printf(b,c,d: %d,%d,%d ,b,c,d);return 0;答:10、12、1205,静态全局变量和常规全局变量有何区别?Static局部变量和常规局部变量有何区别?Static函数和一般函数有何不同?(: 1)全局变量(外。

3、部变量)的说明前面带有static,用于构造静态全局变量。全局变量本身是静态存储方式,静态全局变量也是静态存储方式。两者在存储方式上没有区别。两者的区别在于,如果非静态全局变量的范围是整个源程序,并且一个源程序由多个源文件组成,则非静态全局变量在每个源文件中有效。静态全局变量的范围受到限制。也就是说,变量仅在定义它的源文件中有效。不能在同一源程序的其他源文件中使用。静态全局变量的范围仅限于一个源文件,并且仅对该源文件中的函数通用,因此,您可以避免在其他源文件中出错。2)如上分析所示,将局部变量更改为静态变量后,更改保存方法将更改其寿命。将全局变量更改为静态变量后,请更改其范围以限制其使用范围。。

4、3)Static函数仅在此文件中不同于常规函数范围。仅在当前源文件中使用的函数是内部函数(static),内部函数必须在当前源文件中说明和定义。对于可在当前源文件以外的位置使用的函数,必须在头文件中说明要使用这些函数的源文件包含此头文件概括地说,静态全局变量和常规全局变量有何区别?Static全局变量仅创建一次,以防止在其他文件单元格中引用它。Static局部变量和常规局部变量有何区别?Static本地变量只初始化一次,下次基于以前的结果值。Static函数和一般函数有何不同?Static函数在内存中只有一份,常规函数为调用的每个函数保留一份副本6、程序的本地变量存在于(堆栈)中,全局变量存在。

5、于(静态区域)中,动态请求数据存在于(堆栈)中。7、以下说明和定义:Typedef union长I;int k5;char c; DATEStruct dataInt catDATE cowDouble dog tooDATE maxprintf(“% d”,sizeof (structdata) sizeof (max)语句如下:运行结果如下:_ _ _ 52 _ _ _测试点:区分struct和union。(通常假定在32位系统上)答:DATE是union,变量的公共空间。最大的变量类型是占用20个字节的int5。因此,大小为20 .data为struct,每个变量分别占用空间。int4 。

6、DATE20 double8=32。因此,结果为20 32=52。当然.在某些16位编辑器中,int可以是两个字节,结果为int2 DATE10 double8=208、队列和堆栈的区别是什么?队列是先进先出,堆栈后进先出9、填写以下代码的输出:#includeInt inc(int a) return(a);Int multi(int*a,int*b,int*c) return(* c=* a* * b);type def int(func 1)(int in);Typedef int (func2) (int *,int *,int *);Void show (func2 fun,int 。

7、arg1,int * arg2)FUNC1 p=incint temp=p(arg 1);Fun(temp、arg1、arg 2);printf(“% dn”,* arg 2);Main()int a;/局部变量a为0。show(multi,10,a);return 0;答:110查找下面代码中的所有错误(标题好,值得一看)说明:以下代码是反向顺序ABCD,然后替换为“dcba”的字符串#includestring.h Main()Char*src=hello,world ;Char * dest=NULLint len=strlen(src);dest=(char *)malloc(len)。

8、;Char * d=destchar * s=srclen;While(len -!=0)d=s-;printf(“% s”,dest);return 0;回答:方法1:总共有4个错误。Int main()Char* src=hello,world ;int len=strlen(src);char * dest=(c har *)malloc(len 1);/char* d=分配dest空间:char * s=srclen-1;/指向最后一个字符While(len -!=0)* d=* s-;* d=0;/必须添加尾部 0 printf(“% sn”,dest);free(dest);/使用完毕后,必须释放空间以防止内存泄漏Dest=NULL/防止生成野生指针return 0;方法2:(方法1)需要额外的存储空间,效率不高)好主意#include#includeMain()Char str=hello,world ;int len=strlen(str);char t;for(int I=0);I。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值