面试题大汇总华为面试题

面试题大汇总华为面试题1 局部变量能否和全局变量重名 答 能 局部会屏蔽全局 要用全局变量 需要使用 局部变量可以与全局变量同名 在函数内引用这个变量时 会用到同名的局部变量 而不会用到全局变量 对于有些编译器而言 在同一个函数内可以定义多个同名的局部变量 比如在两个循环体内都定义一个同名的局部变量 而那个局部变量的作用域就在那个循环体内 2 如何引用一个已经定义过的全局变量 答 ex

简答题
1、局部变量能否和全局变量重名?  
 答:能,局部会屏蔽全局。要用全局变量,需要使用”::” ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
  
2、如何引用一个已经定义过的全局变量?   
答:extern  可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
  
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?   
答:可以,在不同的C文件中以static形式来声明同名全局变量。   可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错.    
4、请写出下列代码的输出内容


















#include 
  
       int main(void)    {     int a,b,c,d;   a=10;     b=a++;     c=++a;      d=10*a++;     printf("b,c,d:%d,%d,%d",b,c,d);     return 0;    } 
  
 typedef union { long i; int k[5]; char c; } DATE;    struct data { int cat; DATE cow; double dog; } too;   DATE max;   

则语句 printf(“%d”,sizeof(struct data)+sizeof(max));的执行结果是:52_
考点:区别struct与union.(一般假定在32位机器上)  
答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20. data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是 20 + 32 = 52. 当然…在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20
  
8、队列和栈有什么区别?
 队列先进先出,栈后进先出   
9、写出下列代码的输出内容












 #include 
  
       int inc(int a)    { return(++a); }    int multi(int*a,int*b,int*c)    { return(*c=*ab); }   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(arg1);      fun(&temp,&arg1, arg2);      printf("%dn",*arg2);    }    main()    {      int a;    //局部变量a为0;   show(multi,10,&a);     return 0; }   
  
#include"string.h"    main()    {    char*src="hello,world";    char* dest=NULL;    int len=strlen(src);    dest=(char*)malloc(len);    char* d=dest;    char* s=src[len];   while(len--!=0)    d++=s--;    printf("%s",dest);    return 0;    }    
int main()    {     char* src = "hello,world";     int len = strlen(src);     char* dest = (char*)malloc(len+1);//要为分配一个空间    char* d = dest;    char *d=dest;   char* s = &src[len-1]; //指向最后一个字符    while( len-- != 0 )      *d++=*s--;      *d = 0; //尾部要加’\0’     printf("%sn",dest);     free(dest); // 使用完,应当释放空间,以免造成内存汇泄露 dest = NULL;   //防止产生野指针  return 0;    } 

方法2: (方法一需要额外的存储空间,效率不高.) 不错的想法

#include 
  
    #include 
   
     main() { char str[]="hello,world"; int len=strlen(str); char t; for(int i=0; i 
     
    
  

17.、

unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x; p2=(unsigned long *)0x; 

选择题:   
21、Ethternet链接到Internet用到以下那个协议? (D)  
A.HDLC;  B.ARP;  C.UDP;  D.TCP;  E.ID




找错题
1、请问下面程序有什么错误?

int a[60][250][1000],i,j,k; for(k=0;k<=1000;k++) for(j=0;j<250;j++) for(i=0;i<60;i++)    a[i][j][k]=0; 

答: 把循环语句内外换一下

2、

#define Max_CB 500 void LmiQueryCSmd(Struct MSgCB * pmsg) { unsigned char ucCmdNum; ...... for(ucCmdNum=0;ucCmdNum 
  

答: 死循环,unsigned int的取值范围是0~255

3、以下是求一个数的平方的程序,请找出错误

#define SQUARE(a) ((a)*(a)) int a=5; int b; b=SQUARE(a++); 

答:结果与编译器相关,得到的可能不是平方值.

问答题
29、IP Phone的原理是什么?
IP电话(又称IP PHONE或VoIP)是建立在IP技术上的分组化、数字化传输技术,其基本原理是:通过语音压缩算法对语音数据进行压缩编码处理,然后把这些语音数据按IP等相关协议进行打包,经过IP网络把数据包传输到接收地,再把这些语音数据包串起来,经过解码解压处理后,恢复成原来的语音信号,从而达到由IP网络传送语音的目的。




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/174209.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:55
下一篇 2026年3月26日 下午11:56


相关推荐

  • JAVA实现贪吃蛇游戏

    JAVA实现贪吃蛇游戏最近在学GUI,然后又有读者希望我写一下相关的实战。刚好我又在B站上找到了一个关于GUI的学习视频,然后里面又刚好有这个实战,我便写了下来。注:代码来源为B站的一个up主:狂神。游戏主启动类:importjavax.swing.*;//游戏主启动类publicclassstartGame{publicstaticvoidmain(String[]args){JFrameframe=newJFrame();frame..

    2022年6月22日
    29
  • 博文视点大讲堂第30期——职场新人胜出的关键点

    博文视点大讲堂第30期——职场新人胜出的关键点

    2021年8月6日
    63
  • C语言实现存款利息计算

    C语言实现存款利息计算存款利息的计算 有 1000 元 想存五年 可以按以下 5 种办法存 一次存 5 年期先存 2 年期 到期后将本息再存 3 年先存 3 年期 到期后将本息再存 2 年存 1 年期 到期后将本息存再存 1 年期 连续存 5 次存活期存款 活期利息每一季度结算一次当年的银行存款利息如下 1 年定期存款利息为 1 5 2 年定期存款利息为 2 1 3 年定期存款利息为 2 75 5 年定期存款利息为 3 活期存款利息为 0 35 活期存款每一季度结算一次利息 如果 r 为年利率 n 为存款年数 则计算本息的公式为 1 年期本息和 p 1000 1 r

    2026年3月19日
    2
  • 月之暗面以100-120亿美元估值开启新一轮融资

    月之暗面以100-120亿美元估值开启新一轮融资

    2026年3月12日
    2
  • [Python] ImportError: DLL load failed … 找不到指定的模块 此类问题解决方法

    [Python] ImportError: DLL load failed … 找不到指定的模块 此类问题解决方法最近升级Python项目,由Python2.7升级到Python3.8.3,项目使用了PySide2,对于较新的Python3.8.3,PySide2可能存在些许不兼容问题,环境配置完成后,出现一连串的ImportError:DLLloadfailed找不到指定模块对于很多Python开发者来说,这类问题最为头疼,不知道如何下手解决。我是在virtualenv虚拟环境下配置Python3.8.3的开发环境。OS:Windows7x64各种依赖安装完毕后

    2022年7月13日
    30
  • splash 代码保留

    splash 代码保留packagecom demo demodo importandroi app Activity importandroi content Intent importandroi os Bundle importandroi os Handler publicclassS priva

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号